Skip to content

Commit aa7e57b

Browse files
authored
Update quality tooling for formatting (#760)
1 parent 8671303 commit aa7e57b

File tree

92 files changed

+299
-401
lines changed

Some content is hidden

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

92 files changed

+299
-401
lines changed

.github/generate_dev_tests.py

-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
1-
import shutil
21
from pathlib import Path
32

43
import yaml

.github/workflows/check_code_quality.yml

+2-2
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,7 @@ jobs:
4747
run: |
4848
source venv/bin/activate
4949
black --check .
50-
- name: Check style with isort
50+
- name: Check style with ruff
5151
run: |
5252
source venv/bin/activate
53-
isort --check .
53+
ruff .

CONTRIBUTING.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,7 @@ If you would like to work on any of the open Issues:
5151

5252
5. Develop the features on your branch.
5353

54-
6. Format your code. Run black and isort so that your newly added files look nice with the following command:
54+
6. Format your code. Run black and ruff so that your newly added files look nice with the following command:
5555

5656
```bash
5757
make style

Makefile

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

2828
style:
2929
black .
30-
isort .
30+
ruff . --fix
3131

3232
# Run tests for the library
3333
test:

examples/onnxruntime/optimization/multiple-choice/run_swag.py

+2-5
Original file line numberDiff line numberDiff line change
@@ -25,20 +25,18 @@
2525
from dataclasses import dataclass, field
2626
from functools import partial
2727
from itertools import chain
28-
from typing import Optional, Union
28+
from typing import Optional
2929

3030
import datasets
3131
import numpy as np
32-
import torch
3332
import transformers
3433
from datasets import load_dataset
3534
from transformers import AutoTokenizer, HfArgumentParser, TrainingArguments
3635
from transformers.tokenization_utils_base import PreTrainedTokenizerBase
37-
from transformers.trainer_utils import get_last_checkpoint
3836
from transformers.utils import check_min_version
3937

4038
from optimum.onnxruntime import ORTModelForMultipleChoice, ORTOptimizer
41-
from optimum.onnxruntime.configuration import OptimizationConfig, ORTConfig
39+
from optimum.onnxruntime.configuration import OptimizationConfig
4240
from optimum.onnxruntime.model import ORTModel
4341

4442

@@ -238,7 +236,6 @@ def main():
238236
)
239237

240238
os.makedirs(training_args.output_dir, exist_ok=True)
241-
model_path = os.path.join(training_args.output_dir, "model.onnx")
242239
optimized_model_path = os.path.join(training_args.output_dir, "model_optimized.onnx")
243240

244241
tokenizer = AutoTokenizer.from_pretrained(model_args.tokenizer_name or model_args.model_name_or_path)

examples/onnxruntime/optimization/question-answering/run_qa.py

+5-8
Original file line numberDiff line numberDiff line change
@@ -24,22 +24,20 @@
2424
import sys
2525
from dataclasses import dataclass, field
2626
from functools import partial
27-
from pathlib import Path
2827
from typing import Optional
2928

3029
import datasets
3130
import transformers
3231
from datasets import load_dataset
32+
from evaluate import load
3333
from transformers import AutoTokenizer, EvalPrediction, HfArgumentParser, PreTrainedTokenizer, TrainingArguments
3434
from transformers.utils import check_min_version
3535
from transformers.utils.versions import require_version
36+
from utils_qa import postprocess_qa_predictions
3637

37-
from evaluate import load
3838
from optimum.onnxruntime import ORTModelForQuestionAnswering, ORTOptimizer
39-
from optimum.onnxruntime.configuration import OptimizationConfig, ORTConfig
39+
from optimum.onnxruntime.configuration import OptimizationConfig
4040
from optimum.onnxruntime.model import ORTModel
41-
from trainer_qa import QuestionAnsweringTrainer
42-
from utils_qa import postprocess_qa_predictions
4341

4442

4543
# Will error if the minimal version of Transformers is not installed. Remove at your own risks.
@@ -307,7 +305,6 @@ def main():
307305
)
308306

309307
os.makedirs(training_args.output_dir, exist_ok=True)
310-
model_path = os.path.join(training_args.output_dir, "model.onnx")
311308
optimized_model_path = os.path.join(training_args.output_dir, "model_optimized.onnx")
312309

313310
tokenizer = AutoTokenizer.from_pretrained(model_args.tokenizer_name or model_args.model_name_or_path)
@@ -492,7 +489,7 @@ def compute_metrics(p: EvalPrediction):
492489
metrics = compute_metrics(predictions)
493490

494491
# Save metrics
495-
with open(os.path.join(training_args.output_dir, f"eval_results.json"), "w") as f:
492+
with open(os.path.join(training_args.output_dir, "eval_results.json"), "w") as f:
496493
json.dump(metrics, f, indent=4, sort_keys=True)
497494

498495
# Prediction
@@ -527,7 +524,7 @@ def compute_metrics(p: EvalPrediction):
527524
metrics = compute_metrics(predictions)
528525

529526
# Save metrics
530-
with open(os.path.join(training_args.output_dir, f"predict_results.json"), "w") as f:
527+
with open(os.path.join(training_args.output_dir, "predict_results.json"), "w") as f:
531528
json.dump(metrics, f, indent=4, sort_keys=True)
532529

533530

examples/onnxruntime/optimization/text-classification/run_glue.py

+5-7
Original file line numberDiff line numberDiff line change
@@ -23,15 +23,14 @@
2323
import sys
2424
from dataclasses import dataclass, field
2525
from functools import partial
26-
from pathlib import Path
2726
from typing import Optional
2827

2928
import datasets
3029
import numpy as np
3130
import transformers
3231
from datasets import load_dataset
32+
from evaluate import load
3333
from transformers import (
34-
AutoConfig,
3534
AutoTokenizer,
3635
EvalPrediction,
3736
HfArgumentParser,
@@ -41,9 +40,8 @@
4140
from transformers.utils import check_min_version
4241
from transformers.utils.versions import require_version
4342

44-
from evaluate import load
4543
from optimum.onnxruntime import ORTModelForSequenceClassification, ORTOptimizer
46-
from optimum.onnxruntime.configuration import OptimizationConfig, ORTConfig
44+
from optimum.onnxruntime.configuration import OptimizationConfig
4745
from optimum.onnxruntime.model import ORTModel
4846

4947

@@ -395,7 +393,7 @@ def compute_metrics(p: EvalPrediction):
395393

396394
try:
397395
eval_dataset = eval_dataset.align_labels_with_mapping(label2id=model.config.label2id, label_column="label")
398-
except Exception as e:
396+
except Exception:
399397
logger.warning(
400398
f"\nModel label mapping: {model.config.label2id}"
401399
f"\nDataset label features: {eval_dataset.features['label']}"
@@ -418,7 +416,7 @@ def compute_metrics(p: EvalPrediction):
418416
)
419417
outputs = ort_model.evaluation_loop(eval_dataset)
420418
# Save metrics
421-
with open(os.path.join(training_args.output_dir, f"eval_results.json"), "w") as f:
419+
with open(os.path.join(training_args.output_dir, "eval_results.json"), "w") as f:
422420
json.dump(outputs.metrics, f, indent=4, sort_keys=True)
423421

424422
# Prediction
@@ -445,7 +443,7 @@ def compute_metrics(p: EvalPrediction):
445443
predictions = np.squeeze(outputs.predictions) if is_regression else np.argmax(outputs.predictions, axis=1)
446444

447445
# Save predictions
448-
output_predictions_file = os.path.join(training_args.output_dir, f"prediction.txt")
446+
output_predictions_file = os.path.join(training_args.output_dir, "prediction.txt")
449447
with open(output_predictions_file, "w") as writer:
450448
logger.info(f"***** Predict results {data_args.task_name} *****")
451449
writer.write("index\tprediction\n")

examples/onnxruntime/optimization/token-classification/run_ner.py

+5-6
Original file line numberDiff line numberDiff line change
@@ -31,13 +31,13 @@
3131
import numpy as np
3232
import transformers
3333
from datasets import ClassLabel, load_dataset
34+
from evaluate import load
3435
from transformers import AutoTokenizer, HfArgumentParser, PreTrainedTokenizer, TrainingArguments
3536
from transformers.utils import check_min_version
3637
from transformers.utils.versions import require_version
3738

38-
from evaluate import load
3939
from optimum.onnxruntime import ORTModelForTokenClassification, ORTOptimizer
40-
from optimum.onnxruntime.configuration import OptimizationConfig, ORTConfig
40+
from optimum.onnxruntime.configuration import OptimizationConfig
4141
from optimum.onnxruntime.model import ORTModel
4242

4343

@@ -276,7 +276,6 @@ def main():
276276
)
277277

278278
os.makedirs(training_args.output_dir, exist_ok=True)
279-
model_path = os.path.join(training_args.output_dir, "model.onnx")
280279
optimized_model_path = os.path.join(training_args.output_dir, "model_optimized.onnx")
281280

282281
tokenizer = AutoTokenizer.from_pretrained(model_args.tokenizer_name or model_args.model_name_or_path)
@@ -357,7 +356,7 @@ def main():
357356
eval_dataset = eval_dataset.align_labels_with_mapping(
358357
label2id=model.config.label2id, label_column=label_column_name
359358
)
360-
except Exception as e:
359+
except Exception:
361360
logger.warning(
362361
f"\nModel label mapping: {model.config.label2id}"
363362
f"\nDataset label features: {eval_dataset.features[label_column_name]}"
@@ -489,7 +488,7 @@ def compute_metrics(p):
489488
outputs = ort_model.evaluation_loop(eval_dataset)
490489

491490
# Save evaluation metrics
492-
with open(os.path.join(training_args.output_dir, f"eval_results.json"), "w") as f:
491+
with open(os.path.join(training_args.output_dir, "eval_results.json"), "w") as f:
493492
json.dump(outputs.metrics, f, indent=4, sort_keys=True)
494493

495494
# Prediction
@@ -525,7 +524,7 @@ def compute_metrics(p):
525524
]
526525

527526
# Save test metrics
528-
with open(os.path.join(training_args.output_dir, f"predict_results.json"), "w") as f:
527+
with open(os.path.join(training_args.output_dir, "predict_results.json"), "w") as f:
529528
json.dump(outputs.metrics, f, indent=4, sort_keys=True)
530529

531530
# Save predictions

examples/onnxruntime/quantization/image-classification/run_image_classification.py

+4-5
Original file line numberDiff line numberDiff line change
@@ -30,13 +30,12 @@
3030
import torch
3131
import transformers
3232
from datasets import load_dataset
33+
from evaluate import load
34+
from onnxruntime.quantization import QuantFormat, QuantizationMode, QuantType
3335
from torchvision.transforms import CenterCrop, Compose, Normalize, Resize, ToTensor
3436
from transformers import AutoFeatureExtractor, EvalPrediction, HfArgumentParser, TrainingArguments
35-
from transformers.onnx import FeaturesManager
3637
from transformers.utils.versions import require_version
3738

38-
from evaluate import load
39-
from onnxruntime.quantization import QuantFormat, QuantizationMode, QuantType
4039
from optimum.onnxruntime import ORTQuantizer
4140
from optimum.onnxruntime.configuration import AutoCalibrationConfig, QuantizationConfig
4241
from optimum.onnxruntime.model import ORTModel
@@ -399,7 +398,7 @@ def compute_metrics(p: EvalPrediction):
399398
eval_dataset = eval_dataset.align_labels_with_mapping(
400399
label2id=model.config.label2id, label_column=labels_column
401400
)
402-
except Exception as e:
401+
except Exception:
403402
logger.warning(
404403
f"\nModel label mapping: {model.config.label2id}"
405404
f"\nDataset label features: {eval_dataset.features[labels_column]}"
@@ -418,7 +417,7 @@ def compute_metrics(p: EvalPrediction):
418417
)
419418
outputs = ort_model.evaluation_loop(eval_dataset)
420419
# Save metrics
421-
with open(os.path.join(training_args.output_dir, f"eval_results.json"), "w") as f:
420+
with open(os.path.join(training_args.output_dir, "eval_results.json"), "w") as f:
422421
json.dump(outputs.metrics, f, indent=4, sort_keys=True)
423422

424423

examples/onnxruntime/quantization/multiple-choice/run_swag.py

+2-4
Original file line numberDiff line numberDiff line change
@@ -25,19 +25,17 @@
2525
from dataclasses import dataclass, field
2626
from functools import partial
2727
from itertools import chain
28-
from typing import Optional, Union
28+
from typing import Optional
2929

3030
import datasets
3131
import numpy as np
32-
import torch
3332
import transformers
3433
from datasets import load_dataset
34+
from onnxruntime.quantization import QuantFormat, QuantizationMode, QuantType
3535
from transformers import AutoTokenizer, HfArgumentParser, TrainingArguments
3636
from transformers.tokenization_utils_base import PreTrainedTokenizerBase
37-
from transformers.trainer_utils import get_last_checkpoint
3837
from transformers.utils import check_min_version
3938

40-
from onnxruntime.quantization import QuantFormat, QuantizationMode, QuantType
4139
from optimum.onnxruntime import ORTModelForMultipleChoice, ORTQuantizer
4240
from optimum.onnxruntime.configuration import AutoCalibrationConfig, QuantizationConfig
4341
from optimum.onnxruntime.model import ORTModel

examples/onnxruntime/quantization/question-answering/run_qa.py

+5-7
Original file line numberDiff line numberDiff line change
@@ -30,13 +30,13 @@
3030
import datasets
3131
import transformers
3232
from datasets import load_dataset
33+
from evaluate import load
34+
from onnxruntime.quantization import QuantFormat, QuantizationMode, QuantType
3335
from transformers import AutoTokenizer, EvalPrediction, HfArgumentParser, PreTrainedTokenizer, TrainingArguments
34-
from transformers.onnx import FeaturesManager
3536
from transformers.utils import check_min_version
3637
from transformers.utils.versions import require_version
38+
from utils_qa import postprocess_qa_predictions
3739

38-
from evaluate import load
39-
from onnxruntime.quantization import QuantFormat, QuantizationMode, QuantType
4040
from optimum.onnxruntime import ORTQuantizer
4141
from optimum.onnxruntime.configuration import AutoCalibrationConfig, QuantizationConfig
4242
from optimum.onnxruntime.model import ORTModel
@@ -48,8 +48,6 @@
4848
ExcludeNodeAfter,
4949
ExcludeNodeFollowedBy,
5050
)
51-
from trainer_qa import QuestionAnsweringTrainer
52-
from utils_qa import postprocess_qa_predictions
5351

5452

5553
# Will error if the minimal version of Transformers is not installed. Remove at your own risks.
@@ -676,7 +674,7 @@ def compute_metrics(p: EvalPrediction):
676674
metrics = compute_metrics(predictions)
677675

678676
# Save metrics
679-
with open(os.path.join(training_args.output_dir, f"eval_results.json"), "w") as f:
677+
with open(os.path.join(training_args.output_dir, "eval_results.json"), "w") as f:
680678
json.dump(metrics, f, indent=4, sort_keys=True)
681679

682680
# Prediction
@@ -693,7 +691,7 @@ def compute_metrics(p: EvalPrediction):
693691
metrics = compute_metrics(predictions)
694692

695693
# Save metrics
696-
with open(os.path.join(training_args.output_dir, f"predict_results.json"), "w") as f:
694+
with open(os.path.join(training_args.output_dir, "predict_results.json"), "w") as f:
697695
json.dump(metrics, f, indent=4, sort_keys=True)
698696

699697

examples/onnxruntime/quantization/text-classification/run_glue.py

+6-8
Original file line numberDiff line numberDiff line change
@@ -30,20 +30,18 @@
3030
import numpy as np
3131
import transformers
3232
from datasets import load_dataset
33+
from evaluate import load
34+
from onnxruntime.quantization import QuantFormat, QuantizationMode, QuantType
3335
from transformers import (
34-
AutoConfig,
3536
AutoTokenizer,
3637
EvalPrediction,
3738
HfArgumentParser,
3839
PreTrainedTokenizer,
3940
TrainingArguments,
4041
)
41-
from transformers.onnx import FeaturesManager
4242
from transformers.utils import check_min_version
4343
from transformers.utils.versions import require_version
4444

45-
from evaluate import load
46-
from onnxruntime.quantization import QuantFormat, QuantizationMode, QuantType
4745
from optimum.onnxruntime import ORTQuantizer
4846
from optimum.onnxruntime.configuration import AutoCalibrationConfig, QuantizationConfig
4947
from optimum.onnxruntime.model import ORTModel
@@ -498,9 +496,9 @@ def compute_metrics(p: EvalPrediction):
498496

499497
try:
500498
eval_dataset = eval_dataset.align_labels_with_mapping(label2id=model.config.label2id, label_column="label")
501-
except Exception as e:
499+
except Exception:
502500
logger.warning(
503-
f"\nModel label mapping: {onnx_model.config.label2id}"
501+
f"\nModel label mapping: {model.config.label2id}"
504502
f"\nDataset label features: {eval_dataset.features['label']}"
505503
f"\nCould not guarantee the model label mapping and the dataset labels match."
506504
f" Evaluation results may suffer from a wrong matching."
@@ -514,7 +512,7 @@ def compute_metrics(p: EvalPrediction):
514512
)
515513
outputs = ort_model.evaluation_loop(eval_dataset)
516514
# Save metrics
517-
with open(os.path.join(training_args.output_dir, f"eval_results.json"), "w") as f:
515+
with open(os.path.join(training_args.output_dir, "eval_results.json"), "w") as f:
518516
json.dump(outputs.metrics, f, indent=4, sort_keys=True)
519517

520518
# Prediction
@@ -536,7 +534,7 @@ def compute_metrics(p: EvalPrediction):
536534
predictions = np.squeeze(outputs.predictions) if is_regression else np.argmax(outputs.predictions, axis=1)
537535

538536
# Save predictions
539-
output_predictions_file = os.path.join(training_args.output_dir, f"prediction.txt")
537+
output_predictions_file = os.path.join(training_args.output_dir, "prediction.txt")
540538
with open(output_predictions_file, "w") as writer:
541539
logger.info(f"***** Predict results {data_args.task_name} *****")
542540
writer.write("index\tprediction\n")

0 commit comments

Comments
 (0)