+
    TV-jü#  ã                   ó€  € ^ RI Ht ^ RI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 ^RIHtHtHt ^RIHtHt ^RIHt ] ! R	 R
]4      4       t ! R R]P6                  4      t ! R R]P6                  4      t ! R R]P6                  4      t ! R R]P6                  4      t ! R R]P6                  4      t R# )é    )Ú	dataclass)ÚAnyÚDictÚListÚOptionalÚUnionN)Úshard_linear)Úswiglu)ÚBaseModelArgsÚcreate_attention_maskÚscaled_dot_product_attention)ÚKVCacheÚRotatingKVCache)Úinitialize_ropec                   ó^   a € ] tR t^t o RtRtRt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# )Ú	ModelArgsNFi'  Tc                ó–   € V P                   f   V P                  V n         V P                  f   R.V P                  ,          V n        R # R # )NÚfull_attention)Únum_key_value_headsÚnum_attention_headsÚlayer_typesÚnum_hidden_layers©Úselfs   &Úd/Volumes/fast/ai/experiments/ui-tars-smoke/.venv/lib/python3.14/site-packages/mlx_lm/models/llama.pyÚ__post_init__ÚModelArgs.__post_init__%   sC   € Ø×#Ñ#Ò+Ø'+×'?Ñ'?ˆDÔ$à×ÑÒ#Ø 0Ð1°D×4JÑ4JÕJˆDÖñ $ó    c                óŽ  <€ V ^8„  d   Qh/ 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[S[S[ S[S[S[ 3,          3,          ,          ;R&   S[;R&   S[S[S[ ,          ,          ;R&   S[S[,          ;R&   # )é   Ú
model_typeÚhidden_sizer   Úintermediate_sizer   Úrms_norm_epsÚ
vocab_sizeÚhead_dimÚmax_position_embeddingsr   Úattention_biasÚmlp_biasÚ
rope_thetaÚrope_traditionalÚrope_scalingÚtie_word_embeddingsr   Úsliding_window)ÚstrÚintÚfloatr   Úboolr   r   r   )ÚformatÚ__classdict__s   "€r   Ú__annotate__ÚModelArgs.__annotate__   s  ø‡ ‚ á�Oñ ñ Ññ ñ Ññ	 ñ
 Ññ ñ Ññ ñ Ññ ñ �Oñ ñ ‘s�mÑ"ñ ñ &¡c�]Ñ1ñ ñ "¡#�Ñ-ñ ñ Ñ ñ ñ Ññ ñ Ññ ñ Ñ"ñ ñ  ™4¡¡U©5±#¨:Õ%6Ð 6Õ7Õ8Ñ?ñ! ñ" Ñ$ñ# ñ$ ™$™s�)Õ$Ñ+ñ% ñ& ™S•MÑ(ò' r   )r   r   )Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__r&   r'   r   r(   r)   r*   r+   r,   r-   r   r.   r   Ú__annotate_func__Ú__static_attributes__Ú__classdictcell__)r4   s   @r   r   r      sO   ø‡ € ð #€HØ-1ÐØ)-ÐØ €NØ€HØ€JØ"ÐØ;?€LØ $ÐØ'+€KØ$(€NòK÷+ ƒ 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# )Ú	Attentionc                ó    <€ V ^8„  d   QhRS[ /# ©r    Úargs©r   )r3   r4   s   "€r   r5   ÚAttention.__annotate__.   s   ø€ ÷ 
ñ 
™Yñ 
r   c                óì  <€ \         SV `  4        VP                  pVP                  ;V n        pVP
                  ;V n        pVP                  ;'       g    VP                  V,          ;V n        pVR,          V n        \        VR4      '       d   VP                  pMRp\        P                  ! W#V,          VR7      V n        \        P                  ! W$V,          VR7      V n        \        P                  ! W$V,          VR7      V n        \        P                  ! W5,          W&R7      V n        \#        V P                  VP$                  VP&                  VP(                  VP*                  4      V n        R# )g      à?r(   F©ÚbiasNg      à¿)ÚsuperÚ__init__r"   r   Ún_headsr   Ú
n_kv_headsr&   ÚscaleÚhasattrr(   ÚnnÚLinearÚq_projÚk_projÚv_projÚo_projr   r*   r+   r,   r'   Úrope)r   rB   ÚdimrJ   rK   r&   r(   Ú	__class__s   &&     €r   rI   ÚAttention.__init__.   s  ø€ Ü‰ÑÔà×ÑˆØ!%×!9Ñ!9Ð9ˆŒ�wØ'+×'?Ñ'?Ð?ˆŒ˜*à#'§=¡=×#OÐ#O°D×4DÑ4DÈÕ4OÐOˆŒ˜à˜t•^ˆŒ
Ü�4Ð)×*Ò*Ø!×0Ñ0‰Nà"ˆNä—i’i ¨xÕ%7¸nÔMˆŒÜ—i’i °(Õ%:ÀÔPˆŒÜ—i’i °(Õ%:ÀÔPˆŒÜ—i’i Õ 2°CÔMˆŒä#Ø�M‰MØ�O‰OØ×!Ñ!Ø×ÑØ×(Ñ(ó
ˆŽ	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   )r3   r4   s   "€r   r5   rD   J   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)r\   rL   r[   éÿÿÿÿ)ÚshaperP   rQ   rR   ÚreshaperJ   Ú	transposerK   rT   rc   Úupdate_and_fetchr   rL   rS   )r   rZ   r[   r\   ÚBÚLÚDÚqueriesÚkeysÚvaluesÚoutputs   &&&&       r   Ú__call__ÚAttention.__call__J   sS  € ð —'‘'‰ˆˆaà $§¡¨A£°·±¸A³ÀÇÁÈAÃ�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   )	r&   rQ   rJ   rK   rS   rP   rT   rL   rR   ©NN©	r7   r8   r9   r:   rI   rp   r<   r=   Ú__classcell__©rV   r4   s   @@r   r?   r?   -   s   ù‡ € ÷
ó 
÷8#÷ #ò #r   r?   c                   óP   a a€ ] tR t^it oV3R lV 3R lltV3R lR ltRtVtV ;t# )ÚMLPc                ó    <€ V ^8„  d   QhRS[ /# rA   rC   )r3   r4   s   "€r   r5   ÚMLP.__annotate__j   s   ø€ ÷ Añ A™Yñ Ar   c                óD  <€ \         SV `  4        VP                  pVP                  p\	        VR 4      '       d   VP
                  pMRp\        P                  ! W#VR7      V n        \        P                  ! W2VR7      V n	        \        P                  ! W#VR7      V n
        R# )r)   FrF   N)rH   rI   r"   r#   rM   r)   rN   rO   Ú	gate_projÚ	down_projÚup_proj)r   rB   rU   Ú
hidden_dimr)   rV   s   &&   €r   rI   ÚMLP.__init__j   su   ø€ Ü‰ÑÔà×ÑˆØ×+Ñ+ˆ
Ü�4˜×$Ò$Ø—}‘}‰HàˆHäŸš 3¸ÔBˆŒÜŸš :¸ÔBˆŒÜ—y’y °xÔ@ˆŽr   c                ó4   <€ V ^8„  d   QhRS[ P                  /# )r    r]   )r_   r`   )r3   r4   s   "€r   r5   ry   x   s   ø€ ÷ Jñ J™RŸX™Xñ Jr   c                ót   € V P                  \        V P                  V4      V P                  V4      4      4      # ©N)r|   r
   r{   r}   )r   rZ   s   &&r   rp   ÚMLP.__call__x   s)   € Ø�~‰~œf T§^¡^°AÓ%6¸¿¹ÀQ»ÓHÓIÐIr   )r|   r{   r}   rs   ru   s   @@r   rw   rw   i   s#   ù‡ € ÷Aó A÷J÷ Jð Jr   rw   c                   óX   a a€ ] tR t^|t oRV3R lV 3R l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[ RS[/# )r    rB   Úuse_sliding)r   r2   )r3   r4   s   "€r   r5   ÚTransformerBlock.__annotate__}   s   ø€ ÷ ñ ™Yð ±Tñ r   c                ó„  <€ \         SV `  4        VP                  V n        VP                  V n        W n        \        V4      V n        \        V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)rH   rI   r   r"   r‡   r?   Ú	self_attnrw   ÚmlprN   ÚRMSNormr$   Úinput_layernormÚpost_attention_layernormrB   )r   rB   r‡   rV   s   &&&€r   rI   ÚTransformerBlock.__init__}   sŽ   ø€ Ü‰ÑÔØ#'×#;Ñ#;ˆÔ Ø×+Ñ+ˆÔØ&ÔÜ" 4›ˆŒÜ�t“9ˆŒÜ!Ÿ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                  /# rY   r^   )r3   r4   s   "€r   r5   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   rZ   r[   r\   ÚrÚhÚouts   &&&&   r   rp   ÚTransformerBlock.__call__Š   sK   € ð �N‰N˜4×/Ñ/°Ó2°DÓ@ˆØ�EˆØ�H‰H�T×2Ñ2°1Ó5Ó6ˆØ�eˆØˆ
r   )rB   r"   r�   r�   r   r�   rŒ   r‡   )Frr   rs   ru   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# )Ú
LlamaModelc                ó    <€ V ^8„  d   QhRS[ /# rA   rC   )r3   r4   s   "€r   r5   ÚLlamaModel.__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 n        V P                  ^ 8”  g   Q h\        P                  ! VP                  VP                  4      V n
        V P
                   Uu. uF  p\        WR8H  R7      NK  	  upV n        \        P                  ! VP                  VP                  R7      V n        V P
                  P!                  R4      V n        RV n        \'        V P                  4       F   w  r4VP(                  '       g   K  W0n         R# 	  R# u upi )r   Úsliding_attention)rB   r‡   rŠ   r   N)rH   rI   rB   r%   r   r   r.   rN   Ú	Embeddingr"   Úembed_tokensr…   ÚlayersrŽ   r$   ÚnormÚindexÚfa_idxÚswa_idxÚ	enumerater‡   )r   rB   Ú
layer_typeÚeÚlrV   s   &&   €r   rI   ÚLlamaModel.__init__˜   s  ø€ Ü‰ÑÔØŒ	ØŸ/™/ˆŒØ!%×!7Ñ!7ˆÔØ×+Ñ+ˆÔØ"×1Ñ1ˆÔØ�‰ Ô"Ð"Ð"ÜŸLšL¨¯©¸$×:JÑ:JÓKˆÔð #×.Ò.ó
á.�
ô  $ÐBUÑ4U×VÙ.ñ
ˆŒô —J’J˜t×/Ñ/°T×5FÑ5FÔGˆŒ	Ø×&Ñ&×,Ñ,Ð-=Ó>ˆŒØˆŒÜ˜dŸk™kÖ*‰DˆAØ�}�}Š}Ø ”Úó +ùò
s   Â+Ec                ó^   <€ V ^8„  d   QhRS[ P                  RS[S[ P                  ,          /# ©r    ÚinputsÚinput_embeddings©r_   r`   r   )r3   r4   s   "€r   r5   r›   ­   s,   ø€ ÷ ñ á—‘ðñ #¡2§8¡8Õ,ñ	r   c                ó¸  € Ve   TpMV P                  V4      pVf   R .\        V P                  4      ,          p\        WBV P                  ,          4      pV P
                  e)   \        WBV P
                  ,          V P                  R7      p\        V P                  V4       F%  w  rrVP                  '       d   XMTpV! WHVR7      pK'  	  V P                  V4      # )N)Úwindow_size)r\   )
rŸ   Úlenr    r   r£   r¤   r.   Úzipr‡   r¡   )	r   r¬   r\   r­   r•   Úfa_maskÚswa_maskÚlayerr[   s	   &&&&     r   rp   ÚLlamaModel.__call__­   s»   € ð Ò'Ø ‰Aà×!Ñ! &Ó)ˆAàŠ=Ø�FœS §¡Ó-Õ-ˆEä'¨°·±Õ+=Ó>ˆØ�<‰<Ò#Ü,Ø˜Ÿ™Õ&°D×4GÑ4GôˆHô   §¡¨UÖ3‰LˆEØ$×0×0Ð0‘8°gˆDÙ�a UÔ+ŠAñ 4ð �y‰y˜‹|Ðr   )
rB   rŸ   r£   r   r    r¡   r   r.   r¤   r%   rr   rs   ru   s   @@r   r™   r™   —   s   ù‡ € ÷ó ÷*÷ ò r   r™   c                   ó†   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V3R lR llt]R 4       t	R	 t
R
tVtV ;t# )ÚModelc                ó    <€ V ^8„  d   QhRS[ /# rA   rC   )r3   r4   s   "€r   r5   ÚModel.__annotate__É   s   ø€ ÷ Tñ T™Yñ Tr   c                óþ   <€ \         SV `  4        Wn        VP                  V n        \	        V4      V n        VP                  '       g5   \        P                  ! VP                  VP                  R R7      V n        R# R# )FrF   N)rH   rI   rB   r!   r™   Úmodelr-   rN   rO   r"   r%   Úlm_head)r   rB   rV   s   &&€r   rI   ÚModel.__init__É   sY   ø€ Ü‰ÑÔØŒ	ØŸ/™/ˆŒÜ Ó%ˆŒ
Ø×'×'Ð'ÜŸ9š9 T×%5Ñ%5°t·±ÈUÔSˆDŽLñ (r   c                ó^   <€ V ^8„  d   QhRS[ P                  RS[S[ P                  ,          /# r«   r®   )r3   r4   s   "€r   r5   rº   Ñ   s,   ø€ ÷ ñ á—‘ðñ #¡2§8¡8Õ,ñ	r   c                óÒ   € V P                  WV4      pV P                  P                  '       d(   V P                   P                  P	                  V4      pV# V P                  V4      pV# r‚   )r¼   rB   r-   rŸ   Ú	as_linearr½   )r   r¬   r\   r­   r–   s   &&&& r   rp   ÚModel.__call__Ñ   s[   € ð �j‰j˜Ð(8Ó9ˆØ�9‰9×(×(Ð(Ø—*‘*×)Ñ)×3Ñ3°CÓ8ˆCð ˆ
ð —,‘,˜sÓ#ˆCØˆ
r   c                óÆ   € VP                  4        UUu/ uF  w  r#R V9  g   K  W#bK  	  pppV P                  P                  '       d   VP                  RR4       V# u uppi )zself_attn.rotary_emb.inv_freqzlm_head.weightN)ÚitemsrB   r-   Úpop)r   ÚweightsÚkÚvs   &&  r   ÚsanitizeÚModel.sanitizeÞ   s`   € ð %Ÿ]™]œ_ô
Ù,‘T�QÐ0OÐWXÑ0XŒDˆAŠD™_ð 	ñ 
ð �9‰9×(×(Ð(Ø�K‰KÐ(¨$Ô/Øˆùó
s
   ”A¤Ac                óX   <€ V ^8„  d   QhRS[ S[P                  P                  ,          /# )r    Úgroup)r   r_   ÚdistributedÚGroup)r3   r4   s   "€r   r5   rº   ç   s#   ø€ ÷ ñ ™8¡B§N¡N×$8Ñ$8Õ9ñ r   c                óî  € T;'       g    \         P                  P                  4       pVP                  4       pV P                  P
                   EF¡  p\        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                  RVR7      VP                  n        VP                  ;P                  V,          un        VP                  ;P                  V,          un        \        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¤  	  R# )zall-to-sharded)rÌ   zsharded-to-allN)r_   rÍ   ÚinitÚsizer¼   r    r	   rŒ   rP   rQ   rR   rS   rJ   rK   r�   r{   r|   r}   )r   rÌ   ÚNrµ   s   &&  r   ÚshardÚModel.shardç   sh  € Ø×.Ð.œŸ™×,Ñ,Ó.ˆØ�J‰J‹LˆØ—Z‘Z×&Õ&ˆEä%1Ø—‘×&Ñ&Ð(8Àô&ˆE�O‰OÔ"ô &2Ø—‘×&Ñ&Ð(8Àô&ˆE�O‰OÔ"ô &2Ø—‘×&Ñ&Ð(8Àô&ˆE�O‰OÔ"ô &2Ø—‘×&Ñ&Ð(8Àô&ˆE�O‰OÔ"ð �O‰O×#Ò#¨Õ)Õ#Ø�O‰O×&Ò&¨1Õ,Õ&ô #/Ø—	‘	×#Ñ#Ð%5¸Uô#ˆE�I‰IÔô #/Ø—	‘	×#Ñ#Ð%5¸Uô#ˆE�I‰IÔô !-Ø—	‘	×!Ñ!Ð#3¸5ô!ˆE�I‰I×ó1 'r   c                ó.   € V P                   P                  # r‚   )r¼   r    r   s   &r   r    ÚModel.layers  s   € à�z‰z× Ñ Ð r   c                ó¸   € V P                    Uu. uF?  pVP                  '       d!   \        V P                  P                  R 7      M	\        4       NKA  	  up# u upi ))Úmax_size)r    r‡   r   r¼   r.   r   )r   rµ   s   & r   Ú
make_cacheÚModel.make_cache
  sX   € ð Ÿšó
ñ %�ð ×$×$Ð$ô  ¨¯©×)BÑ)BÕCä“Yòñ %ñ
ð 	
ùò 
s
   �A¦.A)rB   r½   r¼   r!   rr   r‚   )r7   r8   r9   r:   rI   rp   rÉ   rÓ   Úpropertyr    rÙ   r<   r=   rt   ru   s   @@r   r¸   r¸   È   sH   ù‡ € ÷Tó T÷ò ò÷ò ð> ñ!ó ð!÷
ò 
r   r¸   )!Údataclassesr   Útypingr   r   r   r   r   Úmlx.coreÚcorer_   Úmlx.nnrN   Úmlx.nn.layers.distributedr	   Úactivationsr
   Úbaser   r   r   r\   r   r   Ú
rope_utilsr   r   ÚModuler?   rw   r…   r™   r¸   © r   r   Ú<module>rç      sœ   ðõ "ß 3Õ 3å Ý Ý 2å ß TÑ Tß +Ý 'ð ôK�ó Kó ðKô89#�—	‘	ô 9#ôxJˆ"�)‰)ô Jô&�r—y‘yô ô6.�—‘ô .ôbJ
ˆB�I‰Iö J
r   