
"""simple docstring"""


from __future__ import annotations

import unittest

from transformers import EsmConfig, is_tf_available
from transformers.testing_utils import require_tf, slow

from ...test_configuration_common import ConfigTester
from ...test_modeling_tf_common import TFModelTesterMixin, floats_tensor, ids_tensor, random_attention_mask
from ...test_pipeline_mixin import PipelineTesterMixin


if is_tf_available():
						import numpy
						import tensorflow as tf

						from transformers.models.esm.modeling_tf_esm import (
						    TF_ESM_PRETRAINED_MODEL_ARCHIVE_LIST,
						    TFEsmForMaskedLM,
						    TFEsmForSequenceClassification,
						    TFEsmForTokenClassification,
						    TFEsmModel,
						)




class  __lowerCamelCase  :




				def __init__(				self							,						UpperCAmelCase							,						):
							lowerCamelCase_					=  parent
							lowerCamelCase_					=  13
							lowerCamelCase_					=  7
							lowerCamelCase_					=  True
							lowerCamelCase_					=  True
							lowerCamelCase_					=  True
							lowerCamelCase_					=  99
							lowerCamelCase_					=  32
							lowerCamelCase_					=  2
							lowerCamelCase_					=  4
							lowerCamelCase_					=  37
							lowerCamelCase_					=  '''gelu'''
							lowerCamelCase_					=  0.1
							lowerCamelCase_					=  0.1
							lowerCamelCase_					=  512
							lowerCamelCase_					=  16
							lowerCamelCase_					=  2
							lowerCamelCase_					=  0.0_2
							lowerCamelCase_					=  3
							lowerCamelCase_					=  4
							lowerCamelCase_					=  None




				def        UpperCAmelCase__						(				self   ):
							lowerCamelCase_					=  ids_tensor([self.batch_size, self.seq_length]							,						self.vocab_size   )

							lowerCamelCase_					=  None
							if self.use_input_mask:
										lowerCamelCase_					=  random_attention_mask([self.batch_size, self.seq_length]   )

							lowerCamelCase_					=  None
							lowerCamelCase_					=  None
							lowerCamelCase_					=  None
							if self.use_labels:
										lowerCamelCase_					=  ids_tensor([self.batch_size]							,						self.type_sequence_label_size   )
										lowerCamelCase_					=  ids_tensor([self.batch_size, self.seq_length]							,						self.num_labels   )
										lowerCamelCase_					=  ids_tensor([self.batch_size]							,						self.num_choices   )

							lowerCamelCase_					=  EsmConfig(
							    vocab_size=self.vocab_size							,						hidden_size=self.hidden_size							,						num_hidden_layers=self.num_hidden_layers							,						pad_token_id=1							,						num_attention_heads=self.num_attention_heads							,						intermediate_size=self.intermediate_size							,						hidden_act=self.hidden_act							,						hidden_dropout_prob=self.hidden_dropout_prob							,						attention_probs_dropout_prob=self.attention_probs_dropout_prob							,						max_position_embeddings=self.max_position_embeddings							,						type_vocab_size=self.type_vocab_size							,						initializer_range=self.initializer_range							,						)

							return config, input_ids, input_mask, sequence_labels, token_labels, choice_labels




				def        UpperCAmelCase__						(				self   ):
							(
							    (
							    lowerCamelCase_
							)		, (
							    lowerCamelCase_
							)		, (
							    lowerCamelCase_
							)		, (
							    lowerCamelCase_
							)		, (
							    lowerCamelCase_
							)		, (
							    lowerCamelCase_
							)		, 
							)					=  self.prepare_config_and_inputs()

							lowerCamelCase_					=  True
							lowerCamelCase_					=  floats_tensor([self.batch_size, self.seq_length, self.hidden_size]   )
							lowerCamelCase_					=  ids_tensor([self.batch_size, self.seq_length]							,						vocab_size=2   )

							return (
							    config,
							    input_ids,
							    input_mask,
							    sequence_labels,
							    token_labels,
							    choice_labels,
							    encoder_hidden_states,
							    encoder_attention_mask,
							)




				def        UpperCAmelCase__						(				self							,						UpperCAmelCase							,						UpperCAmelCase							,						UpperCAmelCase							,						UpperCAmelCase							,						UpperCAmelCase							,						UpperCAmelCase   ):
							lowerCamelCase_					=  TFEsmModel(config=UpperCAmelCase   )
							lowerCamelCase_					=  {'''input_ids''': input_ids, '''attention_mask''': input_mask}
							lowerCamelCase_					=  model(UpperCAmelCase   )

							lowerCamelCase_					=  [input_ids, input_mask]
							lowerCamelCase_					=  model(UpperCAmelCase   )

							lowerCamelCase_					=  model(UpperCAmelCase   )

							self.parent.assertEqual(result.last_hidden_state.shape							,						(self.batch_size, self.seq_length, self.hidden_size)   )




				def        UpperCAmelCase__						(				self							,						UpperCAmelCase							,						UpperCAmelCase							,						UpperCAmelCase							,						UpperCAmelCase							,						UpperCAmelCase							,						UpperCAmelCase							,						UpperCAmelCase							,						UpperCAmelCase							,						):
							lowerCamelCase_					=  True

							lowerCamelCase_					=  TFEsmModel(config=UpperCAmelCase   )
							lowerCamelCase_					=  {
							    '''input_ids''': input_ids,
							    '''attention_mask''': input_mask,
							    '''encoder_hidden_states''': encoder_hidden_states,
							    '''encoder_attention_mask''': encoder_attention_mask,
							}
							lowerCamelCase_					=  model(UpperCAmelCase   )

							lowerCamelCase_					=  [input_ids, input_mask]
							lowerCamelCase_					=  model(UpperCAmelCase							,						encoder_hidden_states=UpperCAmelCase   )

							# Also check the case where encoder outputs are not passed
							lowerCamelCase_					=  model(UpperCAmelCase							,						attention_mask=UpperCAmelCase   )

							self.parent.assertEqual(result.last_hidden_state.shape							,						(self.batch_size, self.seq_length, self.hidden_size)   )




				def        UpperCAmelCase__						(				self							,						UpperCAmelCase							,						UpperCAmelCase							,						UpperCAmelCase							,						UpperCAmelCase							,						UpperCAmelCase							,						UpperCAmelCase   ):
							lowerCamelCase_					=  TFEsmForMaskedLM(config=UpperCAmelCase   )
							lowerCamelCase_					=  model([input_ids, input_mask]   )
							self.parent.assertEqual(result.logits.shape							,						(self.batch_size, self.seq_length, self.vocab_size)   )




				def        UpperCAmelCase__						(				self							,						UpperCAmelCase							,						UpperCAmelCase							,						UpperCAmelCase							,						UpperCAmelCase							,						UpperCAmelCase							,						UpperCAmelCase   ):
							lowerCamelCase_					=  self.num_labels
							lowerCamelCase_					=  TFEsmForTokenClassification(config=UpperCAmelCase   )
							lowerCamelCase_					=  {'''input_ids''': input_ids, '''attention_mask''': input_mask}
							lowerCamelCase_					=  model(UpperCAmelCase   )
							self.parent.assertEqual(result.logits.shape							,						(self.batch_size, self.seq_length, self.num_labels)   )





				def        UpperCAmelCase__						(				self   ):
							lowerCamelCase_					=  self.prepare_config_and_inputs()
							(
							    (
							    lowerCamelCase_
							)		, (
							    lowerCamelCase_
							)		, (
							    lowerCamelCase_
							)		, (
							    lowerCamelCase_
							)		, (
							    lowerCamelCase_
							)		, (
							    lowerCamelCase_
							)		, 
							)					=  config_and_inputs
							lowerCamelCase_					=  {'''input_ids''': input_ids, '''attention_mask''': input_mask}
							return config, inputs_dict




@require_tf
class  __lowerCamelCase  ( lowerCAmelCase						,	lowerCAmelCase						,	unittest.TestCase			):
				a__:      Optional[Any]          =    (
				    (
				        TFEsmModel,
				        TFEsmForMaskedLM,
				        TFEsmForSequenceClassification,
				        TFEsmForTokenClassification,
				    )
				    if is_tf_available()
				    else ()
				)
				a__:      Tuple          =    (
				    {
				        'feature-extraction': TFEsmModel,
				        'fill-mask': TFEsmForMaskedLM,
				        'text-classification': TFEsmForSequenceClassification,
				        'token-classification': TFEsmForTokenClassification,
				        'zero-shot': TFEsmForSequenceClassification,
				    }
				    if is_tf_available()
				    else {}
				)
				a__:      str          =    False
				a__:      Tuple          =    False




				def        UpperCAmelCase__						(				self   ):
							lowerCamelCase_					=  TFEsmModelTester(self   )
							lowerCamelCase_					=  ConfigTester(self							,						config_class=UpperCAmelCase							,						hidden_size=37   )




				def        UpperCAmelCase__						(				self   ):
							self.config_tester.run_common_tests()




				def        UpperCAmelCase__						(				self   ):
							lowerCamelCase_					=  self.model_tester.prepare_config_and_inputs()
							self.model_tester.create_and_check_model(*UpperCAmelCase   )




				def        UpperCAmelCase__						(				self   ):
							lowerCamelCase_					=  self.model_tester.prepare_config_and_inputs_for_decoder()
							self.model_tester.create_and_check_model_as_decoder(*UpperCAmelCase   )




				def        UpperCAmelCase__						(				self   ):
							lowerCamelCase_					=  self.model_tester.prepare_config_and_inputs()
							self.model_tester.create_and_check_for_masked_lm(*UpperCAmelCase   )




				def        UpperCAmelCase__						(				self   ):
							lowerCamelCase_					=  self.model_tester.prepare_config_and_inputs()
							self.model_tester.create_and_check_for_token_classification(*UpperCAmelCase   )




				@slow
				def        UpperCAmelCase__						(				self   ):
							for model_name in TF_ESM_PRETRAINED_MODEL_ARCHIVE_LIST[:1]:
										lowerCamelCase_					=  TFEsmModel.from_pretrained(UpperCAmelCase   )
										self.assertIsNotNone(UpperCAmelCase   )




				@unittest.skip('''Protein models do not support embedding resizing.'''   )
				def        UpperCAmelCase__						(				self   ):
							pass




				@unittest.skip('''Protein models do not support embedding resizing.'''   )
				def        UpperCAmelCase__						(				self   ):
							pass





				def        UpperCAmelCase__						(				self   ):
							lowerCamelCase_		, lowerCamelCase_					=  self.model_tester.prepare_config_and_inputs_for_common()

							for model_class in self.all_model_classes:
										lowerCamelCase_					=  model_class(UpperCAmelCase   )
										assert isinstance(model.get_input_embeddings()							,						tf.keras.layers.Layer   )
										if model_class is TFEsmForMaskedLM:
													# Output embedding test differs from the main test because they're a matrix, not a layer
													lowerCamelCase_					=  model.get_bias()
													assert isinstance(UpperCAmelCase							,						UpperCAmelCase   )
													for k, v in name.items():
																assert isinstance(UpperCAmelCase							,						tf.Variable   )
										else:
													lowerCamelCase_					=  model.get_output_embeddings()
													assert x is None
													lowerCamelCase_					=  model.get_bias()
													assert name is None




@require_tf
class  __lowerCamelCase  ( unittest.TestCase			):




				@slow
				def        UpperCAmelCase__						(				self   ):
							lowerCamelCase_					=  TFEsmForMaskedLM.from_pretrained('''facebook/esm2_t6_8M_UR50D'''   )

							lowerCamelCase_					=  tf.constant([[0, 1, 2, 3, 4, 5]]   )
							lowerCamelCase_					=  model(UpperCAmelCase   )[0]
							lowerCamelCase_					=  [1, 6, 33]
							self.assertEqual(list(output.numpy().shape   )							,						UpperCAmelCase   )
							# compare the actual values for a slice.
							lowerCamelCase_					=  tf.constant(
							    [
							        [
							            [8.9_2_1_5_1_8, -1_0.5_8_9_8_1_4, -6.4_6_7_1_3_0_7],
							            [-6.3_9_6_7_1_5_6, -1_3.9_1_1_3_7_7, -1.1_2_1_1_9_1_5],
							            [-7.7_8_1_2_4_7, -1_3.9_5_1_5_5_7, -3.7_4_0_5_9_2],
							        ]
							    ]   )
							self.assertTrue(numpy.allclose(output[:, :3, :3].numpy()							,						expected_slice.numpy()							,						atol=1e-2   )   )





				@slow
				def        UpperCAmelCase__						(				self   ):
							lowerCamelCase_					=  TFEsmModel.from_pretrained('''facebook/esm2_t6_8M_UR50D'''   )

							lowerCamelCase_					=  tf.constant([[0, 6, 4, 13, 5, 4, 16, 12, 11, 7, 2]]   )
							lowerCamelCase_					=  model(UpperCAmelCase   )[0]
							# compare the actual values for a slice.
							lowerCamelCase_					=  tf.constant(
							    [
							        [
							            [0.1_4_4_4_3_0_9_2, 0.5_4_1_2_5_3_2_7, 0.3_2_4_7_7_3_9],
							            [0.3_0_3_4_0_4_8_4, 0.0_0_5_2_6_6_7_6, 0.3_1_0_7_7_7_2_2],
							            [0.3_2_2_7_8_0_4_3, -0.2_4_9_8_7_0_9_6, 0.3_4_1_4_6_2_8],
							        ]
							    ]   )
							self.assertTrue(numpy.allclose(output[:, :3, :3].numpy()							,						expected_slice.numpy()							,						atol=1e-4   )   )






'''simple docstring'''



import unittest

from transformers.models.xlm_prophetnet.tokenization_xlm_prophetnet import SPIECE_UNDERLINE, XLMProphetNetTokenizer
from transformers.testing_utils import get_tests_dir, require_sentencepiece, slow
from transformers.utils import cached_property

from ...test_tokenization_common import TokenizerTesterMixin


UpperCAmelCase					:			int       =	get_tests_dir('fixtures/test_sentencepiece.model')







@require_sentencepiece
class 		lowerCAmelCase__  ( a					,   unittest.TestCase   ):



 """simple docstring"""



 lowerCAmelCase__       = XLMProphetNetTokenizer
 lowerCAmelCase__       = False
 lowerCAmelCase__       = True
 def  UpperCAmelCase__						(						self   :			str     )    ->					Optional[int]:


      """simple docstring"""




      super().setUp()

      # We have a SentencePiece fixture for testing
      __SCREAMING_SNAKE_CASE      = XLMProphetNetTokenizer(__SCREAMING_SNAKE_CASE   ,				keep_accents=__SCREAMING_SNAKE_CASE     )
      tokenizer.save_pretrained(self.tmpdirname     )
 def  UpperCAmelCase__						(						self   :			Dict     )    ->					Tuple:


      """simple docstring"""




      __SCREAMING_SNAKE_CASE      = """[PAD]"""
      __SCREAMING_SNAKE_CASE      = 0

      self.assertEqual(self.get_tokenizer()._convert_token_to_id(__SCREAMING_SNAKE_CASE     )   ,				__SCREAMING_SNAKE_CASE     )
      self.assertEqual(self.get_tokenizer()._convert_id_to_token(__SCREAMING_SNAKE_CASE     )   ,				__SCREAMING_SNAKE_CASE     )
 def  UpperCAmelCase__						(						self   :			Tuple     )    ->					Optional[int]:


      """simple docstring"""




      __SCREAMING_SNAKE_CASE      = list(self.get_tokenizer().get_vocab().keys()     )

      self.assertEqual(vocab_keys[0]   ,				"""[PAD]"""     )
      self.assertEqual(vocab_keys[1]   ,				"""[CLS]"""     )
      self.assertEqual(vocab_keys[-1]   ,				"""j"""     )
      self.assertEqual(len(__SCREAMING_SNAKE_CASE     )   ,				1_012     )
 def  UpperCAmelCase__						(						self   :			Any     )    ->					List[str]:


      """simple docstring"""




      self.assertEqual(self.get_tokenizer().vocab_size   ,				1_012     )
 def  UpperCAmelCase__						(						self   :			int     )    ->					List[Any]:


      """simple docstring"""




      __SCREAMING_SNAKE_CASE      = XLMProphetNetTokenizer(__SCREAMING_SNAKE_CASE   ,				keep_accents=__SCREAMING_SNAKE_CASE     )

      __SCREAMING_SNAKE_CASE      = tokenizer.tokenize("""This is a test"""     )
      self.assertListEqual(__SCREAMING_SNAKE_CASE   ,				["""▁This""", """▁is""", """▁a""", """▁t""", """est"""]     )

      self.assertListEqual(
          tokenizer.convert_tokens_to_ids(__SCREAMING_SNAKE_CASE     )   ,				[value + tokenizer.fairseq_offset for value in [285, 46, 10, 170, 382]]   ,				)

      __SCREAMING_SNAKE_CASE      = tokenizer.tokenize("""I was born in 92000, and this is falsé."""     )
      self.assertListEqual(
          __SCREAMING_SNAKE_CASE   ,				[
              SPIECE_UNDERLINE + """I""",
              SPIECE_UNDERLINE + """was""",
              SPIECE_UNDERLINE + """b""",
              """or""",
              """n""",
              SPIECE_UNDERLINE + """in""",
              SPIECE_UNDERLINE + """""",
              """9""",
              """2""",
              """0""",
              """0""",
              """0""",
              """,""",
              SPIECE_UNDERLINE + """and""",
              SPIECE_UNDERLINE + """this""",
              SPIECE_UNDERLINE + """is""",
              SPIECE_UNDERLINE + """f""",
              """al""",
              """s""",
              """é""",
              """.""",
          ]   ,				)
      __SCREAMING_SNAKE_CASE      = tokenizer.convert_tokens_to_ids(__SCREAMING_SNAKE_CASE     )
      self.assertListEqual(
          __SCREAMING_SNAKE_CASE   ,				[
              value + tokenizer.fairseq_offset
              for value in [8, 21, 84, 55, 24, 19, 7, -9, 602, 347, 347, 347, 3, 12, 66, 46, 72, 80, 6, -9, 4]
          ]   ,				)

      __SCREAMING_SNAKE_CASE      = tokenizer.convert_ids_to_tokens(__SCREAMING_SNAKE_CASE     )
      self.assertListEqual(
          __SCREAMING_SNAKE_CASE   ,				[
              SPIECE_UNDERLINE + """I""",
              SPIECE_UNDERLINE + """was""",
              SPIECE_UNDERLINE + """b""",
              """or""",
              """n""",
              SPIECE_UNDERLINE + """in""",
              SPIECE_UNDERLINE + """""",
              """[UNK]""",
              """2""",
              """0""",
              """0""",
              """0""",
              """,""",
              SPIECE_UNDERLINE + """and""",
              SPIECE_UNDERLINE + """this""",
              SPIECE_UNDERLINE + """is""",
              SPIECE_UNDERLINE + """f""",
              """al""",
              """s""",
              """[UNK]""",
              """.""",
          ]   ,				)
 @cached_property
 def  UpperCAmelCase__						(						self   :			str     )    ->					str:


      """simple docstring"""




      return XLMProphetNetTokenizer.from_pretrained("""microsoft/xprophetnet-large-wiki100-cased"""     )
 @slow
 def  UpperCAmelCase__						(						self   :			Dict     )    ->					Optional[Any]:


      """simple docstring"""




      __SCREAMING_SNAKE_CASE      = """Hello World!"""
      __SCREAMING_SNAKE_CASE      = [35_389, 6_672, 49, 2]
      self.assertListEqual(__SCREAMING_SNAKE_CASE   ,				self.big_tokenizer.encode(__SCREAMING_SNAKE_CASE     )     )


 @slow
 def  UpperCAmelCase__						(						self   :			Dict     )    ->					str:


      """simple docstring"""




      __SCREAMING_SNAKE_CASE      = {"""input_ids""": [[11_073, 82_783, 18, 26, 82_783, 549, 51_540, 248, 17_209, 1_301, 217, 20, 215_186, 1_325, 147, 17_209, 1_301, 217, 20, 56_370, 53, 122_020, 20, 16_477, 27, 87_355, 4_548, 20, 4_728, 78_392, 17, 159_969, 18, 26, 24_491, 629, 15, 538, 22_704, 5_439, 15, 2_788, 24_491, 9_885, 15, 43_534, 605, 15, 814, 18_403, 33_200, 29, 15, 43_534, 24_458, 12_410, 111, 24_966, 83_669, 9_637, 144_068, 26, 850, 22_346, 27, 147, 24_966, 83_669, 83_490, 26, 39_113, 735, 27, 689, 656, 2_800, 1_339, 4_600, 53, 122_020, 115_785, 34, 816, 1_339, 46_887, 18, 147, 53_905, 1_951, 42_238, 41_170, 17_732, 834, 436, 15, 27_523, 98_733, 217, 147, 5_542, 4_981, 930, 17_347, 16, 2], [20_091, 629, 94, 82_786, 58, 490, 20, 1_528, 84, 53_905, 344, 80_592, 110_128, 18_822, 5_267, 1_306, 62, 152_537, 308, 7_997, 401, 124_427, 549, 35_442, 225, 109, 15_055, 25_748, 147, 7_119, 43_712, 34, 767, 135_366, 18, 16, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [592, 63_784, 119_466, 17, 147_808, 88_214, 18, 656, 81, 32, 3_296, 10_280, 16, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]], """attention_mask""": [[1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1], [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]]}  # noqa: E501
      # fmt: on

      self.tokenizer_integration_test_util(
          expected_encoding=__SCREAMING_SNAKE_CASE   ,				model_name="""microsoft/xprophetnet-large-wiki100-cased"""   ,				revision="""1acad1643ddd54a44df6a1b797ada8373685d90e"""   ,				)






