



"""simple docstring"""


import argparse
import time

import torch
import transformers
from measures_util import end_measure, log_measures, start_measure
from transformers import AutoConfig, AutoModelForCausalLM, AutoModelForSeqaSeqLM, AutoTokenizer

from accelerate.utils import compute_module_sizes


snake_case_								=			{
    """gpt-j-6b""": {"""is_causal""": True, """model""": """sgugger/sharded-gpt-j-6B""", """tokenizer""": """EleutherAI/gpt-j-6B"""},
    """gpt-neox""": {"""is_causal""": True, """model""": """EleutherAI/gpt-neox-20b"""},
    """opt""": {"""is_causal""": True, """model""": """facebook/opt-30b"""},
    """T0pp""": {"""is_causal""": False, """model""": """bigscience/T0pp""", """model_revision""": """sharded"""},
}

snake_case_								=			[
    """Hello, my name is""",
    """Are unicorns real? Unicorns are""",
    """For the first time in several years,""",
    """My name is Julien and I am""",
    """The goal of life is""",
    """Whenever I'm sad, I like to""",
]

def 					_lowerCAmelCase (  ):
						UpperCAmelCase			 =					argparse.ArgumentParser(description='Run and time generations on a big model using Accelerate.'		)
						parser.add_argument('model_name'						,      type=lowercase_						,      default=lowercase_						,      help='The name of the model to try.'		)
						parser.add_argument(
						    '--tokenizer_name'						,      type=lowercase_						,      default=lowercase_						,      help='The name of the tokenizer (if different from the model.'		)
						parser.add_argument('--is_causal'						,      type=lowercase_						,      default=lowercase_						,      help='Whether or not the model is causal.'		)
						parser.add_argument(
						    '--model_revision'						,      type=lowercase_						,      default=lowercase_						,      help='The revision to use for the model checkpoint.'		)
						parser.add_argument('--torch_dtype'						,      type=lowercase_						,      default=lowercase_						,      help='The dtype for the model.'		)
						parser.add_argument('--disk_offload'						,      action='store_true'		)

						UpperCAmelCase			 =					parser.parse_args()

						# Sanitize args
						if args.model_name in DEFAULT_MODELS:
												UpperCAmelCase			 =					DEFAULT_MODELS[args.model_name]
												UpperCAmelCase			 =					defaults['model']
												if args.tokenizer_name is None:
																		UpperCAmelCase			 =					defaults.get('tokenizer'						,      args.model_name		)
												if args.is_causal is None:
																		UpperCAmelCase			 =					defaults['is_causal']
												if args.model_revision is None:
																		UpperCAmelCase			 =					defaults.get('model_revision'						,      'main'		)

						if args.is_causal is None:
												raise ValueError('Could not infer the default for `--is_causal`, pass either True or False for it.'		)
						if args.tokenizer_name is None:
												UpperCAmelCase			 =					args.model_name
						if args.model_revision is None:
												UpperCAmelCase			 =					'main'

						return args

def 					_lowerCAmelCase (  ):
						transformers.utils.logging.set_verbosity_error()
						UpperCAmelCase			 =					parse_args()

						if args.torch_dtype is None:
												UpperCAmelCase			 =					AutoConfig.from_pretrained(args.model_name		)
												UpperCAmelCase			 =					getattr(lowercase_						,      'torch_dtype'						,      torch.floataa		)
						else:
												UpperCAmelCase			 =					getattr(lowercase_						,      args.torch_dtype		)
						UpperCAmelCase			 =					AutoModelForCausalLM if args.is_causal else AutoModelForSeqaSeqLM
						UpperCAmelCase			 =					{
						    'torch_dtype': torch_dtype,
						    'revision': args.model_revision,
						}
						if args.disk_offload:
												UpperCAmelCase			 =					'tmp_offload'
												UpperCAmelCase			 =					True

						UpperCAmelCase			 =					start_measure()
						UpperCAmelCase			 =					model_cls.from_pretrained(args.model_name						,      device_map='auto'						,      **lowercase_		)
						UpperCAmelCase			 =					end_measure(lowercase_		)
						log_measures(lowercase_						,      'Model loading'		)

						UpperCAmelCase			 =					compute_module_sizes(lowercase_		)
						UpperCAmelCase			 =					{v: 0 for v in model.hf_device_map.values()}
						for module, device in model.hf_device_map.items():
												device_size[device] += module_sizes[module]
						UpperCAmelCase			 =					'\n'.join([F"""- {device}: {size // 2**20}MiB""" for device, size in device_size.items()]		)
						print(F"""\nTheoretical use:\n{message}"""		)

						UpperCAmelCase			 =					AutoTokenizer.from_pretrained(args.tokenizer_name		)

						UpperCAmelCase			 =					start_measure()
						UpperCAmelCase			 =					[]
						UpperCAmelCase			 =					[]
						UpperCAmelCase			 =					[]
						for prompt in PROMPTS:
												UpperCAmelCase			 =					tokenizer(lowercase_						,      return_tensors='pt'		).to(0		)
												UpperCAmelCase			 =					inputs['input_ids'][0].tolist()
												UpperCAmelCase			 =					time.time()
												UpperCAmelCase			 =					model.generate(inputs['input_ids']		)
												UpperCAmelCase			 =					time.time()
												UpperCAmelCase			 =					outputs[0].tolist()
												UpperCAmelCase			 =					len(lowercase_		) if outputs[: len(lowercase_		)] != tokens else len(lowercase_		) - len(lowercase_		)
												UpperCAmelCase			 =					after_generate - before_generate

												UpperCAmelCase			 =					tokenizer.decode(lowercase_						,      skip_special_tokens=lowercase_		)
												texts_outs.append(lowercase_		)
												generation_times.append(lowercase_		)
												gen_tokens.append(lowercase_		)
												print(F"""Prompt: {prompt}\nGeneration {text_out}\nIn {generation_time:.2f}s for {num_gen_tokens} tokens\n"""		)

						UpperCAmelCase			 =					end_measure(lowercase_		)
						log_measures(lowercase_						,      'Model generation'		)

						UpperCAmelCase			 =					[gen / tok for gen, tok in zip(lowercase_						,      lowercase_		)]
						UpperCAmelCase			 =					sum(lowercase_		) / len(lowercase_		)
						print(F"""Average time of generation per token: {avg_gen:.2f}s"""		)
						print(F"""First generation (avg time per token): {generation_times_per_token[0]:.2f}s"""		)
						UpperCAmelCase			 =					sum(generation_times_per_token[1:]		) / (len(lowercase_		) - 1)
						print(F"""Average time of generation per token (excluding the first): {avg_gen:.2f}s"""		)


if __name__ == "__main__":
				main()









"""simple docstring"""






from typing import TYPE_CHECKING

from ...utils import (
    OptionalDependencyNotAvailable,
    _LazyModule,
    is_flax_available,
    is_tf_available,
    is_torch_available,
)


SCREAMING_SNAKE_CASE__				:  int						= {
    "auto_factory": ["get_values"],
    "configuration_auto": ["ALL_PRETRAINED_CONFIG_ARCHIVE_MAP", "CONFIG_MAPPING", "MODEL_NAMES_MAPPING", "AutoConfig"],
    "feature_extraction_auto": ["FEATURE_EXTRACTOR_MAPPING", "AutoFeatureExtractor"],
    "image_processing_auto": ["IMAGE_PROCESSOR_MAPPING", "AutoImageProcessor"],
    "processing_auto": ["PROCESSOR_MAPPING", "AutoProcessor"],
    "tokenization_auto": ["TOKENIZER_MAPPING", "AutoTokenizer"],
}

try:
 if not is_torch_available():
  raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
 pass
else:
 SCREAMING_SNAKE_CASE__				:  Optional[int]						= [
     "MODEL_FOR_AUDIO_CLASSIFICATION_MAPPING",
     "MODEL_FOR_AUDIO_FRAME_CLASSIFICATION_MAPPING",
     "MODEL_FOR_AUDIO_XVECTOR_MAPPING",
     "MODEL_FOR_BACKBONE_MAPPING",
     "MODEL_FOR_CAUSAL_IMAGE_MODELING_MAPPING",
     "MODEL_FOR_CAUSAL_LM_MAPPING",
     "MODEL_FOR_CTC_MAPPING",
     "MODEL_FOR_DOCUMENT_QUESTION_ANSWERING_MAPPING",
     "MODEL_FOR_DEPTH_ESTIMATION_MAPPING",
     "MODEL_FOR_IMAGE_CLASSIFICATION_MAPPING",
     "MODEL_FOR_IMAGE_SEGMENTATION_MAPPING",
     "MODEL_FOR_INSTANCE_SEGMENTATION_MAPPING",
     "MODEL_FOR_MASKED_IMAGE_MODELING_MAPPING",
     "MODEL_FOR_MASKED_LM_MAPPING",
     "MODEL_FOR_MASK_GENERATION_MAPPING",
     "MODEL_FOR_MULTIPLE_CHOICE_MAPPING",
     "MODEL_FOR_NEXT_SENTENCE_PREDICTION_MAPPING",
     "MODEL_FOR_OBJECT_DETECTION_MAPPING",
     "MODEL_FOR_PRETRAINING_MAPPING",
     "MODEL_FOR_QUESTION_ANSWERING_MAPPING",
     "MODEL_FOR_SEMANTIC_SEGMENTATION_MAPPING",
     "MODEL_FOR_SEQ_TO_SEQ_CAUSAL_LM_MAPPING",
     "MODEL_FOR_SEQUENCE_CLASSIFICATION_MAPPING",
     "MODEL_FOR_SPEECH_SEQ_2_SEQ_MAPPING",
     "MODEL_FOR_TABLE_QUESTION_ANSWERING_MAPPING",
     "MODEL_FOR_TEXT_ENCODING_MAPPING",
     "MODEL_FOR_TOKEN_CLASSIFICATION_MAPPING",
     "MODEL_FOR_UNIVERSAL_SEGMENTATION_MAPPING",
     "MODEL_FOR_VIDEO_CLASSIFICATION_MAPPING",
     "MODEL_FOR_VISION_2_SEQ_MAPPING",
     "MODEL_FOR_VISUAL_QUESTION_ANSWERING_MAPPING",
     "MODEL_MAPPING",
     "MODEL_WITH_LM_HEAD_MAPPING",
     "MODEL_FOR_ZERO_SHOT_IMAGE_CLASSIFICATION_MAPPING",
     "MODEL_FOR_ZERO_SHOT_OBJECT_DETECTION_MAPPING",
     "AutoModel",
     "AutoBackbone",
     "AutoModelForAudioClassification",
     "AutoModelForAudioFrameClassification",
     "AutoModelForAudioXVector",
     "AutoModelForCausalLM",
     "AutoModelForCTC",
     "AutoModelForDepthEstimation",
     "AutoModelForImageClassification",
     "AutoModelForImageSegmentation",
     "AutoModelForInstanceSegmentation",
     "AutoModelForMaskGeneration",
     "AutoModelForTextEncoding",
     "AutoModelForMaskedImageModeling",
     "AutoModelForMaskedLM",
     "AutoModelForMultipleChoice",
     "AutoModelForNextSentencePrediction",
     "AutoModelForObjectDetection",
     "AutoModelForPreTraining",
     "AutoModelForQuestionAnswering",
     "AutoModelForSemanticSegmentation",
     "AutoModelForSeq2SeqLM",
     "AutoModelForSequenceClassification",
     "AutoModelForSpeechSeq2Seq",
     "AutoModelForTableQuestionAnswering",
     "AutoModelForTokenClassification",
     "AutoModelForUniversalSegmentation",
     "AutoModelForVideoClassification",
     "AutoModelForVision2Seq",
     "AutoModelForVisualQuestionAnswering",
     "AutoModelForDocumentQuestionAnswering",
     "AutoModelWithLMHead",
     "AutoModelForZeroShotImageClassification",
     "AutoModelForZeroShotObjectDetection",
 ]

try:
 if not is_tf_available():
  raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
 pass
else:
 SCREAMING_SNAKE_CASE__				:  int						= [
     "TF_MODEL_FOR_AUDIO_CLASSIFICATION_MAPPING",
     "TF_MODEL_FOR_CAUSAL_LM_MAPPING",
     "TF_MODEL_FOR_IMAGE_CLASSIFICATION_MAPPING",
     "TF_MODEL_FOR_MASK_GENERATION_MAPPING",
     "TF_MODEL_FOR_MASKED_IMAGE_MODELING_MAPPING",
     "TF_MODEL_FOR_MASKED_LM_MAPPING",
     "TF_MODEL_FOR_MULTIPLE_CHOICE_MAPPING",
     "TF_MODEL_FOR_NEXT_SENTENCE_PREDICTION_MAPPING",
     "TF_MODEL_FOR_PRETRAINING_MAPPING",
     "TF_MODEL_FOR_QUESTION_ANSWERING_MAPPING",
     "TF_MODEL_FOR_DOCUMENT_QUESTION_ANSWERING_MAPPING",
     "TF_MODEL_FOR_SEMANTIC_SEGMENTATION_MAPPING",
     "TF_MODEL_FOR_SEQ_TO_SEQ_CAUSAL_LM_MAPPING",
     "TF_MODEL_FOR_SEQUENCE_CLASSIFICATION_MAPPING",
     "TF_MODEL_FOR_SPEECH_SEQ_2_SEQ_MAPPING",
     "TF_MODEL_FOR_TABLE_QUESTION_ANSWERING_MAPPING",
     "TF_MODEL_FOR_TEXT_ENCODING_MAPPING",
     "TF_MODEL_FOR_TOKEN_CLASSIFICATION_MAPPING",
     "TF_MODEL_FOR_VISION_2_SEQ_MAPPING",
     "TF_MODEL_FOR_ZERO_SHOT_IMAGE_CLASSIFICATION_MAPPING",
     "TF_MODEL_MAPPING",
     "TF_MODEL_WITH_LM_HEAD_MAPPING",
     "TFAutoModel",
     "TFAutoModelForAudioClassification",
     "TFAutoModelForCausalLM",
     "TFAutoModelForImageClassification",
     "TFAutoModelForMaskedImageModeling",
     "TFAutoModelForMaskedLM",
     "TFAutoModelForMaskGeneration",
     "TFAutoModelForMultipleChoice",
     "TFAutoModelForNextSentencePrediction",
     "TFAutoModelForPreTraining",
     "TFAutoModelForDocumentQuestionAnswering",
     "TFAutoModelForQuestionAnswering",
     "TFAutoModelForSemanticSegmentation",
     "TFAutoModelForSeq2SeqLM",
     "TFAutoModelForSequenceClassification",
     "TFAutoModelForSpeechSeq2Seq",
     "TFAutoModelForTableQuestionAnswering",
     "TFAutoModelForTextEncoding",
     "TFAutoModelForTokenClassification",
     "TFAutoModelForVision2Seq",
     "TFAutoModelForZeroShotImageClassification",
     "TFAutoModelWithLMHead",
 ]

try:
 if not is_flax_available():
  raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
 pass
else:
 SCREAMING_SNAKE_CASE__				:  Optional[int]						= [
     "FLAX_MODEL_FOR_AUDIO_CLASSIFICATION_MAPPING",
     "FLAX_MODEL_FOR_CAUSAL_LM_MAPPING",
     "FLAX_MODEL_FOR_IMAGE_CLASSIFICATION_MAPPING",
     "FLAX_MODEL_FOR_MASKED_LM_MAPPING",
     "FLAX_MODEL_FOR_MULTIPLE_CHOICE_MAPPING",
     "FLAX_MODEL_FOR_NEXT_SENTENCE_PREDICTION_MAPPING",
     "FLAX_MODEL_FOR_PRETRAINING_MAPPING",
     "FLAX_MODEL_FOR_QUESTION_ANSWERING_MAPPING",
     "FLAX_MODEL_FOR_SEQ_TO_SEQ_CAUSAL_LM_MAPPING",
     "FLAX_MODEL_FOR_SEQUENCE_CLASSIFICATION_MAPPING",
     "FLAX_MODEL_FOR_SPEECH_SEQ_2_SEQ_MAPPING",
     "FLAX_MODEL_FOR_TOKEN_CLASSIFICATION_MAPPING",
     "FLAX_MODEL_FOR_VISION_2_SEQ_MAPPING",
     "FLAX_MODEL_MAPPING",
     "FlaxAutoModel",
     "FlaxAutoModelForCausalLM",
     "FlaxAutoModelForImageClassification",
     "FlaxAutoModelForMaskedLM",
     "FlaxAutoModelForMultipleChoice",
     "FlaxAutoModelForNextSentencePrediction",
     "FlaxAutoModelForPreTraining",
     "FlaxAutoModelForQuestionAnswering",
     "FlaxAutoModelForSeq2SeqLM",
     "FlaxAutoModelForSequenceClassification",
     "FlaxAutoModelForSpeechSeq2Seq",
     "FlaxAutoModelForTokenClassification",
     "FlaxAutoModelForVision2Seq",
 ]


if TYPE_CHECKING:
 from .auto_factory import get_values
 from .configuration_auto import ALL_PRETRAINED_CONFIG_ARCHIVE_MAP, CONFIG_MAPPING, MODEL_NAMES_MAPPING, AutoConfig
 from .feature_extraction_auto import FEATURE_EXTRACTOR_MAPPING, AutoFeatureExtractor
 from .image_processing_auto import IMAGE_PROCESSOR_MAPPING, AutoImageProcessor
 from .processing_auto import PROCESSOR_MAPPING, AutoProcessor
 from .tokenization_auto import TOKENIZER_MAPPING, AutoTokenizer

 try:
  if not is_torch_available():
   raise OptionalDependencyNotAvailable()
 except OptionalDependencyNotAvailable:
  pass
 else:
  from .modeling_auto import (
      MODEL_FOR_AUDIO_CLASSIFICATION_MAPPING,
      MODEL_FOR_AUDIO_FRAME_CLASSIFICATION_MAPPING,
      MODEL_FOR_AUDIO_XVECTOR_MAPPING,
      MODEL_FOR_BACKBONE_MAPPING,
      MODEL_FOR_CAUSAL_IMAGE_MODELING_MAPPING,
      MODEL_FOR_CAUSAL_LM_MAPPING,
      MODEL_FOR_CTC_MAPPING,
      MODEL_FOR_DEPTH_ESTIMATION_MAPPING,
      MODEL_FOR_DOCUMENT_QUESTION_ANSWERING_MAPPING,
      MODEL_FOR_IMAGE_CLASSIFICATION_MAPPING,
      MODEL_FOR_IMAGE_SEGMENTATION_MAPPING,
      MODEL_FOR_INSTANCE_SEGMENTATION_MAPPING,
      MODEL_FOR_MASK_GENERATION_MAPPING,
      MODEL_FOR_MASKED_IMAGE_MODELING_MAPPING,
      MODEL_FOR_MASKED_LM_MAPPING,
      MODEL_FOR_MULTIPLE_CHOICE_MAPPING,
      MODEL_FOR_NEXT_SENTENCE_PREDICTION_MAPPING,
      MODEL_FOR_OBJECT_DETECTION_MAPPING,
      MODEL_FOR_PRETRAINING_MAPPING,
      MODEL_FOR_QUESTION_ANSWERING_MAPPING,
      MODEL_FOR_SEMANTIC_SEGMENTATION_MAPPING,
      MODEL_FOR_SEQ_TO_SEQ_CAUSAL_LM_MAPPING,
      MODEL_FOR_SEQUENCE_CLASSIFICATION_MAPPING,
      MODEL_FOR_SPEECH_SEQ_2_SEQ_MAPPING,
      MODEL_FOR_TABLE_QUESTION_ANSWERING_MAPPING,
      MODEL_FOR_TEXT_ENCODING_MAPPING,
      MODEL_FOR_TOKEN_CLASSIFICATION_MAPPING,
      MODEL_FOR_UNIVERSAL_SEGMENTATION_MAPPING,
      MODEL_FOR_VIDEO_CLASSIFICATION_MAPPING,
      MODEL_FOR_VISION_2_SEQ_MAPPING,
      MODEL_FOR_VISUAL_QUESTION_ANSWERING_MAPPING,
      MODEL_FOR_ZERO_SHOT_IMAGE_CLASSIFICATION_MAPPING,
      MODEL_FOR_ZERO_SHOT_OBJECT_DETECTION_MAPPING,
      MODEL_MAPPING,
      MODEL_WITH_LM_HEAD_MAPPING,
      AutoBackbone,
      AutoModel,
      AutoModelForAudioClassification,
      AutoModelForAudioFrameClassification,
      AutoModelForAudioXVector,
      AutoModelForCausalLM,
      AutoModelForCTC,
      AutoModelForDepthEstimation,
      AutoModelForDocumentQuestionAnswering,
      AutoModelForImageClassification,
      AutoModelForImageSegmentation,
      AutoModelForInstanceSegmentation,
      AutoModelForMaskedImageModeling,
      AutoModelForMaskedLM,
      AutoModelForMaskGeneration,
      AutoModelForMultipleChoice,
      AutoModelForNextSentencePrediction,
      AutoModelForObjectDetection,
      AutoModelForPreTraining,
      AutoModelForQuestionAnswering,
      AutoModelForSemanticSegmentation,
      AutoModelForSeqaSeqLM,
      AutoModelForSequenceClassification,
      AutoModelForSpeechSeqaSeq,
      AutoModelForTableQuestionAnswering,
      AutoModelForTextEncoding,
      AutoModelForTokenClassification,
      AutoModelForUniversalSegmentation,
      AutoModelForVideoClassification,
      AutoModelForVisionaSeq,
      AutoModelForVisualQuestionAnswering,
      AutoModelForZeroShotImageClassification,
      AutoModelForZeroShotObjectDetection,
      AutoModelWithLMHead,
  )

 try:
  if not is_tf_available():
   raise OptionalDependencyNotAvailable()
 except OptionalDependencyNotAvailable:
  pass
 else:
  from .modeling_tf_auto import (
      TF_MODEL_FOR_AUDIO_CLASSIFICATION_MAPPING,
      TF_MODEL_FOR_CAUSAL_LM_MAPPING,
      TF_MODEL_FOR_DOCUMENT_QUESTION_ANSWERING_MAPPING,
      TF_MODEL_FOR_IMAGE_CLASSIFICATION_MAPPING,
      TF_MODEL_FOR_MASK_GENERATION_MAPPING,
      TF_MODEL_FOR_MASKED_IMAGE_MODELING_MAPPING,
      TF_MODEL_FOR_MASKED_LM_MAPPING,
      TF_MODEL_FOR_MULTIPLE_CHOICE_MAPPING,
      TF_MODEL_FOR_NEXT_SENTENCE_PREDICTION_MAPPING,
      TF_MODEL_FOR_PRETRAINING_MAPPING,
      TF_MODEL_FOR_QUESTION_ANSWERING_MAPPING,
      TF_MODEL_FOR_SEMANTIC_SEGMENTATION_MAPPING,
      TF_MODEL_FOR_SEQ_TO_SEQ_CAUSAL_LM_MAPPING,
      TF_MODEL_FOR_SEQUENCE_CLASSIFICATION_MAPPING,
      TF_MODEL_FOR_SPEECH_SEQ_2_SEQ_MAPPING,
      TF_MODEL_FOR_TABLE_QUESTION_ANSWERING_MAPPING,
      TF_MODEL_FOR_TEXT_ENCODING_MAPPING,
      TF_MODEL_FOR_TOKEN_CLASSIFICATION_MAPPING,
      TF_MODEL_FOR_VISION_2_SEQ_MAPPING,
      TF_MODEL_FOR_ZERO_SHOT_IMAGE_CLASSIFICATION_MAPPING,
      TF_MODEL_MAPPING,
      TF_MODEL_WITH_LM_HEAD_MAPPING,
      TFAutoModel,
      TFAutoModelForAudioClassification,
      TFAutoModelForCausalLM,
      TFAutoModelForDocumentQuestionAnswering,
      TFAutoModelForImageClassification,
      TFAutoModelForMaskedImageModeling,
      TFAutoModelForMaskedLM,
      TFAutoModelForMaskGeneration,
      TFAutoModelForMultipleChoice,
      TFAutoModelForNextSentencePrediction,
      TFAutoModelForPreTraining,
      TFAutoModelForQuestionAnswering,
      TFAutoModelForSemanticSegmentation,
      TFAutoModelForSeqaSeqLM,
      TFAutoModelForSequenceClassification,
      TFAutoModelForSpeechSeqaSeq,
      TFAutoModelForTableQuestionAnswering,
      TFAutoModelForTextEncoding,
      TFAutoModelForTokenClassification,
      TFAutoModelForVisionaSeq,
      TFAutoModelForZeroShotImageClassification,
      TFAutoModelWithLMHead,
  )

 try:
  if not is_flax_available():
   raise OptionalDependencyNotAvailable()
 except OptionalDependencyNotAvailable:
  pass
 else:
  from .modeling_flax_auto import (
      FLAX_MODEL_FOR_AUDIO_CLASSIFICATION_MAPPING,
      FLAX_MODEL_FOR_CAUSAL_LM_MAPPING,
      FLAX_MODEL_FOR_IMAGE_CLASSIFICATION_MAPPING,
      FLAX_MODEL_FOR_MASKED_LM_MAPPING,
      FLAX_MODEL_FOR_MULTIPLE_CHOICE_MAPPING,
      FLAX_MODEL_FOR_NEXT_SENTENCE_PREDICTION_MAPPING,
      FLAX_MODEL_FOR_PRETRAINING_MAPPING,
      FLAX_MODEL_FOR_QUESTION_ANSWERING_MAPPING,
      FLAX_MODEL_FOR_SEQ_TO_SEQ_CAUSAL_LM_MAPPING,
      FLAX_MODEL_FOR_SEQUENCE_CLASSIFICATION_MAPPING,
      FLAX_MODEL_FOR_SPEECH_SEQ_2_SEQ_MAPPING,
      FLAX_MODEL_FOR_TOKEN_CLASSIFICATION_MAPPING,
      FLAX_MODEL_FOR_VISION_2_SEQ_MAPPING,
      FLAX_MODEL_MAPPING,
      FlaxAutoModel,
      FlaxAutoModelForCausalLM,
      FlaxAutoModelForImageClassification,
      FlaxAutoModelForMaskedLM,
      FlaxAutoModelForMultipleChoice,
      FlaxAutoModelForNextSentencePrediction,
      FlaxAutoModelForPreTraining,
      FlaxAutoModelForQuestionAnswering,
      FlaxAutoModelForSeqaSeqLM,
      FlaxAutoModelForSequenceClassification,
      FlaxAutoModelForSpeechSeqaSeq,
      FlaxAutoModelForTokenClassification,
      FlaxAutoModelForVisionaSeq,
  )

else:
 import sys

 SCREAMING_SNAKE_CASE__				:  Optional[int]						= _LazyModule(__name__, globals()["__file__"], _import_structure, module_spec=__spec__)





