





from dataclasses import dataclass, field
from typing import Optional

from transformers import AutoConfig, AutoImageProcessor, AutoTokenizer, FlaxVisionEncoderDecoderModel, HfArgumentParser







@dataclass
class   __lowerCAmelCase			:
   _UpperCamelCase :						str     		=				field(
       metadata={"""help""": """The output directory where the model will be written."""}		,)
   _UpperCamelCase :						str     		=				field(
       metadata={
           """help""": (
               """The encoder model checkpoint for weights initialization."""
               """Don't set if you want to train an encoder model from scratch."""
           )
       }		,)
   _UpperCamelCase :						str     		=				field(
       metadata={
           """help""": (
               """The decoder model checkpoint for weights initialization."""
               """Don't set if you want to train a decoder model from scratch."""
           )
       }		,)
   _UpperCamelCase :						Optional[str]     		=				field(
       default=_UpperCamelCase		,metadata={"""help""": """Pretrained encoder config name or path if not the same as encoder_model_name"""}  )
   _UpperCamelCase :						Optional[str]     		=				field(
       default=_UpperCamelCase		,metadata={"""help""": """Pretrained decoder config name or path if not the same as decoder_model_name"""}  )







def       _A  (      ):
   a__	:						List[Any]      		=  HfArgumentParser((ModelArguments,)   )
   (a__     )	:						Tuple      		=  parser.parse_args_into_dataclasses()

   # Load pretrained model and tokenizer

   # Use explicit specified encoder config
   if model_args.encoder_config_name:
      a__	:						Tuple      		=  AutoConfig.from_pretrained(model_args.encoder_config_name   )
   # Use pretrained encoder model's config
   else:
      a__	:						List[str]      		=  AutoConfig.from_pretrained(model_args.encoder_model_name_or_path   )

   # Use explicit specified decoder config
   if model_args.decoder_config_name:
      a__	:						int      		=  AutoConfig.from_pretrained(model_args.decoder_config_name   )
   # Use pretrained decoder model's config
   else:
      a__	:						List[Any]      		=  AutoConfig.from_pretrained(model_args.decoder_model_name_or_path   )

   # necessary for `from_encoder_decoder_pretrained` when `decoder_config` is passed
   a__	:						List[str]      		=  True
   a__	:						Optional[Any]      		=  True

   a__	:						Dict      		=  FlaxVisionEncoderDecoderModel.from_encoder_decoder_pretrained(
       encoder_pretrained_model_name_or_path=model_args.encoder_model_name_or_path							, decoder_pretrained_model_name_or_path=model_args.decoder_model_name_or_path							, encoder_config=lowerCamelCase							, decoder_config=lowerCamelCase							, )

   # GPT2 only has bos/eos tokens but not decoder_start/pad tokens
   a__	:						Dict      		=  decoder_config.decoder_start_token_id
   a__	:						List[str]      		=  decoder_config.pad_token_id
   if decoder_start_token_id is None:
      a__	:						Optional[Any]      		=  decoder_config.bos_token_id
   if pad_token_id is None:
      a__	:						Dict      		=  decoder_config.eos_token_id

   # This is necessary to make Flax's generate() work
   a__	:						Any      		=  decoder_config.eos_token_id
   a__	:						Dict      		=  decoder_start_token_id
   a__	:						Optional[int]      		=  pad_token_id

   a__	:						int      		=  AutoImageProcessor.from_pretrained(model_args.encoder_model_name_or_path   )

   a__	:						Optional[int]      		=  AutoTokenizer.from_pretrained(model_args.decoder_model_name_or_path   )
   a__	:						List[Any]      		=  tokenizer.convert_ids_to_tokens(model.config.pad_token_id   )

   model.save_pretrained(model_args.output_dir   )
   image_processor.save_pretrained(model_args.output_dir   )
   tokenizer.save_pretrained(model_args.output_dir   )


if __name__ == "__main__":
  main()








import unittest

from transformers import load_tool

from .test_tools_common import ToolTesterMixin


SCREAMING_SNAKE_CASE__       :			Dict			      =						"""
Hugging Face was founded in 2016 by French entrepreneurs Clément Delangue, Julien Chaumond, and Thomas Wolf originally as a company that developed a chatbot app targeted at teenagers.[2] After open-sourcing the model behind the chatbot, the company pivoted to focus on being a platform for machine learning.

In March 2021, Hugging Face raised $40 million in a Series B funding round.[3]

On April 28, 2021, the company launched the BigScience Research Workshop in collaboration with several other research groups to release an open large language model.[4] In 2022, the workshop concluded with the announcement of BLOOM, a multilingual large language model with 176 billion parameters.[5]
"""







class   __lowerCAmelCase			(					unittest.TestCase		,_UpperCamelCase  ):





   def 	_snake_case ( self      )				->  str:
      """simple docstring"""





      a__	:						Optional[int]      		=  load_tool("text-question-answering"      )
      self.tool.setup()
      a__	:						Dict      		=  load_tool("text-question-answering"					,			remote=snake_case      )





   def 	_snake_case ( self      )				->  Dict:
      """simple docstring"""





      a__	:						Optional[Any]      		=  self.tool(snake_case					,			"What did Hugging Face do in April 2021?"      )
      self.assertEqual(snake_case					,			"launched the BigScience Research Workshop"      )





   def 	_snake_case ( self      )				->  Tuple:
      """simple docstring"""





      a__	:						List[Any]      		=  self.remote_tool(snake_case					,			"What did Hugging Face do in April 2021?"      )
      self.assertEqual(snake_case					,			"launched the BigScience Research Workshop"      )





   def 	_snake_case ( self      )				->  Any:
      """simple docstring"""





      a__	:						Any      		=  self.tool(text=snake_case					,			question="What did Hugging Face do in April 2021?"      )
      self.assertEqual(snake_case					,			"launched the BigScience Research Workshop"      )





   def 	_snake_case ( self      )				->  int:
      """simple docstring"""





      a__	:						List[str]      		=  self.remote_tool(text=snake_case					,			question="What did Hugging Face do in April 2021?"      )
      self.assertEqual(snake_case					,			"launched the BigScience Research Workshop"      )

