+
    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HtHt ^RIHt ^RI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# )é    )Ú	dataclass)ÚAnyÚDictÚOptionalÚUnionN)ÚBaseModelArgsÚcreate_attention_maskÚscaled_dot_product_attention)Úinitialize_rope)Ú	SwitchGLUc                   óZ   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V 3R ltRtV tR# )Ú	ModelArgsFNi'  Tc                óH   € V P                   f   V P                  V n         R # R # ©N)Únum_key_value_headsÚnum_attention_heads©Úselfs   &Úd/Volumes/fast/ai/experiments/ui-tars-smoke/.venv/lib/python3.14/site-packages/mlx_lm/models/olmoe.pyÚ__post_init__ÚModelArgs.__post_init__$   s!   € Ø×#Ñ#Ò+Ø'+×'?Ñ'?ˆDÖ$ñ ,ó    c                ój  <€ 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[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&   # )é   Ú
model_typeÚhidden_sizeÚnum_hidden_layersÚintermediate_sizer   Úrms_norm_epsÚ
vocab_sizeÚnum_expertsÚnum_experts_per_tokÚnorm_topk_probÚhead_dimÚmax_position_embeddingsr   Úattention_biasÚmlp_biasÚ
rope_thetaÚrope_traditionalÚrope_scalingÚtie_word_embeddings)ÚstrÚintÚfloatÚboolr   r   r   )ÚformatÚ__classdict__s   "€r   Ú__annotate__ÚModelArgs.__annotate__   s  ø‡ ‚ á�Oñ ñ Ññ ñ Ññ	 ñ
 Ññ ñ Ññ ñ Ññ ñ �Oñ ñ Ññ ñ Ññ ñ Ñ ñ ñ ‘s�mÑ"ñ ñ &¡c�]Ñ1ñ ñ "¡#�Ñ-ñ ñ Ñ ñ ñ  Ññ! ñ" Ññ# ñ$ Ñ"ñ% ñ& ™4¡¡U©5±#¨:Õ%6Ð 6Õ7Õ8Ñ?ñ' ñ( Ñ$ò) r   )r   )Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__r#   r$   r%   r   r&   r'   r(   r)   r*   r+   r   Ú__annotate_func__Ú__static_attributes__Ú__classdictcell__)r1   s   @r   r   r      sJ   ø‡ € ð !€NØ"€HØ-1ÐØ)-ÐØ €NØ€HØ€JØ"ÐØ;?€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# )Ú	Attentionc                ó    <€ V ^8„  d   QhRS[ /# ©r   Úargs©r   )r0   r1   s   "€r   r2   ÚAttention.__annotate__*   s   ø€ ÷ Kñ K™Yñ K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        \        P                  ! W#V,          VP                  R7      V n        \        P                  ! W$V,          VP                  R7      V n        \        P                  ! W$V,          VP                  R7      V n        \        P                  ! W5,          W!P                  R7      V n        \!        V P                  VP"                  VP$                  VP&                  VP(                  4      V n        \        P,                  ! W5,          VP.                  4      V n        \        P,                  ! WE,          VP.                  4      V n        R# )g      à?©ÚbiasNg      à¿)ÚsuperÚ__init__r   r   Ún_headsr   Ú
n_kv_headsr$   ÚscaleÚnnÚLinearr&   Úq_projÚk_projÚv_projÚo_projr   r(   r)   r*   r%   ÚropeÚRMSNormr   Úq_normÚk_norm)r   r?   ÚdimrG   rH   r$   Ú	__class__s   &&    €r   rF   ÚAttention.__init__*   sJ  ø€ Ü‰ÑÔà×ÑˆØ!%×!9Ñ!9Ð9ˆŒ�wØ'+×'?Ñ'?Ð?ˆŒ˜*à#'§=¡=×#OÐ#O°D×4DÑ4DÈÕ4OÐOˆŒ˜à˜t•^ˆŒ
ä—i’i ¨xÕ%7¸d×>QÑ>QÔRˆŒÜ—i’i °(Õ%:À×ATÑATÔUˆŒÜ—i’i °(Õ%:À×ATÑATÔUˆŒÜ—i’i Õ 2°C×>QÑ>QÔRˆŒä#Ø�M‰MØ�O‰OØ×!Ñ!Ø×ÑØ×(Ñ(ó
ˆŒ	ô —j’j Õ!3°T×5FÑ5FÓGˆŒÜ—j’j Õ!6¸×8IÑ8IÓJˆŽ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   )r0   r1   s   "€r   r2   rA   E   sH   ø€ ÷ #ñ #á�8‰8ð#ñ ‘r—x‘xÕ ð#ñ ™�}ð	#ñ
 
�‰ñ#r   c           	     ób  € VP                   w  rEpV P                  V4      V P                  V4      V P                  V4      r˜pV P	                  V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)r[   rI   rZ   éÿÿÿÿ)ÚshaperL   rM   rN   rR   rS   ÚreshaperG   Ú	transposerH   rP   rb   Úupdate_and_fetchr
   rI   rO   )r   rY   rZ   r[   ÚBÚLÚDÚqueriesÚkeysÚvaluesÚoutputs   &&&&       r   Ú__call__ÚAttention.__call__E   sm  € ð —'‘'‰ˆˆaØ $§¡¨A£°·±¸A³ÀÇÁÈAÃ�vˆØ—+‘+˜gÓ&ˆØ�{‰{˜4Ó ˆØ—/‘/ !¨¯©°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$   rS   rM   rG   rH   rO   rR   rL   rP   rI   rN   ©NN©	r4   r5   r6   r7   rF   ro   r9   r:   Ú__classcell__©rU   r1   s   @@r   r<   r<   )   s    ù‡ € ÷Kó K÷6#÷ #ò #r   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# )ÚOlmoeSparseMoeBlockc                ó    <€ V ^8„  d   QhRS[ /# r>   r@   )r0   r1   s   "€r   r2   Ú OlmoeSparseMoeBlock.__annotate__a   s   ø€ ÷ 
ñ 
™Yñ 
r   c                óf  <€ \         SV `  4        VP                  V n        VP                  V n        VP
                  V n        \        P                  ! VP                  V P                  R R7      V n	        \        VP                  VP                  V P                  VP                  R7      V n        R# ©FrC   N)rE   rF   r!   r"   Útop_kr#   rJ   rK   r   Úgater   r   r'   Ú
switch_mlp©r   r?   rU   s   &&€r   rF   ÚOlmoeSparseMoeBlock.__init__a   s…   ø€ Ü‰ÑÔØ×+Ñ+ˆÔØ×-Ñ-ˆŒ
Ø"×1Ñ1ˆÔä—I’I˜d×.Ñ.°×0@Ñ0@ÀuÔMˆŒ	Ü#Ø×ÑØ×"Ñ"Ø×ÑØ—‘ô	
ˆŽr   c                óN   <€ V ^8„  d   QhRS[ P                  RS[ P                  /# )r   rY   r\   ©r^   r_   )r0   r1   s   "€r   r2   rx   o   s#   ø€ ÷ "ñ "™"Ÿ(™(ð "¡r§x¡xñ "r   c                ó:  € VP                   w  r#pVP                  RV4      pV P                  V4      p\        P                  ! V^RR7      pV P
                  p\        P                  ! \        P                  ! V) V^,
          RR7      RRV13,          4      p	\        P                  ! WyRR7      p
V P                  '       d   WªP                  RRR7      ,          p
V P                  WY4      pWºR	,          ,          P                  R
R7      pVP                  W#V4      # )ra   T)ÚaxisÚprecise)Úkthrƒ   .N)rƒ   )rƒ   Úkeepdimsrc   ).Néþÿÿÿ)rd   re   r|   r^   Úsoftmaxr{   Ústop_gradientÚargpartitionÚtake_along_axisr#   Úsumr}   )r   rY   rh   ri   rj   Úx_flatÚrouter_logitsÚrouting_weightsÚkÚindicesÚscoresÚys   &&          r   ro   ÚOlmoeSparseMoeBlock.__call__o   së   € Ø—'‘'‰ˆˆaØ—‘˜2˜qÓ!ˆØŸ	™	 &Ó)ˆÜŸ*š* ]¸ÀDÔIˆØ�J‰JˆÜ×"Ò"Ü�OŠO˜_Ð,°!°aµ%¸bÔAÀ#ÀrÈÀrÀ'ÕJó
ˆô ×#Ò# OÀ2ÔFˆØ××ÐØŸj™j¨b¸4˜jÓ@Õ@ˆFØ�O‰O˜FÓ,ˆØ˜	Õ"Õ"×'Ñ'¨RÐ'Ó0ˆØ�y‰y˜˜qÓ!Ð!r   )r|   r#   r!   r}   r{   rr   rt   s   @@r   rv   rv   `   s   ù‡ € ÷
ó 
÷"÷ "ð "r   rv   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[ /# r>   r@   )r0   r1   s   "€r   r2   ÚTransformerBlock.__annotate__�   s   ø€ ÷ 
ñ 
™Yñ 
r   c                ó(  <€ \         SV `  4        \        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        R# )©ÚepsN)rE   rF   r<   Ú	self_attnrv   ÚmlprJ   rQ   r   r   Úinput_layernormÚpost_attention_layernormr~   s   &&€r   rF   ÚTransformerBlock.__init__�   sf   ø€ Ü‰ÑÔÜ" 4›ˆŒÜ& tÓ,ˆŒÜ!Ÿ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                  /# rX   r]   )r0   r1   s   "€r   r2   r˜   Š   sH   ø€ ÷ ñ á�8‰8ðñ ‘r—x‘xÕ ðñ ™�}ð	ñ
 
�‰ñr   c                ó    € WP                  V P                  V4      W#4      ,           pWP                  V P                  V4      4      ,           pV# r   )rœ   rž   r�   rŸ   )r   rY   rZ   r[   s   &&&&r   ro   ÚTransformerBlock.__call__Š   sC   € ð —‘˜t×3Ñ3°AÓ6¸ÓDÕDˆØ—‘˜×6Ñ6°qÓ9Ó:Õ:ˆØˆr   )rž   r�   rŸ   rœ   rq   rr   rt   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# )Ú
OlmoeModelc                ó    <€ V ^8„  d   QhRS[ /# r>   r@   )r0   r1   s   "€r   r2   ÚOlmoeModel.__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                  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   )r?   rš   N)rE   rF   r?   r    r   rJ   Ú	Embeddingr   Úembed_tokensÚranger–   ÚlayersrQ   r   Únorm)r   r?   Ú_rU   s   && €r   rF   ÚOlmoeModel.__init__–   s­   ø€ Ü‰ÑÔØŒ	ØŸ/™/ˆŒØ!%×!7Ñ!7ˆÔØ�‰ Ô"Ð"Ð"ÜŸLšL¨¯©¸$×:JÑ:JÓKˆÔä16°t×7MÑ7MÔ1Nó
Ù1N¨AÔ $×'Ñ1Nñ
ˆŒô —J’J˜t×/Ñ/°T×5FÑ5FÔGˆŽ	ùò
s   ÂC"c                ó4   <€ V ^8„  d   QhRS[ P                  /# ©r   Úinputsr�   )r0   r1   s   "€r   r2   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)r[   )rª   Úlenr¬   r	   Úzipr­   )r   r²   r[   ÚhrZ   ÚlayerÚcs   &&&    r   ro   ÚOlmoeModel.__call__¢   sm   € ð
 ×Ñ˜fÓ%ˆØŠ=Ø�FœS §¡Ó-Õ-ˆEÜ$ Q¨a­Ó1ˆÜ˜DŸK™K¨Ö/‰HˆEÙ�a QÔ'ŠAñ 0à�y‰y˜‹|Ðr   )r?   rª   r¬   r­   r   r    r   rr   rt   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[ /# r>   r@   )r0   r1   s   "€r   r2   Ú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# rz   )rE   rF   r?   r   r¥   Úmodelr+   rJ   rK   r   r    Úlm_headr~   s   &&€r   rF   Ú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�   )r0   r1   s   "€r   r2   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¿   r?   r+   rª   Ú	as_linearrÀ   )r   r²   r[   Úouts   &&& r   ro   ÚModel.__call__¹   sX   € ð
 �j‰j˜Ó'ˆØ�9‰9×(×(Ð(Ø—*‘*×)Ñ)×3Ñ3°CÓ8ˆCð ˆ
ð —,‘,˜sÓ#ˆCØˆ
r   c                óŽ  € R V9  d   V# \        V P                  P                  4       F“  pRV 2pR F…  pR F|  pV RV RV 2V9   g   K  \        V P                  P                  4       Uu. uF  pVP	                  V RV RV RV 24      NK!  	  pp\
        P                  ! V4      W RV RV 2&   K~  	  K‡  	  K•  	  V# u upi )z+model.layers.0.mlp.experts.0.up_proj.weightzmodel.layers.z.mlp.experts.0.Ú.z.mlp.experts.z.mlp.switch_mlp.)Úup_projÚ	down_projÚ	gate_proj)ÚweightÚscalesÚbiases)r«   r?   r   r!   Úpopr^   Ústack)r   ÚweightsÚlÚprefixÚnr�   ÚeÚto_joins   &&      r   ÚsanitizeÚModel.sanitizeÅ   så   € Ø8ÀÔGØˆNÜ�t—y‘y×2Ñ2Ö3ˆAØ$ Q CÐ(ˆFÛ:�Û7�AØ ˜ °°°1°Q°CÐ8¸GÖCô &+¨4¯9©9×+@Ñ+@Ô%Aó#á%A ð $ŸK™K¨6¨(°-À¸sÀ!ÀAÀ3ÀaÈÀsÐ(KÖLÙ%Að  ð #ô GIÇhÂhÈwÓFW˜ (Ð*:¸1¸#¸Q¸q¸cÐ BÓCó 8ó ;ñ 4ð ˆùò#s   Á-%C
c                ó.   € V P                   P                  # r   )r¿   r¬   r   s   &r   r¬   ÚModel.layersÔ   s   € à�z‰z× Ñ Ð r   )r?   rÀ   r¿   r   r   )r4   r5   r6   r7   rF   ro   r×   Úpropertyr¬   r9   r:   rs   rt   s   @@r   r»   r»   °   s9   ù‡ € ÷Tó T÷
ò 
òð ñ!ó ÷!ð !r   r»   )Údataclassesr   Útypingr   r   r   r   Úmlx.coreÚcorer^   Úmlx.nnrJ   Úbaser   r	   r
   Ú
rope_utilsr   Úswitch_layersr   r   ÚModuler<   rv   r–   r¥   r»   © r   r   Ú<module>ræ      s’   ðõ "ß -Ó -å Ý ç TÑ TÝ 'Ý $ð ô@�ó @ó ð@ô44#�—	‘	ô 4#ôn"˜"Ÿ)™)ô "ô@�r—y‘yô ô*�—‘ô ô6&!ˆB�I‰Iö &!r   