+
    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 R]P*                  4      tR# )é    )Ú	dataclass)ÚAnyÚDictÚOptionalÚUnionN)ÚBaseModelArgsÚcreate_attention_maskÚscaled_dot_product_attention)Úinitialize_rope)Ú	SwitchGLUc                   ó4   a € ] tR t^t o RtRtV 3R ltRtV tR# )Ú	ModelArgsNTc                ó:  <€ 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[;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_sizeÚnum_attention_headsÚrms_norm_epsÚ
vocab_sizeÚlogits_scalingÚattention_multiplierÚembedding_multiplierÚresidual_multiplierÚmax_position_embeddingsÚnum_key_value_headsÚattention_biasÚ
rope_thetaÚnum_local_expertsÚnum_experts_per_tokÚrope_scalingÚtie_word_embeddings)ÚstrÚintÚfloatÚboolr   r   r   )ÚformatÚ__classdict__s   "€Úi/Volumes/fast/ai/experiments/ui-tars-smoke/.venv/lib/python3.14/site-packages/mlx_lm/models/granitemoe.pyÚ__annotate__ÚModelArgs.__annotate__   s  ø‡ ‚ á�Oñ ñ Ññ ñ Ññ	 ñ
 Ññ ñ Ññ ñ Ññ ñ �Oñ ñ Ññ ñ  Ññ ñ  Ññ ñ Ññ ñ !Ñ ñ ñ Ññ ñ Ññ ñ  Ññ! ñ" Ññ# ñ$ Ññ% ñ& ™4¡¡U©5±#¨:Õ%6Ð 6Õ7Õ8Ñ?ñ' ñ( Ñ$ò) ó    © )	Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__r"   r#   Ú__annotate_func__Ú__static_attributes__Ú__classdictcell__)r)   s   @r*   r   r      s   ø‡ € ð& <@€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# )ÚGraniteMoeAttentionc                ó    <€ V ^8„  d   QhRS[ /# ©r   Úargs©r   )r(   r)   s   "€r*   r+   Ú GraniteMoeAttention.__annotate__&   s   ø€ ÷ 
ñ 
™Yñ 
r-   c                óŒ  <€ \         SV `  4        VP                  pVP                  ;V n        pVP
                  ;V n        pVP                  V,          ;V n        pVP                  V n	        VP                  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        \#        V P                  VP$                  RVP&                  VP(                  4      V n        R# )©ÚbiasFN)ÚsuperÚ__init__r   r   Ún_headsr   Ú
n_kv_headsÚhead_dimr   Úscaler   ÚnnÚLinearÚq_projÚk_projÚv_projÚo_projr   r   r"   r   Úrope)Úselfr:   ÚdimrB   rC   rD   r   Ú	__class__s   &&     €r*   rA   ÚGraniteMoeAttention.__init__&   sõ   ø€ Ü‰ÑÔà×ÑˆØ!%×!9Ñ!9Ð9ˆŒ�wØ'+×'?Ñ'?Ð?ˆŒ˜*à#'×#3Ñ#3°wÕ#>Ð>ˆŒ˜à×.Ñ.ˆŒ
Ø×,Ñ,ˆÜ—i’i ¨xÕ%7¸nÔMˆŒÜ—i’i °(Õ%:ÀÔPˆŒÜ—i’i °(Õ%:ÀÔPˆŒÜ—i’i Õ 2°CÔMˆŒä#Ø�M‰MØ�O‰OØØ×ÑØ×(Ñ(ó
ˆŽ	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	                  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)rU   rE   rT   éÿÿÿÿ)ÚshaperH   rI   rJ   ÚreshaperB   Ú	transposerC   rL   r\   Úupdate_and_fetchr
   rE   rK   )rM   rS   rT   rU   ÚBÚLÚDÚqueriesÚkeysÚvaluesÚoutputs   &&&&       r*   Ú__call__ÚGraniteMoeAttention.__call__>   sQ  € ð —'‘'‰ˆˆ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-   )	rD   rI   rB   rC   rK   rH   rL   rE   rJ   ©NN©	r/   r0   r1   r2   rA   ri   r4   r5   Ú__classcell__©rO   r)   s   @@r*   r7   r7   %   s   ù‡ € ÷
ó 
÷0#÷ #ò #r-   r7   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# )ÚGraniteMoeTopKGatingc                ó,   <€ V ^8„  d   QhRS[ RS[ RS[ /# )r   Ú
input_sizeÚnum_expertsÚtop_k)r%   )r(   r)   s   "€r*   r+   Ú!GraniteMoeTopKGating.__annotate__]   s'   ø€ ÷ Dñ D¡3ð D±Sð DÁñ Dr-   c                ó‚   <€ \         SV `  4        W n        Wn        W0n        \
        P                  ! WR R7      V n        R# ©Fr>   N)r@   rA   rs   rr   rt   rF   rG   Úlayer)rM   rr   rs   rt   rO   s   &&&&€r*   rA   ÚGraniteMoeTopKGating.__init__]   s0   ø€ Ü‰ÑÔØ&ÔØ$ŒØŒ
Ü—Y’Y˜z¸UÔCˆŽ
r-   c                ó4   <€ V ^8„  d   QhRS[ P                  /# )r   Úhidden_states©rX   rY   )r(   r)   s   "€r*   r+   ru   d   s   ø€ ÷ &ñ &¡b§h¡hñ &r-   c                ó6  € V P                  V4      p\        P                  ! W P                  ) RR7      RV P                  ) R13,          p\        P                  ! W#RR7      p\        P
                  ! VP                  \        P                  4      RR7      pW53# )r[   )ÚkthÚaxis.N©r   r]   )rx   rX   Úargpartitionrt   Útake_along_axisÚsoftmaxÚastypeÚfloat32)rM   r{   ÚlogitsÚ	top_k_idxÚtop_k_logitsÚtop_k_gatess   &&    r*   ri   ÚGraniteMoeTopKGating.__call__d   sw   € Ø—‘˜MÓ*ˆÜ—O’O F·±°À"ÔEØ�$—*‘*�‘Ðõ
ˆ	ô ×)Ò)¨&À"ÔEˆÜ—j’j ×!4Ñ!4´R·Z±ZÓ!@ÀrÔJˆØÐ%Ð%r-   )rr   rx   rs   rt   rl   rn   s   @@r*   rp   rp   \   s    ù‡ € ÷Dó D÷&÷ &ð &r-   rp   c                   óP   a a€ ] tR t^nt oV3R lV 3R lltV3R lR ltRtVtV ;t# )ÚGraniteMoeMoEc                ó    <€ V ^8„  d   QhRS[ /# r9   r;   )r(   r)   s   "€r*   r+   ÚGraniteMoeMoE.__annotate__o   s   ø€ ÷ 
ñ 
™Yñ 
r-   c                ó*  <€ \         SV `  4        VP                  V n        VP                  V n        \        V P                  V P                  VP                  4      V n        \        V P                  VP                  VP                  R 7      V n
        R# ))rr   rs   rt   N)r@   rA   r   rr   r   r   r    Ú
switch_mlprp   r!   Úrouter©rM   r:   rO   s   &&€r*   rA   ÚGraniteMoeMoE.__init__o   ss   ø€ Ü‰ÑÔà×*Ñ*ˆŒØ×1Ñ1ˆÔÜ#Ø�O‰O˜T×-Ñ-¨t×/EÑ/Eó
ˆŒô +Ø—‘Ø×.Ñ.Ø×*Ñ*ô
ˆŽr-   c                óN   <€ V ^8„  d   QhRS[ P                  RS[ P                  /# )r   rS   rV   r|   )r(   r)   s   "€r*   r+   rŽ   }   s'   ø€ ÷ Cñ C™"Ÿ(™(ð C¡r§x¡xñ Cr-   c                óº   € V P                  V4      w  r#V P                  W4      pWCR,          ,          P                  RR7      P                  VP                  4      # ).r€   ).Néþÿÿÿ)r‘   r�   Úsumr„   Údtype)rM   rS   Ú	token_idsÚgatesÚys   &&   r*   ri   ÚGraniteMoeMoE.__call__}   sK   € ØŸ;™; q›>Ñˆ	Ø�O‰O˜AÓ)ˆØ˜)Õ$Õ$×)Ñ)¨rÐ)Ó2×9Ñ9¸!¿'¹'ÓBÐBr-   )r   rr   r‘   r�   rl   rn   s   @@r*   rŒ   rŒ   n   s!   ù‡ € ÷
ó 
÷C÷ Cð C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# )ÚGraniteMoeDecoderLayerc                ó    <€ V ^8„  d   QhRS[ /# r9   r;   )r(   r)   s   "€r*   r+   Ú#GraniteMoeDecoderLayer.__annotate__„   s   ø€ ÷ <ñ <™Yñ <r-   c                óJ  <€ \         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        VP                  V n        R# )©ÚepsN)r@   rA   r7   Ú	self_attnrŒ   Úblock_sparse_moerF   ÚRMSNormr   r   Úinput_layernormÚpost_attention_layernormr   r’   s   &&€r*   rA   ÚGraniteMoeDecoderLayer.__init__„   sx   ø€ Ü‰ÑÔÜ,¨TÓ2ˆŒÜ -¨dÓ 3ˆÔÜ!Ÿ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                  /# rR   rW   )r(   r)   s   "€r*   r+   r    Ž   sH   ø€ ÷ 
ñ 
á�8‰8ð
ñ ‘r—x‘xÕ ð
ñ ™�}ð	
ñ
 
�‰ñ
r-   c                óì   € V P                  V P                  V4      W#4      pWV P                  ,          ,           pV P                  V P	                  V4      4      pWTV P                  ,          ,           pV# ©N)r¤   r§   r   r¥   r¨   )rM   rS   rT   rU   ÚrÚhÚouts   &&&&   r*   ri   ÚGraniteMoeDecoderLayer.__call__Ž   se   € ð �N‰N˜4×/Ñ/°Ó2°DÓ@ˆØ�D×,Ñ,Õ,Õ,ˆØ×!Ñ! $×"?Ñ"?ÀÓ"BÓCˆØ�d×.Ñ.Õ.Õ.ˆØˆ
r-   )r¥   r§   r¨   r   r¤   rk   rl   rn   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# )ÚGraniteMoEModelc                ó    <€ V ^8„  d   QhRS[ /# r9   r;   )r(   r)   s   "€r*   r+   ÚGraniteMoEModel.__annotate__œ   s   ø€ ÷ >ñ >™Yñ >r-   c                ó†  <€ \         SV `  4        Wn        \        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        VP                  V n        R# u upi ))r:   r¢   N)r@   rA   r:   rF   Ú	Embeddingr   r   Úembed_tokensÚranger   rž   Úlayersr¦   r   Únormr   )rM   r:   Ú_rO   s   && €r*   rA   ÚGraniteMoEModel.__init__œ   s�   ø€ Ü‰ÑÔØŒ	ÜŸLšL¨¯©¸$×:JÑ:JÓKˆÔä7<¸T×=SÑ=SÔ7Tó
Ù7T°!Ô"¨×-Ñ7Tñ
ˆŒô —J’J˜t×/Ñ/°T×5FÑ5FÔGˆŒ	Ø$(×$=Ñ$=ˆÖ!ùò	
s   ÁB>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      V P                  ,          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)rU   )r·   r   Úlenr¹   r	   Úziprº   )rM   r¿   rU   r®   rT   rx   Úcs   &&&    r*   ri   ÚGraniteMoEModel.__call__¦   sz   € ð
 ×Ñ˜fÓ%¨×(AÑ(AÕAˆàŠ=Ø�FœS §¡Ó-Õ-ˆEä$ Q¨a­Ó1ˆä˜DŸK™K¨Ö/‰HˆEÙ�a QÔ'ŠAñ 0ð �y‰y˜‹|Ðr-   )r:   r·   r   r¹   rº   r¬   rl   rn   s   @@r*   r²   r²   ›   s   ù‡ € ÷>ó >÷÷ ò r-   r²   c                   óz   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 4       t	Rt
VtV ;t# )
ÚModelc                ó    <€ V ^8„  d   QhRS[ /# r9   r;   )r(   r)   s   "€r*   r+   ÚModel.__annotate__¹   s   ø€ ÷ 2ñ 2™Yñ 2r-   c                ó  <€ \         SV `  4        Wn        VP                  V n        \	        V4      V n        VP                  '       g3   \        P                  ! VP                  VP                  R R7      V n        VP                  V n        R# rw   )r@   rA   r:   r   r²   Úmodelr#   rF   rG   r   r   Úlm_headr   r’   s   &&€r*   rA   ÚModel.__init__¹   sb   ø€ Ü‰ÑÔØŒ	ØŸ/™/ˆŒÜ$ TÓ*ˆŒ
Ø×'×'Ð'ÜŸ9š9 T×%5Ñ%5°t·±ÈUÔSˆDŒLØ"×1Ñ1ˆÖ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MV P                  V4      pW0P                  ,          # r¬   )rÊ   r:   r#   r·   Ú	as_linearrË   r   )rM   r¿   rU   r¯   s   &&& r*   ri   ÚModel.__call__Â   sY   € ð
 �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 R2pV R2pVP                  V4      p\        P
                  ! V^^R7      w  rgWaVP                  RR4      &   WqVP                  RR4      &   V R2pVP                  V4      WP                  R	R
4      &   KŒ  	  V P                  P                  '       d   VP                  RR4       V# )z3model.layers.0.block_sparse_moe.input_linear.weightzmodel.layers.z.block_sparse_moez.input_linear.weightr€   Úinput_linearzswitch_mlp.gate_projzswitch_mlp.up_projz.output_linear.weightÚoutput_linearzswitch_mlp.down_projzlm_head.weightN)r¸   r:   r   ÚpoprX   ÚsplitÚreplacer#   )rM   ÚweightsÚlÚprefixÚkeyÚvalueÚ	gate_projÚup_projs   &&      r*   ÚsanitizeÚModel.sanitizeÎ   sã   € Ø@ÈÔOØˆNÜ�t—y‘y×2Ñ2Ö3ˆAØ$ Q CÐ'8Ð9ˆFØ�HÐ0Ð1ˆCØ—K‘K Ó$ˆEÜ!#§¢¨%°¸Ô!;ÑˆIØKT�C—K‘K Ð0FÓGÑHØIP�C—K‘K Ð0DÓEÑFØ�HÐ1Ð2ˆCØLSÏKÉKØóMˆG—K‘K Ð1GÓHÓIñ 4ð �9‰9×(×(Ð(Ø�K‰KÐ(¨$Ô/Øˆr-   c                ó   € R  pV# )c                 ó@   € V P                  R 4      '       d   R^@R^/# R# )zblock_sparse_moe.router.layerÚ
group_sizeÚbitsT)Úendswith)Úpathr»   s   &&r*   Ú	predicateÚ(Model.quant_predicate.<locals>.predicateâ   s$   € Ø�}‰}Ð<×=Ò=Ø$ b¨&°!Ð4Ð4Ùr-   r.   )rM   ræ   s   & r*   Úquant_predicateÚModel.quant_predicateà   s   € ò	ð
 Ðr-   c                ó.   € V P                   P                  # r¬   )rÊ   r¹   )rM   s   &r*   r¹   ÚModel.layersé   s   € à�z‰z× Ñ Ð r-   )r:   rË   r   rÊ   r   r¬   )r/   r0   r1   r2   rA   ri   rÞ   Úpropertyrè   r¹   r4   r5   rm   rn   s   @@r*   rÆ   rÆ   ¸   sK   ù‡ € ÷2ó 2÷
)ò 
)òð$ ñó ðð ñ!ó ÷!ð !r-   rÆ   )Údataclassesr   Útypingr   r   r   r   Úmlx.coreÚcorerX   Úmlx.nnrF   Úbaser   r	   r
   Ú
rope_utilsr   Úswitch_layersr   r   ÚModuler7   rp   rŒ   rž   r²   rÆ   r.   r-   r*   Ú<module>rö      s    ðõ "ß -Ó -å Ý ç TÑ TÝ 'Ý $ð ô%�ó %ó ð%ô,4#˜"Ÿ)™)ô 4#ôn&˜2Ÿ9™9ô &ô$C�B—I‘Iô Cô*˜RŸY™Yô ô0�b—i‘iô ô:3!ˆB�I‰Iö 3!r-   