§
    ‚Štjæ  ã                   óZ  — 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dS )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<   dS )Ú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!   © ó    úq/var/www/html/CA-Chatbot/venv/lib/python3.11/site-packages/transformers/models/idefics2/configuration_idefics2.pyr   r      s  € € € € € € ðð ð" #€JØ%€Oà€K�ÐÐÑØ!Ð�sÐ!Ð!Ñ!ØÐ�sÐÐÑØ!Ð˜Ð!Ð!Ñ!Ø€L�#ÐÐÑØ47€J��d˜3”i‘ %¨¨S¨¤/Ñ1Ð7Ð7Ñ7Ø46€J��d˜3”i‘ %¨¨S¨¤/Ñ1Ð6Ð6Ñ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dS )Ú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                 ód   — | j         | j        k    rt          d| j         › d| j        › �¦  «        ‚dS )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   sQ   € àÔ# dÔ&<Ò<Ð<Ýð? tÔ'?ð ?ð ?Ø&*Ô&<ð?ð ?ñô ð ð =Ð<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                               d¦  «         n0t	          | j         t
          ¦  «        rt          di | j         ¤Ž| _         | j        €.t          ¦   «         | _        t                               d¦  «         n0t	          | j        t
          ¦  «        rt          di | j        ¤Ž| _        t	          | j        t
          ¦  «        rK| j         	                    dd¦  «        | j        d<   t          | j        d                  di | j        ¤Ž| _        n>| j        €7t                               d¦  «         t          d         ddd¬	¦  «        | _        | j        j        | j         j        k    rF| j        j        | j         _        | j        j        | j         _        t                               d
¦  «          t          ¦   «         j        di |¤Ž d S )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ÔRÐRÐRÝ˜Ô-­tÑ4Ô4ð 	UÝ$;Ð$TÐ$T¸dÔ>SÐ$TÐ$TˆDÔ!àÔÐ%Ý!5Ñ!7Ô!7ˆDÔÝ�KŠKÐLÑMÔMÐMÐMÝ˜Ô*­DÑ1Ô1ð 	LÝ!5Ð!KÐ!K¸Ô8JÐ!KÐ!KˆDÔå�dÔ&­Ñ-Ô-ð 
	Ø-1Ô-=×-AÒ-AÀ,ÐPYÑ-ZÔ-ZˆDÔ˜\Ñ*Ý-¨dÔ.>¸|Ô.LÔMÐaÐaÐPTÔP`ÐaÐaˆDÔÐØÔÐ%Ý�KŠKÐHÑIÔIÐIÝ-¨iÔ8Ø(0Ø!àð	 ñ  ô  ˆDÔð ÔÔ'¨4Ô+@Ô+LÒLÐLØ04Ô0@Ô0LˆDÔ!Ô-Ø15Ô1AÔ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Ð8Ñ8Ø7;Ð�dÐ-Ñ-°Ñ4Ð;Ð;Ñ;Ø26€K�Ð(Ñ(¨4Ñ/Ð6Ð6Ñ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      sz  ðð #Ð "à .Ð .Ð .Ð .Ð .Ð .à 3Ð 3Ð 3Ð 3Ð 3Ð 3Ø ,Ð ,Ð ,Ð ,Ð ,Ð ,Ð ,Ð ,Ø -Ð -Ð -Ð -Ð -Ð -Ð -Ð -ð 
ˆÔ	˜HÑ	%Ô	%€ð €Ð6Ð7Ñ7Ô7Øð$ð $ð $ð $ð $Ð+ñ $ô $ñ „ñ 8Ô7ð$ðD €Ð6Ð7Ñ7Ô7Øðð ð ð ð Ð.ñ ô ñ „ñ 8Ô7ððD €Ð6Ð7Ñ7Ô7Øð?(ð ?(ð ?(ð ?(ð ?(Ð%ñ ?(ô ?(ñ „ñ 8Ô7ð?(ðD PÐ
OÐ
O€€€r/   