|
23 | 23 | from transformers.utils import is_tf_available, is_torch_available
|
24 | 24 |
|
25 | 25 | from openvino.runtime import PartialShape, save_model
|
| 26 | +from openvino.runtime.exceptions import OVTypeError |
26 | 27 | from openvino.runtime.utils.types import get_element_type
|
27 | 28 | from openvino.tools.ovc import convert_model
|
28 | 29 | from optimum.exporters.onnx.base import OnnxConfig
|
@@ -489,47 +490,45 @@ def export_models(
|
489 | 490 | return outputs
|
490 | 491 |
|
491 | 492 |
|
492 |
| -OV_TOKENIZER_FILE_NAME = "openvino_tokenizer{}.xml" |
493 |
| -OV_DETOKENIZER_FILE_NAME = "openvino_detokenizer{}.xml" |
494 |
| -UNSUPPORTED_TOKENZIER_CLASSES = ( |
| 493 | +UNSUPPORTED_TOKENIZER_CLASSES = ( |
495 | 494 | T5Tokenizer,
|
496 | 495 | T5TokenizerFast,
|
497 | 496 | )
|
498 | 497 |
|
499 | 498 |
|
500 | 499 | def export_tokenizer(
|
501 | 500 | tokenizer,
|
502 |
| - output_path: Union[str, Path], |
| 501 | + output: Union[str, Path], |
503 | 502 | suffix: Optional[str] = "",
|
504 | 503 | ):
|
505 |
| - from openvino.runtime.exceptions import OVTypeError |
| 504 | + from optimum.intel.openvino import OV_DETOKENIZER_NAME, OV_TOKENIZER_NAME # avoid circular imports |
506 | 505 |
|
507 |
| - if isinstance(tokenizer, UNSUPPORTED_TOKENZIER_CLASSES): |
508 |
| - logger.info("OpenVINO Tokenizer for this model is not supported.") |
| 506 | + if isinstance(tokenizer, UNSUPPORTED_TOKENIZER_CLASSES): |
| 507 | + logger.info(f"OpenVINO Tokenizer export for {type(tokenizer).__name__} is not supported.") |
509 | 508 | return
|
510 | 509 |
|
511 | 510 | try:
|
512 | 511 | from openvino_tokenizers import convert_tokenizer
|
513 | 512 | except ModuleNotFoundError:
|
514 | 513 | logger.info("Run `pip install openvino-tokenizers` to get OpenVINO tokenizer/detokenizer models.")
|
515 | 514 |
|
516 |
| - if not isinstance(output_path, Path): |
517 |
| - output_path = Path(output_path) |
| 515 | + if not isinstance(output, Path): |
| 516 | + output = Path(output) |
518 | 517 |
|
519 | 518 | try:
|
520 | 519 | converted = convert_tokenizer(tokenizer, with_detokenizer=True)
|
521 | 520 | except NotImplementedError:
|
522 |
| - logger.info("Detokenizer is not supported, convert tokenizer only.") |
| 521 | + logger.warning("Detokenizer is not supported, convert tokenizer only.") |
523 | 522 | converted = convert_tokenizer(tokenizer, with_detokenizer=False)
|
524 | 523 | except OVTypeError:
|
525 |
| - logger.info("OpenVINO Tokenizer for this model is not supported.") |
| 524 | + logger.warning(f"OpenVINO Tokenizer for {type(tokenizer).__name__} is not supported.") |
526 | 525 | return
|
527 | 526 | except Exception as exception:
|
528 |
| - logger.warning(f"OpenVINO Tokenizer for this model is not supported. Exception: {exception}") |
| 527 | + logger.warning(f"OpenVINO Tokenizer {type(tokenizer).__name__} is not supported. Exception: {exception}") |
529 | 528 | return
|
530 | 529 |
|
531 | 530 | if not isinstance(converted, tuple):
|
532 | 531 | converted = (converted,)
|
533 | 532 |
|
534 |
| - for model, file_name in zip(converted, (OV_TOKENIZER_FILE_NAME, OV_DETOKENIZER_FILE_NAME)): |
535 |
| - save_model(model, output_path / file_name.format(suffix)) |
| 533 | + for model, file_name in zip(converted, (OV_TOKENIZER_NAME, OV_DETOKENIZER_NAME)): |
| 534 | + save_model(model, output / file_name.format(suffix)) |
0 commit comments