§
    ‚Štj?=  ã                   ó.  — d dl mZ d dlZd dlmZ d dlm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 dd	lmZ dd
lmZmZmZ ddlmZmZmZmZmZmZ ddlm Z  ddl!m"Z"m#Z#  ej$        e%¦  «        Z& ed¬¦  «        e G d„ de¦  «        ¦   «         ¦   «         Z' G d„ de¦  «        Z( G d„ de"¦  «        Z) G d„ de¦  «        Z* G d„ de¦  «        Z+ G d„ de¦  «        Z, G d„ de¦  «        Z-e G d„ d e¦  «        ¦   «         Z. G d!„ d"e¦  «        Z/g d#¢Z0dS )$é    )ÚCallableN)Ústricté   )Úinitialization)ÚPreTrainedConfig)ÚBaseModelOutputÚBaseModelOutputWithPooling)ÚALL_ATTENTION_FUNCTIONSÚPreTrainedModel)ÚUnpack)ÚTransformersKwargsÚauto_docstringÚloggingé   )ÚCLIPMLPÚCLIPAttentionÚCLIPEncoderÚCLIPEncoderLayerÚCLIPVisionEmbeddingsÚCLIPVisionModel)Úeager_attention_forward)ÚVisionRotaryEmbeddingÚapply_rotary_pos_emb_visionz&DeepGlint-AI/mlcd-vit-bigG-patch14-336)Ú
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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Zeed<   dS )ÚMLCDVisionConfigav  
    num_key_value_groups (`int`, *optional*, defaults to 1):
        Number of key-value groups used in Attention.

    Example:

    ```python
    >>> from transformers import MLCDVisionConfig, MLCDVisionModel

    >>> # Initializing a MLCDVisionConfig with DeepGlint-AI/mlcd-vit-bigG-patch14-336 style configuration
    >>> configuration = MLCDVisionConfig()

    >>> # Initializing a MLCDVisionModel (with random weights) from the DeepGlint-AI/mlcd-vit-bigG-patch14-336 style configuration
    >>> model = MLCDVisionModel(configuration)

    >>> # Accessing the model configuration
    >>> configuration = model.config
    ```Úmlcd_vision_modelÚvision_configi€  Úhidden_sizei    Úintermediate_sizeé0   Únum_hidden_layersé   Únum_attention_headsé   Únum_key_value_groupsr   Únum_channelsiP  Ú
image_sizeé   Ú
patch_sizeÚgeluÚ
hidden_actgñhãˆµøä>Úlayer_norm_epsç        Úattention_dropoutg{®Gáz”?Úinitializer_rangeç      ð?Úinitializer_factorN)Ú__name__Ú
__module__Ú__qualname__Ú__doc__Ú
model_typeÚbase_config_keyr   ÚintÚ__annotations__r    r"   r$   r&   r'   r(   ÚlistÚtupler*   r,   Ústrr-   Úfloatr/   r0   r2   © ó    úc/var/www/html/CA-Chatbot/venv/lib/python3.11/site-packages/transformers/models/mlcd/modular_mlcd.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dS )ÚMLCDMLPN©r3   r4   r5   r?   r@   rA   rC   rC   Q   ó   € € € € € Ø€Dr@   rC   c                   ó   — e Zd ZdS )ÚMLCDRotaryEmbeddingNrD   r?   r@   rA   rG   rG   U   rE   r@   rG   c                   óH   ‡ — e Zd Zdefˆ fd„Zdej        dej        fd„Zˆ xZ	S )ÚMLCDVisionEmbeddingsÚconfigc                 óN   •— t          ¦   «                              |¦  «         | `d S ©N)ÚsuperÚ__init__Úposition_embedding©ÚselfrJ   Ú	__class__s     €rA   rN   zMLCDVisionEmbeddings.__init__Z   s'   ø€ Ý‰Œ×Ò˜Ñ Ô Ð ØÐ#Ð#Ð#r@   Úpixel_valuesÚreturnc                 óN  — |j         d         }| j        j        j        }|                      |                     |¬¦  «        ¦  «        }|                     d¦  «                             dd¦  «        }| j                             |dd¦  «        }t          j
        ||gd¬¦  «        }|S )Nr   ©Údtyper   r%   éÿÿÿÿ©Údim)ÚshapeÚpatch_embeddingÚweightrW   ÚtoÚflattenÚ	transposeÚclass_embeddingÚexpandÚtorchÚcat)rQ   rS   Ú
batch_sizeÚtarget_dtypeÚpatch_embedsÚclass_embedsÚ
embeddingss          rA   ÚforwardzMLCDVisionEmbeddings.forward^   sš   € Ø!Ô'¨Ô*ˆ
ØÔ+Ô2Ô8ˆà×+Ò+¨L¯OªOÀ,¨OÑ,OÔ,OÑPÔPˆØ#×+Ò+¨AÑ.Ô.×8Ò8¸¸AÑ>Ô>ˆàÔ+×2Ò2°:¸qÀ"ÑEÔEˆÝ”Y ¨lÐ;ÀÐCÑCÔCˆ
àÐr@   )
r3   r4   r5   r   rN   rc   ÚFloatTensorÚTensorrj   Ú__classcell__©rR   s   @rA   rI   rI   Y   sl   ø€ € € € € ð$Ð/ð $ð $ð $ð $ð $ð $ð
 EÔ$5ð 
¸%¼,ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
r@   rI   c                   ó¼   ‡ — e Zd ZdZdefˆ fd„Z	 ddej        deej        ej        f         dej        dz  de	e
         d	eej        ej        dz  f         f
d
„Zˆ xZS )ÚMLCDAttentionzÿMulti-headed attention with RoPE. Refer to papers:
    - Attention is all you need:
        https://huggingface.co/papers/1706.03762
    - RoFormer: Enhanced Transformer with Rotary Position Embedding:
        https://huggingface.co/papers/2104.09864
    rJ   c                 óp   •— t          ¦   «                              |¦  «         |j        | _        d| _        d S )NF)rM   rN   r&   Ú	is_causalrP   s     €rA   rN   zMLCDAttention.__init__s   s1   ø€ Ý‰Œ×Ò˜Ñ Ô Ð Ø$*Ô$?ˆÔ!ØˆŒˆˆr@   NÚhidden_statesÚposition_embeddingsÚattention_maskÚkwargsrT   c                 óê  — |j         d d…         \  }}|                      |¦  «                             ||| j        | j        f¦  «        }|                      |¦  «                             ||| j        | j        f¦  «        }|                      |¦  «                             ||| j        | j        f¦  «        }	|d                              d¦  «                             ¦   «         }
|d                              d¦  «                             ¦   «         }t          |||
|¦  «        \  }}| 
                    dddd¦  «                             ¦   «         }| 
                    dddd¦  «                             ¦   «         }|	 
                    dddd¦  «                             ¦   «         }	t          j        | j        j        t           ¦  «        } || |||	|f| j        sdn| j        | j        | j        dœ|¤Ž\  }}| 
                    dddd¦  «                             ¦   «         }|                     ||d¦  «        }|                      |¦  «        }| 
                    ddd¦  «                             ¦   «         }||fS )NrX   r   r%   r   r   r.   )ÚdropoutÚscalingrr   )r[   Úq_projÚreshapeÚ	num_headsÚhead_dimÚk_projÚv_projÚ	unsqueezer>   r   ÚpermuteÚ
contiguousr
   Úget_interfacerJ   Ú_attn_implementationr   Útrainingrx   Úscalerr   ÚviewÚout_proj)rQ   rs   rt   ru   rv   re   Ú
seq_lengthÚquery_statesÚ
key_statesÚvalue_statesÚcosÚsinÚattention_interfaceÚattn_outputÚattn_weightss                  rA   rj   zMLCDAttention.forwardx   st  € ð "/Ô!4°S°b°SÔ!9Ñˆ
�Jð —{’{ =Ñ1Ô1×9Ò9¸:ÀzÐSWÔSaÐcgÔcpÐ:qÑrÔrˆØ—[’[ Ñ/Ô/×7Ò7¸ÀZÐQUÔQ_ÐaeÔanÐ8oÑpÔpˆ
Ø—{’{ =Ñ1Ô1×9Ò9¸:ÀzÐSWÔSaÐcgÔcpÐ:qÑrÔrˆð " !Ô$×.Ò.¨qÑ1Ô1×7Ò7Ñ9Ô9ˆØ! !Ô$×.Ò.¨qÑ1Ô1×7Ò7Ñ9Ô9ˆÝ#>¸|ÈZÐY\Ð^aÑ#bÔ#bÑ ˆ�jð $×+Ò+¨A¨q°!°QÑ7Ô7×BÒBÑDÔDˆØ×'Ò'¨¨1¨a°Ñ3Ô3×>Ò>Ñ@Ô@ˆ
Ø#×+Ò+¨A¨q°!°QÑ7Ô7×BÒBÑDÔDˆå(?Ô(MØŒKÔ,Õ.Eñ)
ô )
Ðð %8Ð$7ØØØØØð
%
ð  $œ}Ð>�C�C°$´,Ø”JØ”nð
%
ð 
%
ð ð
%
ð 
%
Ñ!ˆ�\ð "×)Ò)¨!¨Q°°1Ñ5Ô5×@Ò@ÑBÔBˆØ!×&Ò& z°:¸rÑBÔBˆØ—m’m KÑ0Ô0ˆØ!×)Ò)¨!¨Q°Ñ2Ô2×=Ò=Ñ?Ô?ˆØ˜LÐ(Ð(r@   rL   )r3   r4   r5   r6   r   rN   rc   rl   r<   r   r   rj   rm   rn   s   @rA   rp   rp   k   sÍ   ø€ € € € € ðð ðÐ/ð ð ð ð ð ð ð /3ð	,)ð ,)à”|ð,)ð # 5¤<°´Ð#=Ô>ð,)ð œ tÑ+ð	,)ð
 Ð+Ô,ð,)ð 
ˆuŒ|˜Uœ\¨DÑ0Ð0Ô	1ð,)ð ,)ð ,)ð ,)ð ,)ð ,)ð ,)ð ,)r@   rp   c                   ó¤   ‡ — e Zd Zdefˆ fd„Z	 d
dej        deej        ej        f         dej        dz  dee	         deej
                 f
d	„Zˆ xZS )ÚMLCDEncoderLayerrJ   c                 ór   •— t          ¦   «                              |¦  «         t          |¦  «        | _        d S rL   )rM   rN   rp   Ú	self_attnrP   s     €rA   rN   zMLCDEncoderLayer.__init__¨   s.   ø€ Ý‰Œ×Ò˜Ñ Ô Ð Ý& vÑ.Ô.ˆŒˆˆr@   Nrs   rt   ru   rv   rT   c                 óÈ   — |}|                       |¦  «        } | j        d|||dœ|¤Ž\  }}||z   }|}|                      |¦  «        }|                      |¦  «        }||z   }|S )a¸  
        Args:
            hidden_states (`torch.FloatTensor`):
                Input to the layer of shape `(batch, seq_len, embed_dim)`.
                Represents the hidden states from the previous layer or the input embeddings.
            position_embeddings (`tuple[torch.Tensor, torch.Tensor]`):
                A tuple of two tensors, each of shape `(batch, seq_len, embed_dim)`.
                Represents absolute positional embeddings for the query and key in the attention mechanism.
            attention_mask (`torch.FloatTensor`):
                Attention mask of shape `(batch, 1, q_len, k_v_seq_len)` where padding elements are indicated by very large negative values.
        )rs   rt   ru   r?   )Úlayer_norm1r•   Úlayer_norm2Úmlp)rQ   rs   rt   ru   rv   ÚresidualÚ_s          rA   rj   zMLCDEncoderLayer.forward¬   s–   € ð$ !ˆà×(Ò(¨Ñ7Ô7ˆØ)˜4œ>ð 
Ø'Ø 3Ø)ð
ð 
ð ð	
ð 
Ñˆ�qð ! =Ñ0ˆà ˆØ×(Ò(¨Ñ7Ô7ˆØŸš Ñ/Ô/ˆØ  =Ñ0ˆàÐr@   rL   )r3   r4   r5   r   rN   rc   rl   r<   r   r   rk   rj   rm   rn   s   @rA   r“   r“   §   s¸   ø€ € € € € ð/Ð/ð /ð /ð /ð /ð /ð /ð /3ð	"ð "à”|ð"ð # 5¤<°´Ð#=Ô>ð"ð œ tÑ+ð	"ð
 Ð+Ô,ð"ð 
ˆuÔ Ô	!ð"ð "ð "ð "ð "ð "ð "ð "r@   r“   c                   ó˜   ‡ — e Zd ZdZdefˆ fd„Z	 ddej        deej	        ej	        f         dej	        dz  de
e         d	eez  f
d
„Zˆ xZS )ÚMLCDEncoderz³
    Transformer encoder consisting of `config.num_hidden_layers` self attention layers. Each layer is a
    [`MLCDEncoderLayer`].

    Args:
        config: MLCDVisionConfig
    rJ   c                 óJ   •— t          ¦   «                              |¦  «         dS )z3Overwrite dummy `MLCDConfig` to `MLCDVisionConfig`.N)rM   rN   rP   s     €rA   rN   zMLCDEncoder.__init__Ú   s!   ø€ å‰Œ×Ò˜Ñ Ô Ð Ð Ð r@   NÚinputs_embedsrt   ru   rv   rT   c                 óP   — |}| j         D ]} ||||fi |¤Ž}Œt          |¬¦  «        S )a=  
        Args:
            inputs_embeds (`torch.FloatTensor` of shape `(batch_size, sequence_length, hidden_size)`):
                Optionally, instead of passing `input_ids` you can choose to directly pass an embedded representation.
                This is useful if you want more control over how to convert `input_ids` indices into associated vectors
                than the model's internal embedding lookup matrix.
            position_embeddings (`tuple[torch.Tensor, torch.Tensor]`):
                A tuple of two tensors, each of shape `(batch, seq_len, embed_dim)`.
                Represents absolute positional embeddings for the query and key in the attention mechanism.
            attention_mask (`torch.Tensor` of shape `(batch_size, sequence_length)`, *optional*):
                Mask to avoid performing attention on padding token indices. Mask values selected in `[0, 1]`:
                - 1 for tokens that are **not masked**,
                - 0 for tokens that are **masked**.
                [What are attention masks?](../glossary#attention-mask)
        )Úlast_hidden_state)Úlayersr   )rQ   rŸ   rt   ru   rv   rs   Úencoder_layers          rA   rj   zMLCDEncoder.forwardÞ   sa   € ð, &ˆØ!œ[ð 	ð 	ˆMØ)˜MØØ#Øðð ð ð	ð ˆMˆMõ Ø+ð
ñ 
ô 
ð 	
r@   rL   )r3   r4   r5   r6   r   rN   rc   rk   r<   rl   r   r   r   rj   rm   rn   s   @rA   r�   r�   Ñ   sÀ   ø€ € € € € ðð ð!Ð/ð !ð !ð !ð !ð !ð !ð /3ð	!
ð !
àÔ(ð!
ð # 5¤<°´Ð#=Ô>ð!
ð œ tÑ+ð	!
ð
 Ð+Ô,ð!
ð 
�Ñ	 ð!
ð !
ð !
ð !
ð !
ð !
ð !
ð !
r@   r�   c                   ó€   ‡ — e Zd ZU eed<   dZdgZdZdZdZ	dZ
dZdZeedœZ ej        ¦   «         ˆ fd„¦   «         Zˆ xZS )ÚMLCDPreTrainedModelrJ   Úvision_modelr“   TF)rs   Ú
attentionsc                 ó`  •— t          ¦   «                              |¦  «         | j        j        }t	          |t
          ¦  «        r±| j        j        }t          j        |j        d|j	        dz  |z  ¬¦  «         t          j        |j
        j        |j        j        |z  ¬¦  «         t          j        |j        t          j        |j        j        d         ¦  «                             d¦  «        ¦  «         dS t	          |t&          ¦  «        r»| j        j        }|j	        dz  d|j        j        z  dz  z  |z  }|j	        dz  |z  }t          j        |j        j        |¬¦  «         t          j        |j        j        |¬¦  «         t          j        |j        j        |¬¦  «         t          j        |j        j        |¬¦  «         dS t	          |t2          ¦  «        rˆ| j        j        }|j        j        dz  d|j        j        z  dz  z  |z  }d|j        j        z  dz  |z  }t          j        |j        j        |¬¦  «         t          j        |j        j        |¬¦  «         dS t	          |t:          ¦  «        rL| j        j        }|j        j        |j        j        z  dz  dz  |z  }t          j        |j        d|¬¦  «         dS t	          |t@          ¦  «        rVd|j!        t          j        d	|j"        dt          j#        ¬
¦  «        |j"        z  z  z  }t          j        |j$        |¦  «         dS dS )zInitialize the weightsr.   g      à¿)ÚmeanÚstd)rª   rX   )r%   rX   r   r1   r   rV   N)%rM   Ú_init_weightsrJ   r2   Ú
isinstancerI   ÚinitÚnormal_ra   Ú	embed_dimr\   r]   r0   Úcopy_Úposition_idsrc   Úaranger[   rb   rp   r"   rz   r~   r   rˆ   rC   r   Úfc1Úfc2ÚMLCDVisionModelr$   Úclass_pos_embrG   ÚthetarZ   r>   Úinv_freq)	rQ   ÚmoduleÚfactorÚin_proj_stdÚout_proj_stdÚfc_stdÚpos_emb_stdr¸   rR   s	           €rA   r«   z!MLCDPreTrainedModel._init_weights  sü  ø€ õ 	‰Œ×Ò˜fÑ%Ô%Ð%Ø”Ô/ˆÝ�fÕ2Ñ3Ô3ð 	2Ø”[Ô3ˆFÝŒL˜Ô/°c¸vÔ?OÐQUÑ?UÐX^Ñ?^Ð_Ñ_Ô_Ð_ÝŒL˜Ô/Ô6¸F¼MÔ<[Ð^dÑ<dÐeÑeÔeÐeÝŒJ�vÔ*­E¬L¸Ô9LÔ9RÐSUÔ9VÑ,WÔ,W×,^Ò,^Ð_fÑ,gÔ,gÑhÔhÐhÐhÐhÝ˜¥Ñ.Ô.ð 	2Ø”[Ô3ˆFØ!Ô+¨TÑ1°q¸6¼=Ô;ZÑ7ZÐ_cÑ6cÑdÐgmÑmˆKØ"Ô,¨dÑ2°fÑ<ˆLÝŒL˜œÔ-°;Ð?Ñ?Ô?Ð?ÝŒL˜œÔ-°;Ð?Ñ?Ô?Ð?ÝŒL˜œÔ-°;Ð?Ñ?Ô?Ð?ÝŒL˜œÔ/°\ÐBÑBÔBÐBÐBÐBÝ˜¥Ñ(Ô(ð 	2Ø”[Ô3ˆFØ!œ=Ô4°dÑ:ÀÀFÄMÔDcÑ@cÐhlÑ?lÑmÐpvÑvˆKØ˜&œ-Ô3Ñ3¸Ñ<¸vÑEˆFÝŒL˜œÔ*°Ð7Ñ7Ô7Ð7ÝŒL˜œÔ*°Ð<Ñ<Ô<Ð<Ð<Ð<Ý˜¥Ñ0Ô0ð 	2Ø”[Ô3ˆFØ!œ=Ô4¸¼Ô8YÑYÐ]^Ñ^ÐcgÑgÐjpÑpˆKÝŒL˜Ô-°C¸[ÐIÑIÔIÐIÐIÐIÝ˜Õ 3Ñ4Ô4ð 	2Ø˜fœl­u¬|¸A¸v¼zÈ1ÕTYÔT_Ð/`Ñ/`Ô/`ÐciÔcmÑ/mÑnÑoˆHÝŒJ�v”¨Ñ1Ô1Ð1Ð1Ð1ð	2ð 	2r@   )r3   r4   r5   r   r:   Úbase_model_prefixÚ_no_split_modulesÚsupports_gradient_checkpointingÚaccepts_loss_kwargsÚ_supports_flash_attnÚ_supports_sdpaÚ_supports_flex_attnÚ_supports_attention_backendr“   rp   Ú_can_record_outputsrc   Úno_gradr«   rm   rn   s   @rA   r¥   r¥     sŸ   ø€ € € € € € àÐÐÑØ&ÐØ+Ð,ÐØ&*Ð#ØÐØÐØ€NØÐØ"&Ðà)Ø#ðð Ðð
 €U„]�_„_ð2ð 2ð 2ð 2ñ „_ð2ð 2ð 2ð 2ð 2r@   r¥   c                   ó^   ‡ — e Zd Zdefˆ fd„Z	 ddej        dz  dee         de	e
z  fd„Zˆ xZS )	rµ   rJ   c                 ó
  •— t          ¦   «                              |¦  «         t          |j        |j        z  dz  ¦  «        | _        t          j        t          j	        d|j        |j        z  dz  ¦  «        ¦  «        | _
        d S )Nr   r%   )rM   rN   rG   r   r$   Úvision_rotary_embeddingÚnnÚ	Parameterrc   Úrandnr¶   rP   s     €rA   rN   zMLCDVisionModel.__init__4  sr   ø€ Ý‰Œ×Ò˜Ñ Ô Ð Ý':¸6Ô;MÐQWÔQkÑ;kÐopÑ;pÑ'qÔ'qˆÔ$Ýœ\­%¬+°a¸Ô9KÈvÔOiÑ9iÐmnÑ9nÑ*oÔ*oÑpÔpˆÔÐÐr@   NrS   rv   rT   c                 óÞ  — |€t          d¦  «        ‚|j        d         | j        j        z  }|j        d         | j        j        z  }t	          j        ||j        ¬¦  «                             d¦  «                             d|¦  «        }t	          j        ||j        ¬¦  «                             d¦  «                             |d¦  «        }t	          j	        | 
                    ¦   «         | 
                    ¦   «         gd¬¦  «        }|                      |¦  «        }t	          j        | j        |gd¬¦  «        }t	          j        ||fd¬¦  «        }	|	                     ¦   «         |	                     ¦   «         f}
|                      |¦  «        }|                      |¦  «        } | j        d||
d	œ|¤Ž}|d         }|dd…ddd…f         }|                      |¦  «        }t)          ||¬
¦  «        S )aû  
        Example:

        ```python
        >>> import httpx
        >>> from io import BytesIO
        >>> from PIL import Image
        >>> from transformers import AutoProcessor, MLCDVisionModel
        >>> model = MLCDVisionModel.from_pretrained("DeepGlint-AI/mlcd-vit-bigG-patch14-448")
        >>> processor = AutoProcessor.from_pretrained("DeepGlint-AI/mlcd-vit-bigG-patch14-448")

        >>> url = "http://images.cocodataset.org/val2017/000000039769.jpg"
        >>> with httpx.stream("GET", url) as response:
        ...     image = Image.open(BytesIO(response.read()))
        >>> inputs = processor(images=image, return_tensors="pt")

        >>> with torch.no_grad():
        ...     outputs = model(**inputs, output_attentions=True)

        >>> features = outputs.last_hidden_state
        >>> print(f"Extracted features shape: {features.shape}")
        >>> print(f"Number of attention layers: {len(outputs.attentions)}")
        >>> print(f"Attention shape: {outputs.attentions[0].shape}")
        ```Nz You have to specify pixel_valueséþÿÿÿrX   )Údevicer%   r   rY   )rŸ   rt   )r¡   Úpooler_outputr?   )Ú
ValueErrorr[   rJ   r*   rc   r²   rÑ   r€   rb   Ústackr_   rË   rd   r¶   r�   rŽ   ri   Úpre_layrnormÚencoderÚpost_layernormr	   )rQ   rS   rv   Únum_patches_heightÚnum_patches_widthÚhpos_idsÚwpos_idsÚpos_idsÚrotary_pos_embÚembrt   rs   Úencoder_outputsr¡   Úpooled_outputs                  rA   rj   zMLCDVisionModel.forward9  sÿ  € ð: ÐÝÐ?Ñ@Ô@Ð@à)Ô/°Ô3°t´{Ô7MÑMÐØ(Ô.¨rÔ2°d´kÔ6LÑLÐåŒLÐ+°LÔ4GÐHÑHÔH×RÒRÐSTÑUÔU×\Ò\Ð]_ÐarÑsÔsð 	õ ŒLÐ*°<Ô3FÐGÑGÔG×QÒQÐRSÑTÔT×[Ò[Ð\nÐprÑsÔsð 	õ ”+˜x×/Ò/Ñ1Ô1°8×3CÒ3CÑ3EÔ3EÐFÈBÐOÑOÔOˆØ×5Ò5°gÑ>Ô>ˆÝœ DÔ$6¸Ð#GÈQÐOÑOÔOˆÝŒi˜¨Ð8¸bÐAÑAÔAˆØ"Ÿwšw™yœy¨#¯'ª'©)¬)Ð4ÐàŸš¨Ñ5Ô5ˆØ×)Ò)¨-Ñ8Ô8ˆà&˜$œ,ð 
Ø'Ø 3ð
ð 
ð ð
ð 
ˆð ,¨AÔ.ÐØ)¨!¨!¨!¨Q°°°¨'Ô2ˆØ×+Ò+¨MÑ:Ô:ˆå)Ø/Ø'ð
ñ 
ô 
ð 	
r@   rL   )r3   r4   r5   r   rN   rc   rk   r   r   r<   r	   rj   rm   rn   s   @rA   rµ   rµ   3  sš   ø€ € € € € ðqÐ/ð qð qð qð qð qð qð 26ð>
ð >
àÔ'¨$Ñ.ð>
ð Ð+Ô,ð>
ð 
Ð+Ñ	+ð	>
ð >
ð >
ð >
ð >
ð >
ð >
ð >
r@   rµ   )r   r¥   rµ   )1Úcollections.abcr   rc   Útorch.nnrÌ   Úhuggingface_hub.dataclassesr   Ú r   r­   Úconfiguration_utilsr   Úmodeling_outputsr   r	   Úmodeling_utilsr
   r   Úprocessing_utilsr   Úutilsr   r   r   Úclip.modeling_clipr   r   r   r   r   r   Úllama.modeling_llamar   Úqwen2_vl.modeling_qwen2_vlr   r   Ú
get_loggerr3   Úloggerr   rC   rG   rI   rp   r“   r�   r¥   rµ   Ú__all__r?   r@   rA   ú<module>rð      s-  ðð %Ð $Ð $Ð $Ð $Ð $à €€€Ø Ð Ð Ð Ð Ð Ø .Ð .Ð .Ð .Ð .Ð .à &Ð &Ð &Ð &Ð &Ð &Ø 3Ð 3Ð 3Ð 3Ð 3Ð 3Ø KÐ KÐ KÐ KÐ KÐ KÐ KÐ KØ FÐ FÐ FÐ FÐ FÐ FÐ FÐ FØ &Ð &Ð &Ð &Ð &Ð &Ø @Ð @Ð @Ð @Ð @Ð @Ð @Ð @Ð @Ð @ðð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ;Ð :Ð :Ð :Ð :Ð :Ø [Ð [Ð [Ð [Ð [Ð [Ð [Ð [ð 
ˆÔ	˜HÑ	%Ô	%€ð €ÐCÐDÑDÔDØð#$ð #$ð #$ð #$ð #$Ð'ñ #$ô #$ñ „ñ EÔDð#$ðL	ð 	ð 	ð 	ð 	ˆgñ 	ô 	ð 	ð	ð 	ð 	ð 	ð 	Ð/ñ 	ô 	ð 	ðð ð ð ð Ð/ñ ô ð ð$9)ð 9)ð 9)ð 9)ð 9)�Mñ 9)ô 9)ð 9)ðx'ð 'ð 'ð 'ð 'Ð'ñ 'ô 'ð 'ðT.
ð .
ð .
ð .
ð .
�+ñ .
ô .
ð .
ðb ð-2ð -2ð -2ð -2ð -2˜/ñ -2ô -2ñ „ð-2ð`D
ð D
ð D
ð D
ð D
�oñ D
ô D
ð D
ðNð ð €€€r@   