U
    4Af8                  %   @   s  d Z ddlmZ ddlmZ ddlmZmZmZ ddl	m
Z
 eeZedd	d
dddddddddddddddddddddd d!d"d#d$d%d&d'd(d)d*d+g$Zed,d-d.d/d0d1d2d3d4d5d6d7d8d9d:gZed;d-d<d=d>d?d2d4d5d6d:gZed-d@dAdBd1dCd2d3dDd7g
ZedEdFdGdHgZedIgZedJdKdLdMdNdOdPdQdRdSdTdUdVdWdXdYdZgZed[d\d]d^d_d`dadbdcdddegZedfdgdhdidjdkdldmdndodpgZedqdrdsdtdudvdwdxdyg	Zedzd{d|d}d~ddddg	ZedgZedd9gZedgZee
eZee
eZee
eZee
eZee
eZ ee
eZ!ee
eZ"ee
eZ#ee
eZ$ee
eZ%ee
eZ&ee
eZ'ee
eZ(ee
eZ)G dd deZ*ee*Z*G dd deZ+ee+ddZ+G dd deZ,ee,ddZ,G dd deZ-ee-ddZ-G dd deZ.ee.dddZ.G dd deZ/ee/ddZ/G dd deZ0ee0ddZ0G dd deZ1ee1ddZ1G dd deZ2ee2ddZ2G dd deZ3ee3ddZ3G dd deZ4ee4ddZ4G dd deZ5ee5ddZ5G dd deZ6ee6ddZ6dS )zAuto Model class.    )OrderedDict   )logging   )_BaseAutoModelClass_LazyAutoMappingauto_class_update)CONFIG_MAPPING_NAMES)albertZFlaxAlbertModel)bartZFlaxBartModel)beitZFlaxBeitModel)bertZFlaxBertModel)big_birdZFlaxBigBirdModel)
blenderbotZFlaxBlenderbotModel)blenderbot-smallZFlaxBlenderbotSmallModel)bloomZFlaxBloomModel)ZclipZFlaxCLIPModel)
distilbertZFlaxDistilBertModel)electraZFlaxElectraModel)gemmaZFlaxGemmaModel)gpt-sw3FlaxGPT2Model)gpt2r   )gpt_neoZFlaxGPTNeoModel)gptjZFlaxGPTJModel)llamaZFlaxLlamaModel)longt5ZFlaxLongT5Model)marianZFlaxMarianModel)mbartZFlaxMBartModel)mistralZFlaxMistralModel)mt5ZFlaxMT5Model)optZFlaxOPTModel)pegasusZFlaxPegasusModel)regnetZFlaxRegNetModel)resnetZFlaxResNetModel)robertaZFlaxRobertaModel)roberta-prelayernormZFlaxRobertaPreLayerNormModel)roformerZFlaxRoFormerModel)t5ZFlaxT5Model)zvision-text-dual-encoderZFlaxVisionTextDualEncoderModel)vitZFlaxViTModel)wav2vec2ZFlaxWav2Vec2Model)whisperZFlaxWhisperModel)xglmZFlaxXGLMModel)xlm-robertaZFlaxXLMRobertaModel)r
   ZFlaxAlbertForPreTraining)r   Z FlaxBartForConditionalGeneration)r   ZFlaxBertForPreTraining)r   ZFlaxBigBirdForPreTraining)r   ZFlaxElectraForPreTraining)r   Z"FlaxLongT5ForConditionalGeneration)r   Z!FlaxMBartForConditionalGeneration)r   ZFlaxMT5ForConditionalGeneration)r$   ZFlaxRobertaForMaskedLM)r%   Z"FlaxRobertaPreLayerNormForMaskedLM)r&   ZFlaxRoFormerForMaskedLM)r'   ZFlaxT5ForConditionalGeneration)r)   ZFlaxWav2Vec2ForPreTraining)r*   Z#FlaxWhisperForConditionalGeneration)r,   ZFlaxXLMRobertaForMaskedLM)r
   ZFlaxAlbertForMaskedLM)r   ZFlaxBertForMaskedLM)r   ZFlaxBigBirdForMaskedLM)r   ZFlaxDistilBertForMaskedLM)r   ZFlaxElectraForMaskedLM)r   Z&FlaxBlenderbotForConditionalGeneration)r   Z+FlaxBlenderbotSmallForConditionalGeneration)zencoder-decoderZFlaxEncoderDecoderModel)r   ZFlaxMarianMTModel)r!   Z#FlaxPegasusForConditionalGeneration)r   ZFlaxBeitForImageClassification)r"   Z FlaxRegNetForImageClassification)r#   Z FlaxResNetForImageClassification)r(   ZFlaxViTForImageClassification)zvision-encoder-decoderZFlaxVisionEncoderDecoderModel)r   ZFlaxBartForCausalLM)r   ZFlaxBertForCausalLM)r   ZFlaxBigBirdForCausalLM)r   ZFlaxBloomForCausalLM)r   ZFlaxElectraForCausalLM)r   ZFlaxGemmaForCausalLM)r   FlaxGPT2LMHeadModel)r   r-   )r   ZFlaxGPTNeoForCausalLM)r   ZFlaxGPTJForCausalLM)r   ZFlaxLlamaForCausalLM)r   ZFlaxMistralForCausalLM)r    ZFlaxOPTForCausalLM)r$   ZFlaxRobertaForCausalLM)r%   Z"FlaxRobertaPreLayerNormForCausalLM)r+   ZFlaxXGLMForCausalLM)r,   ZFlaxXLMRobertaForCausalLM)r
   Z#FlaxAlbertForSequenceClassification)r   Z!FlaxBartForSequenceClassification)r   Z!FlaxBertForSequenceClassification)r   Z$FlaxBigBirdForSequenceClassification)r   Z'FlaxDistilBertForSequenceClassification)r   Z$FlaxElectraForSequenceClassification)r   Z"FlaxMBartForSequenceClassification)r$   Z$FlaxRobertaForSequenceClassification)r%   Z0FlaxRobertaPreLayerNormForSequenceClassification)r&   Z%FlaxRoFormerForSequenceClassification)r,   Z'FlaxXLMRobertaForSequenceClassification)r
   ZFlaxAlbertForQuestionAnswering)r   ZFlaxBartForQuestionAnswering)r   ZFlaxBertForQuestionAnswering)r   ZFlaxBigBirdForQuestionAnswering)r   Z"FlaxDistilBertForQuestionAnswering)r   ZFlaxElectraForQuestionAnswering)r   ZFlaxMBartForQuestionAnswering)r$   ZFlaxRobertaForQuestionAnswering)r%   Z+FlaxRobertaPreLayerNormForQuestionAnswering)r&   Z FlaxRoFormerForQuestionAnswering)r,   Z"FlaxXLMRobertaForQuestionAnswering)r
   Z FlaxAlbertForTokenClassification)r   ZFlaxBertForTokenClassification)r   Z!FlaxBigBirdForTokenClassification)r   Z$FlaxDistilBertForTokenClassification)r   Z!FlaxElectraForTokenClassification)r$   Z!FlaxRobertaForTokenClassification)r%   Z-FlaxRobertaPreLayerNormForTokenClassification)r&   Z"FlaxRoFormerForTokenClassification)r,   Z$FlaxXLMRobertaForTokenClassification)r
   ZFlaxAlbertForMultipleChoice)r   ZFlaxBertForMultipleChoice)r   ZFlaxBigBirdForMultipleChoice)r   ZFlaxDistilBertForMultipleChoice)r   ZFlaxElectraForMultipleChoice)r$   ZFlaxRobertaForMultipleChoice)r%   Z(FlaxRobertaPreLayerNormForMultipleChoice)r&   ZFlaxRoFormerForMultipleChoice)r,   ZFlaxXLMRobertaForMultipleChoice)r   Z!FlaxBertForNextSentencePrediction)zspeech-encoder-decoderZFlaxSpeechEncoderDecoderModel)r*   Z!FlaxWhisperForAudioClassificationc                   @   s   e Zd ZeZdS )FlaxAutoModelN)__name__
__module____qualname__FLAX_MODEL_MAPPING_model_mapping r4   r4   O/tmp/pip-unpacked-wheel-zw5xktn0/transformers/models/auto/modeling_flax_auto.pyr.     s   r.   c                   @   s   e Zd ZeZdS )FlaxAutoModelForPreTrainingN)r/   r0   r1   "FLAX_MODEL_FOR_PRETRAINING_MAPPINGr3   r4   r4   r4   r5   r6     s   r6   Zpretraining)head_docc                   @   s   e Zd ZeZdS )FlaxAutoModelForCausalLMN)r/   r0   r1    FLAX_MODEL_FOR_CAUSAL_LM_MAPPINGr3   r4   r4   r4   r5   r9   %  s   r9   zcausal language modelingc                   @   s   e Zd ZeZdS )FlaxAutoModelForMaskedLMN)r/   r0   r1    FLAX_MODEL_FOR_MASKED_LM_MAPPINGr3   r4   r4   r4   r5   r;   ,  s   r;   zmasked language modelingc                   @   s   e Zd ZeZdS )FlaxAutoModelForSeq2SeqLMN)r/   r0   r1   +FLAX_MODEL_FOR_SEQ_TO_SEQ_CAUSAL_LM_MAPPINGr3   r4   r4   r4   r5   r=   3  s   r=   z&sequence-to-sequence language modelingzgoogle-t5/t5-base)r8   Zcheckpoint_for_examplec                   @   s   e Zd ZeZdS )&FlaxAutoModelForSequenceClassificationN)r/   r0   r1   .FLAX_MODEL_FOR_SEQUENCE_CLASSIFICATION_MAPPINGr3   r4   r4   r4   r5   r?   >  s   r?   zsequence classificationc                   @   s   e Zd ZeZdS )!FlaxAutoModelForQuestionAnsweringN)r/   r0   r1   )FLAX_MODEL_FOR_QUESTION_ANSWERING_MAPPINGr3   r4   r4   r4   r5   rA   G  s   rA   zquestion answeringc                   @   s   e Zd ZeZdS )#FlaxAutoModelForTokenClassificationN)r/   r0   r1   +FLAX_MODEL_FOR_TOKEN_CLASSIFICATION_MAPPINGr3   r4   r4   r4   r5   rC   N  s   rC   ztoken classificationc                   @   s   e Zd ZeZdS )FlaxAutoModelForMultipleChoiceN)r/   r0   r1   &FLAX_MODEL_FOR_MULTIPLE_CHOICE_MAPPINGr3   r4   r4   r4   r5   rE   W  s   rE   zmultiple choicec                   @   s   e Zd ZeZdS )&FlaxAutoModelForNextSentencePredictionN)r/   r0   r1   /FLAX_MODEL_FOR_NEXT_SENTENCE_PREDICTION_MAPPINGr3   r4   r4   r4   r5   rG   ^  s   rG   znext sentence predictionc                   @   s   e Zd ZeZdS )#FlaxAutoModelForImageClassificationN)r/   r0   r1   +FLAX_MODEL_FOR_IMAGE_CLASSIFICATION_MAPPINGr3   r4   r4   r4   r5   rI   g  s   rI   zimage classificationc                   @   s   e Zd ZeZdS )FlaxAutoModelForVision2SeqN)r/   r0   r1   #FLAX_MODEL_FOR_VISION_2_SEQ_MAPPINGr3   r4   r4   r4   r5   rK   p  s   rK   zvision-to-text modelingc                   @   s   e Zd ZeZdS )FlaxAutoModelForSpeechSeq2SeqN)r/   r0   r1   'FLAX_MODEL_FOR_SPEECH_SEQ_2_SEQ_MAPPINGr3   r4   r4   r4   r5   rM   w  s   rM   z,sequence-to-sequence speech-to-text modelingN)7__doc__collectionsr   utilsr   Zauto_factoryr   r   r   Zconfiguration_autor	   Z
get_loggerr/   loggerZFLAX_MODEL_MAPPING_NAMESZ(FLAX_MODEL_FOR_PRETRAINING_MAPPING_NAMESZ&FLAX_MODEL_FOR_MASKED_LM_MAPPING_NAMESZ1FLAX_MODEL_FOR_SEQ_TO_SEQ_CAUSAL_LM_MAPPING_NAMESZ1FLAX_MODEL_FOR_IMAGE_CLASSIFICATION_MAPPING_NAMESZ)FLAX_MODEL_FOR_VISION_2_SEQ_MAPPING_NAMESZ&FLAX_MODEL_FOR_CAUSAL_LM_MAPPING_NAMESZ4FLAX_MODEL_FOR_SEQUENCE_CLASSIFICATION_MAPPING_NAMESZ/FLAX_MODEL_FOR_QUESTION_ANSWERING_MAPPING_NAMESZ1FLAX_MODEL_FOR_TOKEN_CLASSIFICATION_MAPPING_NAMESZ,FLAX_MODEL_FOR_MULTIPLE_CHOICE_MAPPING_NAMESZ5FLAX_MODEL_FOR_NEXT_SENTENCE_PREDICTION_MAPPING_NAMESZ-FLAX_MODEL_FOR_SPEECH_SEQ_2_SEQ_MAPPING_NAMESZ1FLAX_MODEL_FOR_AUDIO_CLASSIFICATION_MAPPING_NAMESr2   r7   r<   r>   rJ   rL   r:   r@   rB   rD   rF   rH   rN   Z+FLAX_MODEL_FOR_AUDIO_CLASSIFICATION_MAPPINGr.   r6   r9   r;   r=   r?   rA   rC   rE   rG   rI   rK   rM   r4   r4   r4   r5   <module>   s  
*



  

            