Skip to content

Commit 04db016

Browse files
authored
Add support transformers v4.54 v4.55 (#1406)
* Add support transformers v4.54 v4.55 * fix big code * fix gpt bigcode * style * fix sdpa ernie4_5 * fix mpt * style * fix persimmon * fix VLMs * decilm * internlm2 * fix gpt2 * fix stateful seq2seq * add decilm * fix speecht5 * fix whisper * bigcode * update setup * trigger test * fix smolvlm * fix vision-encoder-decoder * fix llama4 * style * add tests transformers version * update tiny qwen2_5 model * revert gpt oss * add max transformers version * remove tests for incompatible models * fix deepseek v3 * fixe sdpa grouped query attention for llama4 * upgrade ernie min transformers version * remove ernie4_5 export * fix llava tests triggered only when supported * update min version * update min transformers version for deepseek v3 * fix expected sdpa num for tests * fix transformers version tests * style * fix transformers version tests * upgrade diffusers version * update diffusers version * fix workflow diffusers version * remove sdpa patch for llama4 * add fix transformers version tests * add fix transformers version tests * set expected int8 for transformers v4.45 * remove config * add missing max transformers version * filter supported model type in tests * style * filter supported model type in quantization tests * update test name to models * fix quant op * style * add test * update workflows * style * upgrade diffusers version for v4.45 * add fixes from optimum and optimum-onnx * update num sdpa test * move model patcher * fix bigcode * add fix sam patcher * fix beam search * remove deepseekv3 new config
1 parent 7f76b5d commit 04db016

File tree

16 files changed

+970
-582
lines changed

16 files changed

+970
-582
lines changed

.github/workflows/test_openvino.yml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ jobs:
3737
"*diffusion*",
3838
"*quantization*",
3939
]
40-
transformers-version: ["4.36.0", "latest"]
40+
transformers-version: ["4.45.0", "latest"]
4141

4242
runs-on: ubuntu-22.04
4343

@@ -58,7 +58,7 @@ jobs:
5858
- if: ${{ matrix.transformers-version != 'latest' }}
5959
name: Install specific dependencies and versions required for older transformers
6060
run: |
61-
uv pip install transformers==${{ matrix.transformers-version }} accelerate==0.* peft==0.13.* diffusers==0.30.* transformers_stream_generator
61+
uv pip install transformers==${{ matrix.transformers-version }} accelerate==0.* peft==0.13.* diffusers==0.32.* transformers_stream_generator
6262
6363
- if: ${{ matrix.transformers-version == 'latest' && matrix.test-pattern == '*decoder*'}}
6464
name: Install auto-gptq, autoawq
@@ -77,4 +77,4 @@ jobs:
7777
- if: ${{ matrix.test-pattern == '*modeling*' }}
7878
name: Test with Pytest - Nightly OpenVINO
7979
run: |
80-
pytest tests/openvino/test_modeling_basic.py --durations=0
80+
pytest tests/openvino/test_modeling_basic.py --durations=0

.github/workflows/test_openvino_slow.yml

Lines changed: 3 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -33,12 +33,8 @@ jobs:
3333
fail-fast: false
3434
matrix:
3535
os: ["ubuntu-22.04", "windows-2022"]
36-
transformers-version: ["4.36.0", "latest"]
36+
transformers-version: ["4.45.0", "latest"]
3737
include:
38-
- transformers-version: "4.40.0"
39-
os: "ubuntu-22.04"
40-
- transformers-version: "4.45.0"
41-
os: "ubuntu-22.04"
4238
- transformers-version: "main"
4339
os: "ubuntu-22.04"
4440

@@ -65,7 +61,7 @@ jobs:
6561
- if: ${{ matrix.transformers-version != 'latest' && matrix.transformers-version != 'main' }}
6662
name: Install specific dependencies and versions required for older transformers
6763
run: |
68-
uv pip install transformers==${{ matrix.transformers-version }} accelerate==0.* peft==0.13.* diffusers==0.30.* transformers_stream_generator
64+
uv pip install transformers==${{ matrix.transformers-version }} accelerate==0.* peft==0.13.* diffusers==0.32.* transformers_stream_generator
6965
7066
- if: ${{ matrix.transformers-version == 'main' }}
7167
name: Install transformers from repository
@@ -86,4 +82,4 @@ jobs:
8682
8783
- name: Test with Pytest (slow)
8884
run: |
89-
pytest tests/openvino -m "run_slow" --durations=0
85+
pytest tests/openvino -m "run_slow" --durations=0

optimum/exporters/openvino/convert.py

Lines changed: 27 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@
2121
from pathlib import Path
2222
from typing import TYPE_CHECKING, Any, Callable, Dict, List, Optional, Tuple, Union
2323

24+
from packaging.version import Version
2425
from transformers.generation import GenerationMixin
2526
from transformers.models.speecht5.modeling_speecht5 import SpeechT5HifiGan
2627
from transformers.utils import is_tf_available, is_torch_available
@@ -187,6 +188,27 @@ def export(
187188
if "diffusers" in str(model.__class__) and not is_diffusers_available():
188189
raise ImportError("The package `diffusers` is required to export diffusion models to OpenVINO.")
189190

191+
min_version = getattr(config, "MIN_TRANSFORMERS_VERSION", None)
192+
max_version = getattr(config, "MAX_TRANSFORMERS_VERSION", None)
193+
194+
if min_version is not None:
195+
if isinstance(min_version, Version):
196+
min_version = min_version.base_version
197+
if is_transformers_version("<", min_version):
198+
raise ValueError(
199+
f"The current version of Transformers does not allow for the export of the model. Minimum required is "
200+
f"{config.MIN_TRANSFORMERS_VERSION}, got: {_transformers_version}"
201+
)
202+
203+
if max_version is not None:
204+
if isinstance(max_version, Version):
205+
max_version = max_version.base_version
206+
if is_transformers_version(">=", max_version):
207+
raise ValueError(
208+
f"The current version of Transformers does not allow for the export of the model. Maximum required is "
209+
f"{config.MAX_TRANSFORMERS_VERSION}, got: {_transformers_version}"
210+
)
211+
190212
if stateful:
191213
# This will be checked anyway after the model conversion, but checking it earlier will save time for a user if not suitable version is used
192214
stateful = ensure_stateful_is_available()
@@ -633,7 +655,11 @@ def export_from_model(
633655
ensure_export_task_support_stateful(task) or ensure_model_type_support_stateful(model_type)
634656
)
635657

636-
if stateful and is_encoder_decoder and not getattr(model, "_supports_cache_class", False):
658+
if (
659+
stateful
660+
and is_encoder_decoder
661+
and not getattr(model, "_supports_cache_class", is_transformers_version(">=", "4.54"))
662+
):
637663
stateful = False
638664
# TODO: support onnx_config.py in the model repo
639665
if custom_architecture and custom_export_configs is None:

0 commit comments

Comments
 (0)