Ë
    ÛÓ^jæ  ã                   ó  — d Z ddlmZ ddlmZ ddlmZmZ ddlm	Z	m
Z
  ej                  e«      Z ed¬	«      e G d
„ de«      «       «       Z ed¬	«      e G d„ de«      «       «       Z ed¬	«      e G d„ de«      «       «       Zg d¢Zy)zIdefics2 model configurationé    )Ústricté   )ÚPreTrainedConfig)Úauto_docstringÚloggingé   )ÚCONFIG_MAPPINGÚ
AutoConfigzHuggingFaceM4/idefics2-8b)Ú
checkpointc                   óò   — e Zd ZU dZdZdZdZeed<   dZ	eed<   dZ
eed	<   dZeed
<   dZeed<   dZeee   z  eeef   z  ed<   dZeee   z  eeef   z  ed<   dZeed<   dZeed<   dZeez  ed<   dZeed<   y)ÚIdefics2VisionConfiga…  
    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_rangeN)Ú__name__Ú
__module__Ú__qualname__Ú__doc__Ú
model_typeÚbase_config_keyr   ÚintÚ__annotations__r   r   r   r   r   ÚlistÚtupler   r   Ústrr   Úfloatr   r!   © ó    ú~/var/www/ramen.bs-engineer-server.com/venv/lib/python3.12/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Ô#r/   r   c                   ó®   — e Zd ZU dZdZdZeed<   dZe	ed<   dZ
eed<   d	Ze	ed
<   dZe	ed<   dZe	ed<   dZe	ed<   dZe	ed<   dZee	z  ed<   dZeed<   d„ Zy)ÚIdefics2PerceiverConfigaX  
    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                 ó€   — | j                   | j                  kD  r%t        d| j                   › d| j                  › �«      ‚y)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)r>   r:   Ú
ValueError)Úselfs    r0   Úvalidate_architecturez-Idefics2PerceiverConfig.validate_architectureX   sM   € à×#Ñ# d×&<Ñ&<Ò<ÜØ& t×'?Ñ'?Ð&@ð A&Ø&*×&<Ñ&<Ð%=ð?óð ð =r/   N)r"   r#   r$   r%   r&   r   r,   r)   r   r(   r5   r-   r7   r8   r:   r<   r>   r   r!   rB   r.   r/   r0   r2   r2   =   s�   … ñ	ð &€Jà€J�ÓØ€K�ÓØ€L�%ÓØ!Ð˜Ó!Ø€O�SÓØÐ�sÓØ Ð˜Ó Ø Ð˜Ó Ø%(Ð�u˜s‘{Ó(Ø#Ð�uÓ#ór/   r2   c                   ó¬   ‡ — e Zd ZU dZdZeeedœZdZ	e
ed<   dZeed<   dZe
ed	<   d
Zeez  d
z  ed<   d
Zeez  d
z  ed<   d
Zeez  d
z  ed<   ˆ fd„Zˆ xZS )ÚIdefics2ConfigaÔ  
    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   rG   rF   c                 ó  •— | j                   €%t        «       | _         t        j                  d«       n4t	        | j                   t
        «      rt        di | j                   ¤Ž| _         | j                  €%t        «       | _        t        j                  d«       n4t	        | j                  t
        «      rt        di | j                  ¤Ž| _        t	        | j                  t
        «      rT| j                  j                  dd«      | j                  d<   t        | j                  d      di | j                  ¤Ž| _        n7| j                  €+t        j                  d«       t        d   ddd¬	«      | _        | j                  j                  | j                   j                  k7  r_| j                  j                  | j                   _        | j                  j                  | j                   _        t        j                  d
«       t        ‰| �<  di |¤Ž y )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_embeddingsr5   Ú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.   )rG   r2   ÚloggerÚinfoÚ
isinstanceÚdictr   r   rF   Úgetr	   r   r5   Úwarning_onceÚsuperÚ__post_init__)rA   ÚkwargsÚ	__class__s     €r0   rV   zIdefics2Config.__post_init__�   s¢  ø€ Ø× Ñ Ð(Ü$;Ó$=ˆDÔ!Ü�K‰KÐQÕRÜ˜×-Ñ-¬tÔ4Ü$;Ñ$T¸d×>SÑ>SÑ$TˆDÔ!à×ÑÐ%Ü!5Ó!7ˆDÔÜ�K‰KÐLÕMÜ˜×*Ñ*¬DÔ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ôô
 	‰ÑÑ' Ó'r/   )r"   r#   r$   r%   r&   r
   r2   r   Úsub_configsrH   Úboolr)   rI   r(   rJ   r   rR   r   rG   rF   rV   Ú__classcell__)rX   s   @r0   rD   rD   a   sŠ   ø… ñð €Jà!Ø3Ø-ñ€Kð €IˆtÓØ €N�CÓ Ø %Ð˜Ó%Ø48€M�4Ð*Ñ*¨TÑ1Ó8Ø7;Ð�dÐ-Ñ-°Ñ4Ó;Ø26€K�Ð(Ñ(¨4Ñ/Ó6÷!(ð !(r/   rD   )rD   r2   r   N)r%   Úhuggingface_hub.dataclassesr   Úconfiguration_utilsr   Úutilsr   r   Úautor	   r
   Ú
get_loggerr"   rO   r   r2   rD   Ú__all__r.   r/   r0   ú<module>rb      s³   ðñ #å .å 3ß ,ß -ð 
ˆ×	Ñ	˜HÓ	%€ñ Ð6Ô7Øô$Ð+ó $ó ó 8ð$ñD Ð6Ô7ØôÐ.ó ó ó 8ðñD Ð6Ô7Øô?(Ð%ó ?(ó ó 8ð?(òD P�r/   