optimum/neuron/__init__.py (128 lines of code) (raw):

# coding=utf-8 # Copyright 2023 The HuggingFace Team. All rights reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. import os from typing import TYPE_CHECKING from .utils.training_utils import patch_transformers_for_neuron_sdk if not os.environ.get("DISABLE_TRANSFORMERS_PATCHING", False): patch_transformers_for_neuron_sdk() from transformers.utils import _LazyModule _import_structure = { "hf_argparser": ["NeuronHfArgumentParser"], "trainers": ["NeuronTrainer", "Seq2SeqNeuronTrainer", "NeuronSFTTrainer", "NeuronORPOTrainer"], "training_args": ["NeuronTrainingArguments", "Seq2SeqNeuronTrainingArguments"], "modeling_traced": ["NeuronTracedModel"], "modeling": [ "NeuronModelForFeatureExtraction", "NeuronModelForSentenceTransformers", "NeuronModelForMaskedLM", "NeuronModelForQuestionAnswering", "NeuronModelForSequenceClassification", "NeuronModelForTokenClassification", "NeuronModelForMultipleChoice", "NeuronModelForImageClassification", "NeuronModelForSemanticSegmentation", "NeuronModelForObjectDetection", "NeuronModelForCTC", "NeuronModelForAudioClassification", "NeuronModelForAudioFrameClassification", "NeuronModelForXVector", ], "modeling_diffusion": [ "NeuronDiffusionPipelineBase", "NeuronStableDiffusionPipeline", "NeuronStableDiffusionImg2ImgPipeline", "NeuronStableDiffusionInpaintPipeline", "NeuronStableDiffusionInstructPix2PixPipeline", "NeuronLatentConsistencyModelPipeline", "NeuronStableDiffusionXLPipeline", "NeuronStableDiffusionXLImg2ImgPipeline", "NeuronStableDiffusionXLInpaintPipeline", "NeuronStableDiffusionControlNetPipeline", "NeuronStableDiffusionXLControlNetPipeline", "NeuronPixArtAlphaPipeline", "NeuronPixArtSigmaPipeline", ], "modeling_decoder": ["NeuronModelForCausalLM"], "modeling_seq2seq": [ "NeuronModelForSeq2SeqLM", ], "models": [], "accelerate": [ "NeuronAccelerator", "NeuronAcceleratorState", "NeuronPartialState", ], "pipelines": ["pipeline"], "utils": ["NeuronSFTConfig", "NeuronORPOConfig"], } # Model structures _import_structure["models.bert"] = [ "NeuronBertModel", "NeuronBertForMaskedLM", "NeuronBertForQuestionAnswering", "NeuronBertForSequenceClassification", "NeuronBertForTokenClassification", "NeuronBertForMultipleChoice", ] _import_structure["models.clip"] = ["NeuronCLIPModel", "NeuronCLIPForImageClassification"] _import_structure["models.whisper"] = ["NeuronWhisperForConditionalGeneration"] _import_structure["models.yolos"] = ["NeuronYolosForObjectDetection"] if TYPE_CHECKING: from .accelerate import NeuronAccelerator, NeuronAcceleratorState, NeuronPartialState from .hf_argparser import NeuronHfArgumentParser from .modeling import ( NeuronModelForAudioClassification, NeuronModelForAudioFrameClassification, NeuronModelForCTC, NeuronModelForFeatureExtraction, NeuronModelForImageClassification, NeuronModelForMaskedLM, NeuronModelForMultipleChoice, NeuronModelForObjectDetection, NeuronModelForQuestionAnswering, NeuronModelForSemanticSegmentation, NeuronModelForSentenceTransformers, NeuronModelForSequenceClassification, NeuronModelForTokenClassification, NeuronModelForXVector, ) from .modeling_decoder import NeuronModelForCausalLM from .modeling_diffusion import ( NeuronDiffusionPipelineBase, NeuronLatentConsistencyModelPipeline, NeuronPixArtAlphaPipeline, NeuronPixArtSigmaPipeline, NeuronStableDiffusionControlNetPipeline, NeuronStableDiffusionImg2ImgPipeline, NeuronStableDiffusionInpaintPipeline, NeuronStableDiffusionInstructPix2PixPipeline, NeuronStableDiffusionPipeline, NeuronStableDiffusionXLControlNetPipeline, NeuronStableDiffusionXLImg2ImgPipeline, NeuronStableDiffusionXLInpaintPipeline, NeuronStableDiffusionXLPipeline, ) from .modeling_seq2seq import NeuronModelForSeq2SeqLM from .modeling_traced import NeuronTracedModel # Modeling from .models.bert import ( NeuronBertForMaskedLM, NeuronBertForMultipleChoice, NeuronBertForQuestionAnswering, NeuronBertForSequenceClassification, NeuronBertForTokenClassification, NeuronBertModel, ) from .models.clip import NeuronCLIPForImageClassification, NeuronCLIPModel from .models.whisper import NeuronWhisperForConditionalGeneration from .models.yolos import NeuronYolosForObjectDetection from .pipelines import pipeline from .trainers import NeuronORPOTrainer, NeuronSFTTrainer, NeuronTrainer, Seq2SeqNeuronTrainer from .training_args import NeuronTrainingArguments, Seq2SeqNeuronTrainingArguments from .utils import NeuronORPOConfig, NeuronSFTConfig else: import sys sys.modules[__name__] = _LazyModule( __name__, globals()["__file__"], _import_structure, module_spec=__spec__, ) from .utils import is_neuron_available, is_neuronx_available, patch_transformers_for_neuron_sdk from .version import __version__