| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148 |
- # Copyright (c) Alibaba, Inc. and its affiliates.
- import importlib
- from typing import TYPE_CHECKING
- from modelscope.utils.import_utils import (LazyImportModule,
- is_transformers_available)
- if TYPE_CHECKING:
- from .exporters import Exporter, TfModelExporter, TorchModelExporter
- from .hub.api import HubApi
- from .hub.check_model import check_local_model_is_latest, check_model_is_id
- from .hub.push_to_hub import push_to_hub, push_to_hub_async
- from .hub.snapshot_download import snapshot_download, dataset_snapshot_download
- from .hub.file_download import model_file_download, dataset_file_download
- from .metrics import (
- AccuracyMetric, AudioNoiseMetric, BleuMetric, ImageColorEnhanceMetric,
- ImageColorizationMetric, ImageDenoiseMetric, ImageInpaintingMetric,
- ImageInstanceSegmentationCOCOMetric, ImagePortraitEnhancementMetric,
- ImageQualityAssessmentDegradationMetric,
- ImageQualityAssessmentMosMetric, LossMetric, Metric,
- MovieSceneSegmentationMetric, OCRRecognitionMetric, PplMetric,
- ReferringVideoObjectSegmentationMetric, SequenceClassificationMetric,
- TextGenerationMetric, TextRankingMetric, TokenClassificationMetric,
- VideoFrameInterpolationMetric, VideoStabilizationMetric,
- VideoSummarizationMetric, VideoSuperResolutionMetric,
- task_default_metrics)
- from .models import Model, TorchModel
- from .msdatasets import MsDataset
- from .pipelines import Pipeline, pipeline
- from .preprocessors import Preprocessor
- from .trainers import (EpochBasedTrainer, Hook, Priority, TrainingArgs,
- build_dataset_from_file)
- from .utils.constant import Tasks
- from .utils.hf_util import patch_hub, patch_context, unpatch_hub
- if is_transformers_available():
- from .utils.hf_util import (
- AutoModel, AutoProcessor, AutoFeatureExtractor, GenerationConfig,
- AutoConfig, GPTQConfig, AwqConfig, BitsAndBytesConfig,
- AutoModelForCausalLM, AutoModelForSeq2SeqLM,
- AutoModelForVision2Seq, AutoModelForSequenceClassification,
- AutoModelForTokenClassification, AutoModelForImageClassification,
- AutoModelForImageTextToText,
- AutoModelForZeroShotImageClassification,
- AutoModelForKeypointDetection,
- AutoModelForDocumentQuestionAnswering,
- AutoModelForSemanticSegmentation,
- AutoModelForUniversalSegmentation,
- AutoModelForInstanceSegmentation, AutoModelForObjectDetection,
- AutoModelForZeroShotObjectDetection,
- AutoModelForAudioClassification, AutoModelForSpeechSeq2Seq,
- AutoModelForMaskedImageModeling,
- AutoModelForVisualQuestionAnswering,
- AutoModelForTableQuestionAnswering, AutoModelForImageToImage,
- AutoModelForImageSegmentation, AutoModelForQuestionAnswering,
- AutoModelForMaskedLM, AutoTokenizer, AutoModelForMaskGeneration,
- AutoModelForPreTraining, AutoModelForTextEncoding,
- AutoImageProcessor, BatchFeature, Qwen2VLForConditionalGeneration,
- T5EncoderModel, Qwen2_5_VLForConditionalGeneration, LlamaModel,
- LlamaPreTrainedModel, LlamaForCausalLM, hf_pipeline)
- 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__
- else:
- _import_structure = {
- 'version': ['__release_datetime__', '__version__'],
- 'trainers': [
- 'EpochBasedTrainer', 'TrainingArgs', 'Hook', 'Priority',
- 'build_dataset_from_file'
- ],
- 'exporters': [
- 'Exporter',
- 'TfModelExporter',
- 'TorchModelExporter',
- ],
- 'hub.api': ['HubApi'],
- 'hub.snapshot_download':
- ['snapshot_download', 'dataset_snapshot_download'],
- 'hub.file_download': ['model_file_download', 'dataset_file_download'],
- 'hub.push_to_hub': ['push_to_hub', 'push_to_hub_async'],
- 'hub.check_model':
- ['check_model_is_id', 'check_local_model_is_latest'],
- 'metrics': [
- 'AudioNoiseMetric', 'Metric', 'task_default_metrics',
- 'ImageColorEnhanceMetric', 'ImageDenoiseMetric',
- 'ImageInstanceSegmentationCOCOMetric',
- 'ImagePortraitEnhancementMetric', 'SequenceClassificationMetric',
- 'TextGenerationMetric', 'TokenClassificationMetric',
- 'VideoSummarizationMetric', 'MovieSceneSegmentationMetric',
- 'AccuracyMetric', 'BleuMetric', 'ImageInpaintingMetric',
- 'ReferringVideoObjectSegmentationMetric',
- 'VideoFrameInterpolationMetric', 'VideoStabilizationMetric',
- 'VideoSuperResolutionMetric', 'PplMetric',
- 'ImageQualityAssessmentDegradationMetric',
- 'ImageQualityAssessmentMosMetric', 'TextRankingMetric',
- 'LossMetric', 'ImageColorizationMetric', 'OCRRecognitionMetric'
- ],
- 'models': ['Model', 'TorchModel'],
- 'preprocessors': ['Preprocessor'],
- 'pipelines': ['Pipeline', 'pipeline'],
- 'utils.hub': ['read_config', 'create_model_if_not_exist'],
- 'utils.logger': ['get_logger'],
- 'utils.constant': ['Tasks'],
- 'msdatasets': ['MsDataset']
- }
- from modelscope.utils import hf_util
- from modelscope.utils.hf_util.patcher import _patch_pretrained_class
- extra_objects = {}
- attributes = dir(hf_util)
- imports = [attr for attr in attributes if not attr.startswith('__')]
- for _import in imports:
- extra_objects[_import] = getattr(hf_util, _import)
- def try_import_from_hf(name):
- hf_pkgs = ['transformers', 'peft', 'diffusers']
- module = None
- for pkg in hf_pkgs:
- try:
- module = getattr(importlib.import_module(pkg), name)
- break
- except Exception: # noqa
- pass
- if module is not None:
- module = _patch_pretrained_class([module], wrap=True)
- else:
- raise AttributeError(
- f'Cannot import available module of {name} in modelscope,'
- f' or related packages({hf_pkgs})')
- return module[0]
- import sys
- sys.modules[__name__] = LazyImportModule(
- __name__,
- globals()['__file__'],
- _import_structure,
- module_spec=__spec__,
- extra_objects=extra_objects,
- extra_import_func=try_import_from_hf,
- )
|