+
    TV-j"  ã                   ó°  € ^ RI Ht ^ RIHtHtHt ^ RIHt ^ RI	H
t
 ^RIHt ^RIHtHtHt ^RIHt ] ! R R]4      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# )é    )Ú	dataclass)ÚAnyÚDictÚOptionalN)Úswiglu)ÚBaseModelArgsÚcreate_attention_maskÚscaled_dot_product_attention)Ú	SwitchGLUc                   ót   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^t^ tRtRtR	tRtR
tV 3R ltRtV tR# )Ú	ModelArgsÚdeepseeki � i   i +  i  Ni   g�íµ ÷Æ°>g     ˆÃ@Fc                ó2  <€ 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[S[,          ;R&   S[;R&   S[;R&   S[;R&   S[;R&   S[;R&   S[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Ú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   "€Úg/Volumes/fast/ai/experiments/ui-tars-smoke/.venv/lib/python3.14/site-packages/mlx_lm/models/deepseek.pyÚ__annotate__ÚModelArgs.__annotate__   sý   ø‡ ‚ áÑ ñ ñ Ññ ñ Ññ	 ñ
 Ñ"ñ ñ Ñ%ñ ñ Ññ ñ Ñ!ñ ñ Ñ!ñ ñ ™s•mÑ*ñ ñ ™s•mÑ*ñ ñ "¡#�Ñ-ñ ñ Ññ ñ Ñ"ñ ñ !Ñ'ñ ñ  Ññ! ñ" Ññ# ñ$ ™4•.Ñ'ñ% ñ& Ñ ò' ó    © )Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r    r!   r"   Ú__annotate_func__Ú__static_attributes__Ú__classdictcell__)r(   s   @r)   r   r      sp   ø‡ € à €JØ€JØ€KØ"ÐØ!%ÐØÐØ!ÐØ!ÐØ&*ÐØ&*ÐØ)-ÐØ€NØ!"ÐØ#'ÐØ€LØ€JØ#'€LØ €N÷' ƒ r,   r   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# )ÚDeepseekAttentionc                ó    <€ V ^8„  d   QhRS[ /# ©r   Úconfig©r   )r'   r(   s   "€r)   r*   ÚDeepseekAttention.__annotate__#   s   ø€ ÷ (
ñ (
™yñ (
r,   c                ó~  <€ \         SV `  4        W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RR4      p\        P                  ! V P                  VP                  V P                  ,          VR7      V n        \        P                  ! V P                  VP
                  V P                  ,          VR7      V n        \        P                  ! V P                  VP
                  V P                  ,          VR7      V n        \        P                  ! V P                  VP                  V P                  ,          VR7      V n        RpVP                   '       d\   VP                   R,          R8X  dD   \#        VP                   R,          \$        4      '       g   Q h^VP                   R,          ,          p\        P&                  ! V P                  VP(                  VR7      V n        R	# )g      à?r"   F©Úbiasg      ð?ÚtypeÚlinearÚfactor)ÚbaseÚscaleNg      à¿)ÚsuperÚ__init__r9   r   r   r   Únum_kv_headsÚhead_dimrC   ÚgetattrÚnnÚLinearÚq_projÚk_projÚv_projÚo_projr!   Ú
isinstancer%   ÚRoPEr    Úrope)Úselfr9   r"   Ú
rope_scaleÚ	__class__s   &&  €r)   rE   ÚDeepseekAttention.__init__#   s­  ø€ Ü‰ÑÔØŒØ!×-Ñ-ˆÔØ#)×#=Ñ#=ˆÔ Ø"×6Ñ6ˆÔØ×*Ñ*¨f×.HÑ.HÕHˆŒØ—]‘] DÕ(ˆŒ
ä  Ð)9¸5ÓAˆä—i’iØ×ÑØ×&Ñ&¨¯©Õ6Øô
ˆŒô
 —i’iØ×ÑØ×&Ñ&¨¯©Õ6Øô
ˆŒô
 —i’iØ×ÑØ×&Ñ&¨¯©Õ6Øô
ˆŒô
 —i’iØ×ÑØ×&Ñ&¨¯©Õ6Øô
ˆŒð ˆ
Ø××Ð 6×#6Ñ#6°vÕ#>À(Ô#JÜ˜f×1Ñ1°(Õ;¼U×CÒCÐCÐCØ˜V×0Ñ0°Õ:Õ:ˆJÜ—G’GØ�M‰MØ×"Ñ"Øô
ˆŽ	r,   c                óŽ   <€ V ^8„  d   QhRS[ P                  RS[S[ P                  ,          RS[S[,          RS[ P                  /# ©r   ÚxÚmaskÚcacheÚreturn©ÚmxÚarrayr   r   )r'   r(   s   "€r)   r*   r;   M   sH   ø€ ÷ #ñ #á�8‰8ð#ñ ‘r—x‘xÕ ð#ñ ™�}ð	#ñ
 
�‰ñ#r,   c           	     ó  € VP                   w  rEpV P                  V4      V P                  V4      V P                  V4      r˜pVP	                  WEV P
                  R4      P                  ^ ^^^4      pVP	                  WEV P                  R4      P                  ^ ^^^4      pV	P	                  WEV P                  R4      P                  ^ ^^^4      p	VeM   V P                  WsP                  R7      pV P                  WƒP                  R7      pVP                  W‰4      w  r‰M"V P                  V4      pV P                  V4      p\        WxW“V P                  VR7      p
V
P                  ^ ^^^4      P	                  WER4      p
V P                  V
4      # )é   )Úoffset)rZ   rC   rY   éÿÿÿÿ)ÚshaperK   rL   rM   Úreshaper   Ú	transposerF   rQ   ra   Úupdate_and_fetchr
   rC   rN   )rR   rX   rY   rZ   ÚBÚLÚ_ÚqueriesÚkeysÚvaluesÚoutputs   &&&&       r)   Ú__call__ÚDeepseekAttention.__call__M   s]  € ð —'‘'‰ˆˆaà $§¡¨A£°·±¸A³ÀÇÁÈAÃ�vˆà—/‘/ !¨×(@Ñ(@À"ÓE×OÑOØˆq�!�Qó
ˆð �|‰|˜A $×"3Ñ"3°RÓ8×BÑBÀ1ÀaÈÈAÓNˆØ—‘  d×&7Ñ&7¸Ó<×FÑFÀqÈ!ÈQÐPQÓRˆàÒØ—i‘i ·±�iÓ=ˆGØ—9‘9˜T¯,©,�9Ó7ˆDØ ×1Ñ1°$Ó?‰LˆD�&à—i‘i Ó(ˆGØ—9‘9˜T“?ˆDä-Ø˜6°d·j±jÀtô
ˆð ×!Ñ! ! Q¨¨1Ó-×5Ñ5°a¸BÓ?ˆØ�{‰{˜6Ó"Ð"r,   )r9   rG   r   rL   r   rF   rN   rK   rQ   rC   rM   ©NN©	r.   r/   r0   r1   rE   rn   r3   r4   Ú__classcell__©rT   r(   s   @@r)   r6   r6   "   s   ù‡ € ÷(
ó (
÷T#÷ #ò #r,   r6   c                   óT   a a€ ] tR t^lt oRV3R lV 3R llltV3R lR ltRtVtV ;t# )ÚDeepseekMLPc                óL   <€ V ^8„  d   QhRS[ RS[S[,          RS[S[,          /# )r   r9   r   r   )r   r   r$   )r'   r(   s   "€r)   r*   ÚDeepseekMLP.__annotate__m   s6   ø€ ÷ Yñ YáðYñ ™c•]ðYñ $¡C�=ñ	Yr,   c                óÈ  <€ \         SV `  4        Wn        T;'       g    VP                  V n        T;'       g    VP                  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# ©Fr=   N)
rD   rE   r9   r   r   rI   rJ   Ú	gate_projÚup_projÚ	down_proj)rR   r9   r   r   rT   s   &&&&€r)   rE   ÚDeepseekMLP.__init__m   s¤   ø€ ô 	‰ÑÔØŒØ&×<Ð<¨&×*<Ñ*<ˆÔØ!2×!NÐ!N°f×6NÑ6NˆÔÜŸš 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                óN   <€ V ^8„  d   QhRS[ P                  RS[ P                  /# )r   rX   r[   )r]   r^   )r'   r(   s   "€r)   r*   rw   {   s'   ø€ ÷ Jñ J™"Ÿ(™(ð J¡r§x¡xñ Jr,   c                ót   € V P                  \        V P                  V4      V P                  V4      4      4      # ©N)r|   r   rz   r{   )rR   rX   s   &&r)   rn   ÚDeepseekMLP.__call__{   s)   € Ø�~‰~œf T§^¡^°AÓ%6¸¿¹ÀQ»ÓHÓIÐIr,   )r9   r|   rz   r   r   r{   rp   rq   rs   s   @@r)   ru   ru   l   s#   ù‡ € ÷Yõ Y÷J÷ Jð Jr,   ru   c                   óD   a a€ ] tR t^t oV3R lV 3R lltR tRtVtV ;t# )ÚMoEGatec                ó    <€ V ^8„  d   QhRS[ /# r8   r:   )r'   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        \        P                  ! V P
                  VP                  34      V n	        R # r€   )
rD   rE   r9   r   Útop_kr   r]   Úzerosr   Úweight©rR   r9   rT   s   &&€r)   rE   ÚMoEGate.__init__€   sO   ø€ Ü‰ÑÔØŒØ×/Ñ/ˆŒ
Ø &× 7Ñ 7ˆÔÜ—h’h × 5Ñ 5°v×7IÑ7IÐJÓKˆŽr,   c                ó:  € WP                   P                  ,          p\        P                  ! VRRR7      pV P                  p\        P
                  ! \        P                  ! V) V^,
          RR7      RRV13,          4      p\        P                  ! W5RR7      pWS3# )r`   T)ÚaxisÚprecise)Úkthr�   .N©r�   rb   )r‰   ÚTr]   Úsoftmaxr‡   Ústop_gradientÚargpartitionÚtake_along_axis)rR   rX   ÚgatesÚscoresÚkÚindss   &&    r)   rn   ÚMoEGate.__call__‡   sz   € Ø—K‘K—M‘MÕ!ˆÜ—’˜E¨°DÔ9ˆØ�J‰JˆÜ×Ò¤§¢°°¸QÀ½UÈÔ LÈSÐRTÐSTÐRTÈWÕ UÓVˆÜ×#Ò# F°rÔ:ˆØˆ|Ðr,   )r9   r   r‡   r‰   rq   rs   s   @@r)   rƒ   rƒ      s   ù‡ € ÷Ló L÷ò r,   rƒ   c                   óD   a a€ ] tR t^�t oV3R lV 3R lltR tRtVtV ;t# )ÚDeepseekMoEc                ó    <€ V ^8„  d   QhRS[ /# r8   r:   )r'   r(   s   "€r)   r*   ÚDeepseekMoE.__annotate__‘   s   ø€ ÷ ñ ™yñ r,   c                ó,  <€ \         SV `  4        Wn        \        VP                  VP
                  VP                  4      V n        \        V4      V n	        VP                  e1   VP
                  VP                  ,          p\        WR7      V n        R # R # )N)r9   r   )rD   rE   r9   r   r   r   r   Ú
switch_mlprƒ   Úgater   ru   Úshared_experts)rR   r9   r   rT   s   && €r)   rE   ÚDeepseekMoE.__init__‘   s}   ø€ Ü‰ÑÔØŒÜ#Ø×Ñ × <Ñ <¸f×>UÑ>Uó
ˆŒô ˜F“OˆŒ	Ø×"Ñ"Ò.Ø &× <Ñ <¸v×?VÑ?VÕ VÐÜ"-Øô#ˆDÖñ /r,   c                óê   € 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# ).r�   ).Néþÿÿÿ)r¡   r    Úsumr9   r   r¢   )rR   rX   r™   r—   Úys   &&   r)   rn   ÚDeepseekMoE.__call__Ÿ   sb   € Ø—y‘y “|‰ˆØ�O‰O˜AÓ$ˆØ˜	Õ"Õ"×'Ñ'¨RÐ'Ó0ˆØ�;‰;×'Ñ'Ò3Ø×'Ñ'¨Ó*Õ*ˆAàˆr,   )r9   r¡   r¢   r    rq   rs   s   @@r)   rœ   rœ   �   s   ù‡ € ÷ó ÷ò r,   rœ   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# )ÚDeepseekDecoderLayerc                ó&   <€ V ^8„  d   QhRS[ RS[/# )r   r9   Ú	layer_idx)r   r$   )r'   r(   s   "€r)   r*   Ú!DeepseekDecoderLayer.__annotate__ª   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 # )N©Úeps)rD   rE   r6   Ú	self_attnr   r   r   rœ   ru   ÚmlprI   ÚRMSNormr   r   Úinput_layernormÚpost_attention_layernorm)rR   r9   r¬   rT   s   &&&€r)   rE   ÚDeepseekDecoderLayer.__init__ª   s£   ø€ Ü‰ÑÔÜ*¨6Ó2ˆŒð ×'Ñ'Ò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                  /# rW   r\   )r'   r(   s   "€r)   r*   r­   »   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µ   )rR   rX   rY   rZ   ÚrÚhÚouts   &&&&   r)   rn   ÚDeepseekDecoderLayer.__call__»   sK   € ð �N‰N˜4×/Ñ/°Ó2°DÓ@ˆØ�EˆØ�H‰H�T×2Ñ2°1Ó5Ó6ˆØ�eˆØˆ
r,   )r´   r²   rµ   r±   rp   rq   rs   s   @@r)   rª   rª   ©   s   ù‡ € ÷
ó 
÷"
÷ 
ò 
r,   rª   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# )ÚDeepseekModelc                ó    <€ V ^8„  d   QhRS[ /# r8   r:   )r'   r(   s   "€r)   r*   ÚDeepseekModel.__annotate__É   s   ø€ ÷ Lñ L™yñ Lr,   c                ób  <€ \         SV `  4        W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)rD   rE   r9   rI   Ú	Embeddingr   r   Úembed_tokensÚranger   rª   Úlayersr³   r   Únorm)rR   r9   ÚidxrT   s   && €r)   rE   ÚDeepseekModel.__init__É   s„   ø€ Ü‰ÑÔØŒÜŸLšL¨×):Ñ):¸F×<NÑ<NÓOˆÔä9>¸v×?WÑ?WÔ9Xó
Ù9X°#Ô  Ö-Ñ9Xñ
ˆŒô —J’J˜v×1Ñ1°v×7JÑ7JÔKˆŽ	ùò
s   ÁB,c                ód   <€ V ^8„  d   QhRS[ P                  RS[S[,          RS[ P                  /# )r   rX   rZ   r[   r\   )r'   r(   s   "€r)   r*   rÀ   Ò   s5   ø€ ÷ ñ á�8‰8ðñ ™�}ðñ 
�‰ñ	r,   c                óü   € V P                  V4      pVf   R .\        V P                  4      ,          p\        W2^ ,          4      p\	        V P                  V4       F  w  rVV! W4V4      pK  	  V P                  V4      # r€   )rÃ   ÚlenrÅ   r	   ÚziprÆ   )rR   rX   rZ   rº   rY   ÚlayerÚcs   &&&    r)   rn   ÚDeepseekModel.__call__Ò   so   € ð
 ×Ñ˜aÓ ˆàŠ=Ø�FœS §¡Ó-Õ-ˆEä$ Q¨a­Ó1ˆä˜DŸK™K¨Ö/‰HˆEÙ�a˜qÓ!ŠAñ 0ð �y‰y˜‹|Ðr,   )r9   rÃ   rÅ   rÆ   r€   rq   rs   s   @@r)   r¾   r¾   È   s    ù‡ € ÷Ló L÷÷ ò r,   r¾   c                   ój   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]R 4       tRt	Vt
V ;t# )	ÚModelc                ó    <€ V ^8„  d   QhRS[ /# r8   r:   )r'   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# ry   )rD   rE   Úargsr   r¾   ÚmodelrI   rJ   r   r   Úlm_headrŠ   s   &&€r)   rE   ÚModel.__init__å   sL   ø€ Ü‰ÑÔØŒ	Ø ×+Ñ+ˆŒÜ" 6Ó*ˆŒ
Ü—y’y ×!3Ñ!3°V×5FÑ5FÈUÔSˆŽr,   c                óJ   <€ V ^8„  d   QhRS[ P                  RS[S[,          /# )r   ÚinputsrZ   r\   )r'   r(   s   "€r)   r*   rÓ   ì   s'   ø€ ÷ !ñ !á—‘ð!ñ ™�}ñ!r,   c                óF   € V P                  W4      pV P                  V4      # r€   )rÖ   r×   )rR   rÚ   rZ   r»   s   &&& r)   rn   ÚModel.__call__ì   s!   € ð
 �j‰j˜Ó'ˆØ�|‰|˜CÓ Ð r,   c                ó|  € \        V P                  P                  4       F“  pR V 2pR F…  pR 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.)rz   r|   r{   )r‰   ÚscalesÚbiases)rÄ   rÕ   r   r   Úpopr]   Ústack)rR   ÚweightsÚlÚprefixÚmr˜   ÚeÚto_joins   &&      r)   ÚsanitizeÚModel.sanitizeô   sØ   € Ü�t—y‘y×2Ñ2Ö3ˆAØ$ Q CÐ(ˆFÛ:�Û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ó ;ñ 4ð ˆùò#s   Á$%B9
c                ó.   € V P                   P                  # r€   )rÖ   rÅ   )rR   s   &r)   rÅ   ÚModel.layers  s   € à�z‰z× Ñ Ð r,   )rÕ   r×   rÖ   r   r€   )r.   r/   r0   r1   rE   rn   ré   ÚpropertyrÅ   r3   r4   rr   rs   s   @@r)   rÑ   rÑ   ä   s9   ù‡ € ÷Tó T÷!ò !òð ñ!ó ÷!ð !r,   rÑ   )Údataclassesr   Útypingr   r   r   Úmlx.coreÚcorer]   Úmlx.nnrI   Úactivationsr   rB   r   r	   r
   Úswitch_layersr   r   ÚModuler6   ru   rƒ   rœ   rª   r¾   rÑ   r-   r,   r)   Ú<module>rö      s°   ðÝ !ß &Ñ &å Ý å ß TÑ TÝ $ð ô!�ó !ó ð!ô*G#˜Ÿ	™	ô G#ôTJ�"—)‘)ô Jô&ˆb�i‰iô ô"�"—)‘)ô ô2˜2Ÿ9™9ô ô>�B—I‘Iô ô8!ˆB�I‰Iö !r,   