ó
    <±hƒ  ã                   óø   • S SK Jr  S SKrS SKJr  S\R                  S\S\R                  4S jr SS\R                  S	\R                  S
\R                  S\R                  S\\R                     S\S\4S jjr	g)é    )ÚOptionalN)ÚnnÚhidden_statesÚn_repÚreturnc                 ó    • U R                   u  p#pEUS:X  a  U $ U SS2SS2SSS2SS24   R                  X#XU5      n U R                  X#U-  XE5      $ )zÈ
This is the equivalent of torch.repeat_interleave(x, dim=1, repeats=n_rep). The hidden states go from (batch,
num_key_value_heads, seqlen, head_dim) to (batch, num_attention_heads, seqlen, head_dim)
é   N)ÚshapeÚexpandÚreshape)r   r   ÚbatchÚnum_key_value_headsÚslenÚhead_dims         Ú]/var/www/html/shao/venv/lib/python3.13/site-packages/transformers/integrations/eager_paged.pyÚ	repeat_kvr      s_   € ð
 2?×1DÑ1DÑ.€E ØƒzØÐØ!¢!¢Q¨ªa²Ð"2Ñ3×:Ñ:¸5ÐW\ÐdlÓm€MØ× Ñ  ¸eÑ(CÀTÓTÐTó    ÚmoduleÚqueryÚkeyÚvalueÚattention_maskÚscalingÚdropoutc                 óZ  • UR                  SS 5      nUb   UR                  " X#U R                  40 UD6u  p#[        X R                  5      n	[        X0R                  5      n
[
        R                  " XR                  SS5      5      U-  nUb"  US S 2S S 2S S 2S U	R                  S   24   nX¼-   n[        R                  R                  US[
        R                  S9R                  UR                  5      n[
        R                  " Xº5      nUR                  SS5      R                  5       nXÛ4$ )NÚcacheé   é   éþÿÿÿéÿÿÿÿ)ÚdimÚdtyper	   )ÚpopÚupdateÚ	layer_idxr   Únum_key_value_groupsÚtorchÚmatmulÚ	transposer
   r   Ú
functionalÚsoftmaxÚfloat32Útor"   Ú
contiguous)r   r   r   r   r   r   r   Úkwargsr   Ú
key_statesÚvalue_statesÚattn_weightsÚcausal_maskÚattn_outputs                 r   Úeager_paged_attention_forwardr5      s  € ð J‰Jw Ó%€EØÑØ—\’\ #¨f×.>Ñ.>ÑIÀ&ÑI‰
ˆä˜3× ;Ñ ;Ó<€JÜ˜U×$?Ñ$?Ó@€Lä—<’< ×';Ñ';¸A¸qÓ'AÓBÀWÑL€LØÑ!Ø$¢Qªª1Ð.D°
×0@Ñ0@ÀÑ0DÐ.DÐ%DÑEˆØ#Ñ1ˆä—=‘=×(Ñ(¨¸2ÄUÇ]Á]Ð(ÐS×VÑVÐW\×WbÑWbÓc€LÜ—,’,˜|Ó:€KØ×'Ñ'¨¨1Ó-×8Ñ8Ó:€KàÐ$Ð$r   )g        )
Útypingr   r'   r   ÚTensorÚintr   ÚModuleÚfloatr5   © r   r   Ú<module>r<      s™   ðÝ ã Ý ð	U˜UŸ\™\ð 	U°#ð 	U¸%¿,¹,ô 	Uð& ñ%ØI‰Ið%à<‰<ð%ð 
‰ð%ð <‰<ð	%ð
 ˜UŸ\™\Ñ*ð%ð ð%ð ö%r   