
    fThR                     p    S r SSKJr  SSKJr  SSKJrJr  \R                  " \	5      r
 " S S\5      rS/rg)	zPaliGemmamodel configuration   )PretrainedConfig)logging   )CONFIG_MAPPING
AutoConfigc                   X   ^  \ rS rSrSrSrSS0r\\S.rS/r	      S
U 4S jjr
S	rU =r$ )PaliGemmaConfig   a%  
This is the configuration class to store the configuration of a [`PaliGemmaForConditionalGeneration`]. It is used to instantiate an
PaliGemmamodel according to the specified arguments, defining the model architecture. Instantiating a configuration
with the defaults will yield a similar configuration to that of the PaliGemma-2B.

e.g. [paligemma-hf/paligemma-2b](https://huggingface.co/paligemma-hf/paligemma-2b)

Configuration objects inherit from [`PretrainedConfig`] and can be used to control the model outputs. Read the
documentation from [`PretrainedConfig`] for more information.

Args:
    vision_config (`PaliGemmaVisionConfig`,  *optional*):
        Custom vision config or dict
    text_config (`Union[AutoConfig, dict]`, *optional*):
        The config object of the text backbone. Can be any of `LlamaConfig` or `MistralConfig`.
    image_token_index (`int`, *optional*, defaults to 256000):
        The image token index to encode the image prompt.
    vocab_size (`int`, *optional*, defaults to 257152):
        Vocabulary size of the PaliGemmamodel. Defines the number of different tokens that can be represented by the
        `inputs_ids` passed when calling [`~PaliGemmaForConditionalGeneration`]
    projection_dim (`int`, *optional*, defaults to 2048):
        Dimension of the multimodal projection space.
    hidden_size (`int`, *optional*, defaults to 2048):
        Dimension of the hidden layer of the Language model.

Example:

```python
>>> from transformers import PaliGemmaForConditionalGeneration, PaliGemmaConfig, SiglipVisionConfig, GemmaConfig

>>> # Initializing a Siglip-like vision config
>>> vision_config = SiglipVisionConfig()

>>> # Initializing a PaliGemma config
>>> text_config = GemmaConfig()

>>> # Initializing a PaliGemma paligemma-3b-224 style configuration
>>> configuration = PaliGemmaConfig(vision_config, text_config)

>>> # Initializing a model from the paligemma-3b-224 style configuration
>>> model = PaliGemmaForConditionalGeneration(configuration)

>>> # Accessing the model configuration
>>> configuration = model.config
```	paligemmaimage_token_idimage_token_index)text_configvision_configpast_key_valuesc                   > X0l         XPl        X`l        Xl        SU l        [        U R                  [        5      (       a(  SU;   a  US   OSUS'   [        US      " S0 UD6U l        OUc  [        S   " SSSSSS	S
SS9U l        X l        [        U R                  [        5      (       a(  SU;   a  US   OSUS'   [        US      " S0 UD6U l        OUc  [        S   " SSSSSSUS9U l        U R                  R                  U R                  R                  -  S-  U R                  l        XPR                  l        [        TU ]4  " S0 UD6  g )NF
model_typesiglip_vision_modeli   i               )intermediate_sizehidden_size
patch_size
image_sizenum_hidden_layersnum_attention_heads
vocab_sizevision_use_headgemma      i @        )r   r   r   r   num_key_value_headsis_encoder_decoderr   r    )r   projection_dimr   r   r'   
isinstancedictr   r   r   r   num_image_tokenssuper__init__)	selfr   r   r   r   r)   r   kwargs	__class__s	           m/var/www/auris/envauris/lib/python3.13/site-packages/transformers/models/paligemma/configuration_paligemma.pyr.   PaliGemmaConfig.__init__N   sl    "3,&*"'d(($///;}/Ll+Rg ,' "0l0K!L!]}!]D"!/0E!F"& "$$&! %	"D 'd&&--EQU`E`L(AfmK%-k,.GHW;WD -g6 "$"'$%$%#(% D .2-?-?-J-JdN`N`NkNk-kpq,q),:)"6"    )r   r   r'   r)   r   r   )NNi  r   r"   r"   )__name__
__module____qualname____firstlineno____doc__r   attribute_mapr   sub_configskeys_to_ignore_at_inferencer.   __static_attributes____classcell__)r1   s   @r2   r	   r	      sP    ,\ J-M #-zJK#4"5  1# 1#r4   r	   N)r9   configuration_utilsr   utilsr   autor   r   
get_loggerr5   loggerr	   __all__r(   r4   r2   <module>rE      s?    # 3  - 
		H	%g#& g#T 
r4   