Skip to content

Commit ef90dc0

Browse files
committed
Remove accelerate dependency
1 parent 1a821b6 commit ef90dc0

File tree

5 files changed

+43
-23
lines changed

5 files changed

+43
-23
lines changed

optimum/intel/__init__.py

+23-13
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515
import importlib.util
1616
from typing import TYPE_CHECKING
1717

18-
from transformers.utils import OptionalDependencyNotAvailable, _LazyModule
18+
from transformers.utils import OptionalDependencyNotAvailable, _LazyModule, is_accelerate_available
1919

2020
from .utils import (
2121
is_diffusers_available,
@@ -57,13 +57,19 @@
5757
if not (is_openvino_available() and is_nncf_available()):
5858
raise OptionalDependencyNotAvailable()
5959
except OptionalDependencyNotAvailable:
60-
_import_structure["utils.dummy_openvino_and_nncf_objects"] = [
61-
"OVQuantizer",
62-
"OVTrainer",
63-
"OVTrainingArguments",
64-
]
60+
_import_structure["utils.dummy_openvino_and_nncf_objects"] = ["OVQuantizer", "OVTrainingArguments"]
61+
else:
62+
_import_structure["openvino"].extend(["OVQuantizer", "OVTrainingArguments"])
63+
64+
65+
try:
66+
if not (is_openvino_available() and is_nncf_available() and is_accelerate_available()):
67+
raise OptionalDependencyNotAvailable()
68+
except OptionalDependencyNotAvailable:
69+
_import_structure["utils.dummy_openvino_and_nncf_objects"] = ["OVTrainer"]
6570
else:
66-
_import_structure["openvino"].extend(["OVQuantizer", "OVTrainer", "OVTrainingArguments"])
71+
_import_structure["openvino"].extend(["OVTrainer"])
72+
6773

6874
try:
6975
if not (is_openvino_available() and is_diffusers_available()):
@@ -177,13 +183,17 @@
177183
if not (is_openvino_available() and is_nncf_available()):
178184
raise OptionalDependencyNotAvailable()
179185
except OptionalDependencyNotAvailable:
180-
from .utils.dummy_openvino_and_nncf_objects import (
181-
OVQuantizer,
182-
OVTrainer,
183-
OVTrainingArguments,
184-
)
186+
from .utils.dummy_openvino_and_nncf_objects import OVQuantizer, OVTrainingArguments
187+
else:
188+
from .openvino import OVQuantizer, OVTrainingArguments
189+
190+
try:
191+
if not (is_openvino_available() and is_nncf_available() and is_accelerate_available()):
192+
raise OptionalDependencyNotAvailable()
193+
except OptionalDependencyNotAvailable:
194+
from .utils.dummy_openvino_and_nncf_objects import OVTrainer
185195
else:
186-
from .openvino import OVQuantizer, OVTrainer, OVTrainingArguments
196+
from .openvino import OVTrainer
187197

188198
try:
189199
if not (is_openvino_available() and is_diffusers_available()):

optimum/intel/openvino/__init__.py

+5-1
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,8 @@
1414

1515
import logging
1616

17+
from transformers.utils import is_accelerate_available
18+
1719
from ..utils.import_utils import is_diffusers_available, is_nncf_available
1820
from .utils import (
1921
OV_DECODER_NAME,
@@ -37,9 +39,11 @@
3739
patch_torch_operators()
3840

3941
from .quantization import OVQuantizer
40-
from .trainer import OVTrainer
4142
from .training_args import OVTrainingArguments
4243

44+
if is_accelerate_available():
45+
from .trainer import OVTrainer
46+
4347

4448
from .configuration import OVConfig, OVWeightQuantizationConfig
4549
from .modeling import (

optimum/intel/openvino/quantization.py

+10-4
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@
1717
import logging
1818
import os
1919
from pathlib import Path
20-
from typing import TYPE_CHECKING, Any, Callable, Dict, Optional, Tuple, Union
20+
from typing import Any, Callable, Dict, Optional, Tuple, Union
2121

2222
import nncf
2323
import openvino
@@ -56,8 +56,7 @@
5656

5757

5858
if is_datasets_available():
59-
if TYPE_CHECKING:
60-
from datasets import Dataset
59+
from datasets import Dataset
6160

6261
register_module(ignored_algorithms=[])(Conv1D)
6362

@@ -147,6 +146,7 @@ def __init__(self, model: transformers.PreTrainedModel, task: Optional[str] = No
147146
)
148147
self.task = task or feature
149148
self.seed = seed
149+
# TODO : deprecate input_names
150150
self.input_names = None
151151
signature = inspect.signature(self.model.forward)
152152
self._signature_columns = list(signature.parameters.keys())
@@ -526,9 +526,15 @@ def _get_calibration_dataloader(
526526
data_collator: Optional[DataCollator] = None,
527527
) -> OVDataLoader:
528528
data_collator = data_collator if data_collator is not None else default_data_collator
529+
530+
if not is_datasets_available() or not isinstance(calibration_dataset, Dataset):
531+
logger.warning(
532+
"`remove_unused_columns` set to `False` as calibration_dataset is not an instance of `datasets.Dataset`"
533+
)
534+
remove_unused_columns = False
535+
529536
if remove_unused_columns:
530537
calibration_dataset = self._remove_unused_columns(calibration_dataset)
531-
self.input_names = calibration_dataset.column_names
532538
generator = torch.Generator()
533539
generator.manual_seed(self.seed)
534540
sampler = RandomSampler(calibration_dataset, generator=generator)

optimum/intel/utils/dummy_openvino_and_nncf_objects.py

+3-3
Original file line numberDiff line numberDiff line change
@@ -27,14 +27,14 @@ def from_pretrained(cls, *args, **kwargs):
2727

2828

2929
class OVTrainer(metaclass=DummyObject):
30-
_backends = ["openvino", "nncf"]
30+
_backends = ["openvino", "nncf", "accelerate"]
3131

3232
def __init__(self, *args, **kwargs):
33-
requires_backends(self, ["openvino", "nncf"])
33+
requires_backends(self, ["openvino", "nncf", "accelerate"])
3434

3535
@classmethod
3636
def from_pretrained(cls, *args, **kwargs):
37-
requires_backends(cls, ["openvino", "nncf"])
37+
requires_backends(cls, ["openvino", "nncf", "accelerate"])
3838

3939

4040
class OVQuantizer(metaclass=DummyObject):

setup.py

+2-2
Original file line numberDiff line numberDiff line change
@@ -18,10 +18,10 @@
1818
"datasets>=1.4.0",
1919
"sentencepiece",
2020
"scipy",
21-
"accelerate", # transformers 4.29 require accelerate for PyTorch
2221
]
2322

2423
TESTS_REQUIRE = [
24+
"accelerate",
2525
"pytest",
2626
"parameterized",
2727
"Pillow",
@@ -40,7 +40,7 @@
4040

4141
EXTRAS_REQUIRE = {
4242
"neural-compressor": ["neural-compressor>=2.2.0", "onnx", "onnxruntime<1.15.0"],
43-
"openvino": ["openvino>=2023.3", "onnx", "onnxruntime", "nncf>=2.8.1"],
43+
"openvino": ["openvino>=2023.3", "onnx", "nncf>=2.8.1"],
4444
"openvino-tokenizers": ["openvino-tokenizers[transformers]"],
4545
"nncf": ["nncf>=2.8.1"],
4646
"ipex": ["intel-extension-for-pytorch", "onnx"],

0 commit comments

Comments
 (0)