§
    ‚Š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m	Z	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mZmZmZmZmZ  ej        e¦  «        Zdej        dededej        fd„Z  G d„ de¦  «        Z! G d„ de¦  «        Z"e G d„ de¦  «        ¦   «         Z#e G d„ de¦  «        ¦   «         Z$e G d„ de¦  «        ¦   «         Z% G d„ de
e#¦  «        Z& G d„ de	e#¦  «        Z' G d„ d ee#¦  «        Z(g d!¢Z)dS )"é    )ÚCallableNé   )ÚCache)ÚFlashAttentionKwargs)ÚGenericForQuestionAnsweringÚ GenericForSequenceClassificationÚGenericForTokenClassification)ÚALL_ATTENTION_FUNCTIONS)ÚUnpack)Úauto_docstringÚloggingé   )ÚMistralAttentionÚMistralDecoderLayerÚMistralForCausalLMÚMistralModelÚMistralPreTrainedModelÚapply_rotary_pos_embÚeager_attention_forwardÚpositions_idsÚbetaÚmax_position_embeddingsÚreturnc           	      ó†   — d|t          j        dt          j        | |z  ¦  «        z   ¦  «        z  z   }|d d …d d d …d f         S )Né   )ÚtorchÚlogÚfloor)r   r   r   Úscalings       úo/var/www/html/CA-Chatbot/venv/lib/python3.11/site-packages/transformers/models/ministral3/modular_ministral3.pyÚget_llama_4_attn_scaler!      sL   € Ø�$�œ 1¥u¤{°=ÐCZÑ3ZÑ'[Ô'[Ñ#[Ñ\Ô\Ñ\Ñ\€GØ�1�1�1�d˜A˜A˜A˜tÐ#Ô$Ð$ó    c                   óº   — e Zd Z	 d
dej        deej        ej        f         dej        dz  dej        dedz  dee         deej        ej        dz  f         fd	„Z	dS )ÚMinistral3AttentionNÚhidden_statesÚposition_embeddingsÚattention_maskÚposition_idsÚpast_key_valuesÚkwargsr   c           
      ó  — |j         d d…         }g |¢d‘| j        ‘R }|                      |¦  «                             |¦  «                             dd¦  «        }	|                      |¦  «                             |¦  «                             dd¦  «        }
|                      |¦  «                             |¦  «                             dd¦  «        }|\  }}t          |	|
||¦  «        \  }	}
|	t          || j	        j
                             d¦  «        | j	        j
                             d¦  «        ¦  «                             |	j        ¦  «        z  }	|�|                     |
|| j        ¦  «        \  }
}t!          j        | j	        j        t&          ¦  «        } || |	|
||f| j        sdn| j        | j        t/          | j	        dd ¦  «        dœ|¤Ž\  }} |j        g |¢d‘R Ž                      ¦   «         }|                      |¦  «        }||fS )	Néÿÿÿÿr   r   Úllama_4_scaling_betaÚ original_max_position_embeddingsg        Úsliding_window)Údropoutr   r/   )ÚshapeÚhead_dimÚq_projÚviewÚ	transposeÚk_projÚv_projr   r!   ÚconfigÚrope_parametersÚgetÚtoÚdtypeÚupdateÚ	layer_idxr
   Úget_interfaceÚ_attn_implementationr   ÚtrainingÚattention_dropoutr   ÚgetattrÚreshapeÚ
contiguousÚo_proj)Úselfr%   r&   r'   r(   r)   r*   Úinput_shapeÚhidden_shapeÚquery_statesÚ
key_statesÚvalue_statesÚcosÚsinÚattention_interfaceÚattn_outputÚattn_weightss                    r    ÚforwardzMinistral3Attention.forward#   s.  € ð $Ô)¨#¨2¨#Ô.ˆØ8˜Ð8 bÐ8¨$¬-Ð8Ð8ˆà—{’{ =Ñ1Ô1×6Ò6°|ÑDÔD×NÒNÈqÐRSÑTÔTˆØ—[’[ Ñ/Ô/×4Ò4°\ÑBÔB×LÒLÈQÐPQÑRÔRˆ
Ø—{’{ =Ñ1Ô1×6Ò6°|ÑDÔD×NÒNÈqÐRSÑTÔTˆà&‰ˆˆSÝ#7¸ÀjÐRUÐWZÑ#[Ô#[Ñ ˆ�jØ#Õ&<ØØŒKÔ'×+Ò+Ð,BÑCÔCØŒKÔ'×+Ò+Ð,NÑOÔOñ'
ô '
÷ Š"ˆ\ÔÑ
 Ô
 ñ	!ˆð Ð&Ø'6×'=Ò'=¸jÈ,ÐX\ÔXfÑ'gÔ'gÑ$ˆJ˜å(?Ô(MØŒKÔ,Õ.Eñ)
ô )
Ðð %8Ð$7ØØØØØð
%
ð  $œ}ÐH�C�C°$Ô2HØ”LÝ" 4¤;Ð0@À$ÑGÔGð
%
ð 
%
ð ð
%
ð 
%
Ñ!ˆ�\ð *�kÔ)Ð;¨;Ð;¸Ð;Ð;Ð;×FÒFÑHÔHˆØ—k’k +Ñ.Ô.ˆØ˜LÐ(Ð(r"   )N)
Ú__name__Ú
__module__Ú__qualname__r   ÚTensorÚtupler   r   r   rR   © r"   r    r$   r$   "   s¬   € € € € € ð )-ð-)ð -)à”|ð-)ð # 5¤<°´Ð#=Ô>ð-)ð œ tÑ+ð	-)ð
 ”lð-)ð  ™ð-)ð Ð-Ô.ð-)ð 
ˆuŒ|˜Uœ\¨DÑ0Ð0Ô	1ð-)ð -)ð -)ð -)ð -)ð -)r"   r$   c                   ó   — e Zd ZdS )ÚMinistral3DecoderLayerN©rS   rT   rU   rX   r"   r    rZ   rZ   S   ó   € € € € € Ø€Dr"   rZ   c                   ó   — e Zd ZdS )ÚMinistral3PreTrainedModelNr[   rX   r"   r    r^   r^   W   ó   € € € € € à€Dr"   r^   c                   ó   — e Zd ZdS )ÚMinistral3ModelNr[   rX   r"   r    ra   ra   \   r_   r"   ra   c                   ó   — e Zd ZdS )ÚMinistral3ForCausalLMNr[   rX   r"   r    rc   rc   a   r_   r"   rc   c                   ó   — e Zd ZdS )Ú Ministral3ForTokenClassificationNr[   rX   r"   r    re   re   f   r\   r"   re   c                   ó   — e Zd ZdS )Ú#Ministral3ForSequenceClassificationNr[   rX   r"   r    rg   rg   j   r\   r"   rg   c                   ó   — e Zd ZdS )ÚMinistral3ForQuestionAnsweringNr[   rX   r"   r    ri   ri   n   r\   r"   ri   )rc   ri   ra   r^   rg   re   )*Úcollections.abcr   r   Úcache_utilsr   Úmodeling_flash_attention_utilsr   Úmodeling_layersr   r   r	   Úmodeling_utilsr
   Úprocessing_utilsr   Úutilsr   r   Úmistral.modeling_mistralr   r   r   r   r   r   r   Ú
get_loggerrS   ÚloggerrV   ÚfloatÚintr!   r$   rZ   r^   ra   rc   re   rg   ri   Ú__all__rX   r"   r    ú<module>rw      só  ðØ $Ð $Ð $Ð $Ð $Ð $à €€€à  Ð  Ð  Ð  Ð  Ð  Ø BÐ BÐ BÐ BÐ BÐ Bðð ð ð ð ð ð ð ð ð ð
 6Ð 5Ð 5Ð 5Ð 5Ð 5Ø &Ð &Ð &Ð &Ð &Ð &Ø ,Ð ,Ð ,Ð ,Ð ,Ð ,Ð ,Ð ,ðð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð 
ˆÔ	˜HÑ	%Ô	%€ð%¨%¬,ð %¸eð %Ð^að %ÐfkÔfrð %ð %ð %ð %ð
.)ð .)ð .)ð .)ð .)Ð*ñ .)ô .)ð .)ðb	ð 	ð 	ð 	ð 	Ð0ñ 	ô 	ð 	ð ð	ð 	ð 	ð 	ð 	Ð 6ñ 	ô 	ñ „ð	ð ð	ð 	ð 	ð 	ð 	�lñ 	ô 	ñ „ð	ð ð	ð 	ð 	ð 	ð 	Ð.ñ 	ô 	ñ „ð	ð	ð 	ð 	ð 	ð 	Ð'DÐF_ñ 	ô 	ð 	ð	ð 	ð 	ð 	ð 	Ð*JÐLeñ 	ô 	ð 	ð	ð 	ð 	ð 	ð 	Ð%@ÐB[ñ 	ô 	ð 	ðð ð €€€r"   