+
    TV-j«  ã                   ót  € ^ 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HtHt ^RIHtHt ^RIHt ] ! R R	]4      4       t ! R
 R]P2                  4      t ! R R]P2                  4      t ! R R]P2                  4      t ! R R]P2                  4      t ! R R]P2                  4      tR# )é    )Ú	dataclass)ÚAnyÚDictÚListÚOptionalÚUnionN)Úswiglu)ÚBaseModelArgsÚcreate_attention_maskÚscaled_dot_product_attention)ÚKVCacheÚRotatingKVCache)Úinitialize_ropec                   óJ   a € ] tR t^t o RtRtRtRtRtRt	R t
V 3R ltRtV tR# )Ú	ModelArgsFNc                óð   € V P                   f   V P                  V n         V P                  fD   \        V P                  4       Uu. uF  pV^,           ^,          ^ 8X  d   RMRNK  	  upV n        R # R # u upi )NÚfull_attentionÚsliding_attention)Únum_key_value_headsÚnum_attention_headsÚlayer_typesÚrangeÚnum_hidden_layers)ÚselfÚis   & Úd/Volumes/fast/ai/experiments/ui-tars-smoke/.venv/lib/python3.14/site-packages/mlx_lm/models/olmo3.pyÚ__post_init__ÚModelArgs.__post_init__"   su   € Ø×#Ñ#Ò+Ø'+×'?Ñ'?ˆDÔ$Ø×ÑÒ#ô ˜t×5Ñ5Ô6ó á6�Að &'¨¥U¨a¥K°1Ô$4Ñ Ð:MÒMÙ6ñ ˆDÖñ $ùò s   Á"A3c                óV  <€ 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[S[S[ ,          ,          ;R&   S[S[,          ;R&   S[S[,          ;R&   S[S[S[ S[S[S[ 3,          3,          ,          ;R&   S[;R&   # )é   Ú
model_typeÚhidden_sizer   Úintermediate_sizer   Úrms_norm_epsÚ
vocab_sizeÚmax_position_embeddingsÚsliding_windowÚ
rope_thetaÚattention_biasr   r   Úhead_dimÚrope_scalingÚtie_word_embeddings)ÚstrÚintÚfloatÚboolr   r   r   r   )ÚformatÚ__classdict__s   "€r   Ú__annotate__ÚModelArgs.__annotate__   sú   ø‡ ‚ á�Oñ ñ Ññ ñ Ññ	 ñ
 Ññ ñ Ññ ñ Ññ ñ �Oñ ñ !Ñ ñ ñ Ññ ñ Ññ ñ Ñ ñ ñ ™$™s�)Õ$Ñ+ñ ñ "¡#�Ñ-ñ ñ ‘s�mÑ"ñ ñ  ™4¡¡U©5±#¨:Õ%6Ð 6Õ7Õ8Ñ?ñ! ñ" Ñ%ò# ó    )r   r   )Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__r)   r   r   r*   r+   r,   r   Ú__annotate_func__Ú__static_attributes__Ú__classdictcell__)r2   s   @r   r   r      s3   ø‡ € ð !€NØ'+€KØ)-ÐØ"€HØ;?€LØ %Ðò÷' ƒ r5   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# )ÚOlmo3Attentionc                ó&   <€ V ^8„  d   QhRS[ RS[/# ©r    ÚargsÚ	layer_idx©r   r.   )r1   r2   s   "€r   r3   ÚOlmo3Attention.__annotate__-   s   ø€ ÷ .ñ .™Yð .±3ñ .r5   c                ó’  <€ \         SV `  4        VP                  V n        VP                  V n        W n        VP
                  ;'       g    VP                  VP                  ,          V n        V P
                  R,          V n        \        P                  ! VP                  VP                  V P
                  ,          VP                  R7      V n        \        P                  ! VP                  VP                  V P
                  ,          VP                  R7      V n        \        P                  ! VP                  VP                  V P
                  ,          VP                  R7      V n        \        P                  ! VP                  V P
                  ,          VP                  VP                  R7      V n        \        P                  ! VP                  V P
                  ,          VP                   R7      V n        \        P                  ! VP                  V P
                  ,          VP                   R7      V n        VP&                  V,          R8w  d5   \        P(                  ! V P
                  RVP*                  R7      V n        R# \/        V P
                  RVP*                  VP0                  VP2                  R7      V n        R# )	g      à?©Úbias©Úepsr   F)ÚtraditionalÚbase)rJ   rK   Úscaling_configr&   Ng      à¿)ÚsuperÚ__init__r   r   rB   r*   r"   ÚscaleÚnnÚLinearr)   Úq_projÚk_projÚv_projÚo_projÚRMSNormr$   Úq_normÚk_normr   ÚRoPEr(   Úroper   r+   r&   ©r   rA   rB   Ú	__class__s   &&&€r   rN   ÚOlmo3Attention.__init__-   sò  ø€ Ü‰ÑÔØ#'×#;Ñ#;ˆÔ Ø#'×#;Ñ#;ˆÔ Ø"ŒàŸ™×UÐU¨×)9Ñ)9¸T×=UÑ=UÕ)UˆŒØ—]‘] DÕ(ˆŒ
ä—i’iØ×ÑØ×$Ñ$ t§}¡}Õ4Ø×$Ñ$ô
ˆŒô
 —i’iØ×ÑØ×$Ñ$ t§}¡}Õ4Ø×$Ñ$ô
ˆŒô
 —i’iØ×ÑØ×$Ñ$ t§}¡}Õ4Ø×$Ñ$ô
ˆŒô
 —i’iØ×$Ñ$ t§}¡}Õ4Ø×ÑØ×$Ñ$ô
ˆŒô —j’jØ×$Ñ$ t§}¡}Õ4¸$×:KÑ:Kô
ˆŒô —j’jØ×$Ñ$ t§}¡}Õ4¸$×:KÑ:Kô
ˆŒð ×Ñ˜IÕ&Ð*:Ô:ÜŸš §¡¸5ÀtÇÁÔWˆDŽIä'Ø—‘Ø!Ø—_‘_Ø#×0Ñ0Ø(,×(DÑ(DôˆDŽIr5   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   )r1   r2   s   "€r   r3   rD   ]   sH   ø€ ÷ #ñ #á�8‰8ð#ñ ‘r—x‘xÕ ð#ñ ™�}ð	#ñ
 
�‰ñ#r5   c           	     ó\  € VP                   w  rEpV P                  V P                  V4      4      pV P                  V P	                  V4      4      pV P                  V4      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)rb   rO   ra   éÿÿÿÿ)ÚshaperW   rR   rX   rS   rT   Úreshaper   Ú	transposer   rZ   ri   Úupdate_and_fetchr   rO   rU   )r   r`   ra   rb   ÚBÚLÚ_ÚqueriesÚkeysÚvaluesÚoutputs   &&&&       r   Ú__call__ÚOlmo3Attention.__call__]   sy  € ð —'‘'‰ˆˆaØ—+‘+˜dŸk™k¨!›nÓ-ˆØ�{‰{˜4Ÿ;™; q›>Ó*ˆØ—‘˜Q“ˆà—/‘/ !¨×(@Ñ(@À"ÓE×OÑOØˆq�!�Qó
ˆð �|‰|˜A $×":Ñ":¸BÓ?×IÑIÈ!ÈQÐPQÐSTÓUˆØ—‘  d×&>Ñ&>ÀÓC×MÑMØˆq�!�Qó
ˆð ÒØ—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Ó"Ð"r5   )r*   rX   rS   rB   r   r   rU   rW   rR   rZ   rO   rT   ©NN©	r6   r7   r8   r9   rN   rv   r;   r<   Ú__classcell__©r\   r2   s   @@r   r>   r>   ,   s   ù‡ € ÷.ó .÷`#÷ #ò #r5   r>   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# )ÚOlmo3MLPc                ó    <€ V ^8„  d   QhRS[ /# ©r    rA   ©r   )r1   r2   s   "€r   r3   ÚOlmo3MLP.__annotate__€   s   ø€ ÷ Wñ W™Yñ Wr5   c                óP  <€ \         SV `  4        \        P                  ! VP                  VP
                  R R7      V n        \        P                  ! VP
                  VP                  R R7      V n        \        P                  ! VP                  VP
                  R R7      V n        R# ©FrF   N)	rM   rN   rP   rQ   r"   r#   Ú	gate_projÚ	down_projÚup_proj©r   rA   r\   s   &&€r   rN   ÚOlmo3MLP.__init__€   sq   ø€ Ü‰ÑÔÜŸš 4×#3Ñ#3°T×5KÑ5KÐRWÔXˆŒÜŸš 4×#9Ñ#9¸4×;KÑ;KÐRWÔXˆŒÜ—y’y ×!1Ñ!1°4×3IÑ3IÐPUÔVˆŽr5   c                óN   <€ V ^8„  d   QhRS[ P                  RS[ P                  /# )r    r`   rc   )re   rf   )r1   r2   s   "€r   r3   r�   †   s'   ø€ ÷ Jñ J™"Ÿ(™(ð J¡r§x¡xñ Jr5   c                ót   € V P                  \        V P                  V4      V P                  V4      4      4      # ©N)r…   r	   r„   r†   )r   r`   s   &&r   rv   ÚOlmo3MLP.__call__†   s)   € Ø�~‰~œf T§^¡^°AÓ%6¸¿¹ÀQ»ÓHÓIÐIr5   )r…   r„   r†   ry   r{   s   @@r   r}   r}      s#   ù‡ € ÷Wó W÷J÷ Jð Jr5   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# )ÚOlmo3DecoderLayerc                ó&   <€ V ^8„  d   QhRS[ RS[/# r@   rC   )r1   r2   s   "€r   r3   ÚOlmo3DecoderLayer.__annotate__‹   s   ø€ ÷ ñ ™Yð ±3ñ r5   c                óz  <€ \         SV `  4        VP                  V n        VP                  V n        \	        WR 7      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# ))rB   rH   N)rM   rN   r   r"   r>   Ú	self_attnr}   ÚmlprP   rV   r$   Úpost_attention_layernormÚpost_feedforward_layernormrA   r[   s   &&&€r   rN   ÚOlmo3DecoderLayer.__init__‹   sŽ   ø€ Ü‰ÑÔØ#'×#;Ñ#;ˆÔ Ø×+Ñ+ˆÔÜ'¨ÔBˆŒÜ˜D“>ˆŒÜ(*¯
ª
Ø×Ñ $×"3Ñ"3ô)
ˆÔ%ô +-¯*ª*Ø×Ñ $×"3Ñ"3ô+
ˆÔ'ð Ž	r5   c                óŽ   <€ V ^8„  d   QhRS[ P                  RS[S[ P                  ,          RS[S[,          RS[ P                  /# r_   rd   )r1   r2   s   "€r   r3   r�   ™   sH   ø€ ÷ 
ñ 
á�8‰8ð
ñ ‘r—x‘xÕ ð
ñ ™�}ð	
ñ
 
�‰ñ
r5   c                ó¨   € V P                  V P                  WV4      4      pW,           pV P                  V P                  V4      4      pWT,           pV# r‹   )r”   r’   r•   r“   )r   r`   ra   rb   ÚrÚhÚouts   &&&&   r   rv   ÚOlmo3DecoderLayer.__call__™   sJ   € ð ×)Ñ)¨$¯.©.¸À%Ó*HÓIˆØ�EˆØ×+Ñ+¨D¯H©H°Q«KÓ8ˆØ�eˆØˆ
r5   )rA   r"   r“   r   r”   r•   r’   rx   ry   r{   s   @@r   rŽ   rŽ   Š   s   ù‡ € ÷ó ÷
÷ 
ò 
r5   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# )Ú
Olmo3Modelc                ó    <€ V ^8„  d   QhRS[ /# r   r€   )r1   r2   s   "€r   r3   ÚOlmo3Model.__annotate__§   s   ø€ ÷ ,ñ ,™Yñ ,r5   c                ó  <€ \         SV `  4        VP                  V n        \        P                  ! VP
                  VP                  4      V n        \        VP                  4       Uu. uF  p\        WR 7      NK  	  upV n        \        P                  ! VP                  VP                  R7      V n        VP                  P!                  R4      V n        VP                  P!                  R4      V n        VP                  V n        R# u upi ))rA   rB   rH   r   r   N)rM   rN   r'   rP   Ú	Embeddingr%   r"   Úembed_tokensr   r   rŽ   ÚlayersrV   r$   Únormr   ÚindexÚswa_idxÚga_idx)r   rA   r   r\   s   && €r   rN   ÚOlmo3Model.__init__§   sÏ   ø€ Ü‰ÑÔØ"×1Ñ1ˆÔäŸLšL¨¯©¸$×:JÑ:JÓKˆÔô ˜4×1Ñ1Ô2ó
á2�ô  4×5Ù2ñ
ˆŒô —J’J˜t×/Ñ/°T×5FÑ5FÔGˆŒ	à×'Ñ'×-Ñ-Ð.AÓBˆŒØ×&Ñ&×,Ñ,Ð-=Ó>ˆŒØ×+Ñ+ˆÖùò
s   Á(D	c                ód   <€ V ^8„  d   QhRS[ P                  RS[S[,          RS[ P                  /# ©r    Úinputsrb   rc   rd   )r1   r2   s   "€r   r3   r    ¶   s5   ø€ ÷ ñ á—‘ðñ ™�}ðñ 
�‰ñ	r5   c                óŽ  € V P                  V4      pVf   R .\        V P                  4      ,          p\        W2V P                  ,          4      p\        W2V P
                  ,          V P                  R7      p\        V P                  W P                  4       F  w  rgpVR8X  d   TMTp	V! W9VR7      pK  	  V P                  V4      # )N)Úwindow_sizer   )rb   )
r£   Úlenr¤   r   r¨   r§   r'   Úzipr   r¥   )
r   r¬   rb   rš   Ú	full_maskÚsliding_window_maskÚlayerÚcÚ
layer_typera   s
   &&&       r   rv   ÚOlmo3Model.__call__¶   s¯   € ð
 ×Ñ˜fÓ%ˆàŠ=Ø�FœS §¡Ó-Õ-ˆEä)¨!°4·;±;Õ-?Ó@ˆ	Ü3Ø�T—\‘\Õ"°×0CÑ0Cô
Ðô %(¨¯©°U×<LÑ<LÖ$MÑ ˆE�jØ *Ð.>Ô >‘9ÐDWˆDÙ�a QÔ'ŠAñ %Nð �y‰y˜‹|Ðr5   )r£   r¨   r   r¤   r¥   r'   r§   r‹   ry   r{   s   @@r   rž   rž   ¦   s   ù‡ € ÷,ó ,÷÷ ò r5   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 4       tR tRt	Vt
V ;t# )	ÚModelc                ó    <€ V ^8„  d   QhRS[ /# r   r€   )r1   r2   s   "€r   r3   ÚModel.__annotate__Í   s   ø€ ÷ Tñ T™Yñ Tr5   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ƒ   )rM   rN   rA   r!   rž   Úmodelr,   rP   rQ   r"   r%   Úlm_headr‡   s   &&€r   rN   ÚModel.__init__Í   sY   ø€ Ü‰ÑÔØŒ	ØŸ/™/ˆŒÜ Ó%ˆŒ
Ø×'×'Ð'ÜŸ9š9 T×%5Ñ%5°t·±ÈUÔSˆDŽLñ (r5   c                ód   <€ V ^8„  d   QhRS[ P                  RS[S[,          RS[ P                  /# r«   rd   )r1   r2   s   "€r   r3   rº   Õ   s5   ø€ ÷ 
ñ 
á—‘ð
ñ ™�}ð
ñ 
�‰ñ	
r5   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¼   rA   r,   r£   Ú	as_linearr½   )r   r¬   rb   r›   s   &&& r   rv   ÚModel.__call__Õ   sX   € ð
 �j‰j˜Ó'ˆØ�9‰9×(×(Ð(Ø—*‘*×)Ñ)×3Ñ3°CÓ8ˆCð ˆ
ð —,‘,˜sÓ#ˆCØˆ
r5   c                ó.   € V P                   P                  # r‹   )r¼   r¤   )r   s   &r   r¤   ÚModel.layersá   s   € à�z‰z× Ñ Ð r5   c                óæ   € . pV P                   P                   FT  pVR 8X  d   VP                  \        4       4       K%  VP                  \	        V P
                  P                  R7      4       KV  	  V# )r   )Úmax_size)r¼   r   Úappendr   r   rA   r'   )r   ÚcachesÚlts   &  r   Ú
make_cacheÚModel.make_cacheå   sT   € ØˆØ—*‘*×(Ô(ˆBØÐ%Ô%Ø—‘œg›iÖ(à—‘œo°t·y±y×7OÑ7OÔPÖQñ	 )ð
 ˆr5   )rA   r½   r¼   r!   r‹   )r6   r7   r8   r9   rN   rv   Úpropertyr¤   rÊ   r;   r<   rz   r{   s   @@r   r¸   r¸   Ì   s9   ù‡ € ÷Tó T÷
ò 
ð ñ!ó ð!÷ò r5   r¸   )Údataclassesr   Útypingr   r   r   r   r   Úmlx.coreÚcorere   Úmlx.nnrP   Úactivationsr	   rK   r
   r   r   rb   r   r   Ú
rope_utilsr   r   ÚModuler>   r}   rŽ   rž   r¸   © r5   r   Ú<module>rÖ      s–   ðõ "ß 3Õ 3å Ý å ß TÑ Tß +Ý 'ð ô�ó ó ðô8P#�R—Y‘Yô P#ôfJˆr�y‰yô Jô˜Ÿ	™	ô ô8#�—‘ô #ôL ˆB�I‰Iö  r5   