From 88c60f114a30154cc8dafc367e2f4d6998678d22 Mon Sep 17 00:00:00 2001 From: wenmeng zhou Date: Wed, 15 May 2024 20:44:17 +0800 Subject: [PATCH] remove necessary dependency of transformer (#857) * remove necessary dependency of transformer * fix import error * fix typo --- modelscope/__init__.py | 39 ++++++++++++++++++++++----------- modelscope/metrics/__init__.py | 4 +++- modelscope/trainers/__init__.py | 2 +- 3 files changed, 30 insertions(+), 15 deletions(-) diff --git a/modelscope/__init__.py b/modelscope/__init__.py index 1eea0ae1..01630ab5 100644 --- a/modelscope/__init__.py +++ b/modelscope/__init__.py @@ -1,7 +1,8 @@ # Copyright (c) Alibaba, Inc. and its affiliates. from typing import TYPE_CHECKING -from modelscope.utils.import_utils import LazyImportModule +from modelscope.utils.import_utils import (LazyImportModule, + is_transformers_available) from .utils.automodel_utils import fix_transformers_upgrade if TYPE_CHECKING: @@ -29,13 +30,18 @@ if TYPE_CHECKING: from .trainers import (EpochBasedTrainer, Hook, Priority, TrainingArgs, build_dataset_from_file) from .utils.constant import Tasks - from .utils.hf_util import AutoConfig, GPTQConfig, AwqConfig, BitsAndBytesConfig - from .utils.hf_util import (AutoModel, AutoModelForCausalLM, - AutoModelForSeq2SeqLM, - AutoModelForSequenceClassification, - AutoModelForTokenClassification, AutoTokenizer, - GenerationConfig, AutoImageProcessor, - BatchFeature) + if is_transformers_available(): + from .utils.hf_util import AutoConfig, GPTQConfig, AwqConfig, BitsAndBytesConfig + from .utils.hf_util import (AutoModel, AutoModelForCausalLM, + AutoModelForSeq2SeqLM, + AutoModelForSequenceClassification, + AutoModelForTokenClassification, + AutoTokenizer, GenerationConfig, + AutoImageProcessor, BatchFeature) + else: + print( + 'transformer is not installed, please install it if you want to use related modules' + ) from .utils.hub import create_model_if_not_exist, read_config from .utils.logger import get_logger from .version import __release_datetime__, __version__ @@ -78,16 +84,22 @@ else: 'utils.hub': ['read_config', 'create_model_if_not_exist'], 'utils.logger': ['get_logger'], 'utils.constant': ['Tasks'], - 'utils.hf_util': [ + 'msdatasets': ['MsDataset'] + } + + if is_transformers_available(): + _import_structure['utils.hf_util'] = [ 'AutoConfig', 'GenerationConfig', 'AutoModel', 'GPTQConfig', 'AwqConfig', 'BitsAndBytesConfig', 'AutoModelForCausalLM', 'AutoModelForSeq2SeqLM', 'AutoTokenizer', 'AutoModelForSequenceClassification', 'AutoModelForTokenClassification', 'AutoImageProcessor', 'BatchFeature' - ], - 'msdatasets': ['MsDataset'] - } + ] + else: + print( + 'transformer is not installed, please install it if you want to use related modules' + ) import sys @@ -99,4 +111,5 @@ else: extra_objects={}, ) -fix_transformers_upgrade() +if is_transformers_available(): + fix_transformers_upgrade() diff --git a/modelscope/metrics/__init__.py b/modelscope/metrics/__init__.py index 75ccfcf9..e95a22fe 100644 --- a/modelscope/metrics/__init__.py +++ b/modelscope/metrics/__init__.py @@ -69,7 +69,9 @@ else: 'loss_metric': ['LossMetric'], 'image_colorization_metric': ['ImageColorizationMetric'], 'ocr_recognition_metric': ['OCRRecognitionMetric'], - 'translation_evaluation_metric': ['TranslationEvaluationMetric'] + 'translation_evaluation_metric': ['TranslationEvaluationMetric'], + 'video_super_resolution_metric.video_super_resolution_metric': + ['VideoSuperResolutionMetric'], } import sys diff --git a/modelscope/trainers/__init__.py b/modelscope/trainers/__init__.py index 0d20fe00..1feeb699 100644 --- a/modelscope/trainers/__init__.py +++ b/modelscope/trainers/__init__.py @@ -36,7 +36,7 @@ else: 'nlp_trainer': ['NlpEpochBasedTrainer', 'VecoTrainer'], 'trainer': ['EpochBasedTrainer'], 'training_args': ['TrainingArgs', 'build_dataset_from_file'], - 'hooks': ['Hook'] + 'hooks': ['Hook', 'Priority'] } import sys