+
    TV-j‚  ã                   ó²  € ^ RI Ht ^ 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HtHt ] ! R R]4      4       t]! ]P&                  RR	7      R
 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)Úpartial)ÚAnyÚDictÚOptionalÚUnionN)ÚBaseModelArgsÚcreate_attention_maskÚscaled_dot_product_attentionc                   óV   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V 3R ltRtV tR# )Ú	ModelArgsNFç      à?g     ˆÃ@c                ó$  € V P                   '       d~   R V P                   9   g   \        R4      hV P                   P                  R4      ;'       g    V P                   P                  R4      pVf   \        R4      hVR9  d   \        R4      hR# R# )Úfactorz"rope_scaling must contain 'factor'ÚtypeÚ	rope_typeNz6rope_scaling must contain either 'type' or 'rope_type'z4rope_scaling 'type' currently only supports 'linear')Úlinear)Úrope_scalingÚ
ValueErrorÚget)Úselfr   s   & Úg/Volumes/fast/ai/experiments/ui-tars-smoke/.venv/lib/python3.14/site-packages/mlx_lm/models/nemotron.pyÚ__post_init__ÚModelArgs.__post_init__"   s–   € Ø××ÐØ˜t×0Ñ0Ô0Ü Ð#EÓGÐGØ×)Ñ)×-Ñ-¨fÓ5÷ ð ¸×9JÑ9J×9NÑ9NØó:ˆIð Ò Ü ØLóð ð  
Ô*Ü Ð!WÓXÐXñ +ñ ó    c                óN  <€ V ^8„  d   Qh/ S[ ;R&   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[S[S[ S[S[S[ 3,          3,          ,          ;R&   S[;R&   # )é   Ú
model_typeÚhidden_sizeÚ
hidden_actÚnum_hidden_layersÚintermediate_sizeÚnum_attention_headsÚnorm_epsÚ
vocab_sizeÚnum_key_value_headsÚhead_dimÚmax_position_embeddingsÚattention_biasÚmlp_biasÚpartial_rotary_factorÚ
rope_thetaÚrope_traditionalr   Útie_word_embeddings)ÚstrÚintÚfloatr   Úboolr   r   )ÚformatÚ__classdict__s   "€r   Ú__annotate__ÚModelArgs.__annotate__   s	  ø‡ ‚ á�Oñ ñ Ññ ñ �Oñ	 ñ
 Ññ ñ Ññ ñ Ññ ñ �Oñ ñ �Oñ ñ Ññ ñ ‘s�mÑ"ñ ñ &¡c�]Ñ1ñ ñ Ñ ñ ñ Ññ ñ !Ñ&ñ ñ  Ññ! ñ" Ñ"ñ# ñ$ ™4¡¡U©5±#¨:Õ%6Ð 6Õ7Õ8Ñ?ñ% ñ& Ñ%ò' r   © )Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__r'   r(   r)   r*   r+   r,   r-   r   r.   r   Ú__annotate_func__Ú__static_attributes__Ú__classdictcell__©r4   s   @r   r   r      sE   ø‡ € ð #€HØ-1ÐØ €NØ€HØ#&ÐØ€JØ"ÐØ;?€LØ %ÐòY÷+ ƒ r   r   T)Ú	shapelessc                 óJ   € \         P                  ! V 4      P                  4       # ©N)ÚnnÚreluÚsquare)Úxs   &r   Úrelu_squaredrG   1   s   € ä�7Š7�1‹:×ÑÓÐr   c                   ó&   a € ] tR t^6t o R tRtV tR# )ÚNemotronLayerNorm1Pc                ó¸   € R V 9   d   V P                   ^,           MRpRV 9   d   V P                  MRp\        P                  P	                  WW0P
                  4      # )ÚweightNÚbias)rK   rL   ÚmxÚfastÚ
layer_normÚeps)r   rF   rK   rL   s   &&  r   Ú__call__ÚNemotronLayerNorm1P.__call__7   sD   € Ø$,°Ô$4�—‘˜q–¸$ˆØ" dœNˆt�yŠy°ˆÜ�w‰w×!Ñ! !¨T·8±8Ó<Ð<r   r7   N)r8   r9   r:   r;   rQ   r=   r>   r?   s   @r   rI   rI   6   s   ø‡ € ÷=ð =r   rI   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P                  V n        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        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                  ,          4      VP.                  VR7      V n        R	# )r   r)   F©rL   g      ð?r   r   r   )ÚbaseÚscaleNg      à¿)ÚsuperÚ__init__r   r#   Ún_headsr&   Ú
n_kv_headsr'   r+   r]   Úhasattrr)   rC   ÚLinearÚq_projÚk_projÚv_projÚo_projr   Ú
isinstancer1   ÚRoPEr0   r,   Úrope)	r   rW   Údimr`   ra   r'   r)   Ú
rope_scaleÚ	__class__s	   &&      €r   r_   ÚAttention.__init__>   sx  ø€ Ü‰ÑÔà×ÑˆØ!%×!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ˆŒàˆ
Ø××Ð ×!2Ñ!2°6Õ!:¸hÔ!FÜ˜d×/Ñ/°Õ9¼5×AÒAÐAÐAØ˜T×.Ñ.¨xÕ8Õ8ˆJÜ—G’GÜ�×*Ñ*¨T¯]©]Õ:Ó;Ø—‘Øô
ˆŽ	r   c                óŽ   <€ V ^8„  d   QhRS[ P                  RS[S[ P                  ,          RS[S[,          RS[ P                  /# ©r   rF   ÚmaskÚcacheÚreturn©rM   Úarrayr   r   )r3   r4   s   "€r   r5   rY   ]   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)rr   r]   rq   éÿÿÿÿ)Úshaperd   re   rf   Úreshaper`   Ú	transposera   rj   rx   Úupdate_and_fetchr   r]   rg   )r   rF   rq   rr   ÚBÚLÚ_ÚqueriesÚkeysÚvaluesÚoutputs   &&&&       r   rQ   ÚAttention.__call__]   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'   re   r`   ra   rg   r+   rd   rj   r]   rf   ©NN©	r8   r9   r:   r;   r_   rQ   r=   r>   Ú__classcell__©rm   r4   s   @@r   rT   rT   =   s   ù‡ € ÷
ó 
÷>#÷ #ò #r   rT   c                   óP   a a€ ] tR t^{t 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[ /# rV   rX   )r3   r4   s   "€r   r5   ÚMLP.__annotate__|   s   ø€ ÷ Añ A™Yñ Ar   c                óà   <€ \         SV `  4        VP                  pVP                  pVP                  p\
        P                  ! W2VR 7      V n        \
        P                  ! W#VR 7      V n        R# )r[   N)	r^   r_   r   r"   r*   rC   rc   Ú	down_projÚup_proj)r   rW   rk   Ú
hidden_dimr*   rm   s   &&   €r   r_   ÚMLP.__init__|   sQ   ø€ Ü‰ÑÔà×ÑˆØ×+Ñ+ˆ
Ø—=‘=ˆäŸš :¸ÔBˆŒÜ—y’y °xÔ@ˆŽr   c                ó4   <€ V ^8„  d   QhRS[ P                  /# )r   rs   ©rM   ru   )r3   r4   s   "€r   r5   r�   †   s   ø€ ÷ =ñ =™RŸX™Xñ =r   c                óT   € V P                  \        V P                  V4      4      4      # rB   )r�   rG   r�   )r   rF   s   &&r   rQ   ÚMLP.__call__†   s   € Ø�~‰~œl¨4¯<©<¸«?Ó;Ó<Ð<r   )r�   r�   r‡   r‰   s   @@r   r‹   r‹   {   s    ù‡ € ÷Aó A÷=÷ =ð =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[ /# rV   rX   )r3   r4   s   "€r   r5   ÚTransformerBlock.__annotate__‹   s   ø€ ÷ 	
ñ 	
™Yñ 	
r   c                ó@  <€ \         SV `  4        VP                  V n        VP                  V n        \	        V4      V n        \        V4      V n        \        VP                  VP                  R 7      V n
        \        VP                  VP                  R 7      V n        R# )©rP   N)r^   r_   r#   r   rT   Ú	self_attnr‹   ÚmlprI   r$   Úinput_layernormÚpost_attention_layernorm©r   rW   rm   s   &&€r   r_   ÚTransformerBlock.__init__‹   su   ø€ Ü‰ÑÔØ#'×#;Ñ#;ˆÔ Ø×+Ñ+ˆÔÜ" 4›ˆŒÜ�t“9ˆŒÜ2°4×3CÑ3CÈÏÉÔWˆÔÜ(;Ø×Ñ $§-¡-ô)
ˆÖ%r   c                óŽ   <€ V ^8„  d   QhRS[ P                  RS[S[ P                  ,          RS[S[,          RS[ P                  /# rp   rt   )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# rB   )r�   rŸ   rž   r    )r   rF   rq   rr   ÚrÚhÚouts   &&&&   r   rQ   ÚTransformerBlock.__call__–   sK   € ð �N‰N˜4×/Ñ/°Ó2°DÓ@ˆØ�EˆØ�H‰H�T×2Ñ2°1Ó5Ó6ˆØ�eˆØˆ
r   )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# )ÚNemotronModelc                ó    <€ V ^8„  d   QhRS[ /# rV   rX   )r3   r4   s   "€r   r5   ÚNemotronModel.__annotate__¤   s   ø€ ÷ 
Mñ 
M™Yñ 
M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        \        VP                  VP                  R7      V n        R# u upi )r   )rW   rœ   N)r^   r_   rW   r%   r!   rC   Ú	Embeddingr   Úembed_tokensÚranger˜   ÚlayersrI   r$   Únorm)r   rW   r€   rm   s   && €r   r_   ÚNemotronModel.__init__¤   s§   ø€ Ü‰ÑÔØŒ	ØŸ/™/ˆŒØ!%×!7Ñ!7ˆÔØ�‰ Ô"Ð"Ð"ÜŸLšL¨¯©¸$×:JÑ:JÓKˆÔä16°t×7MÑ7MÔ1Nó
Ù1N¨AÔ $×'Ñ1Nñ
ˆŒô (¨×(8Ñ(8¸d¿m¹mÔLˆŽ	ùò
s   ÂCc                ó4   <€ V ^8„  d   QhRS[ P                  /# ©r   Úinputsr”   )r3   r4   s   "€r   r5   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)rr   )r¯   Úlenr±   r
   Úzipr²   )r   r¶   rr   r¦   rq   ÚlayerÚcs   &&&    r   rQ   ÚNemotronModel.__call__°   so   € ð
 ×Ñ˜fÓ%ˆàŠ=Ø�FœS §¡Ó-Õ-ˆEä$ Q¨a­Ó1ˆÜ˜DŸK™K¨Ö/‰HˆEÙ�a QÔ'ŠAñ 0ð �y‰y˜‹|Ðr   )rW   r¯   r±   r²   r!   r%   rB   r‡   r‰   s   @@r   rª   rª   £   s    ù‡ € ÷
Mó 
M÷÷ ò 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[ /# rV   rX   )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# )Fr[   N)r^   r_   rW   r   rª   Úmodelr.   rC   rc   r   r%   Úlm_headr¡   s   &&€r   r_   ÚModel.__init__Â   sY   ø€ Ü‰ÑÔØŒ	ØŸ/™/ˆŒÜ" 4Ó(ˆŒ
Ø×'×'Ð'ÜŸ9š9 T×%5Ñ%5°t·±ÈUÔSˆDŽLñ (r   c                ó4   <€ V ^8„  d   QhRS[ P                  /# rµ   r”   )r3   r4   s   "€r   r5   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# rB   )rÂ   rW   r.   r¯   Ú	as_linearrÃ   )r   r¶   rr   r§   s   &&& r   rQ   ÚModel.__call__Ê   sX   € ð
 �j‰j˜Ó'ˆØ�9‰9×(×(Ð(Ø—*‘*×)Ñ)×3Ñ3°CÓ8ˆCð ˆ
ð —,‘,˜sÓ#ˆCØˆ
r   c                ó.   € V P                   P                  # rB   )rÂ   r±   )r   s   &r   r±   ÚModel.layersÖ   s   € à�z‰z× Ñ Ð r   )rW   rÃ   rÂ   r   rB   )r8   r9   r:   r;   r_   rQ   Úpropertyr±   r=   r>   rˆ   r‰   s   @@r   r¾   r¾   Á   s4   ù‡ € ÷Tó T÷
ò 
ð ñ!ó ÷!ð !r   r¾   )Údataclassesr   Ú	functoolsr   Útypingr   r   r   r   Úmlx.coreÚcorerM   Úmlx.nnrC   r\   r	   r
   r   r   ÚcompilerG   Ú	LayerNormrI   ÚModulerT   r‹   r˜   rª   r¾   r7   r   r   Ú<module>rÕ      s¾   ðõ "Ý ß -Ó -å Ý ç TÑ Tð ô Y�ó  Yó ð YñF 	ˆ�‰˜tÔ$ñó %ðô=˜"Ÿ,™,ô =ô;#�—	‘	ô ;#ô|=ˆ"�)‰)ô =ô�r—y‘yô ô2�B—I‘Iô ô<!ˆB�I‰Iö !r   