+
    TV-ju  ã                   óh  € ^ RI Ht ^ RIHtHtHt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# )é    )Ú	dataclass)ÚAnyÚDictÚListÚOptionalÚTupleÚUnionN)Úswiglu)ÚBaseModelArgsÚcreate_attention_maskÚscaled_dot_product_attention)ÚSuScaledRoPEc                   óR   a € ] tR t^t o RtRtRtRtRtRt	Rt
RtR tV 3R ltR	tV tR# )
Ú	ModelArgsNi'  Fç      ð?i   i   c                ój  a € S P                   f   S P                  S n         S P                  '       d�   RR0p\        ;QJ d    V 3R lV 4       F  '       d   K   RM	  RM! V 3R lV 4       4      '       g   \	        RV 24      hS P                  R,          R9  d   \        R4       R S n        R # R # R # )	NÚlong_factorÚtypec              3   ó@   <"  € T F  qSP                   9   x € K  	  R # 5i©N)Úrope_scaling)Ú.0ÚkeyÚselfs   & €Úc/Volumes/fast/ai/experiments/ui-tars-smoke/.venv/lib/python3.14/site-packages/mlx_lm/models/phi3.pyÚ	<genexpr>Ú*ModelArgs.__post_init__.<locals>.<genexpr>&   s   øé € ÐI¹=°C˜d×/Ñ/Ö/»=ùs   ƒFTzrope_scaling must contain keys zt[WARNING] rope_scaling 'type' currently only supports 'linear', 'su', and 'longrope'; setting rope scaling to false.)ÚlongropeÚsuÚlinear)Únum_key_value_headsÚnum_attention_headsr   ÚallÚ
ValueErrorÚprint)r   Úrequired_keyss   f r   Ú__post_init__ÚModelArgs.__post_init__    sž   ø€ Ø×#Ñ#Ò+Ø'+×'?Ñ'?ˆDÔ$à××ÐØ*¨FÐ3ˆMß“3ÔI¹=ÓI—3—3’3ÔI¹=ÓI×IÒIÜ Ð#BÀ=À/Ð!RÓSÐSà× Ñ  Õ(Ð0LÔLÜð Kôð %)�Ö!ñ	 Mñ ó    c                ó*  <€ V ^8„  d   Qh/ S[ ;R&   S[;R&   S[;R&   S[;R&   S[;R&   S[;R&   S[;R&   S[S[,          ;R&   S[;R	&   S[;R
&   S[S[S[ S[S[S[S[,          3,          3,          ,          ;R&   S[;R&   S[;R&   S[;R&   S[;R&   # )é   Ú
model_typeÚhidden_sizeÚnum_hidden_layersÚintermediate_sizer"   Úrms_norm_epsÚ
vocab_sizer!   Ú
rope_thetaÚrope_traditionalr   Úpartial_rotary_factorÚmax_position_embeddingsÚ original_max_position_embeddingsÚtie_word_embeddings)ÚstrÚintÚfloatr   Úboolr   r	   r   )ÚformatÚ__classdict__s   "€r   Ú__annotate__ÚModelArgs.__annotate__   så   ø‡ ‚ á�Oñ ñ Ññ ñ Ññ	 ñ
 Ññ ñ Ññ ñ Ññ ñ �Oñ ñ "¡#�Ñ-ñ ñ Ññ ñ Ñ"ñ ñ ™4¡¡U©5±$±uµ+Ð+=Õ%>Ð >Õ?Õ@ÑGñ ñ !Ñ&ñ ñ !Ñ)ñ ñ '*Ñ0ñ ñ  Ñ%ò! r)   )r!   r   )Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__r!   r2   r3   r   r4   r5   r6   r7   r'   Ú__annotate_func__Ú__static_attributes__Ú__classdictcell__)r=   s   @r   r   r      sA   ø‡ € ð *.ÐØ€JØ"ÐØCG€LØ#&ÐØ#)ÐØ,0Ð$Ø %Ðò)÷% ƒ r)   r   c                   óT   a a€ ] tR t^0t 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# )Ú	Attentionc                ó    <€ V ^8„  d   QhRS[ /# ©r+   Úargs©r   )r<   r=   s   "€r   r>   ÚAttention.__annotate__1   s   ø€ ÷ $ñ $™Yñ $r)   c           	     óR  <€ \         S	V `  4        VP                  pVP                  ;V n        pVP
                  f   Q hVP
                  ;V n        pVP                  V n        VP                  V,          ;V n        pVR,          V n	        W5,          ^WE,          ,          ,           p\        P                  ! W&RR7      V n        \        P                  ! W5,          VRR7      V n        \        WQP                  ,          4      pVP                   '       dq   VP                   R,          R9   dY   \#        VVP$                  VP&                  VP(                  VP                   R,          VP                   R,          R7      V n        R # RpVP                   '       d\   VP                   R,          R8X  dD   \-        VP                   R	,          \.        4      '       g   Q h^VP                   R	,          ,          p\        P0                  ! VVP2                  VP$                  VR
7      V n        R # )NF©Úbiasr   Úshort_factorr   )Úbaser5   r6   rQ   r   r   r    Úfactor)ÚtraditionalrR   Úscaleg      à¿)r   r   )ÚsuperÚ__init__r-   r"   Ún_headsr!   Ú
n_kv_headsr.   Úhead_dimrU   ÚnnÚLinearÚqkv_projÚo_projr9   r4   r   r   r2   r5   r6   ÚropeÚ
isinstancer:   ÚRoPEr3   )
r   rK   ÚdimrX   rY   rZ   Úop_sizeÚrope_dimÚ
rope_scaleÚ	__class__s
   &&       €r   rW   ÚAttention.__init__1   s±  ø€ Ü‰ÑÔà×ÑˆØ!%×!9Ñ!9Ð9ˆŒ�wØ×'Ñ'Ò3Ð3Ð3Ø'+×'?Ñ'?Ð?ˆŒ˜*Ø!%×!7Ñ!7ˆÔà#'×#3Ñ#3°wÕ#>Ð>ˆŒ˜Ø˜t•^ˆŒ
àÕ$ q¨JÕ,AÕ'BÕBˆÜŸ	š	 #°UÔ;ˆŒÜ—i’i Õ 2°C¸eÔDˆŒä�x×"<Ñ"<Õ<Ó=ˆØ××Ð ×!2Ñ!2°6Õ!:Ð>PÔ!PÜ$ØØ—_‘_Ø(,×(DÑ(DØ15×1VÑ1VØ!×.Ñ.¨~Õ>Ø ×-Ñ-¨mÕ<ôˆDŽIð ˆJØ× × Ð  T×%6Ñ%6°vÕ%>À(Ô%JÜ! $×"3Ñ"3°HÕ"=¼u×EÒEÐEÐEØ ×!2Ñ!2°8Õ!<Õ<�
ÜŸšØØ ×1Ñ1Ø—_‘_Ø ô	ˆDŽIr)   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>   rM   W   sH   ø€ ÷ #ñ #á�8‰8ð#ñ ‘r—x‘xÕ ð#ñ ™�}ð	#ñ
 
�‰ñ#r)   c           	     ó’  € VP                   w  rEpV P                  V4      pV P                  V P                  ,          p\        P
                  ! WxW€P                  V P                  ,          ,           .RR7      w  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                  W“P                  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
\        WšW³V P                  VR7      pVP                  ^ ^^^4      P                  WER4      pV P                  V4      # )é   ©Úaxis)Úoffset)rl   rU   rk   éÿÿÿÿ)Úshaper]   rX   rZ   ro   ÚsplitrY   ÚreshapeÚ	transposer_   ru   Úupdate_and_fetchr   rU   r^   )r   rj   rk   rl   ÚBÚLÚDÚqkvÚ	query_posÚqueriesÚkeysÚvaluesÚoutputs   &&&&         r   Ú__call__ÚAttention.__call__W   s~  € ð —'‘'‰ˆˆaà�m‰m˜AÓˆØ—L‘L 4§=¡=Õ0ˆ	Ü "§¢Ø˜Y¯©¸4¿=¹=Õ)HÕHÐIÐPRô!
Ñˆ�vð
 —/‘/ !¨¯©°bÓ9×CÑCÀAÀqÈ!ÈQÓOˆØ�|‰|˜A $§/¡/°2Ó6×@Ñ@ÀÀAÀqÈ!ÓLˆØ—‘  d§o¡o°rÓ:×DÑDÀQÈÈ1ÈaÓPˆàÒØ—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)   )rZ   rX   rY   r.   r^   r]   r_   rU   ©NN©	r@   rA   rB   rC   rW   r…   rE   rF   Ú__classcell__©rf   r=   s   @@r   rH   rH   0   s   ù‡ € ÷$ó $÷L#÷ #ò #r)   rH   c                   óD   a a€ ] tR t^yt oV 3R ltV3R lR ltRtVtV ;t# )ÚMLPc                ó¨   <€ \         SV `  4        \        P                  ! V^V,          RR7      V n        \        P                  ! W!RR7      V n        R# )r+   FrO   N)rV   rW   r[   r\   Úgate_up_projÚ	down_proj)r   rb   Ú
hidden_dimrf   s   &&&€r   rW   ÚMLP.__init__z   s9   ø€ Ü‰ÑÔÜŸIšI c¨1¨z­>ÀÔFˆÔÜŸš :¸Ô?ˆŽr)   c                ó4   <€ V ^8„  d   QhRS[ P                  /# )r+   rm   ©ro   rp   )r<   r=   s   "€r   r>   ÚMLP.__annotate__   s   ø€ ÷ /ñ /™RŸX™Xñ /r)   c                óŽ   € V P                  V4      p\        P                  ! V^RR7      w  r!V P                  \	        W!4      4      # )r+   rs   rv   )rŽ   ro   rx   r�   r
   )r   rj   Úgates   && r   r…   ÚMLP.__call__   s9   € Ø×Ñ˜aÓ ˆÜ—(’(˜1˜a bÔ)‰ˆØ�~‰~œf T›oÓ.Ð.r)   )r�   rŽ   rˆ   rŠ   s   @@r   rŒ   rŒ   y   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# )ÚTransformerBlockc                ó    <€ V ^8„  d   QhRS[ /# rJ   rL   )r<   r=   s   "€r   r>   ÚTransformerBlock.__annotate__†   s   ø€ ÷ 
ñ 
™Yñ 
r)   c                ó¢  <€ \         SV `  4        VP                  V n        VP                  V n        \	        V4      V n        \        VP                  VP                  4      V n        \        P                  ! VP                  VP                  R 7      V n        \        P                  ! VP                  VP                  R 7      V n        Wn        R# )©ÚepsN)rV   rW   r"   r-   rH   Ú	self_attnrŒ   r/   Úmlpr[   ÚRMSNormr0   Úinput_layernormÚpost_attention_layernormrK   ©r   rK   rf   s   &&€r   rW   ÚTransformerBlock.__init__†   s—   ø€ Ü‰ÑÔØ#'×#;Ñ#;ˆÔ Ø×+Ñ+ˆÔÜ" 4›ˆŒÜ�t×'Ñ'¨×)?Ñ)?Ó@ˆŒÜ!Ÿzšz¨$×*:Ñ*:À×@QÑ@QÔRˆÔÜ(*¯
ª
Ø×Ñ $×"3Ñ"3ô)
ˆÔ%ð Ž	r)   c                óŽ   <€ V ^8„  d   QhRS[ P                  RS[S[ P                  ,          RS[S[,          RS[ P                  /# ri   rn   )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£   )r   rj   rk   rl   ÚrÚhÚouts   &&&&   r   r…   ÚTransformerBlock.__call__’   sK   € ð �N‰N˜4×/Ñ/°Ó2°DÓ@ˆØ�EˆØ�H‰H�T×2Ñ2°1Ó5Ó6ˆØ�eˆØˆ
r)   )rK   r-   r¢   r    r"   r£   rŸ   r‡   rˆ   rŠ   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# )Ú	Phi3Modelc                ó    <€ V ^8„  d   QhRS[ /# rJ   rL   )r<   r=   s   "€r   r>   ÚPhi3Model.__annotate__    s   ø€ ÷ 
Hñ 
H™Yñ 
Hr)   c                óÎ  <€ \         SV `  4        Wn        VP                  V n        VP                  V n        V P                  ^ 8”  g   Q h\
        P                  ! VP                  VP                  4      V n        \        VP                  4       Uu. uF  p\        VR7      NK  	  upV n        \
        P                  ! VP                  VP                  R7      V n        R# u upi )r   )rK   r�   N)rV   rW   rK   r1   r.   r[   Ú	Embeddingr-   Úembed_tokensÚranger™   Úlayersr¡   r0   Únorm)r   rK   Ú_rf   s   && €r   rW   ÚPhi3Model.__init__    s­   ø€ Ü‰ÑÔØŒ	ØŸ/™/ˆŒØ!%×!7Ñ!7ˆÔØ�‰ Ô"Ð"Ð"ÜŸLšL¨¯©¸$×:JÑ:JÓKˆÔä16°t×7MÑ7MÔ1Nó
Ù1N¨AÔ $×'Ñ1Nñ
ˆŒô —J’J˜t×/Ñ/°T×5FÑ5FÔGˆŽ	ùò
s   ÂC"c                ó4   <€ V ^8„  d   QhRS[ P                  /# ©r+   Úinputsr“   )r<   r=   s   "€r   r>   r¯   ¬   s   ø€ ÷ ñ á—‘ñ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µ   )r   rº   rl   r©   rk   ÚlayerÚcs   &&&    r   r…   ÚPhi3Model.__call__¬   so   € ð
 ×Ñ˜fÓ%ˆàŠ=Ø�FœS §¡Ó-Õ-ˆEä$ Q¨a­Ó1ˆä˜DŸK™K¨Ö/‰HˆEÙ�a˜qÓ!ŠAñ 0ð �y‰y˜‹|Ðr)   )rK   r²   r´   rµ   r.   r1   r   rˆ   rŠ   s   @@r   r­   r­   Ÿ   s    ù‡ € ÷
Hó 
H÷÷ ò r)   r­   c                   ód   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 4       tRtVt	V ;t
# )ÚModelc                ó    <€ V ^8„  d   QhRS[ /# rJ   rL   )r<   r=   s   "€r   r>   ÚModel.__annotate__¿   s   ø€ ÷ ñ ™Yñ r)   c                óú   <€ \         SV `  4        VP                  V n        \        V4      V n        VP
                  '       g3   \        P                  ! VP                  VP                  R R7      V n
        Wn        R# )FrO   N)rV   rW   r,   r­   Úmodelr7   r[   r\   r-   r1   Úlm_headrK   r¤   s   &&€r   rW   ÚModel.__init__¿   sS   ø€ Ü‰ÑÔØŸ/™/ˆŒÜ˜t“_ˆŒ
Ø×'×'Ð'ÜŸ9š9 T×%5Ñ%5°t·±ÈUÔSˆDŒLØŽ	r)   c                ó4   <€ V ^8„  d   QhRS[ P                  /# r¹   r“   )r<   r=   s   "€r   r>   rÄ   Ç   s   ø€ ÷ 
ñ 
á—‘ñ
r)   c                óÐ   € V P                  W4      pV P                  P                  '       d(   V P                   P                  P	                  V4      pV# V P                  V4      pV# r   )rÆ   rK   r7   r²   Ú	as_linearrÇ   )r   rº   rl   rª   s   &&& r   r…   ÚModel.__call__Ç   sX   € ð
 �j‰j˜Ó'ˆØ�9‰9×(×(Ð(Ø—*‘*×)Ñ)×3Ñ3°CÓ8ˆCð ˆ
ð —,‘,˜sÓ#ˆCØˆ
r)   c                ó.   € V P                   P                  # r   )rÆ   r´   )r   s   &r   r´   ÚModel.layersÓ   s   € à�z‰z× Ñ Ð r)   )rK   rÇ   rÆ   r,   r   )r@   rA   rB   rC   rW   r…   Úpropertyr´   rE   rF   r‰   rŠ   s   @@r   rÂ   rÂ   ¾   s2   ù‡ € ÷ó ÷
ò 
ð ñ!ó ÷!ð !r)   rÂ   )Údataclassesr   Útypingr   r   r   r   r   r	   Úmlx.coreÚcorero   Úmlx.nnr[   Úactivationsr
   rR   r   r   r   Ú
rope_utilsr   r   ÚModulerH   rŒ   r™   r­   rÂ   © r)   r   Ú<module>rÙ      s‘   ðõ "ß :× :å Ý å ß TÑ TÝ $ð ô)�ó )ó ð)ôBF#�—	‘	ô F#ôR	/ˆ"�)‰)ô 	/ô�r—y‘yô ô4�—	‘	ô ô>!ˆB�I‰Iö !r)   