+
    TV-j  ã                   ó~  € ^ RI Ht ^ RI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 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# )é    )Ú	dataclass)ÚAnyÚDictÚOptionalÚUnionN)Úswiglu)ÚBaseModelArgsÚcreate_attention_maskÚscaled_dot_product_attentionc                   óN   a € ] tR t^t o 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# )	Ú	ModelArgsTi €  Né'  Fc                óX  a € S P                   f   S P                  S n         S P                  '       dx   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      hR # R # )	NÚfactorÚtypec              3   ó@   <"  € T F  qSP                   9   x € K  	  R # 5i©N)Úrope_scaling)Ú.0ÚkeyÚselfs   & €Úh/Volumes/fast/ai/experiments/ui-tars-smoke/.venv/lib/python3.14/site-packages/mlx_lm/models/internlm2.pyÚ	<genexpr>Ú*ModelArgs.__post_init__.<locals>.<genexpr>$   s   øé € ÐI¹=°C˜d×/Ñ/Ö/»=ùs   ƒFTzrope_scaling must contain keys z@rope_scaling 'type' currently only supports 'linear' or 'dynamic)ÚlinearÚdynamic)Únum_key_value_headsÚnum_attention_headsr   ÚallÚ
ValueError)r   Úrequired_keyss   f r   Ú__post_init__ÚModelArgs.__post_init__   s–   ø€ Ø×#Ñ#Ò+Ø'+×'?Ñ'?ˆDÔ$à××ÐØ% vÐ.ˆMß“3ÔI¹=ÓI—3—3’3ÔI¹=ÓI×IÒIÜ Ð#BÀ=À/Ð!RÓSÐSà× Ñ  Õ(Ð0EÔEÜ ØVóð ñ Fñ ó    c                óþ   <€ V ^8„  d   Qh/ S[ ;R&   S[;R&   S[;R&   S[;R&   S[;R&   S[;R&   S[;R&   S[;R&   S[;R	&   S[;R
&   S[;R&   S[;R&   S[S[S[ S[S[S[ 3,          3,          ,          ;R&   S[;R&   # )é   Ú
model_typeÚhidden_sizeÚnum_hidden_layersÚintermediate_sizer   Úrms_norm_epsÚ
vocab_sizeÚbiasÚmax_position_embeddingsr   Ú
rope_thetaÚrope_traditionalr   Útie_word_embeddings)ÚstrÚintÚfloatÚboolr   r   r   )ÚformatÚ__classdict__s   "€r   Ú__annotate__ÚModelArgs.__annotate__   sÏ   ø‡ ‚ á�Oñ ñ Ññ ñ Ññ	 ñ
 Ññ ñ Ññ ñ Ññ ñ �Oñ ñ Ññ ñ !Ñ(ñ ñ Ñ#ñ ñ Ññ ñ Ñ"ñ ñ ™4¡¡U©5±#¨:Õ%6Ð 6Õ7Õ8Ñ?ñ ñ Ñ%ò r$   )r   )Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__r-   r.   r   r/   r0   r   r1   r"   Ú__annotate_func__Ú__static_attributes__Ú__classdictcell__)r7   s   @r   r   r      s:   ø‡ € ð €DØ#(ÐØ#ÐØ€JØ"ÐØ;?€LØ %Ðò÷# ƒ r$   r   c                   ób   a a€ ] tR t^-t oRtRV3R lV 3R llltR tR	V3R lR lltRtVt	V ;t
# )
ÚDynamicNTKScalingRoPEzCImplements the rotary positional encoding with Dynamic NTK scaling.c          
      ó8   <€ V ^8„  d   QhRS[ RS[ RS[RS[RS[/# )r&   Údimsr.   ÚtraditionalÚbaseÚscale)r3   r5   r4   )r6   r7   s   "€r   r8   Ú"DynamicNTKScalingRoPE.__annotate__0   s=   ø€ ÷ ñ áðñ "%ðñ ð	ñ
 ðñ ñr$   c                ó`   <€ \         SV `  4        W n        W@n        Wn        W0n        WPn        R # r   )ÚsuperÚ__init__r.   Úoriginal_baserD   rE   rG   )r   rD   r.   rE   rF   rG   Ú	__class__s   &&&&&&€r   rK   ÚDynamicNTKScalingRoPE.__init__0   s,   ø€ ô 	‰ÑÔØ'>Ô$Ø!ÔØŒ	Ø&ÔØŽ
r$   c                ól   € V P                    R V P                   RV P                   RV P                   2# )z, traditional=z, max_position_embeddings=z, scaling_factor=)rD   rE   r.   Úscaling_factor©r   s   &r   Ú
extra_reprÚ DynamicNTKScalingRoPE.extra_repr?   sV   € Ø—)‘)�˜N¨4×+;Ñ+;Ð*<Ð<VÐW[×WsÑWsÐVtð  uFð  GK÷  GZñ  GZð  F[ð  \ð  	\r$   c                ó    <€ V ^8„  d   QhRS[ /# )r&   Úoffset)r3   )r6   r7   s   "€r   r8   rH   B   s   ø€ ÷ 
ñ 
¡#ñ 
r$   c           	     óâ  € VP                   ^,          V,           pW0P                  8”  dx   V P                  V P                  V,          V P                  ,          V P                  ^,
          ,
          V P                  V P                  ^,
          ,          ,          ,          pMV P                  p\
        P                  P                  VV P                  V P                  VV P                  VR7      # )é   )rE   rF   rG   rU   )	Úshaper.   rL   rG   rD   ÚmxÚfastÚroperE   )r   ÚxrU   Úseq_lenrF   s   &&&  r   Ú__call__ÚDynamicNTKScalingRoPE.__call__B   sµ   € Ø—'‘'˜!•*˜vÕ%ˆØ×1Ñ1Ô1Ø×%Ñ%Ø—‘˜gÕ%¨×(DÑ(DÕDÈÏÉÐVWÍÕXØ—)‘)˜tŸy™y¨1�}Õ-õ)/õ /‰Dð ×%Ñ%ˆDä�w‰w�|‰|ØØ�I‰IØ×(Ñ(ØØ—*‘*Øð ó 
ð 	
r$   )rD   r.   rL   rG   rE   )i   Fr   g      ð?)r   )r:   r;   r<   r=   Ú__doc__rK   rR   r^   r?   r@   Ú__classcell__©rM   r7   s   @@r   rB   rB   -   s'   ù‡ € ÙM÷õ ò\÷
÷ 
ò 
r$   rB   c                   óT   a a€ ] tR t^Ut 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   )r6   r7   s   "€r   r8   ÚAttention.__annotate__V   s   ø€ ÷ 
ñ 
™Yñ 
r$   c                óÂ  <€ \         SV `  4        VP                  pVP                  ;V n        pVP
                  ;V n        pW1P
                  ,          V n        VP                  V,          ;V n        pVR,          V n	        \        P                  ! W#^V,          ,           V,          VP                  R7      V n        \        P                  ! W5,          W!P                  R7      V n        VP                  e3   VP                  R,          R8X  d   ^VP                  R,          ,          MRp\!        VVP"                  VP$                  VP&                  VR7      V n        R# )	g      à?©r-   Nr   r   r   g       @)r.   rE   rF   rG   g      à¿)rJ   rK   r(   r   Ún_headsr   Ú
n_kv_headsÚn_kv_groupsÚhead_dimrG   ÚnnÚLinearr-   ÚwqkvÚwor   rB   r.   r0   r/   r[   )r   rg   Údimrl   rm   ro   Ú
rope_scalerM   s   &&     €r   rK   ÚAttention.__init__V   s  ø€ Ü‰ÑÔà×ÑˆØ!%×!9Ñ!9Ð9ˆŒ�wØ'+×'?Ñ'?Ð?ˆŒ˜*Ø"×&>Ñ&>Õ>ˆÔà#'×#3Ñ#3°wÕ#>Ð>ˆŒ˜Ø˜t•^ˆŒ
ä—I’IØ˜A 
�NÕ*¨hÕ6¸T¿Y¹Yô
ˆŒ	ô —)’)˜GÕ.°¿)¹)ÔDˆŒð × Ñ Ò,°×1BÑ1BÀ6Õ1JÈhÔ1Vð �×!Ñ! (Õ+Ö+àð 	ô *ØØ$(×$@Ñ$@Ø×-Ñ-Ø—‘Øô
ˆŽ	r$   c                óŽ   <€ V ^8„  d   QhRS[ P                  RS[S[ P                  ,          RS[S[,          RS[ P                  /# ©r&   r\   ÚmaskÚcacheÚreturn©rY   Úarrayr   r   )r6   r7   s   "€r   r8   ri   t   sH   ø€ ÷ !ñ !á�8‰8ð!ñ ‘r—x‘xÕ ð!ñ ™�}ð	!ñ
 
�‰ñ!r$   c           	     óÈ  € VP                   w  rEpV P                  V4      pVP                  WER^V P                  ,           V P                  4      pVRRV P                  1R3,          pVP                  WERV P                  4      pVR,          p	V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      # )	rW   .NºNNN)rU   )rz   rG   ry   éÿÿÿÿ).éþÿÿÿr   ).r€   r   )rX   rr   Úreshapern   ro   rl   Ú	transposerm   r[   rU   Úupdate_and_fetchr   rG   rs   )r   r\   ry   rz   ÚBÚLÚDÚ
qkv_statesÚqueriesÚkeysÚvaluesÚoutputs   &&&&        r   r^   ÚAttention.__call__t   s¨  € ð —'‘'‰ˆˆaà—Y‘Y˜q“\ˆ
Ø×'Ñ'¨¨b°!°d×6FÑ6FÕ2FÈÏÉÓVˆ
à˜SÐ"4 D×$4Ñ$4Ð"4°aÐ7Õ8ˆØ—/‘/ !¨¨D¯M©MÓ:ˆØ˜*Õ%ˆØ˜JÕ'ˆð —/‘/ !¨¯©°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Ó?ˆØ�w‰w�v‹Ðr$   )ro   rl   rn   rm   r[   rG   rs   rr   ©NN©	r:   r;   r<   r=   rK   r^   r?   r@   ra   rb   s   @@r   rd   rd   U   s   ù‡ € ÷
ó 
÷<!÷ !ò !r$   rd   c                   óD   a a€ ] tR t^˜t oV 3R ltV3R lR ltRtVtV ;t# )ÚMLPc                óÒ   <€ \         SV `  4        \        P                  ! WR R7      V n        \        P                  ! W!R R7      V n        \        P                  ! WR R7      V n        R# ©Frk   N)rJ   rK   rp   rq   Úw1Úw2Úw3)r   rt   Ú
hidden_dimrM   s   &&&€r   rK   ÚMLP.__init__™   sD   ø€ Ü‰ÑÔÜ—)’)˜C°%Ô8ˆŒÜ—)’)˜J°%Ô8ˆŒÜ—)’)˜C°%Ô8ˆŽr$   c                ó4   <€ V ^8„  d   QhRS[ P                  /# )r&   r{   ©rY   r}   )r6   r7   s   "€r   r8   ÚMLP.__annotate__Ÿ   s   ø€ ÷ 7ñ 7™RŸX™Xñ 7r$   c                ót   € V P                  \        V P                  V4      V P                  V4      4      4      # r   )r•   r   r”   r–   )r   r\   s   &&r   r^   ÚMLP.__call__Ÿ   s(   € Ø�w‰w”v˜dŸg™g a›j¨$¯'©'°!«*Ó5Ó6Ð6r$   )r”   r•   r–   r�   rb   s   @@r   r‘   r‘   ˜   s   ù‡ € õ9÷7÷ 7ð 7r$   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[ /# rf   rh   )r6   r7   s   "€r   r8   ÚTransformerBlock.__annotate__¤   s   ø€ ÷ Lñ L™Yñ Lr$   c                óR  <€ \         SV `  4        \        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        R# )©ÚepsN)rJ   rK   rd   Ú	attentionr‘   r(   r*   Úfeed_forwardrp   ÚRMSNormr+   Úattention_normÚffn_norm©r   rg   rM   s   &&€r   rK   ÚTransformerBlock.__init__¤   sq   ø€ Ü‰ÑÔÜ" 4›ˆŒÜ × 0Ñ 0°$×2HÑ2HÓIˆÔÜ Ÿjšj¨×)9Ñ)9¸t×?PÑ?PÔQˆÔÜŸ
š
 4×#3Ñ#3¸×9JÑ9JÔKˆŽr$   c                óŽ   <€ V ^8„  d   QhRS[ P                  RS[S[ P                  ,          RS[S[,          RS[ P                  /# rx   r|   )r6   r7   s   "€r   r8   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   r\   ry   rz   ÚrÚhÚouts   &&&&   r   r^   ÚTransformerBlock.__call__«   sK   € ð �N‰N˜4×.Ñ.¨qÓ1°4Ó?ˆØ�EˆØ×Ñ˜dŸm™m¨AÓ.Ó/ˆØ�eˆØˆ
r$   r®   rŽ   r�   rb   s   @@r   rŸ   rŸ   £   s    ù‡ € ÷Ló L÷
÷ 
ò 
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# )ÚInternLM2Modelc                ó    <€ V ^8„  d   QhRS[ /# rf   rh   )r6   r7   s   "€r   r8   ÚInternLM2Model.__annotate__¹   s   ø€ ÷ Hñ H™Yñ Hr$   c                ó~  <€ \         SV `  4        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   )rg   r£   N)rJ   rK   r,   rp   Ú	Embeddingr(   Útok_embeddingsÚranger)   rŸ   Úlayersr§   r+   Únorm)r   rg   Ú_rM   s   && €r   rK   ÚInternLM2Model.__init__¹   s�   ø€ Ü‰ÑÔØ�‰ Ô"Ð"Ð"Ü Ÿlšl¨4¯?©?¸D×<LÑ<LÓMˆÔä16°t×7MÑ7MÔ1Nó
Ù1N¨AÔ $×'Ñ1Nñ
ˆŒô —J’J˜t×/Ñ/°T×5FÑ5FÔGˆŽ	ùò
s   Á*B:c                ó4   <€ V ^8„  d   QhRS[ P                  /# ©r&   Úinputsrš   )r6   r7   s   "€r   r8   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R7      pK  	  V P                  V4      # )N)rz   )r¹   Úlenr»   r
   Úzipr¼   )r   rÁ   rz   r°   ry   ÚlayerÚcs   &&&    r   r^   ÚInternLM2Model.__call__Â   so   € ð
 ×Ñ Ó'ˆàŠ=Ø�FœS §¡Ó-Õ-ˆEä$ Q¨a­Ó1ˆÜ˜DŸK™K¨Ö/‰HˆEÙ�a QÔ'ŠAñ 0ð �y‰y˜‹|Ðr$   )r»   r¼   r¹   r   r�   rb   s   @@r   r´   r´   ¸   s    ù‡ € ÷Hó H÷÷ ò 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[ /# rf   rh   )r6   r7   s   "€r   r8   ÚModel.__annotate__Ô   s   ø€ ÷ Sñ S™Yñ S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# r“   )rJ   rK   rg   r'   r´   Úmodelr1   rp   rq   r(   r,   rŒ   rª   s   &&€r   rK   ÚModel.__init__Ô   sY   ø€ Ü‰ÑÔØŒ	ØŸ/™/ˆŒÜ# DÓ)ˆŒ
Ø×'×'Ð'ÜŸ)š) D×$4Ñ$4°d·o±oÈEÔRˆDŽKñ (r$   c                ó4   <€ V ^8„  d   QhRS[ P                  /# rÀ   rš   )r6   r7   s   "€r   r8   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Í   rg   r1   r¹   Ú	as_linearrŒ   )r   rÁ   rz   r±   s   &&& r   r^   ÚModel.__call__Ü   sX   € ð
 �j‰j˜Ó'ˆØ�9‰9×(×(Ð(Ø—*‘*×+Ñ+×5Ñ5°cÓ:ˆCð ˆ
ð —+‘+˜cÓ"ˆCØˆ
r$   c                óh   € VP                  4        UUu/ uF  w  r#R V9  g   K  W#bK  	  upp# u uppi )zattention.rope.inv_freq)Úitems)r   ÚweightsÚkÚvs   &&  r   ÚsanitizeÚModel.sanitizeè   s/   € à!(§¡¤ÔW¡™˜Ð4MÐUVÑ4V”�’¡ÒWÐWùÓWs   ”.¤.c                ó.   € V P                   P                  # r   )rÍ   r»   rQ   s   &r   r»   ÚModel.layersì   s   € à�z‰z× Ñ Ð r$   )rg   rÍ   r'   rŒ   r   )r:   r;   r<   r=   rK   r^   rØ   Úpropertyr»   r?   r@   ra   rb   s   @@r   rÉ   rÉ   Ó   s:   ù‡ € ÷Só S÷
ò 
òXð ñ!ó ÷!ð !r$   rÉ   )Údataclassesr   Útypingr   r   r   r   Úmlx.coreÚcorerY   Úmlx.nnrp   Úactivationsr   rF   r	   r
   r   r   ÚModulerB   rd   r‘   rŸ   r´   rÉ   © r$   r   Ú<module>rå      sž   ðõ "ß -Ó -å Ý å ß TÑ Tð ô�ó ó ðô>%
˜BŸI™Iô %
ôP@�—	‘	ô @ôF7ˆ"�)‰)ô 7ô�r—y‘yô ô*�R—Y‘Yô ô6!ˆB�I‰Iö !r$   