+
    TV-j$  ã                   óÒ  € ^ RI Ht ^ RIHtHt ^ RIHt ^ RIH	t	 ^ RI
t^RIHt ^RIHtHt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 R]	P&                  4      t ! R R]	P&                  4      tR# )é    )Ú	dataclass)ÚAnyÚOptionalN)Úswiglu)ÚBaseModelArgsÚcreate_attention_maskÚscaled_dot_product_attentionc                   ó,   a € ] tR t^t o V 3R ltRtV tR# )Ú	ModelArgsc                ón   <€ V ^8„  d   Qh/ S[ ;R&   S[;R&   S[;R&   S[;R&   S[;R&   S[;R&   S[;R&   # )é   Ú
model_typeÚ
vocab_sizeÚd_modelÚ
ffn_configÚattn_configÚn_layersÚn_heads)ÚstrÚintÚdict)ÚformatÚ__classdict__s   "€Úc/Volumes/fast/ai/experiments/ui-tars-smoke/.venv/lib/python3.14/site-packages/mlx_lm/models/dbrx.pyÚ__annotate__ÚModelArgs.__annotate__   sY   ø‡ ‚ á�Oñ ñ �Oñ ñ �Lñ	 ñ
 Ññ ñ Ññ ñ �Mñ ñ �Lò ó    © 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                ó    <€ V ^8„  d   QhRS[ /# ©r   Úargs©r   )r   r   s   "€r   r   ÚAttention.__annotate__   s   ø€ ÷ 
ñ 
™Yñ 
r   c                óê  <€ \         SV `  4        VP                  V n        VP                  V n        VP                  VP                  ,          V n        VP                  R ,          V n        VP                  R,          V n        VP                  R,          V n	        V P
                  R,          V n
        \        P                  ! VP                  V P                  ^,          V P                  ,           V P
                  ,          RR7      V n        \        P                  ! VP                  VP                  RR7      V n        \        P                  ! V P
                  RV P                  R7      V n        R# )Ú
kv_n_headsÚclip_qkvÚ
rope_thetaF©Úbias)ÚtraditionalÚbaseNg      à¿)ÚsuperÚ__init__r   Ú	num_headsr   Úhead_dimr   Únum_key_value_headsr/   r0   ÚscaleÚnnÚLinearÚWqkvÚout_projÚRoPEÚrope©Úselfr*   Ú	__class__s   &&€r   r6   ÚAttention.__init__   sø   ø€ Ü‰ÑÔØŸ™ˆŒØ—|‘|ˆŒØŸ™¨¯©Õ4ˆŒØ#'×#3Ñ#3°LÕ#AˆÔ Ø×(Ñ(¨Õ4ˆŒØ×*Ñ*¨<Õ8ˆŒà—]‘] DÕ(ˆŒ
ä—I’IØ�L‰LØ×%Ñ%¨Õ)¨D¯N©NÕ:¸d¿m¹mÕKØô
ˆŒ	ô
 Ÿ	š	 $§,¡,°·±À5ÔIˆŒÜ—G’GØ�M‰MØØ—‘ô
ˆŽ	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,   1   sH   ø€ ÷ !%ñ !%á�8‰8ð!%ñ ‘r—x‘xÕ ð!%ñ ™�}ð	!%ñ
 
�‰ñ!%r   c           	     óà  € V P                  V4      p\        P                  ! W@P                  ) V P                  R 7      pV P                  V P                  V P
                  V P                  ,          ,           .p\        P                  ! WERR7      w  rgpVP                  w  ršpVP                  WšV P                  R4      P                  ^ ^^^4      pVP                  WšV P                  R4      P                  ^ ^^^4      pVP                  WšV P                  R4      P                  ^ ^^^4      pVeM   V P                  WcP                  R7      pV P                  WsP                  R7      pVP                  Wx4      w  rxM"V P                  V4      pV P                  V4      p\        WgWƒV P                   VR7      pVP                  ^ ^^^4      P                  WšR4      pV P#                  V4      # ))Úa_minÚa_max©Úaxis)Úoffset)rI   r:   rH   éÿÿÿÿ)r=   rL   Úclipr/   r   r8   r9   ÚsplitÚshapeÚreshaper7   Ú	transposer@   rS   Úupdate_and_fetchr	   r:   r>   )rB   rG   rH   rI   ÚqkvÚsplitsÚqueriesÚkeysÚvaluesÚBÚLÚDÚoutputs   &&&&         r   Ú__call__ÚAttention.__call__1   s�  € ð �i‰i˜‹lˆÜ�gŠg�c§-¡- °t·}±}ÔEˆØ—,‘, §¡¨t¯}©}¸t×?WÑ?WÕ/WÕ WÐXˆÜ "§¢¨¸2Ô >Ñˆ�và—'‘'‰ˆˆað —/‘/ !¨¯©¸Ó;×EÑEÀaÈÈAÈ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Ó?ˆØ�}‰}˜VÓ$Ð$r   )
r=   r/   r   r8   r7   r9   r>   r@   r0   r:   ©NN©	r   r    r!   r"   r6   rd   r$   r%   Ú__classcell__©rC   r   s   @@r   r'   r'      s   ù‡ € ÷
ó 
÷.!%÷ !%ò !%r   r'   c                   óT   a a€ ] tR t^Ut 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# )ÚNormAttnNormc                ó    <€ V ^8„  d   QhRS[ /# r)   r+   )r   r   s   "€r   r   ÚNormAttnNorm.__annotate__V   s   ø€ ÷ $ñ $™Yñ $r   c                óà   <€ \         SV `  4        \        P                  ! VP                  R R7      V n        \        P                  ! VP                  R R7      V n        \        V4      V n        R# ©Fr1   N)	r5   r6   r;   Ú	LayerNormr   Únorm_1Únorm_2r'   ÚattnrA   s   &&€r   r6   ÚNormAttnNorm.__init__V   sE   ø€ Ü‰ÑÔÜ—l’l 4§<¡<°eÔ<ˆŒÜ—l’l 4§<¡<°eÔ<ˆŒÜ˜d“OˆŽ	r   c                óŽ   <€ V ^8„  d   QhRS[ P                  RS[S[ P                  ,          RS[S[,          RS[ P                  /# rF   rK   )r   r   s   "€r   r   rm   \   sH   ø€ ÷ !ñ !á�8‰8ð!ñ ‘r—x‘xÕ ð!ñ ™�}ð	!ñ
 
�‰ñ!r   c                óz   € V P                  V P                  V4      W#R 7      pWA,           pWP                  V4      3# ))rH   rI   ©rs   rq   rr   )rB   rG   rH   rI   Úhs   &&&& r   rd   ÚNormAttnNorm.__call__\   s6   € ð �I‰I�d—k‘k !“n¨4ˆIÓ=ˆØ�EˆØ—+‘+˜a“.Ð Ð r   rw   rf   rg   ri   s   @@r   rk   rk   U   s   ù‡ € ÷$ó $÷!÷ !ò !r   rk   c                   óP   a a€ ] tR t^gt 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[ RS[ /# )r   r   Úffn_dim©r   )r   r   s   "€r   r   ÚMLP.__annotate__h   s   ø€ ÷ :ñ :¡ð :©cñ :r   c                óÒ   <€ \         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# ro   )r5   r6   r;   r<   Úv1Úw1Úw2)rB   r   r}   rC   s   &&&€r   r6   ÚMLP.__init__h   sD   ø€ Ü‰ÑÔÜ—)’)˜G°5Ô9ˆŒÜ—)’)˜G°5Ô9ˆŒÜ—)’)˜G°5Ô9ˆŽr   c                óN   <€ V ^8„  d   QhRS[ P                  RS[ P                  /# ©r   rG   rJ   ©rL   rM   )r   r   s   "€r   r   r   n   s#   ø€ ÷ %ñ %™"Ÿ(™(ð %¡r§x¡xñ %r   c                ó|   € \        V P                  V4      V P                  V4      4      pV P                  V4      pV# ©N)r   r‚   r�   rƒ   )rB   rG   Úcurrent_hidden_statess   && r   rd   ÚMLP.__call__n   s5   € Ü & t§w¡w¨q£z°4·7±7¸1³:Ó >ÐØ $§¡Ð(=Ó >ÐØ$Ð$r   )r�   r‚   rƒ   rg   ri   s   @@r   r{   r{   g   s   ù‡ € ÷:ó :÷%÷ %ð %r   r{   c                   óP   a a€ ] tR t^tt oV3R lV 3R lltV3R lR ltRtVtV ;t# )ÚRouterc                ó&   <€ V ^8„  d   QhRS[ RS[ /# )r   r   Únum_expertsr~   )r   r   s   "€r   r   ÚRouter.__annotate__u   s   ø€ ÷ Añ A¡ð A±#ñ Ar   c                ó^   <€ \         SV `  4        \        P                  ! WR R7      V n        R# ro   )r5   r6   r;   r<   Úlayer)rB   r   r�   rC   s   &&&€r   r6   ÚRouter.__init__u   s    ø€ Ü‰ÑÔÜ—Y’Y˜w¸%Ô@ˆŽ
r   c                ó4   <€ V ^8„  d   QhRS[ P                  /# )r   rG   r‡   )r   r   s   "€r   r   r�   y   s   ø€ ÷ ñ ™"Ÿ(™(ñ r   c                ó$   € V P                  V4      # r‰   ©r’   )rB   rG   s   &&r   rd   ÚRouter.__call__y   s   € Ø�z‰z˜!‹}Ðr   r–   rg   ri   s   @@r   r�   r�   t   s    ù‡ € ÷Aó A÷÷ ð 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# )ÚSparseMoeBlockc                ó    <€ V ^8„  d   QhRS[ /# r)   r+   )r   r   s   "€r   r   ÚSparseMoeBlock.__annotate__~   s   ø€ ÷ 

ñ 

™Yñ 

r   c                óº  <€ \         SV `  4        VP                  V n        VP                  R ,          V n        VP                  R,          V n        VP                  R,          V n        \        V P                  V P
                  4      V n        \        V P
                  4       Uu. uF#  p\        V P                  V P                  4      NK%  	  upV n        R# u upi )Úffn_hidden_sizeÚmoe_num_expertsÚ	moe_top_kN)r5   r6   r   r   r}   r�   Únum_experts_per_tokr�   ÚrouterÚranger{   Úexperts©rB   r*   Ú_rC   s   && €r   r6   ÚSparseMoeBlock.__init__~   s    ø€ Ü‰ÑÔØ—|‘|ˆŒØ—‘Ð'8Õ9ˆŒØŸ?™?Ð+<Õ=ˆÔØ#'§?¡?°;Õ#?ˆÔ ä˜TŸ\™\¨4×+;Ñ+;Ó<ˆŒä5:¸4×;KÑ;KÔ5Ló
Ù5L°ŒC�—‘˜dŸl™lÖ+Ñ5Lñ
ˆŽùò 
s   Â%)Cc                óN   <€ V ^8„  d   QhRS[ P                  RS[ P                  /# r†   r‡   )r   r   s   "€r   r   r›   Š   s#   ø€ ÷ %ñ %™"Ÿ(™(ð %¡r§x¡xñ %r   c           	     ó¸  € V P                   pVP                  pVP                  RVP                  R,          4      pV P                  V4      p\        P
                  ! VP                  \        P                  4      RR7      p\        P                  ! \        P                  ! V) V^,
          RR7      RRV13,          4      p\        P                  ! WERR7      pV\        P                  P                  V^RRR7      ,          pVP                  VP                  4      pV P                  '       dñ   \        P                   ! V4      p\        P"                  ! VP                  ^ ,          W!P                  R,          3VP                  4      p\%        V P&                  4       F\  w  r‰\)        \        P                   \        P*                  ! WX8H  4      4      w  r«V
P,                  ^ 8X  d   KJ  V	! W,          4      WzV3&   K^  	  WvR,          ,          P/                  ^R7      pM¥. p\1        WVP3                  4       4       Fm  w  rÍp\        P4                  ! V Uu. uF  q€P&                  V,          ! V4      NK  	  upRR7      pWý,          P/                  RR7      pVP7                  V4       Ko  	  \        P4                  ! V^ R7      pVP                  V4      # u upi )	é   rQ   )ÚkthrR   ºNNNNT)ÚordrR   ÚkeepdimsrT   )r«   r«   N)r    rW   rX   r¡   rL   ÚsoftmaxÚastypeÚfloat32Ústop_gradientÚargpartitionÚtake_along_axisÚlinalgÚnormÚdtypeÚtrainingÚnprM   ÚzerosÚ	enumerater£   ÚmapÚwhereÚsizeÚsumÚzipÚtolistÚstackÚappend)rB   rG   ÚneÚ
orig_shapeÚgatesÚindsÚscoresÚyÚeÚexpertÚidx1Úidx2ÚxtÚstÚitÚyts   &&              r   rd   ÚSparseMoeBlock.__call__Š   s	  € Ø×%Ñ%ˆØ—W‘Wˆ
Ø�I‰I�b˜!Ÿ'™' "�+Ó&ˆà—‘˜A“ˆÜ—
’
˜5Ÿ<™<¬¯
©
Ó3¸"Ô=ˆä×Ò¤§¢°°¸BÀ½FÈÔ LÈQÐPSÐQSÐPSÈVÕ TÓUˆÜ×#Ò# E°bÔ9ˆØœ"Ÿ)™)Ÿ.™.¨°Q¸RÈ$˜.ÓOÕOˆØ—‘˜qŸw™wÓ'ˆà�=�=ˆ=Ü—8’8˜D“>ˆDÜ—’˜!Ÿ'™' !�* b¯'©'°"­+Ð6¸¿¹Ó@ˆAÜ& t§|¡|Ö4‘	�Ü ¤§¡¬2¯8ª8°D±IÓ+>Ó?‘
�Ø—9‘9 ”>ÙÙ & q¥w£�˜�*“ñ	 5ð ˜JÕ'Õ'×,Ñ,°!Ð,Ó4‰AàˆAÜ! !¨T¯[©[«]Ö;‘
�˜Ü—X’X¹BÓ?¹B°qŸ|™|¨Až¨rÖ2¹BÑ?ÀbÔI�Ø•g—]‘]¨�]Ó+�Ø—‘˜–ñ <ô —’˜ Ô#ˆAà�y‰y˜Ó$Ð$ùò @s   É!K
)r   r£   r}   r�   r    r¡   rg   ri   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# )ÚDecoderLayerc                ó    <€ V ^8„  d   QhRS[ /# r)   r+   )r   r   s   "€r   r   ÚDecoderLayer.__annotate__­   s   ø€ ÷ 1ñ 1™Yñ 1r   c                ód   <€ \         SV `  4        \        V4      V n        \	        V4      V n        R # r‰   )r5   r6   r™   Úffnrk   Únorm_attn_normrA   s   &&€r   r6   ÚDecoderLayer.__init__­   s'   ø€ Ü‰ÑÔÜ! $Ó'ˆŒÜ*¨4Ó0ˆÖr   c                óŽ   <€ V ^8„  d   QhRS[ P                  RS[S[ P                  ,          RS[S[,          RS[ P                  /# rF   rK   )r   r   s   "€r   r   rÕ   ²   sH   ø€ ÷ ñ á�8‰8ðñ ‘r—x‘xÕ ðñ ™�}ð	ñ
 
�‰ñr   c                ó^   € V P                  WV4      w  rEV P                  V4      V,           pV# r‰   )rØ   r×   )rB   rG   rH   rI   Úrrx   Úouts   &&&&   r   rd   ÚDecoderLayer.__call__²   s.   € ð ×"Ñ" 1¨EÓ2‰ˆØ�h‰h�q‹k˜A�oˆØˆ
r   )r×   rØ   rf   rg   ri   s   @@r   rÓ   rÓ   ¬   s   ù‡ € ÷1ó 1÷
÷ ò 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# )ÚDBRXc                ó    <€ V ^8„  d   QhRS[ /# r)   r+   )r   r   s   "€r   r   ÚDBRX.__annotate__¾   s   ø€ ÷ =ñ =™Yñ =r   c                óf  <€ \         SV `  4        VP                  V 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
                  RR7      V n        R# u upi ))r*   Fr1   N)r5   r6   r   r;   Ú	Embeddingr   Úwter¢   r   rÓ   Úblocksrp   Únorm_fr¤   s   && €r   r6   ÚDBRX.__init__¾   su   ø€ Ü‰ÑÔØŸ/™/ˆŒÜ—<’< §¡°·±Ó>ˆŒÜ8=¸d¿m¹mÔ8LÓMÑ8L°1”|¨×.Ñ8LÑMˆŒÜ—l’l 4§<¡<°eÔ<ˆŽùò N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      pVf   R .\        V P                  4      ,          p\        W2^ ,          4      p\	        V P                  V4       F  w  rVV! W4V4      pK  	  V P                  V4      # r‰   )rå   Úlenræ   r   r¿   rç   )rB   rë   rI   rx   rH   r’   Úcs   &&&    r   rd   ÚDBRX.__call__Å   sm   € ð
 �H‰H�VÓˆàŠ=Ø�FœS §¡Ó-Õ-ˆEä$ Q¨a­Ó1ˆä˜DŸK™K¨Ö/‰HˆEÙ�a˜qÓ!ŠAñ 0ð �{‰{˜1‹~Ðr   )ræ   rç   r   rå   r‰   rg   ri   s   @@r   rà   rà   ½   s   ù‡ € ÷=ó =÷÷ ò 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 4       tR 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   ø€ ÷ ñ ™Yñ r   c                óÖ   <€ \         SV `  4        VP                  V n        \        V4      V n        \
        P                  ! VP                  VP                  R R7      V n	        Wn
        R# ro   )r5   r6   r   rà   Útransformerr;   r<   r   r   Úlm_headr*   rA   s   &&€r   r6   ÚModel.__init__Ø   sF   ø€ Ü‰ÑÔØŸ/™/ˆŒÜ ›:ˆÔÜ—y’y §¡¨t¯©ÀUÔKˆŒØŽ	r   c                ó4   <€ V ^8„  d   QhRS[ P                  /# rê   r‡   )r   r   s   "€r   r   ró   ß   s   ø€ ÷ !ñ !á—‘ñ!r   c                óF   € V P                  W4      pV P                  V4      # r‰   )rõ   rö   )rB   rë   rI   rÝ   s   &&& r   rd   ÚModel.__call__ß   s#   € ð
 ×Ñ˜vÓ-ˆØ�|‰|˜CÓ Ð r   c                ó.   € V P                   P                  # r‰   )rõ   ræ   )rB   s   &r   ÚlayersÚModel.layersç   s   € à×Ñ×&Ñ&Ð&r   c           
     ój  € V P                   P                  R ,          pV P                   P                  R,          pRpVP                  4        UUu/ uF  w  rVWE9  g   K  WVbK  	  pppVP                  4        F¥  w  rVWE9   g   K  \        \        P
                  ! Wb^ R7      4       UU	u. uF#  w  r‰VP                  RRV 24      R,           V	3NK%  	  p
pp	VP                  R4      '       d!   V
 UU	u. uF  w  r¹W¹P                  3NK  	  p
pp	VP                  V
4       K§  	  V# u uppi u up	pi u up	pi )rž   r�   zexperts.mlprQ   z.mlpÚ.z.weightrƒ   )
r*   r   Úitemsrº   rL   rV   ÚreplaceÚendswithÚTÚupdate)rB   Úweightsr�   ÚdimÚpatternÚkÚvÚnew_weightsrÉ   Úsvr£   Úss   &&          r   ÚsanitizeÚModel.sanitizeë   s  € à—i‘i×*Ñ*Ð+<Õ=ˆØ�i‰i×"Ñ"Ð#4Õ5ˆàˆØ(/¯©¬ÔL©¡ ¸7Ñ;K”t�q’t©ˆÑLØ—M‘M–O‰DˆAØŽ|ô "+¬2¯8ª8°AÈÔ+KÔ!Lôá!L™˜ð —Y‘Y˜v¨¨1¨# wÓ/°)Õ;¸RÓ@Ù!Lð ñ ð —:‘:˜d×#Ò#Ù6=Ô>±g©U¨Q §4¡4›y±g�GÑ>Ø×"Ñ" 7Ö+ñ $ð Ðùó Mùóùó
 ?s   Á
D#ÁD#Â))D)Ã1D/)r*   rö   r   rõ   r‰   )r   r    r!   r"   r6   rd   Úpropertyrü   r  r$   r%   rh   ri   s   @@r   rñ   rñ   ×   s7   ù‡ € ÷ó ÷!ò !ð ñ'ó ð'÷ò r   rñ   )Údataclassesr   Útypingr   r   Úmlx.coreÚcorerL   Úmlx.nnr;   Únumpyr¸   Úactivationsr   r4   r   r   r	   r   ÚModuler'   rk   r{   r�   r™   rÓ   rà   rñ   r   r   r   Ú<module>r     s¼   ðõ "ß  å Ý Û å ß TÑ Tð ô�ó ó ðô9%�—	‘	ô 9%ôx!�2—9‘9ô !ô$
%ˆ"�)‰)ô 
%ôˆR�Y‰Yô ô,%�R—Y‘Yô ,%ô^�2—9‘9ô ô"ˆ2�9‰9ô ô4$ˆB�I‰Iö $r   