+
    TV-jE  ã                   ó(  € ^ RI t ^ RIHt ^ RIHtHtHt ^ RIHt	 ^ RI
Ht ^ RIHtHtHt ^RIHt ^RIHtHtHt ^RIHt ^RIHt ] ! R	 R
]4      4       tRR ltRR ltR R ltR t ! R R]P>                  4      t  ! R R]P>                  4      t! ! R R]P>                  4      t" ! R R]P>                  4      t# ! R R]P>                  4      t$ ! R R]P>                  4      t% ! R R]]P>                  4      t& ! R R]P>                  4      t'R# )!é    N)Ú	dataclass)ÚAnyÚDictÚOptional)Úshard_inplaceÚshard_linearÚsum_gradients)Úswiglu)ÚBaseModelArgsÚcreate_attention_maskÚscaled_dot_product_attention)ÚPipelineMixin)Ú	SwitchGLUc                   ó˜   a € ] tR t^t o RtRtRtRtRt^t	^ t
^ tRtRtRtRtR	t^@t^€t^€tR
tRtRtRt^t^ tRtRtRtRtRtV 3R ltRt V t!R# )Ú	ModelArgsÚdeepseek_v2i � é   i +  i  Nç      ð?i   i   Úgreadyé   ç�íµ ÷Æ°>g     ˆÃ@Fc                ó®  <€ V ^8„  d   Qh/ S[ ;R&   S[;R&   S[;R&   S[;R&   S[;R&   S[;R&   S[;R&   S[;R&   S[S[,          ;R	&   S[S[,          ;R
&   S[;R&   S[;R&   S[;R&   S[;R&   S[;R&   S[;R&   S[ ;R&   S[S[,          ;R&   S[S[,          ;R&   S[S[,          ;R&   S[;R&   S[;R&   S[;R&   S[;R&   S[;R&   S[;R&   S[;R&   # )é   Ú
model_typeÚ
vocab_sizeÚhidden_sizeÚintermediate_sizeÚmoe_intermediate_sizeÚnum_hidden_layersÚnum_attention_headsÚnum_key_value_headsÚn_shared_expertsÚn_routed_expertsÚrouted_scaling_factorÚkv_lora_rankÚq_lora_rankÚqk_rope_head_dimÚ
v_head_dimÚqk_nope_head_dimÚtopk_methodÚn_groupÚ
topk_groupÚnum_experts_per_tokÚmoe_layer_freqÚfirst_k_dense_replaceÚmax_position_embeddingsÚrms_norm_epsÚ
rope_thetaÚrope_scalingÚattention_bias)ÚstrÚintr   Úfloatr   Úbool)ÚformatÚ__classdict__s   "€Új/Volumes/fast/ai/experiments/ui-tars-smoke/.venv/lib/python3.14/site-packages/mlx_lm/models/deepseek_v2.pyÚ__annotate__ÚModelArgs.__annotate__   sv  ø‡ ‚ áÑ#ñ ñ Ññ ñ Ññ	 ñ
 Ñ"ñ ñ Ñ%ñ ñ Ññ ñ Ñ!ñ ñ Ñ!ñ ñ ™s•mÑ*ñ ñ ™s•mÑ*ñ ñ !Ñ&ñ ñ Ññ ñ Ññ ñ Ññ ñ  Ññ! ñ" Ññ# ñ$ Ññ% ñ& ‘c�]Ñ!ñ' ñ( ™•Ñ$ñ) ñ* "¡#�Ñ-ñ+ ñ, Ññ- ñ. Ñ"ñ/ ñ0 !Ñ'ñ1 ñ2 Ññ3 ñ4 Ññ5 ñ6 Ññ7 ñ8 Ñ ò9 ó    © )"Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__r   r   r   r   r   r   r    r!   r"   r#   r$   r%   r&   r'   r(   r)   r*   r+   r,   r-   r.   r/   r0   r1   r2   r3   r4   Ú__annotate_func__Ú__static_attributes__Ú__classdictcell__)r:   s   @r;   r   r      s    ø‡ € à#€JØ€JØ€KØ"ÐØ!%ÐØÐØ!ÐØ!ÐØ&*ÐØ&*ÐØ#&ÐØ€LØ€KØÐØ€JØÐØ€KØ!€GØ $€JØ)-ÐØ€NØ!"ÐØ#'ÐØ€LØ€JØ€LØ €N÷9 ƒ r>   r   c                 óÄ   € V\         P                  ! W0^,          \         P                  ,          ,          4      ,          ^\         P                  ! V4      ,          ,          # )r   )ÚmathÚlogÚpi)Únum_rotationsÚdimÚbaser0   s   &&&&r;   Úyarn_find_correction_dimrN   0   sA   € ð ”$—(’(Ð2ÀaÕ6GÌ$Ï'É'Õ6QÕRÓSÕSØ	ŒD�HŠH�T‹NÕõð r>   c                 ó¾   € \         P                  ! \        WW44      4      p\         P                  ! \        WW44      4      p\	        V^ 4      \        Wb^,
          4      3# ©r   )rH   ÚfloorrN   ÚceilÚmaxÚmin)Úlow_rotÚhigh_rotrL   rM   r0   ÚlowÚhighs   &&&&&  r;   Úyarn_find_correction_rangerY   8   sR   € ô �*Š*Ü  ¨tÓMó€Cô �9Š9Ü  °ÓNó€Dô ˆs�A‹;œ˜D¨¥'Ó*Ð*Ð*r>   c                 ój   € V ^8:  d   R# RV,          \         P                  ! V 4      ,          R,           # )é   r   gš™™™™™¹?)rH   rI   )ÚscaleÚmscales   &&r;   Úyarn_get_mscaler^   D   s(   € Ø�„zÙØ��<œ$Ÿ(š( 5›/Õ)¨CÕ/Ð/r>   c                 óÄ   € W8X  d
   VR ,          p\         P                  ! V\         P                  R7      V ,
          W,
          ,          p\         P                  ! V^ ^4      # )gü©ñÒMbP?©Údtype)ÚmxÚarangeÚfloat32Úclip)Úmin_valÚmax_valrL   Úlinear_funcs   &&& r;   Úyarn_linear_ramp_maskri   J   sF   € ØÔØ�5Õˆä—9’9˜S¬¯
©
Ô3°gÕ=À'ÕBSÕT€KÜ�7Š7�;  1Ó%Ð%r>   c                   ó@   a a€ ] tR t^Rt oRV 3R lltRR ltRtVtV ;t# )ÚDeepseekV2YarnRotaryEmbeddingc
           	     óü  <€ \         SV `  4        \        WH4      \        WI4      ,          V n        V\        P
                  ! ^ V^\        P                  R7      V,          ,          p
WC\        P
                  ! ^ V^\        P                  R7      V,          ,          ,          p\        VVVVV4      w  rÍR\        WÍV^,          4      ,
          pWº,          W¾,          V
^V,
          ,          ,           ,          V n	        R# )r   r`   r   N)
ÚsuperÚ__init__r^   r]   rb   rc   rd   rY   ri   Ú_freqs)ÚselfrL   r0   rM   Úscaling_factorÚ original_max_position_embeddingsÚ	beta_fastÚ	beta_slowr]   Úmscale_all_dimÚ
freq_extraÚ
freq_interrW   rX   Ú	freq_maskÚ	__class__s   &&&&&&&&&&     €r;   rn   Ú&DeepseekV2YarnRotaryEmbedding.__init__S   sÒ   ø€ ô 	‰ÑÔÜ% nÓ=ÄØóA
õ 
ˆŒð œbŸiši¨¨3°¼¿¹ÔDÀsÕJÕKˆ
Ø#Ü�IŠI�a˜˜a¤r§z¡zÔ2°SÕ8õ'
õ 
ˆ
ô /ØØØØØ,ó
‰	ˆð Ô/°¸3À!½8ÓDÕDˆ	Ø!Õ.ØÕ" Z°1°yµ=Õ%AÕAõ
ˆŽr>   c           
     óÌ   € V P                   R 8w  d   V P                   V,          p\        P                  P                  VVP                  R,          RRR VV P
                  R7      # )r   TN)ÚtraditionalrM   r\   ÚoffsetÚfreqséÿÿÿÿ)r]   rb   ÚfastÚropeÚshapero   )rp   Úxr}   s   &&&r;   Ú__call__Ú&DeepseekV2YarnRotaryEmbedding.__call__s   sV   € Ø�;‰;˜#ÔØ—‘˜a•ˆAÜ�w‰w�|‰|ØØ�G‰G�B�KØØØØØ—+‘+ð ó 
ð 	
r>   )ro   r]   )r   é'  r   r   é    r[   r[   r   rP   ©	r@   rA   rB   rC   rn   r„   rE   rF   Ú__classcell__©ry   r:   s   @@r;   rk   rk   R   s   ù‡ € ÷
÷@
ô 
r>   rk   c                   óT   a a€ ] tR t^�t oV3R lV 3R lltRV3R lR lltRtVtV ;t# )ÚDeepseekV2Attentionc                ó    <€ V ^8„  d   QhRS[ /# ©r   Úconfig©r   )r9   r:   s   "€r;   r<   Ú DeepseekV2Attention.__annotate__‚   s   ø€ ÷ G
ñ G
™yñ G
r>   c                ó  <€ \         SV `  4        Wn        VP                  V n        VP                  V n        VP                  V n        VP                  V n        VP                  V n        VP                  V n	        VP                  V n
        VP                  V n        VP                  V n        VP                  VP                  ,           V n        V P                  R,          V n        V P                  fE   \        P                   ! V P                  V P
                  V P                  ,          RR7      V n        M¦\        P                   ! V P                  V P                  VP$                  R7      V n        \        P(                  ! V P                  RR7      V n        \        P                   ! V P                  V P
                  V P                  ,          RR7      V n        \        P                   ! V P                  V P                  V P                  ,           VP$                  R7      V n        \        P(                  ! V P                  RR7      V n        \        P                   ! V P                  V P
                  V P                  V P                  ,
          V P                  ,           ,          RR7      V n        \        P                   ! V P
                  V P                  ,          V P                  VP$                  R7      V n        V P                  P6                  P9                  R^ 4      pV P                  P6                  R,          pV'       d+   \;        W24      pV P                  V,          V,          V n        R Uu/ uF<  pWPP                  P6                  9   g   K  WPP                  P6                  V,          bK>  	  pp\=        RRV P                  R	V P                  R
VRV P                  /VB V n        R# u upi )g      à?NF©Úbiasr   ©Úepsru   ÚfactorrL   r0   rq   rM   g      à¿)rr   rs   rt   r]   ru   r?   ) rm   rn   r�   r   r    Ú	num_headsr0   r2   r&   r'   r%   r(   r)   Ú
q_head_dimr\   ÚnnÚLinearÚq_projr4   Úq_a_projÚRMSNormÚq_a_layernormÚq_b_projÚkv_a_proj_with_mqaÚkv_a_layernormÚ	kv_b_projÚo_projr3   Úgetr^   rk   r�   )rp   r�   ru   rq   r]   ÚkeyÚrope_kwargsry   s   &&     €r;   rn   ÚDeepseekV2Attention.__init__‚   s  ø€ Ü‰ÑÔØŒØ!×-Ñ-ˆÔØ×3Ñ3ˆŒØ'-×'EÑ'EˆÔ$Ø ×+Ñ+ˆŒØ!×-Ñ-ˆÔØ &× 7Ñ 7ˆÔØ"×/Ñ/ˆÔØ ×+Ñ+ˆŒØ &× 7Ñ 7ˆÔØ ×1Ñ1°F×4KÑ4KÕKˆŒà—_‘_ dÕ*ˆŒ
à×ÑÒ#ÜŸ)š)Ø× Ñ  $§.¡.°4·?±?Õ"BÈôˆD�Kô ŸIšIØ× Ñ  $×"2Ñ"2¸×9NÑ9NôˆDŒMô "$§¢¨D×,<Ñ,<À$Ô!GˆDÔÜŸIšIØ× Ñ  $§.¡.°4·?±?Õ"BÈôˆDŒMô #%§)¢)Ø×ÑØ×Ñ × 5Ñ 5Õ5Ø×&Ñ&ô#
ˆÔô
 !Ÿjšj¨×):Ñ):ÀÔEˆÔÜŸšØ×ÑØ�N‰NØ�‰ ×!6Ñ!6Õ6¸¿¹ÕHõJàô	
ˆŒô —i’iØ�N‰N˜TŸ_™_Õ,Ø×ÑØ×&Ñ&ô
ˆŒð Ÿ™×1Ñ1×5Ñ5Ð6FÈÓJˆØŸ™×1Ñ1°(Õ;ˆßÜ$ ^ÓDˆFØŸ™ fÕ,¨vÕ5ˆDŒJñó

ñ�ð —k‘k×.Ñ.Ñ.ô /ˆC—‘×)Ñ)¨#Õ.Ò.ñð 	ð 

ô 2ñ 
Ø×%Ñ%ð
à$(×$@Ñ$@ð
ð *ð
ð —‘ð	
ð
 ñ
ˆŽ	ùò

s   Î O<Î!!O<c                óŽ   <€ V ^8„  d   QhRS[ P                  RS[S[ P                  ,          RS[S[,          RS[ P                  /# ©r   rƒ   ÚmaskÚcacheÚreturn©rb   Úarrayr   r   )r9   r:   s   "€r;   r<   r‘   Ë   sH   ø€ ÷ *#ñ *#á�8‰8ð*#ñ ‘r—x‘xÕ ð*#ñ ™�}ð	*#ñ
 
�‰ñ*#r>   c           	     óÄ  € VP                   w  rEpV P                  f   V P                  V4      pM/V P                  V P	                  V P                  V4      4      4      pVP                  WEV P                  V P                  4      P                  ^ ^^^4      p\        P                  ! WpP                  .RR7      w  r‰V P                  V4      p
\        P                  ! W P                  .RR7      w  r«VP                  WE^V P                  4      P                  ^ ^^^4      pV P!                  V P#                  V
4      4      pVP                  WEV P                  R4      P                  ^ ^^^4      p\        P                  ! WÀP                  .RR7      w  rÞVe…   V P%                  W“P&                  4      p	V P%                  W³P&                  4      p\        P(                  ! W°P                  ^R7      pVP+                  \        P,                  ! WÛ.RR7      V4      w  rþM]V P%                  V	4      p	V P%                  V4      p\        P(                  ! W°P                  ^R7      p\        P,                  ! WÛ.RR7      p\        P,                  ! W‰.RR7      p\/        VWþW0P0                  VR7      pVP                  ^ ^^^4      P                  WER4      pV P3                  V4      # )N©Úaxis)r¬   r\   r«   r   )r‚   r&   rœ   r    rŸ   r�   Úreshaper˜   r™   Ú	transposerb   Úsplitr)   r¡   r%   r'   r£   r¢   r�   r}   ÚrepeatÚupdate_and_fetchÚconcatenater   r\   r¤   )rp   rƒ   r«   r¬   ÚBÚLÚDÚqÚq_nopeÚq_peÚcompressed_kvÚk_peÚkvÚk_nopeÚvaluesÚkeysÚqueriesÚoutputs   &&&&              r;   r„   ÚDeepseekV2Attention.__call__Ë   sG  € ð —'‘'‰ˆˆaà×ÑÒ#Ø—‘˜A“‰Aà—‘˜d×0Ñ0°·±¸qÓ1AÓBÓCˆAà�I‰I�a˜DŸN™N¨D¯O©OÓ<×FÑFÀqÈ!ÈQÐPQÓRˆÜ—x’x ×$9Ñ$9Ð#:ÀÔD‰ˆØ×/Ñ/°Ó2ˆÜ Ÿhšh }×7HÑ7HÐ6IÐPRÔSÑˆØ�|‰|˜A ! T×%:Ñ%:Ó;×EÑEÀaÈÈAÈqÓQˆØ�^‰^˜D×/Ñ/°Ó>Ó?ˆØ�Z‰Z˜˜dŸn™n¨bÓ1×;Ñ;¸A¸qÀ!ÀQÓGˆäŸš "×'<Ñ'<Ð&=ÀBÔG‰ˆàÒØ—9‘9˜T§<¡<Ó0ˆDØ—9‘9˜T§<¡<Ó0ˆDÜ—9’9˜T§>¡>¸Ô:ˆDØ ×1Ñ1Ü—’ ˜~°BÔ7¸ó‰LˆD�&ð —9‘9˜T“?ˆDØ—9‘9˜T“?ˆDÜ—9’9˜T§>¡>¸Ô:ˆDÜ—>’> 6 .°rÔ:ˆDä—.’. & °bÔ9ˆä-Ø�T¨·j±jÀtô
ˆð ×!Ñ! ! Q¨¨1Ó-×5Ñ5°a¸BÓ?ˆØ�{‰{˜6Ó"Ð"r>   )r�   r   r¢   r¡   r£   r%   r0   r˜   r¤   rŸ   r�   r    r™   r&   rœ   r)   r'   r�   r2   r\   r(   ©NNrˆ   rŠ   s   @@r;   rŒ   rŒ   �   s!   ù‡ € ÷G
ó G
÷R*#÷ *#ò *#r>   rŒ   c                   óH   a a€ ] tR t^øt oRV3R lV 3R llltR tRtVtV ;t# )ÚDeepseekV2MLPc                ó,   <€ V ^8„  d   QhRS[ RS[RS[/# )r   r�   r   r   ©r   r6   )r9   r:   s   "€r;   r<   ÚDeepseekV2MLP.__annotate__ù   s*   ø€ ÷ Yñ YÙðYÙ.1ðYÙMPñYr>   c                ó¸  <€ \         SV `  4        Wn        Vf   VP                  MTV n        Vf   VP                  MTV n        \
        P                  ! V P                  V P                  RR7      V n        \
        P                  ! V P                  V P                  RR7      V n        \
        P                  ! V P                  V P                  RR7      V n	        R # )NFr“   )
rm   rn   r�   r   r   rš   r›   Ú	gate_projÚup_projÚ	down_proj)rp   r�   r   r   ry   s   &&&&€r;   rn   ÚDeepseekV2MLP.__init__ù   s¨   ø€ ô 	‰ÑÔØŒØ1<Ò1D˜6×-Ò-È+ˆÔà(9Ò(AˆF×$Ò$ÐGXð 	Ôô Ÿš 4×#3Ñ#3°T×5KÑ5KÐRWÔXˆŒÜ—y’y ×!1Ñ!1°4×3IÑ3IÐPUÔVˆŒÜŸš 4×#9Ñ#9¸4×;KÑ;KÐRWÔXˆŽr>   c                óx   € V P                  \        V P                  V4      V P                  V4      4      4      pV# ©N)rÑ   r
   rÏ   rÐ   )rp   rƒ   rÑ   s   && r;   r„   ÚDeepseekV2MLP.__call__  s.   € Ø—N‘N¤6¨$¯.©.¸Ó*;¸T¿\¹\È!»_Ó#MÓNˆ	ØÐr>   )r�   rÑ   rÏ   r   r   rÐ   rÈ   rˆ   rŠ   s   @@r;   rÊ   rÊ   ø   s   ù‡ € ÷Yõ Y÷ò r>   rÊ   c                   óD   a a€ ] tR tRt oV3R lV 3R lltR tRtVtV ;t# )ÚMoEGatei  c                ó    <€ V ^8„  d   QhRS[ /# rŽ   r�   )r9   r:   s   "€r;   r<   ÚMoEGate.__annotate__  s   ø€ ÷ 	Lñ 	L™yñ 	Lr>   c                ó^  <€ \         SV `  4        Wn        VP                  V n        VP
                  V n        VP                  V n        VP                  V n        VP                  V n        VP                  V n	        \        P                  ! V P
                  VP                  34      V n        R # rÔ   )rm   rn   r�   r-   Útop_kr#   r$   r*   r+   r,   rb   Úzerosr   Úweight©rp   r�   ry   s   &&€r;   rn   ÚMoEGate.__init__  sƒ   ø€ Ü‰ÑÔØŒØ×/Ñ/ˆŒ
Ø &× 7Ñ 7ˆÔØ%+×%AÑ%AˆÔ"Ø!×-Ñ-ˆÔØ—~‘~ˆŒØ ×+Ñ+ˆŒÜ—h’h × 5Ñ 5°v×7IÑ7IÐJÓKˆŽr>   c                ó  € WP                   P                  ,          p\        P                  ! VRRR7      pV P                  R8X  dØ   VP
                  R,          w  rEVP                  WEV P                  R4      pVP                  RRR7      pV P                  V P                  ,
          p\        P                  ! Wg^,
          RR7      RRV1R	3,          p\        P                  ! W8\        P                  ! R
VP                  4      RR7      pVP                  WER4      pV P                  p\        P                  ! V) V^,
          RR7      RRV13,          p	\        P                  ! W9RR7      pW0P                   ,          pW“3# )r[   T)r²   ÚpreciseÚgroup_limited_greedy:Nr   N)r²   Úkeepdims)Úkthr²   .N:NNNg        r±   r   éþÿÿÿ)rÝ   ÚTrb   Úsoftmaxr*   r‚   r³   r+   rS   r,   ÚargpartitionÚput_along_axisr¯   ra   rÛ   Útake_along_axisr$   )
rp   rƒ   ÚgatesÚscoresÚbszÚseq_lenÚgroup_scoresÚkÚ	group_idxÚindss
   &&        r;   r„   ÚMoEGate.__call__  s/  € Ø—K‘K—M‘MÕ!ˆä—’˜E¨°DÔ9ˆà×ÑÐ5Ô5ØŸ7™7 2�;‰LˆCØ—^‘^ C°$·,±,ÀÓCˆFØ!Ÿ:™:¨2¸˜:Ó=ˆLØ—‘˜tŸ™Õ.ˆAÜŸš¨¸a½%ÀbÔIÈ#ÈrÐPQÈrÐSTÈ*ÕUˆIÜ×&Ò&Ø¤2§8¢8¨C°·±Ó#>ÀRôˆFð —^‘^ C°"Ó5ˆFà�J‰JˆÜ�Š ˜w¨A°­E¸Ô;¸CÀÀ!À¸GÕDˆÜ×#Ò# F°rÔ:ˆØ×4Ñ4Õ4ˆàˆ|Ðr>   )r�   r+   r#   r$   rÛ   r,   r*   rÝ   rˆ   rŠ   s   @@r;   r×   r×     s   ù‡ € ÷	Ló 	L÷ò r>   r×   c                   óD   a a€ ] tR tRt oV3R lV 3R lltR tRtVtV ;t# )ÚDeepseekV2MoEi0  c                ó    <€ V ^8„  d   QhRS[ /# rŽ   r�   )r9   r:   s   "€r;   r<   ÚDeepseekV2MoE.__annotate__1  s   ø€ ÷ #ñ #™yñ #r>   c                óX  <€ \         SV `  4        Wn        VP                  V n        \	        VP
                  VP                  VP                  4      V n        \        V4      V n
        VP                  e/   VP                  VP                  ,          p\        WR7      V n        R V n        R # )N)r�   r   )rm   rn   r�   r-   r   r   r   r#   Ú
switch_mlpr×   Úgater"   rÊ   Úshared_expertsÚsharding_group)rp   r�   r   ry   s   && €r;   rn   ÚDeepseekV2MoE.__init__1  s�   ø€ Ü‰ÑÔØŒØ#)×#=Ñ#=ˆÔ Ü#Ø×Ñ × <Ñ <¸f×>UÑ>Uó
ˆŒô ˜F“OˆŒ	Ø×"Ñ"Ò.Ø &× <Ñ <¸v×?VÑ?VÕ VÐÜ"/Øô#ˆDÔð #ˆÖr>   c                ó¬  € V P                   e   \        V P                   4      ! V4      pV P                  V4      w  r#V P                  W4      pWCR,          ,          P	                  RR7      pV P
                  P                  e   W@P                  V4      ,           pV P                   e+   \        P                  P                  W@P                   R7      pV# )Nr±   ©Úgroup).Nrå   )rü   r	   rú   rù   Úsumr�   r"   rû   rb   ÚdistributedÚall_sum)rp   rƒ   rò   rì   Úys   &&   r;   r„   ÚDeepseekV2MoE.__call__B  s¬   € Ø×ÑÒ*Ü˜d×1Ñ1Ô2°1Ó5ˆAà—y‘y “|‰ˆØ�O‰O˜AÓ$ˆØ˜	Õ"Õ"×'Ñ'¨RÐ'Ó0ˆØ�;‰;×'Ñ'Ò3Ø×'Ñ'¨Ó*Õ*ˆAà×ÑÒ*Ü—‘×&Ñ& q×0CÑ0CÐ&ÓDˆAàˆr>   )r�   rú   r-   rü   rû   rù   rˆ   rŠ   s   @@r;   rõ   rõ   0  s   ù‡ € ÷#ó #÷"ò r>   rõ   c                   óT   a a€ ] tR tRt oV3R lV 3R lltRV3R lR lltRtVtV ;t# )ÚDeepseekV2DecoderLayeriR  c                ó&   <€ V ^8„  d   QhRS[ RS[/# )r   r�   Ú	layer_idxrÌ   )r9   r:   s   "€r;   r<   Ú#DeepseekV2DecoderLayer.__annotate__S  s   ø€ ÷ 
ñ 
™yð 
±Sñ 
r>   c                ó¨  <€ \         SV `  4        \        V4      V n        VP                  e3   W!P
                  8¼  d#   W!P                  ,          ^ 8X  d   \        V4      M
\        V4      V n	        \        P                  ! VP                  VP                  R7      V n        \        P                  ! VP                  VP                  R7      V n        R # )Nr•   )rm   rn   rŒ   Ú	self_attnr#   r/   r.   rõ   rÊ   Úmlprš   rž   r   r1   Úinput_layernormÚpost_attention_layernorm)rp   r�   r	  ry   s   &&&€r;   rn   ÚDeepseekV2DecoderLayer.__init__S  s£   ø€ Ü‰ÑÔÜ,¨VÓ4ˆŒð ×'Ñ'Ò3Ø×!=Ñ!=Ô=Ø× 5Ñ 5Õ5¸Ô:ô	 ˜&Ô!ô ˜vÓ&ð 	Œô  "Ÿzšz¨&×*<Ñ*<À&×BUÑBUÔVˆÔÜ(*¯
ª
Ø×Ñ F×$7Ñ$7ô)
ˆÖ%r>   c                óŽ   <€ V ^8„  d   QhRS[ P                  RS[S[ P                  ,          RS[S[,          RS[ P                  /# rª   r®   )r9   r:   s   "€r;   r<   r
  d  sH   ø€ ÷ 
ñ 
á�8‰8ð
ñ ‘r—x‘xÕ ð
ñ ™�}ð	
ñ
 
�‰ñ
r>   c                ó¨   € V P                  V P                  V4      W#4      pW,           pV P                  V P                  V4      4      pWT,           pV# rÔ   )r  r  r  r  )rp   rƒ   r«   r¬   ÚrÚhÚouts   &&&&   r;   r„   ÚDeepseekV2DecoderLayer.__call__d  sK   € ð �N‰N˜4×/Ñ/°Ó2°DÓ@ˆØ�EˆØ�H‰H�T×2Ñ2°1Ó5Ó6ˆØ�eˆØˆ
r>   )r  r  r  r  rÈ   rˆ   rŠ   s   @@r;   r  r  R  s   ù‡ € ÷
ó 
÷"
÷ 
ò 
r>   r  c                   óT   a a€ ] tR tRt oV3R lV 3R lltRV3R lR lltRtVtV ;t# )ÚDeepseekV2Modeliq  c                ó    <€ V ^8„  d   QhRS[ /# rŽ   r�   )r9   r:   s   "€r;   r<   ÚDeepseekV2Model.__annotate__r  s   ø€ ÷ Lñ L™yñ Lr>   c                óx  <€ \         SV `  4        VP                  V n        \        P                  ! VP                  VP
                  4      V n        \        VP                  4       Uu. uF  p\        W4      NK  	  upV n
        \        P                  ! VP
                  VP                  R 7      V n        R# u upi )r•   N)rm   rn   r   rš   Ú	Embeddingr   Úembed_tokensÚranger   r  Úlayersrž   r1   Únorm)rp   r�   Úidxry   s   && €r;   rn   ÚDeepseekV2Model.__init__r  s�   ø€ Ü‰ÑÔØ ×+Ñ+ˆŒÜŸLšL¨×):Ñ):¸F×<NÑ<NÓOˆÔô ˜V×5Ñ5Ô6ó
á6�ô # 6Ö/Ù6ñ
ˆŒô —J’J˜v×1Ñ1°v×7JÑ7JÔKˆŽ	ùò	
s   Á(B7c                ód   <€ V ^8„  d   QhRS[ P                  RS[S[,          RS[ P                  /# )r   rƒ   r¬   r­   r®   )r9   r:   s   "€r;   r<   r  |  s5   ø€ ÷ ñ á�8‰8ðñ ™�}ðñ 
�‰ñ	r>   c                óî  € V P                  V4      pV P                  pV P                  pVf   R .\        V P                  4      ,          p\        W2^ ,          4      pWE^,
          8  d'   \        P                  P                  W4^,           4      p\        V P                  V4       F  w  rxV! W6VR7      pK  	  V^ 8w  dm   \        P                  P                  W4^,
          V,          4      pVR,          e5   \        P                  ! VR,          P                  V4      VR,          n        V^8”  d4   \        P                  P                  V4      R VP                  ^ ,           pV P                  V4      # )N)r¬   r   )r  Úpipeline_rankÚpipeline_sizeÚlenÚpipeline_layersr   rb   r  Ú	recv_likeÚzipÚsendÚdependsrÄ   Ú
all_gatherr‚   r   )	rp   rƒ   r¬   r  r%  r&  r«   ÚlÚcs	   &&&      r;   r„   ÚDeepseekV2Model.__call__|  s*  € ð
 ×Ñ˜aÓ ˆà×*Ñ*ˆØ×*Ñ*ˆàŠ=Ø�FœS ×!5Ñ!5Ó6Õ6ˆEÜ$ Q¨a­Ó1ˆð ¨1Õ,Ô,Ü—‘×(Ñ(¨¸QÕ->Ó@ˆAä˜×,Ñ,¨eÖ4‰DˆAÙ�! Ô#ŠAñ 5ð ˜AÔÜ—‘×#Ñ# A¸Õ(9¸]Õ'JÓKˆAØ�R�yÒ$Ü!#§¢¨E°"­I¯N©N¸AÓ!>��b•	”ð ˜1ÔÜ—‘×)Ñ)¨!Ó,¨\¨q¯w©w°q­zÐ:ˆAà�y‰y˜‹|Ðr>   )r  r  r   r   rÔ   rˆ   rŠ   s   @@r;   r  r  q  s    ù‡ € ÷Ló L÷÷ ò r>   r  c                   ó€   a a€ ] tR tRt oV3R lV 3R lltRV3R lR lltR tRV3R lR llt]R	 4       t	R
t
VtV ;t# )ÚModeliž  c                ó    <€ V ^8„  d   QhRS[ /# rŽ   r�   )r9   r:   s   "€r;   r<   ÚModel.__annotate__Ÿ  s   ø€ ÷ Tñ T™yñ Tr>   c                óÖ   <€ \         SV `  4        Wn        VP                  V n        \	        V4      V n        \        P                  ! VP                  VP                  R R7      V n
        R# )Fr“   N)rm   rn   Úargsr   r  Úmodelrš   r›   r   r   Úlm_headrÞ   s   &&€r;   rn   ÚModel.__init__Ÿ  sL   ø€ Ü‰ÑÔØŒ	Ø ×+Ñ+ˆŒÜ$ VÓ,ˆŒ
Ü—y’y ×!3Ñ!3°V×5FÑ5FÈUÔSˆŽr>   c                óJ   <€ V ^8„  d   QhRS[ P                  RS[S[,          /# )r   Úinputsr¬   r®   )r9   r:   s   "€r;   r<   r4  ¦  s'   ø€ ÷ !ñ !á—‘ð!ñ ™�}ñ!r>   c                óF   € V P                  W4      pV P                  V4      # rÔ   )r7  r8  )rp   r;  r¬   r  s   &&& r;   r„   ÚModel.__call__¦  s!   € ð
 �j‰j˜Ó'ˆØ�|‰|˜CÓ Ð r>   c                ó€  € \        V P                  P                  4       F•  pR V 2pR F‡  w  rER F|  pV RV RV 2V9   g   K  \        V P                  P                  4       Uu. uF  pVP	                  V RV RV RV 24      NK!  	  pp\
        P                  ! V4      W RV RV 2&   K~  	  K‰  	  K—  	  V# u upi )zmodel.layers.z.mlp.experts.0.Ú.z.mlp.experts.z.mlp.switch_mlp.))Úw1rÏ   )Úw2rÑ   )Úw3rÐ   )rÝ   ÚscalesÚbiases)r  r6  r   r#   Úpoprb   Ústack)	rp   Úweightsr.  ÚprefixÚnÚmrð   ÚeÚto_joins	   &&       r;   ÚsanitizeÚModel.sanitize®  sÛ   € Ü�t—y‘y×2Ñ2Ö3ˆAØ$ Q CÐ(ˆFÛU‘�Û7�AØ ˜ °°°1°Q°CÐ8¸GÖCô &+¨4¯9©9×+EÑ+EÔ%Fó#á%F ð $ŸK™K¨6¨(°-À¸sÀ!ÀAÀ3ÀaÈÀsÐ(KÖLÙ%Fð  ð #ô GIÇhÂhÈwÓFW˜ (Ð*:¸1¸#¸Q¸q¸cÐ BÓCó 8ó Vñ 4ð ˆùò#s   Á&%B;
c                óX   <€ V ^8„  d   QhRS[ S[P                  P                  ,          /# )r   r   )r   rb   r  ÚGroup)r9   r:   s   "€r;   r<   r4  »  s#   ø€ ÷ 6ñ 6™8¡B§N¡N×$8Ñ$8Õ9ñ 6r>   c                óP  € T;'       g    \         P                  P                  4       pVP                  4       pV P                  P
                   EFÒ  pVP                  P                  f3   \        VP                  P                  RVR7      VP                  n	        M1\        VP                  P                  RVR7      VP                  n
        \        VP                  P                  RVR7      VP                  n        \        VP                  P                  RVR7      VP                  n        VP                  ;P                  V,          un        \        VP                  \         4      '       d—   \        VP                  P"                  RVR7      VP                  n        \        VP                  P$                  RVR7      VP                  n        \        VP                  P&                  RVR7      VP                  n        EKº  WP                  n        \+        VP                  P,                  P"                  RVR7       \+        VP                  P,                  P$                  RVR7       \+        VP                  P,                  P&                  RVR7       \+        VP                  P.                  P"                  RVR7       \+        VP                  P.                  P$                  RVR7       \+        VP                  P.                  P&                  RVR7       EKÕ  	  R # )Nzall-to-shardedrÿ   zsharded-to-all)rb   r  ÚinitÚsizer7  r  r  r&   r   rœ   r    r£   r¤   r˜   Ú
isinstancer  rÊ   rÏ   rÑ   rÐ   rü   r   rû   rù   )rp   r   ÚNÚlayers   &&  r;   ÚshardÚModel.shard»  sR  € Ø×.Ð.œŸ™×,Ñ,Ó.ˆØ�J‰J‹LˆØ—Z‘Z×&Õ&ˆEà�‰×*Ñ*Ò2Ü)5Ø—O‘O×*Ñ*Ð,<ÀEô*�—‘Õ&ô ,8Ø—O‘O×,Ñ,Ð.>Àeô,�—‘Ô(ô )5Ø—‘×)Ñ)Ð+;À5ô)ˆE�O‰OÔ%ô &2Ø—‘×&Ñ&Ð(8Àô&ˆE�O‰OÔ"ð �O‰O×%Ò%¨!Õ+Õ%ô ˜%Ÿ)™)¤]×3Ò3Ü&2Ø—I‘I×'Ñ'Ð)9Àô'�—	‘	Ô#ô '3Ø—I‘I×'Ñ'Ð)9Àô'�—	‘	Ô#ô %1Ø—I‘I×%Ñ%Ð'7¸uô%�—	‘	×!ð ,1—	‘	Ô(ÜØ—I‘I×,Ñ,×6Ñ6Ð8HÐPUõô Ø—I‘I×,Ñ,×6Ñ6Ð8HÐPUõô Ø—I‘I×,Ñ,×4Ñ4Ð6FÈeõô Ø—I‘I×(Ñ(×2Ñ2Ð4DÈEõô Ø—I‘I×(Ñ(×2Ñ2Ð4DÈEõô Ø—I‘I×(Ñ(×0Ñ0Ð2BÈ%÷ð óc 'r>   c                ó.   € V P                   P                  # rÔ   )r7  r(  )rp   s   &r;   r  ÚModel.layersó  s   € à�z‰z×)Ñ)Ð)r>   )r6  r8  r7  r   rÔ   )r@   rA   rB   rC   rn   r„   rM  rW  Úpropertyr  rE   rF   r‰   rŠ   s   @@r;   r2  r2  ž  sD   ù‡ € ÷Tó T÷!ò !ò÷6ò 6ðp ñ*ó ÷*ð *r>   r2  )r†   r   )r[   r[   )(rH   Údataclassesr   Útypingr   r   r   Úmlx.coreÚcorerb   Úmlx.nnrš   Úmlx.nn.layers.distributedr   r   r	   Úactivationsr
   rM   r   r   r   Úpipeliner   Úswitch_layersr   r   rN   rY   r^   ri   ÚModulerk   rŒ   rÊ   r×   rõ   r  r  r2  r?   r>   r;   Ú<module>rf     sè   ðó Ý !ß &Ñ &å Ý ß PÑ På ß TÑ TÝ #Ý $ð ô!�ó !ó ð!ô<ô	+ô0ò&ô,
 B§I¡Iô ,
ô^t#˜"Ÿ)™)ô t#ôn�B—I‘Iô ô(!ˆb�i‰iô !ôH�B—I‘Iô ôD˜RŸY™Yô ô>*�m R§Y¡Yô *ôZW*ˆB�I‰Iö W*r>   