Skip to content

Commit bd7ae23

Browse files
authored
Update formatting (#271)
1 parent c17b879 commit bd7ae23

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

49 files changed

+343
-341
lines changed

.github/workflows/check_code_quality.yml

+2-2
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@ jobs:
4848
run: |
4949
source venv/bin/activate
5050
black --check .
51-
- name: Check style with isort
51+
- name: Check style with ruff
5252
run: |
5353
source venv/bin/activate
54-
isort --check .
54+
ruff .

Makefile

+2-2
Original file line numberDiff line numberDiff line change
@@ -22,11 +22,11 @@ REAL_CLONE_URL = $(if $(CLONE_URL),$(CLONE_URL),$(DEFAULT_CLONE_URL))
2222
# Run code quality checks
2323
style_check:
2424
black --check .
25-
isort --check .
25+
ruff .
2626

2727
style:
2828
black .
29-
isort .
29+
ruff . --fix
3030

3131
# Run tests for the library
3232
test:

docs/source/inference.mdx

+4-4
Original file line numberDiff line numberDiff line change
@@ -70,7 +70,7 @@ When fixing the shapes with the `reshape()` method, inference cannot be performe
7070
from datasets import load_dataset
7171
from transformers import AutoTokenizer, pipeline
7272
from evaluate import evaluator
73-
from optimum.intel.openvino import OVModelForQuestionAnswering
73+
from optimum.intel import OVModelForQuestionAnswering
7474

7575
model_id = "distilbert-base-cased-distilled-squad"
7676
model = OVModelForQuestionAnswering.from_pretrained(model_id, export=True)
@@ -92,7 +92,7 @@ metric = task_evaluator.compute(model_or_pipeline=qa_pipe, data=eval_dataset, me
9292
By default the model will be compiled when instantiating our `OVModel`. In the case where the model is reshaped, placed to an other device or if FP16 precision is enabled, the model will need to be recompiled again, which will happen by default before the first inference (thus inflating the latency of the first inference). To avoid an unnecessary compilation, you can disable the first compilation by setting `compile=False`. The model should also be compiled before the first inference with `model.compile()`.
9393

9494
```python
95-
from optimum.intel.openvino import OVModelForSequenceClassification
95+
from optimum.intel import OVModelForSequenceClassification
9696

9797
model_id = "distilbert-base-uncased-finetuned-sst-2-english"
9898
# Load the model and disable the model compilation
@@ -111,7 +111,7 @@ Here is an example on how you can run inference for a translation task using an
111111

112112
```python
113113
from transformers import AutoTokenizer, pipeline
114-
from optimum.intel.openvino import OVModelForSeq2SeqLM
114+
from optimum.intel import OVModelForSeq2SeqLM
115115

116116
model_id = "t5-small"
117117
model = OVModelForSeq2SeqLM.from_pretrained(model_id, export=True)
@@ -147,7 +147,7 @@ pip install diffusers
147147
Here is an example of how you can load an OpenVINO Stable Diffusion model and run inference using OpenVINO Runtime:
148148

149149
```python
150-
from optimum.intel.openvino import OVStableDiffusionPipeline
150+
from optimum.intel import OVStableDiffusionPipeline
151151

152152
model_id = "echarlaix/stable-diffusion-v1-5-openvino"
153153
stable_diffusion = OVStableDiffusionPipeline.from_pretrained(model_id)

docs/source/optimization_ov.mdx

+5-5
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ limitations under the License.
1616

1717
# Optimization
1818

19-
🤗 Optimum Intel provides an `optimum.openvino` package that enables you to apply a variety of model compression methods such as quantization, pruning, on many models hosted on the 🤗 hub using the [NNCF](https://docs.openvino.ai/2022.1/docs_nncf_introduction.html) framework.
19+
🤗 Optimum Intel provides an `openvino` package that enables you to apply a variety of model compression methods such as quantization, pruning, on many models hosted on the 🤗 hub using the [NNCF](https://docs.openvino.ai/2022.1/docs_nncf_introduction.html) framework.
2020

2121

2222
## Post-training optimization
@@ -27,7 +27,7 @@ Here is how to apply static quantization on a fine-tuned DistilBERT:
2727
```python
2828
from functools import partial
2929
from transformers import AutoModelForSequenceClassification, AutoTokenizer
30-
from optimum.intel.openvino import OVConfig, OVQuantizer
30+
from optimum.intel import OVConfig, OVQuantizer
3131

3232
model_id = "distilbert-base-uncased-finetuned-sst-2-english"
3333
model = AutoModelForSequenceClassification.from_pretrained(model_id)
@@ -83,7 +83,7 @@ from transformers import (
8383
)
8484
from datasets import load_dataset
8585
- from transformers import Trainer
86-
+ from optimum.intel.openvino import OVConfig, OVTrainer, OVModelForSequenceClassification
86+
+ from optimum.intel import OVConfig, OVTrainer, OVModelForSequenceClassification
8787

8888
model_id = "distilbert-base-uncased-finetuned-sst-2-english"
8989
model = AutoModelForSequenceClassification.from_pretrained(model_id)
@@ -168,7 +168,7 @@ Once we have the config ready, we can start develop the training pipeline like t
168168

169169
```diff
170170
- from transformers import Trainer, TrainingArguments
171-
+ from optimum.intel.openvino import OVConfig, OVTrainer, OVTrainingArguments
171+
+ from optimum.intel import OVConfig, OVTrainer, OVTrainingArguments
172172

173173
# Load teacher model
174174
+ teacher_model = AutoModelForSequenceClassification.from_pretrained(teacher_model_or_path)
@@ -210,7 +210,7 @@ After applying quantization on our model, we can then easily load it with our `O
210210

211211
```python
212212
from transformers import pipeline
213-
from optimum.intel.openvino import OVModelForSequenceClassification
213+
from optimum.intel import OVModelForSequenceClassification
214214

215215
model_id = "helenai/distilbert-base-uncased-finetuned-sst-2-english-ov-int8"
216216
ov_model = OVModelForSequenceClassification.from_pretrained(model_id)

examples/neural_compressor/language-modeling/run_clm.py

+8-8
Original file line numberDiff line numberDiff line change
@@ -29,9 +29,16 @@
2929
from typing import Optional
3030

3131
import datasets
32+
import evaluate
3233
import torch
3334
import transformers
3435
from datasets import load_dataset
36+
from neural_compressor import (
37+
DistillationConfig,
38+
PostTrainingQuantConfig,
39+
QuantizationAwareTrainingConfig,
40+
WeightPruningConfig,
41+
)
3542
from transformers import (
3643
CONFIG_MAPPING,
3744
MODEL_FOR_CAUSAL_LM_MAPPING,
@@ -49,13 +56,6 @@
4956
from transformers.utils import check_min_version
5057
from transformers.utils.versions import require_version
5158

52-
import evaluate
53-
from neural_compressor import (
54-
DistillationConfig,
55-
PostTrainingQuantConfig,
56-
QuantizationAwareTrainingConfig,
57-
WeightPruningConfig,
58-
)
5959
from optimum.intel.neural_compressor import INCModelForCausalLM, INCQuantizer, INCTrainer
6060

6161

@@ -441,7 +441,7 @@ def main():
441441
)
442442
else:
443443
model = AutoModelForCausalLM.from_config(config)
444-
n_params = sum(dict((p.data_ptr(), p.numel()) for p in model.parameters()).values())
444+
n_params = sum({p.data_ptr(): p.numel() for p in model.parameters()}.values())
445445
logger.info(f"Training new model from scratch - Total size={n_params/2**20:.2f}M params")
446446

447447
# We resize the embeddings only when necessary to avoid index errors. If you are creating a model from scratch

examples/neural_compressor/language-modeling/run_mlm.py

+7-7
Original file line numberDiff line numberDiff line change
@@ -29,9 +29,16 @@
2929
from typing import Optional
3030

3131
import datasets
32+
import evaluate
3233
import torch
3334
import transformers
3435
from datasets import load_dataset
36+
from neural_compressor import (
37+
DistillationConfig,
38+
PostTrainingQuantConfig,
39+
QuantizationAwareTrainingConfig,
40+
WeightPruningConfig,
41+
)
3542
from transformers import (
3643
CONFIG_MAPPING,
3744
MODEL_FOR_MASKED_LM_MAPPING,
@@ -48,13 +55,6 @@
4855
from transformers.utils import check_min_version
4956
from transformers.utils.versions import require_version
5057

51-
import evaluate
52-
from neural_compressor import (
53-
DistillationConfig,
54-
PostTrainingQuantConfig,
55-
QuantizationAwareTrainingConfig,
56-
WeightPruningConfig,
57-
)
5858
from optimum.intel.neural_compressor import INCModelForMaskedLM, INCQuantizer, INCTrainer
5959

6060

examples/neural_compressor/multiple-choice/run_swag.py

+9-10
Original file line numberDiff line numberDiff line change
@@ -29,12 +29,12 @@
2929
import torch
3030
import transformers
3131
from datasets import load_dataset
32+
from neural_compressor import DistillationConfig, QuantizationAwareTrainingConfig, WeightPruningConfig
3233
from transformers import (
3334
AutoConfig,
3435
AutoModelForMultipleChoice,
3536
AutoTokenizer,
3637
HfArgumentParser,
37-
PreTrainedModel,
3838
TrainingArguments,
3939
default_data_collator,
4040
set_seed,
@@ -45,7 +45,6 @@
4545
from transformers.utils import check_min_version
4646
from transformers.utils.versions import require_version
4747

48-
from neural_compressor import DistillationConfig, QuantizationAwareTrainingConfig, WeightPruningConfig
4948
from optimum.intel.neural_compressor import INCModelForMultipleChoice, INCTrainer
5049

5150

@@ -548,14 +547,14 @@ def compute_metrics(eval_predictions):
548547
trainer.log_metrics("eval", metrics)
549548
trainer.save_metrics("eval", metrics)
550549

551-
kwargs = dict(
552-
finetuned_from=model_args.model_name_or_path,
553-
tasks="multiple-choice",
554-
dataset_tags="swag",
555-
dataset_args="regular",
556-
dataset="SWAG",
557-
language="en",
558-
)
550+
kwargs = {
551+
"finetuned_from": model_args.model_name_or_path,
552+
"tasks": "multiple-choice",
553+
"dataset_tags": "swag",
554+
"dataset_args": "regular",
555+
"dataset": "SWAG",
556+
"language": "en",
557+
}
559558

560559
if training_args.push_to_hub:
561560
trainer.push_to_hub(**kwargs)

examples/neural_compressor/multiple-choice/run_swag_post_training.py

+3-5
Original file line numberDiff line numberDiff line change
@@ -25,17 +25,18 @@
2525
from typing import Optional, Union
2626

2727
import datasets
28-
import numpy as np
28+
import evaluate
2929
import torch
3030
import transformers
31+
from accelerate import Accelerator
3132
from datasets import load_dataset
33+
from neural_compressor import PostTrainingQuantConfig
3234
from torch.utils.data import DataLoader
3335
from transformers import (
3436
AutoConfig,
3537
AutoModelForMultipleChoice,
3638
AutoTokenizer,
3739
HfArgumentParser,
38-
PreTrainedModel,
3940
TrainingArguments,
4041
default_data_collator,
4142
set_seed,
@@ -45,9 +46,6 @@
4546
from transformers.utils import check_min_version
4647
from transformers.utils.versions import require_version
4748

48-
import evaluate
49-
from accelerate import Accelerator
50-
from neural_compressor import PostTrainingQuantConfig
5149
from optimum.intel.neural_compressor import INCModelForMultipleChoice, INCQuantizer
5250

5351

examples/neural_compressor/optical-character-recognition/run_ocr_post_training.py

+3-3
Original file line numberDiff line numberDiff line change
@@ -5,16 +5,16 @@
55
from dataclasses import dataclass, field
66
from typing import Optional
77

8+
import evaluate
89
import pandas as pd
910
import torch
1011
import transformers
12+
from neural_compressor import PostTrainingQuantConfig
1113
from PIL import Image
1214
from torch.utils.data import DataLoader, Dataset
1315
from transformers import HfArgumentParser, TrainingArguments, TrOCRProcessor, VisionEncoderDecoderModel
1416
from transformers.utils import check_min_version
1517

16-
import evaluate
17-
from neural_compressor import PostTrainingQuantConfig
1818
from optimum.intel.neural_compressor import INCModelForVision2Seq, INCQuantizer
1919

2020

@@ -284,7 +284,7 @@ def eval_func(model, iters=None):
284284
if result_loaded_model != result_optimized_model:
285285
logger.error("The quantized model was not successfully loaded.")
286286
else:
287-
logger.info(f"The quantized model was successfully loaded.")
287+
logger.info("The quantized model was successfully loaded.")
288288

289289

290290
def _mp_fn(index):

examples/neural_compressor/question-answering/run_qa.py

+34-8
Original file line numberDiff line numberDiff line change
@@ -25,20 +25,23 @@
2525
from typing import Optional
2626

2727
import datasets
28+
import evaluate
2829
import numpy as np
2930
import torch
3031
import transformers
32+
from accelerate import Accelerator
3133
from datasets import load_dataset
34+
from neural_compressor import DistillationConfig, QuantizationAwareTrainingConfig, WeightPruningConfig
3235
from torch.utils.data.dataloader import DataLoader
3336
from tqdm.auto import tqdm
37+
from trainer_qa import QuestionAnsweringINCTrainer
3438
from transformers import (
3539
AutoConfig,
3640
AutoModelForQuestionAnswering,
3741
AutoTokenizer,
3842
DataCollatorWithPadding,
3943
EvalPrediction,
4044
HfArgumentParser,
41-
PreTrainedModel,
4245
PreTrainedTokenizerFast,
4346
TrainingArguments,
4447
default_data_collator,
@@ -47,13 +50,9 @@
4750
from transformers.trainer_utils import get_last_checkpoint
4851
from transformers.utils import check_min_version
4952
from transformers.utils.versions import require_version
53+
from utils_qa import postprocess_qa_predictions
5054

51-
import evaluate
52-
from accelerate import Accelerator
53-
from neural_compressor import DistillationConfig, QuantizationAwareTrainingConfig, WeightPruningConfig
5455
from optimum.intel.neural_compressor import INCModelForQuestionAnswering
55-
from trainer_qa import QuestionAnsweringINCTrainer
56-
from utils_qa import postprocess_qa_predictions
5756

5857

5958
# Will be removed when neural-compressor next release is out
@@ -553,7 +552,10 @@ def move_input_to_device(input, device):
553552
)
554553
teacher_model_qa = QAModel(teacher_model)
555554
teacher_model_qa = accelerator.prepare(teacher_model_qa)
556-
num_param = lambda model: sum(p.numel() for p in model.parameters())
555+
556+
def num_param(model):
557+
return sum(p.numel() for p in model.parameters())
558+
557559
logger.info(
558560
"***** Number of teacher model parameters: {:.2f}M *****".format(num_param(teacher_model_qa) / 10**6)
559561
)
@@ -662,9 +664,33 @@ def prepare_validation_features(examples):
662664
load_from_cache_file=not data_args.overwrite_cache,
663665
desc="Running tokenizer on validation dataset",
664666
)
667+
665668
if data_args.max_eval_samples is not None:
666669
# During Feature creation dataset samples might increase, we will select required samples again
667-
eval_dataset = eval_dataset.select(range(data_args.max_eval_samples))
670+
max_eval_samples = min(len(eval_dataset), data_args.max_eval_samples)
671+
eval_dataset = eval_dataset.select(range(max_eval_samples))
672+
673+
if training_args.do_predict:
674+
if "test" not in raw_datasets:
675+
raise ValueError("--do_predict requires a test dataset")
676+
predict_examples = raw_datasets["test"]
677+
if data_args.max_predict_samples is not None:
678+
# We will select sample from whole data
679+
predict_examples = predict_examples.select(range(data_args.max_predict_samples))
680+
# Predict Feature Creation
681+
with training_args.main_process_first(desc="prediction dataset map pre-processing"):
682+
predict_dataset = predict_examples.map(
683+
prepare_validation_features,
684+
batched=True,
685+
num_proc=data_args.preprocessing_num_workers,
686+
remove_columns=column_names,
687+
load_from_cache_file=not data_args.overwrite_cache,
688+
desc="Running tokenizer on prediction dataset",
689+
)
690+
if data_args.max_predict_samples is not None:
691+
# During Feature creation dataset samples might increase, we will select required samples again
692+
max_predict_samples = min(len(predict_dataset), data_args.max_predict_samples)
693+
predict_dataset = predict_dataset.select(range(max_predict_samples))
668694

669695
# Post-processing:
670696
def post_processing_function(examples, features, predictions, stage="eval"):

0 commit comments

Comments
 (0)