+
    TV-j•  ã                   óp  € ^ 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IHtHt ^RIHt ] ! R R	]4      4       t ! R
 R]P0                  4      t ! R R]P0                  4      t ! R R]P0                  4      t ! R R]P0                  4      t ! R R]P0                  4      tR# )é    )Ú	dataclass)ÚAnyÚDictÚOptionalÚUnionN)Úswiglu)ÚBaseModelArgsÚcreate_attention_maskÚscaled_dot_product_attention)ÚKVCacheÚRotatingKVCache)Úinitialize_ropec                   ó,   a € ] tR t^t o V 3R ltRtV tR# )Ú	ModelArgsc                ó  <€ 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[ 3,          3,          ;R&   S[S[,          ;R&   S[S[ ,          ;R&   # )é   Ú
model_typeÚhidden_sizeÚnum_hidden_layersÚintermediate_sizeÚnum_attention_headsÚrms_norm_epsÚ
vocab_sizeÚnum_key_value_headsÚmax_position_embeddingsÚ
rope_thetaÚhead_dimÚtie_word_embeddingsÚrope_scalingÚsliding_windowÚsliding_window_pattern)ÚstrÚintÚfloatÚboolr   r   r   )ÚformatÚ__classdict__s   "€Úf/Volumes/fast/ai/experiments/ui-tars-smoke/.venv/lib/python3.14/site-packages/mlx_lm/models/exaone4.pyÚ__annotate__ÚModelArgs.__annotate__   sÞ   ø‡ ‚ á�Oñ ñ Ññ ñ Ññ	 ñ
 Ññ ñ Ññ ñ Ññ ñ �Oñ ñ Ññ ñ !Ñ ñ ñ Ññ ñ �Mñ ñ Ññ ñ ‘s™E¡%© *Õ-Ð-Õ.Ñ.ñ ñ ™S•MÑ!ñ ñ  %¡S�MÑ)ò! ó    © N)Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__annotate_func__Ú__static_attributes__Ú__classdictcell__)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# )Ú	Attentionc                ó6   <€ V ^8„  d   QhRS[ RS[S[,          /# ©r   ÚargsÚis_local)r   r   r%   )r&   r'   s   "€r(   r)   ÚAttention.__annotate__#   s   ø€ ÷ ñ ™Yð ±(¹4µ.ñ r+   c                ój  <€ \         SV `  4        VP                  pVP                  ;V n        pVP
                  f   Q hVP
                  ;V n        pVP                  pVR,          V n        \        P                  ! W4V,          RR7      V n        \        P                  ! W5V,          RR7      V n        \        P                  ! W5V,          RR7      V n        \        P                  ! WF,          VRR7      V n        \        P                  ! WaP                   R7      V n        \        P                  ! WaP                   R7      V n        T;'       g    RV n        VR J ;'       g    TV n        V P(                  '       d6   \+        VVP,                  RVP.                  VP0                  R7      V n        R # R # )NF©Úbias©Úeps)ÚbaseÚtraditionalÚscaling_configr   g      à¿)ÚsuperÚ__init__r   r   Ún_headsr   Ú
n_kv_headsr   ÚscaleÚnnÚLinearÚq_projÚk_projÚv_projÚo_projÚRMSNormr   Úq_normÚk_normr9   Úuse_roper   r   r   r   Úrope)Úselfr8   r9   ÚdimrE   rF   r   Ú	__class__s   &&&    €r(   rD   ÚAttention.__init__#   sG  ø€ Ü‰ÑÔà×ÑˆØ!%×!9Ñ!9Ð9ˆŒ�wØ×'Ñ'Ò3Ð3Ð3Ø'+×'?Ñ'?Ð?ˆŒ˜*à—=‘=ˆØ˜t•^ˆŒ
ä—i’i ¨xÕ%7¸eÔDˆŒÜ—i’i °(Õ%:ÀÔGˆŒÜ—i’i °(Õ%:ÀÔGˆŒÜ—i’i Õ 2°C¸eÔDˆŒä—j’j ×/@Ñ/@ÔAˆŒÜ—j’j ×/@Ñ/@ÔAˆŒØ ×)Ð) EˆŒØ  DÐ(×4Ð4¨HˆŒØ�=�=ˆ=Ü'ØØ—_‘_Ø!Ø#×0Ñ0Ø(,×(DÑ(DôˆDŽIñ 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:   @   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	                  VP                  WEV P                  R4      4      P                  ^ ^^^4      pV P                  VP                  WEV P                  R4      4      P                  ^ ^^^4      pV	P                  WEV P                  R4      P                  ^ ^^^4      p	Ve_   V P                  '       d9   V P                  WsP                  R7      pV P                  WƒP                  R7      pVP                  W‰4      w  r‰M4V P                  '       d#   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[   rG   rZ   éÿÿÿÿ)ÚshaperJ   rK   rL   rO   ÚreshaperE   Ú	transposerP   rF   rQ   rR   rb   Úupdate_and_fetchr   rG   rM   )rS   rY   rZ   r[   ÚBÚLÚDÚqueriesÚkeysÚvaluesÚoutputs   &&&&       r(   Ú__call__ÚAttention.__call__@   s  € ð —'‘'‰ˆˆaà $§¡¨A£°·±¸A³ÀÇÁÈAÃ�vˆà—+‘+˜gŸo™o¨a°D·L±LÀ"ÓEÓF×PÑPØˆq�!�Qó
ˆð �{‰{˜4Ÿ<™<¨¨d¯o©o¸rÓBÓC×MÑMØˆq�!�Qó
ˆð —‘  d§o¡o°rÓ:×DÑDÀQÈÈ1ÈaÓPˆàÒØ�}�}ˆ}ØŸ)™) G·L±L˜)ÓA�Ø—y‘y ¯l©l�yÓ;�Ø ×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   rP   rK   rE   rF   rM   rO   rJ   rR   rG   rQ   rL   ©NN©	r-   r.   r/   r0   rD   ro   r2   r3   Ú__classcell__©rU   r'   s   @@r(   r5   r5   "   s   ù‡ € ÷ó ÷:#÷ #ò #r+   r5   c                   óD   a a€ ] tR t^bt 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# ©Fr<   N)rC   rD   rH   rI   Ú	gate_projÚ	down_projÚup_proj)rS   rT   Ú
hidden_dimrU   s   &&&€r(   rD   ÚMLP.__init__c   sD   ø€ Ü‰ÑÔÜŸš 3¸Ô?ˆŒÜŸš :¸Ô?ˆŒÜ—y’y °uÔ=ˆŽr+   c                ó4   <€ V ^8„  d   QhRS[ P                  /# )r   r\   ©r^   r_   )r&   r'   s   "€r(   r)   ÚMLP.__annotate__i   s   ø€ ÷ Jñ J™RŸX™Xñ Jr+   c                ót   € V P                  \        V P                  V4      V P                  V4      4      4      # ©N)rz   r   ry   r{   )rS   rY   s   &&r(   ro   ÚMLP.__call__i   s)   € Ø�~‰~œf T§^¡^°AÓ%6¸¿¹ÀQ»ÓHÓIÐIr+   )rz   ry   r{   rr   rt   s   @@r(   rv   rv   b   s   ù‡ € õ>÷J÷ Jð Jr+   rv   c                   óT   a a€ ] tR t^mt 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[ RS[/# r7   )r   r%   )r&   r'   s   "€r(   r)   ÚTransformerBlock.__annotate__n   s   ø€ ÷ ñ ™Yð ±$ñ r+   c                ó¢  <€ \         SV `  4        VP                  V n        VP                  V n        \	        W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# )r>   N)rC   rD   r   r   r5   Ú	self_attnrv   r   ÚmlprH   rN   r   Úpost_attention_layernormÚpost_feedforward_layernormr8   )rS   r8   r9   rU   s   &&&€r(   rD   ÚTransformerBlock.__init__n   s�   ø€ Ü‰ÑÔØ#'×#;Ñ#;ˆÔ Ø×+Ñ+ˆÔÜ" 4Ó2ˆŒÜ�t×'Ñ'¨×)?Ñ)?Ó@ˆŒÜ(*¯
ª
Ø×Ñ $×"3Ñ"3ô)
ˆÔ%ô +-¯*ª*Ø×Ñ $×"3Ñ"3ô+
ˆÔ'ð Ž	r+   c                óŽ   <€ V ^8„  d   QhRS[ P                  RS[S[ P                  ,          RS[S[,          RS[ P                  /# rX   r]   )r&   r'   s   "€r(   r)   r‡   |   sH   ø€ ÷ 
ñ 
á�8‰8ð
ñ ‘r—x‘xÕ ð
ñ ™�}ð	
ñ
 
�‰ñ
r+   c                ó¨   € V P                  WV4      pWP                  V4      ,           pV P                  V4      pWPP                  V4      ,           pV# r‚   )r‰   r‹   rŠ   rŒ   )rS   rY   rZ   r[   ÚrÚhÚouts   &&&&   r(   ro   ÚTransformerBlock.__call__|   sL   € ð �N‰N˜1 EÓ*ˆØ×-Ñ-¨aÓ0Õ0ˆØ�H‰H�Q‹KˆØ×1Ñ1°!Ó4Õ4ˆØˆ
r+   )r8   r   rŠ   r   r‹   rŒ   r‰   rq   rr   rt   s   @@r(   r…   r…   m   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# )ÚExaoneModelc                ó    <€ V ^8„  d   QhRS[ /# ©r   r8   ©r   )r&   r'   s   "€r(   r)   ÚExaoneModel.__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                  p\        VP                  4       Uu. uF3  p\        TV'       d   W#\        V4      ,          ,          R8H  MRR7      NK5  	  upV n        V'       d.   VP                  R4      V n        VP                  R4      V n        MRV n        ^ V n        VP"                  V n        \
        P&                  ! VP                  VP(                  R7      V n        R# u upi )r   ri   N)r8   r9   ÚGr>   )rC   rD   r8   r   r   rH   Ú	Embeddingr   Úembed_tokensr!   Úranger…   ÚlenÚlayersÚindexÚswa_idxÚfull_idxr    Úwindow_sizerN   r   Únorm)rS   r8   ÚpatternÚirU   s   &&  €r(   rD   ÚExaoneModel.__init__Š   s  ø€ Ü‰ÑÔØŒ	ØŸ/™/ˆŒØ!%×!7Ñ!7ˆÔØ�‰ Ô"Ð"Ð"ÜŸLšL¨¯©¸$×:JÑ:JÓKˆÔØ×-Ñ-ˆô ˜4×1Ñ1Ô2ó
ñ
 3�ô	 Øß=D˜¤S¨£\Õ!1Õ2°cÒ9È$÷ñ 3ñ
ˆŒ÷ Ø"Ÿ=™=¨Ó-ˆDŒLØ#ŸM™M¨#Ó.ˆD�MàˆDŒLØˆDŒMà×.Ñ.ˆÔÜ—J’J˜t×/Ñ/°T×5FÑ5FÔGˆŽ	ùò
s   Â9E&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\        W2V P                  ,          4      pV P
                  e*   \        W2V P
                  ,          V P                  R7      pMR p\        V P                  V4       F.  w  rgVP                  P                  '       d   TMTpV! W8V4      pK0  	  V P                  V4      # )N)r¤   )r�   rŸ   r    r
   r£   r¢   r¤   Úzipr‰   r9   r¥   )	rS   r«   r[   r‘   Úglobal_maskÚswa_maskÚlayerÚcrZ   s	   &&&      r(   ro   ÚExaoneModel.__call__£   s¹   € ð
 ×Ñ˜fÓ%ˆàŠ=Ø�FœS §¡Ó-Õ-ˆEÜ+¨A°T·]±]Õ/CÓDˆØ�<‰<Ò#Ü,Ø˜Ÿ™Õ&°D×4DÑ4Dô‰Hð ˆHä˜DŸK™K¨Ö/‰HˆEØ$Ÿ™×7×7Ð7‘8¸[ˆDÙ�a˜qÓ!ŠAñ 0ð �y‰y˜‹|Ðr+   )	r8   r�   r£   r    r¥   r   r¢   r   r¤   r‚   rr   rt   s   @@r(   r•   r•   ‰   s    ù‡ € ÷Hó H÷2÷ ò 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[ /# r—   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        VP                  '       g5   \        P                  ! VP                  VP                  R R7      V n        R# R# rx   )rC   rD   r8   r   r•   Úmodelr   rH   rI   r   r   Úlm_head)rS   r8   rU   s   &&€r(   rD   ÚModel.__init__¼   sY   ø€ Ü‰ÑÔØŒ	ØŸ/™/ˆŒÜ  Ó&ˆŒ
Ø×'×'Ð'ÜŸ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¸   r8   r   r�   Ú	as_linearr¹   )rS   r«   r[   r’   s   &&& r(   ro   ÚModel.__call__Ä   sX   € ð
 �j‰j˜Ó'ˆØ�9‰9×(×(Ð(Ø—*‘*×)Ñ)×3Ñ3°CÓ8ˆCð ˆ
ð —,‘,˜sÓ#ˆCØˆ
r+   c                óÎ   € V P                    Uu. uFJ  pVP                  P                  '       d"   \        V P                  P
                  ^ R7      M	\        4       NKL  	  up# u upi )r   )Úmax_sizeÚkeep)r    r‰   r9   r   r8   r    r   )rS   Úls   & r(   Ú
make_cacheÚModel.make_cacheÐ   s^   € ð —[’[ó
ñ !�ð —;‘;×'×'Ð'ô  ¨¯©×)AÑ)AÈÕJä“Yòñ !ñ
ð 	
ùò 
s
   � A"°/A"c                ó.   € V P                   P                  # r‚   )r¸   r    )rS   s   &r(   r    ÚModel.layersÚ   s   € à�z‰z× Ñ Ð r+   )r8   r¹   r¸   r   r‚   )r-   r.   r/   r0   rD   ro   rÃ   Úpropertyr    r2   r3   rs   rt   s   @@r(   r´   r´   »   s9   ù‡ € ÷Tó T÷
ò 
ò
ð ñ!ó ÷!ð !r+   r´   )Údataclassesr   Útypingr   r   r   r   Úmlx.coreÚcorer^   Úmlx.nnrH   Úactivationsr   r@   r	   r
   r   r[   r   r   Ú
rope_utilsr   r   ÚModuler5   rv   r…   r•   r´   r,   r+   r(   Ú<module>rÐ      s”   ðõ "ß -Ó -å Ý å ß TÑ Tß +Ý 'ð ô*�ó *ó ð*ô$=#�—	‘	ô =#ô@Jˆ"�)‰)ô Jô�r—y‘yô ô8/�"—)‘)ô /ôd!!ˆB�I‰Iö !!r+   