Skip to content
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.

Commit 57782d1

Browse files
committedJan 18, 2024
Skip Tokenizers Tests If No Package Installed
Check logs from tokneizers test
1 parent 2cf460d commit 57782d1

File tree

2 files changed

+25
-10
lines changed

2 files changed

+25
-10
lines changed
 

‎optimum/exporters/openvino/convert.py

+7-3
Original file line numberDiff line numberDiff line change
@@ -510,7 +510,9 @@ def export_tokenizer(
510510
try:
511511
from openvino_tokenizers import convert_tokenizer
512512
except ModuleNotFoundError:
513-
logger.info("Run `pip install openvino-tokenizers` to get OpenVINO tokenizer/detokenizer models.")
513+
logger.info(
514+
"Run `pip install openvino-tokenizers[transformers]` to get OpenVINO tokenizer/detokenizer models."
515+
)
514516

515517
if not isinstance(output, Path):
516518
output = Path(output)
@@ -521,10 +523,12 @@ def export_tokenizer(
521523
logger.warning("Detokenizer is not supported, convert tokenizer only.")
522524
converted = convert_tokenizer(tokenizer, with_detokenizer=False)
523525
except OVTypeError:
524-
logger.warning(f"OpenVINO Tokenizer for {type(tokenizer).__name__} is not supported.")
526+
logger.warning(f"OpenVINO Tokenizer export for {type(tokenizer).__name__} is not supported.")
525527
return
526528
except Exception as exception:
527-
logger.warning(f"OpenVINO Tokenizer {type(tokenizer).__name__} is not supported. Exception: {exception}")
529+
logger.warning(
530+
f"OpenVINO Tokenizer export for {type(tokenizer).__name__} is not supported. Exception: {exception}"
531+
)
528532
return
529533

530534
if not isinstance(converted, tuple):

‎tests/openvino/test_exporters_cli.py

+18-7
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,13 @@
4141
from optimum.intel.openvino.utils import _HEAD_TO_AUTOMODELS
4242

4343

44+
try:
45+
46+
OV_TOKENIZERS_NOT_AVAILABLE = False
47+
except Exception:
48+
OV_TOKENIZERS_NOT_AVAILABLE = True
49+
50+
4451
class OVCLIExportTestCase(unittest.TestCase):
4552
"""
4653
Integration tests ensuring supported models are correctly exported.
@@ -117,18 +124,22 @@ def test_exporters_cli(self, task: str, model_type: str):
117124
for arch in SUPPORTED_ARCHITECTURES
118125
if not arch[0].endswith("-with-past") and not arch[1].endswith("-refiner")
119126
)
127+
@unittest.skipIf(OV_TOKENIZERS_NOT_AVAILABLE, reason="OpenVINO Tokenizers not available")
120128
def test_exporters_cli_tokenizers(self, task: str, model_type: str):
121129
with TemporaryDirectory() as tmpdir:
122-
subprocess.run(
130+
output = subprocess.check_output(
123131
f"optimum-cli export openvino --model {MODEL_NAMES[model_type]} --task {task} {tmpdir}",
124132
shell=True,
125-
check=True,
126-
)
133+
stderr=subprocess.STDOUT,
134+
).decode()
127135
save_dir = Path(tmpdir)
128-
self.assertEqual(
129-
self.EXPECTED_NUMBER_OF_TOKENIZER_MODELS[model_type],
130-
sum("tokenizer" in file for file in map(str, save_dir.rglob("*.xml"))),
131-
)
136+
number_of_tokenizers = sum("tokenizer" in file for file in map(str, save_dir.rglob("*.xml")))
137+
self.assertEqual(self.EXPECTED_NUMBER_OF_TOKENIZER_MODELS[model_type], number_of_tokenizers)
138+
139+
if number_of_tokenizers == 1:
140+
self.assertFalse("Detokenizer is not supported, convert tokenizer only." in output)
141+
elif number_of_tokenizers == 0:
142+
self.assertFalse("OpenVINO Tokenizer export for" in output and "is not supported." in output)
132143

133144
@parameterized.expand(SUPPORTED_ARCHITECTURES)
134145
def test_exporters_cli_fp16(self, task: str, model_type: str):

0 commit comments

Comments
 (0)
Please sign in to comment.