



'''simple docstring'''





from collections import OrderedDict
from typing import Any, List, Mapping, Optional

from ... import PreTrainedTokenizer, TensorType, is_torch_available
from ...configuration_utils import PretrainedConfig
from ...onnx import OnnxConfigWithPast, PatchingSpec
from ...utils import logging


lowercase_									=    logging.get_logger(__name__)


lowercase_									=    {
    "Salesforce/codegen-350M-nl": "https://huggingface.co/Salesforce/codegen-350M-nl/resolve/main/config.json",
    "Salesforce/codegen-350M-multi": "https://huggingface.co/Salesforce/codegen-350M-multi/resolve/main/config.json",
    "Salesforce/codegen-350M-mono": "https://huggingface.co/Salesforce/codegen-350M-mono/resolve/main/config.json",
    "Salesforce/codegen-2B-nl": "https://huggingface.co/Salesforce/codegen-2B-nl/resolve/main/config.json",
    "Salesforce/codegen-2B-multi": "https://huggingface.co/Salesforce/codegen-2B-multi/resolve/main/config.json",
    "Salesforce/codegen-2B-mono": "https://huggingface.co/Salesforce/codegen-2B-mono/resolve/main/config.json",
    "Salesforce/codegen-6B-nl": "https://huggingface.co/Salesforce/codegen-6B-nl/resolve/main/config.json",
    "Salesforce/codegen-6B-multi": "https://huggingface.co/Salesforce/codegen-6B-multi/resolve/main/config.json",
    "Salesforce/codegen-6B-mono": "https://huggingface.co/Salesforce/codegen-6B-mono/resolve/main/config.json",
    "Salesforce/codegen-16B-nl": "https://huggingface.co/Salesforce/codegen-16B-nl/resolve/main/config.json",
    "Salesforce/codegen-16B-multi": "https://huggingface.co/Salesforce/codegen-16B-multi/resolve/main/config.json",
    "Salesforce/codegen-16B-mono": "https://huggingface.co/Salesforce/codegen-16B-mono/resolve/main/config.json",
}






class __A     (    A		):



 '''simple docstring'''







 __lowerCamelCase       :			int		=			'codegen'
 __lowerCamelCase       :			Dict		=			{
     'max_position_embeddings': 'n_positions',
     'hidden_size': 'n_embd',
     'num_attention_heads': 'n_head',
     'num_hidden_layers': 'n_layer',
 }



 def __init__(self					,  A=50_400					,  A=2_048					,  A=2_048					,  A=4_096					,  A=28					,  A=16					,  A=64					,  A=None					,  A="gelu_new"					,  A=0.0					,  A=0.0					,  A=0.0					,  A=1E-5					,  A=0.02					,  A=True					,  A=50_256					,  A=50_256					,  A=False					,  **A					,  )       ->	Optional[Any]:


      """simple docstring"""



      _a           =    vocab_size
      _a           =    n_ctx
      _a           =    n_positions
      _a           =    n_embd
      _a           =    n_layer
      _a           =    n_head
      _a           =    n_inner
      _a           =    rotary_dim
      _a           =    activation_function
      _a           =    resid_pdrop
      _a           =    embd_pdrop
      _a           =    attn_pdrop
      _a           =    layer_norm_epsilon
      _a           =    initializer_range
      _a           =    use_cache

      _a           =    bos_token_id
      _a           =    eos_token_id

      super().__init__(
          bos_token_id=A					,  eos_token_id=A					,  tie_word_embeddings=A					,  **A			)






class __A     (    A		):



 '''simple docstring'''







 def __init__(self					,  A					,  A = "default"					,  A = None					,  A = False					,  )       ->	Optional[Any]:


      """simple docstring"""



      super().__init__(A					,  task=A					,  patching_specs=A					,  use_past=A			)
      if not getattr(self._config					,  '''pad_token_id'''					,  A			):
           # TODO: how to do that better?
           _a           =    0



 @property
 def    a__    (self			)       ->	Mapping[str, Mapping[int, str]]:


      """simple docstring"""



      _a           =    OrderedDict({'''input_ids''': {0: '''batch''', 1: '''sequence'''}}			)
      if self.use_past:
           self.fill_with_past_key_values_(A					,  direction='''inputs'''			)
           _a           =    {0: '''batch''', 1: '''past_sequence + sequence'''}
      else:
           _a           =    {0: '''batch''', 1: '''sequence'''}

      return common_inputs



 @property
 def    a__    (self			)       ->	int:


      """simple docstring"""



      return self._config.n_layer



 @property
 def    a__    (self			)       ->	int:


      """simple docstring"""



      return self._config.n_head



 def    a__    (self					,  A					,  A = -1					,  A = -1					,  A = False					,  A = None					,  )       ->	Mapping[str, Any]:


      """simple docstring"""



      _a           =    super(A					,  self			).generate_dummy_inputs(
          A					,  batch_size=A					,  seq_length=A					,  is_pair=A					,  framework=A			)

      # We need to order the input in the way they appears in the forward()
      _a           =    OrderedDict({'''input_ids''': common_inputs['''input_ids''']}			)

      # Need to add the past_keys
      if self.use_past:
           if not is_torch_available():
                raise ValueError('''Cannot generate dummy past_keys inputs without PyTorch installed.'''			)
           else:
                import torch

                _a    ,       _a           =    common_inputs['''input_ids'''].shape
                # Not using the same length for past_key_values
                _a           =    seqlen + 2
                _a           =    (
                    batch,
                    self.num_attention_heads,
                    past_key_values_length,
                    self._config.hidden_size // self.num_attention_heads,
                )
                _a           =    [
                    (torch.zeros(A			), torch.zeros(A			)) for _ in range(self.num_layers			)
                ]

      _a           =    common_inputs['''attention_mask''']
      if self.use_past:
           _a           =    ordered_inputs['''attention_mask'''].dtype
           _a           =    torch.cat(
               [ordered_inputs['''attention_mask'''], torch.ones(A					,  A					,  dtype=A			)]					,  dim=1			)

      return ordered_inputs



 @property
 def    a__    (self			)       ->	int:


      """simple docstring"""



      return 13








'''simple docstring'''





from typing import TYPE_CHECKING

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


lowercase_									=    {
    "configuration_blip": [
        "BLIP_PRETRAINED_CONFIG_ARCHIVE_MAP",
        "BlipConfig",
        "BlipTextConfig",
        "BlipVisionConfig",
    ],
    "processing_blip": ["BlipProcessor"],
}

try:
  if not is_vision_available():
    raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
  pass
else:
  lowercase_									=    ["BlipImageProcessor"]


try:
  if not is_torch_available():
    raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
  pass
else:
  lowercase_									=    [
      "BLIP_PRETRAINED_MODEL_ARCHIVE_LIST",
      "BlipModel",
      "BlipPreTrainedModel",
      "BlipForConditionalGeneration",
      "BlipForQuestionAnswering",
      "BlipVisionModel",
      "BlipTextModel",
      "BlipForImageTextRetrieval",
  ]

try:
  if not is_tf_available():
    raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
  pass
else:
  lowercase_									=    [
      "TF_BLIP_PRETRAINED_MODEL_ARCHIVE_LIST",
      "TFBlipModel",
      "TFBlipPreTrainedModel",
      "TFBlipForConditionalGeneration",
      "TFBlipForQuestionAnswering",
      "TFBlipVisionModel",
      "TFBlipTextModel",
      "TFBlipForImageTextRetrieval",
  ]

if TYPE_CHECKING:
  from .configuration_blip import BLIP_PRETRAINED_CONFIG_ARCHIVE_MAP, BlipConfig, BlipTextConfig, BlipVisionConfig
  from .processing_blip import BlipProcessor

  try:
    if not is_vision_available():
      raise OptionalDependencyNotAvailable()
  except OptionalDependencyNotAvailable:
    pass
  else:
    from .image_processing_blip import BlipImageProcessor

  try:
    if not is_torch_available():
      raise OptionalDependencyNotAvailable()
  except OptionalDependencyNotAvailable:
    pass
  else:
    from .modeling_blip import (
        BLIP_PRETRAINED_MODEL_ARCHIVE_LIST,
        BlipForConditionalGeneration,
        BlipForImageTextRetrieval,
        BlipForQuestionAnswering,
        BlipModel,
        BlipPreTrainedModel,
        BlipTextModel,
        BlipVisionModel,
    )

  try:
    if not is_tf_available():
      raise OptionalDependencyNotAvailable()
  except OptionalDependencyNotAvailable:
    pass
  else:
    from .modeling_tf_blip import (
        TF_BLIP_PRETRAINED_MODEL_ARCHIVE_LIST,
        TFBlipForConditionalGeneration,
        TFBlipForImageTextRetrieval,
        TFBlipForQuestionAnswering,
        TFBlipModel,
        TFBlipPreTrainedModel,
        TFBlipTextModel,
        TFBlipVisionModel,
    )

else:
  import sys

  lowercase_									=    _LazyModule(__name__, globals()["__file__"], _import_structure, module_spec=__spec__)



