ó
    qyüiæ  ã                   ó  • S r SSKJr  SSKJr  SSKJrJr  SSKJ	r	J
r
  \R                  " \5      r\" SS	9\ " S
 S\5      5       5       r\" SS	9\ " S S\5      5       5       r\" SS	9\ " S S\5      5       5       r/ SQrg)zIdefics2 model configurationé    )Ústricté   )ÚPreTrainedConfig)Úauto_docstringÚloggingé   )ÚCONFIG_MAPPINGÚ
AutoConfigzHuggingFaceM4/idefics2-8b)Ú
checkpointc                   óú   • \ rS rSr% SrSrSrSr\\	S'   Sr
\\	S'   S	r\\	S
'   S	r\\	S'   Sr\\	S'   Sr\\\   -  \\\4   -  \	S'   Sr\\\   -  \\\4   -  \	S'   Sr\\	S'   Sr\\	S'   Sr\\-  \	S'   Sr\\	S'   Srg)ÚIdefics2VisionConfigé   aY  
Example:

```python
>>> from transformers.models.idefics2.modeling_idefics2 import Idefics2VisionTransformer
>>> from transformers.models.idefics2.configuration_idefics2 import Idefics2VisionConfig

>>> # Initializing a Idefics2VisionConfig with google/siglip-base-patch16-224 style configuration
>>> configuration = Idefics2VisionConfig()

>>> # Initializing a Idefics2VisionTransformer (with random weights) from the google/siglip-base-patch16-224 style configuration
>>> model = Idefics2VisionTransformer(configuration)

>>> # Accessing the model configuration
>>> configuration = model.config
```Úidefics2_visionÚvision_configi   Úhidden_sizei   Úintermediate_sizeé   Únum_hidden_layersÚnum_attention_headsr   Únum_channelséà   Ú
image_sizeé    Ú
patch_sizeÚgelu_pytorch_tanhÚ
hidden_actç�íµ ÷Æ°>Úlayer_norm_epsç        Úattention_dropoutç{®Gáz”?Úinitializer_range© N)Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__Ú
model_typeÚbase_config_keyr   ÚintÚ__annotations__r   r   r   r   r   ÚlistÚtupler   r   Ústrr   Úfloatr    r"   Ú__static_attributes__r#   ó    Úp/home/mande/repo/quber/.venv/lib/python3.13/site-packages/transformers/models/idefics2/configuration_idefics2.pyr   r      s´   ‡ ñð" #€JØ%€Oà€K�ÓØ!Ð�sÓ!ØÐ�sÓØ!Ð˜Ó!Ø€L�#ÓØ47€J��d˜3‘i‘ %¨¨S¨¡/Ñ1Ó7Ø46€J��d˜3‘i‘ %¨¨S¨¡/Ñ1Ó6Ø)€J�Ó)Ø €N�EÓ Ø%(Ð�u˜s‘{Ó(Ø#Ð�uÖ#r2   r   c                   ó¶   • \ rS rSr% SrSrSr\\S'   Sr	\
\S'   Sr\\S	'   S
r\
\S'   Sr\
\S'   Sr\
\S'   Sr\
\S'   Sr\
\S'   Sr\\
-  \S'   Sr\\S'   S rSrg)ÚIdefics2PerceiverConfigé=   a4  
resampler_n_latents (`int`, *optional*, defaults to 64):
    Number of latent embeddings to resample ("compress") the input sequence to (usually < 128).
resampler_depth (`int`, *optional*, defaults to 3):
    Depth of the Perceiver Resampler (Transformer w/ cross attention). Should be shallow (<= 3).
resampler_n_heads (`int`, *optional*, defaults to 16):
    Number of heads in each Transformer block (for multi-headed self-attention).
resampler_head_dim (`int`, *optional*, defaults to 96):
    Dimensionality of each head projection in the Transformer block.
Úidefics2_perceiverÚsilur   i   r   r   Úrms_norm_epsé@   Úresampler_n_latentsr   Úresampler_depthé   Úresampler_n_headsé`   Úresampler_head_dimé   Únum_key_value_headsr   r    r!   r"   c                 ó‚   • U R                   U R                  :”  a%  [        SU R                    SU R                   35      eg)zOPart of `@strict`-powered validation. Validates the architecture of the config.znum_key_value_heads=z1 must be less than or equal to resampler_n_heads=N)rB   r>   Ú
ValueError)Úselfs    r3   Úvalidate_architectureÚ-Idefics2PerceiverConfig.validate_architectureX   sM   € à×#Ñ# d×&<Ñ&<Ó<ÜØ& t×'?Ñ'?Ð&@ð A&Ø&*×&<Ñ&<Ð%=ð?óð ð =r2   r#   N)r$   r%   r&   r'   r(   r)   r   r/   r,   r   r+   r9   r0   r;   r<   r>   r@   rB   r    r"   rF   r1   r#   r2   r3   r5   r5   =   s�   ‡ ñ	ð &€Jà€J�ÓØ€K�ÓØ€L�%ÓØ!Ð˜Ó!Ø€O�SÓØÐ�sÓØ Ð˜Ó Ø Ð˜Ó Ø%(Ð�u˜s‘{Ó(Ø#Ð�uÓ#õr2   r5   c                   ó¶   ^ • \ rS rSr% SrSr\\\S.r	Sr
\\S'   Sr\\S'   S	r\\S
'   Sr\\-  S-  \S'   Sr\\-  S-  \S'   Sr\\-  S-  \S'   U 4S jrSrU =r$ )ÚIdefics2Configéa   a¤  
perceiver_config (`IdeficsPerceiverConfig` or `dict`, *optional*):
    Custom perceiver config or dict

Example:
```python
>>> from transformers import Idefics2Model, Idefics2Config
>>> # Initializing configuration
>>> configuration = Idefics2Config()
>>> # Initializing a model from the configuration
>>> model = Idefics2Model(configuration)
>>> # Accessing the model configuration
>>> configuration = model.config
```Úidefics2)Útext_configÚperceiver_configr   TÚ	use_cachei}  Úimage_token_idFÚtie_word_embeddingsNr   rM   rL   c                 ó@  >• U R                   c%  [        5       U l         [        R                  S5        O9[	        U R                   [
        5      (       a  [        S0 U R                   D6U l         U R                  c%  [        5       U l        [        R                  S5        O9[	        U R                  [
        5      (       a  [        S0 U R                  D6U l        [	        U R                  [
        5      (       aU  U R                  R                  SS5      U R                  S'   [        U R                  S      " S0 U R                  D6U l        O6U R                  c)  [        R                  S5        [        S   " SSSS	9U l        U R                  R                  U R                   R                  :w  a_  U R                  R                  U R                   l        U R                  R                  U R                   l        [        R                  S
5        [        TU ]<  " S0 UD6  g )Nz7perciver_config is None, using default perceiver configz2vision_config is None, using default vision configr)   Úmistralz.text_config is None, using default text configi €  gñhãˆµøä>r   )Úmax_position_embeddingsr9   Úpad_token_idz×Perceiver config has a different `hidden_size` than text config, which means default values were used. In your model's config on the hub, add `hidden_size` and `rms_norm_eps` keys under the `perceiver_config` dict. r#   )rM   r5   ÚloggerÚinfoÚ
isinstanceÚdictr   r   rL   Úgetr	   r   r9   Úwarning_onceÚsuperÚ__post_init__)rE   ÚkwargsÚ	__class__s     €r3   r\   ÚIdefics2Config.__post_init__�   s«  ø€ Ø× Ñ Ñ(Ü$;Ó$=ˆDÔ!Ü�K‰KÐQÕRÜ˜×-Ñ-¬t×4Ñ4Ü$;Ñ$T¸d×>SÑ>SÑ$TˆDÔ!à×ÑÑ%Ü!5Ó!7ˆDÔÜ�K‰KÐLÕMÜ˜×*Ñ*¬D×1Ñ1Ü!5Ñ!K¸×8JÑ8JÑ!KˆDÔä�d×&Ñ&¬×-Ñ-Ø-1×-=Ñ-=×-AÑ-AÀ,ÐPYÓ-ZˆD×Ñ˜\Ñ*Ü-¨d×.>Ñ.>¸|Ñ.LÒMÑaÐPT×P`ÑP`ÑaˆDÕØ×ÑÑ%Ü�K‰KÐHÔIÜ-¨iÒ8Ø(0Ø!àñ	 ˆDÔð ×Ñ×'Ñ'¨4×+@Ñ+@×+LÑ+LÓLØ04×0@Ñ0@×0LÑ0LˆD×!Ñ!Ô-Ø15×1AÑ1A×1NÑ1NˆD×!Ñ!Ô.Ü×ÑðCôô
 	‰ÒÑ' Ó'r2   )rM   rL   r   )r$   r%   r&   r'   r(   r)   r
   r5   r   Úsub_configsrN   Úboolr,   rO   r+   rP   r   rX   r   rM   rL   r\   r1   Ú__classcell__)r^   s   @r3   rI   rI   a   sŠ   ø‡ ñð €Jà!Ø3Ø-ñ€Kð €IˆtÓØ €N�CÓ Ø %Ð˜Ó%Ø48€M�4Ð*Ñ*¨TÑ1Ó8Ø7;Ð�dÐ-Ñ-°Ñ4Ó;Ø26€K�Ð(Ñ(¨4Ñ/Ó6÷!(ó !(r2   rI   )rI   r5   r   N)r(   Úhuggingface_hub.dataclassesr   Úconfiguration_utilsr   Úutilsr   r   Úautor	   r
   Ú
get_loggerr$   rU   r   r5   rI   Ú__all__r#   r2   r3   Ú<module>ri      s±   ðñ #å .å 3ß ,ß -ð 
×	Ò	˜HÓ	%€ñ Ð6Ñ7Øô$Ð+ó $ó ó 8ð$ñD Ð6Ñ7ØôÐ.ó ó ó 8ðñD Ð6Ñ7Øô?(Ð%ó ?(ó ó 8ð?(òD P�r2   