+
    TV-jD  ã                   óª   € ^ RI t ^ RIHt ^ RIHtHt ^ RIHt ^ RI	H
t
 ] ! R R4      4       tRR R lltRR	 R
 lltRR ltRR R lltRR R lltR# )é    N)Ú	dataclass)ÚAnyÚOptional)Útree_mapc                   ó0   a € ] tR t^t o ]R 4       tRtV tR# )ÚBaseModelArgsc                ó°   € T ! R/ VP                  4        UUu/ uF.  w  r#V\        P                  ! V 4      P                  9   g   K,  W#bK0  	  uppB # u uppi )N© )ÚitemsÚinspectÚ	signatureÚ
parameters)ÚclsÚparamsÚkÚvs   &&  Úc/Volumes/fast/ai/experiments/ui-tars-smoke/.venv/lib/python3.14/site-packages/mlx_lm/models/base.pyÚ	from_dictÚBaseModelArgs.from_dict   s[   € áñ 
ð #ŸL™LœNôá*‘D�AØœ×)Ò)¨#Ó.×9Ñ9Ñ9ô �’Ù*òñ
ð 	
ùós   ˜)AÁAr
   N)Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Úclassmethodr   Ú__static_attributes__Ú__classdictcell__)Ú__classdict__s   @r   r   r      s   ø‡ € àñ
ó ö
ó    r   c                ó¾   € V ^8„  d   QhR\         R\         R\        \         ,          R\        \        P                  ,          R\        \        P                  ,          /# )é   ÚNÚoffsetÚwindow_sizeÚright_paddingÚleft_padding)Úintr   ÚmxÚarray)Úformats   "r   Ú__annotate__r*      sP   € ÷ ñ Ü
ðäðô œ#•ðô œBŸH™HÕ%ð	ô
 œ2Ÿ8™8Õ$ñr   c                 óŽ  € \         P                  ! W,           4      pV'       d   \         P                  ! WV ,           4      MTpVR,          pVR,          pWe8¬  pVe   WvWR,           8  ,          pVe.   Wu\         P                  ! W,           V,
          R4      8  ,          pVe"   V\         P                  ! VR4      V8*  ,          pV# )ºNNNN©r,   N)é   r    é   )r'   ÚarangeÚexpand_dims)r!   r"   r#   r$   r%   ÚrindsÚlindsÚmasks   &&&&&   r   Úcreate_causal_maskr5      s£   € ô �IŠI�f•jÓ!€Eß-3ŒB�IŠI�f q�jÔ)¸€EØ�'�N€EØ�$�K€EØ‰>€DØÒØ˜uÕ2Ñ2Õ3ˆØÒ ØœrŸ~š~¨v­z¸]Õ.JÈIÓVÑVÕWˆØÒØ”r—~’~ l°IÓ>À%ÑGÕHˆØ€Kr   c                óF   € V ^8„  d   QhR\         \        ,          R\        /# )r    r#   Úreturn_array)r   r&   Úbool)r)   s   "r   r*   r*   -   s    € ÷ 
ñ 
Ü (¬¥ð
ÜDHñ
r   c                 óÜ   € V P                   ^,          pV'       d&   \        VR4      '       d   VP                  WCVR7      # V^8X  d   R# V'       g   V'       d   WB8”  d   \        WBR7      # R# )r.   Ú	make_mask)r7   r#   N)r#   Úcausal)ÚshapeÚhasattrr:   r5   )ÚhÚcacher#   r7   r!   s   &&&& r   Úcreate_attention_maskr@   -   sT   € ð 	
�‰��
€Aß”˜ ×,Ò,Ø�‰˜qÈˆÓUÐUØˆA„vÙßŸ¨¬Ü! !Ô=Ð=Ùr   c                 ó~   € V'       d5   \        VR 4      '       d#   VP                  V P                  ^,          4      # R# )r:   N)r=   r:   r<   )r>   r?   s   &&r   Úcreate_ssm_maskrB   :   s+   € ß”˜ ×,Ò,Ø�‰˜qŸw™w q�zÓ*Ð*Ùr   c                óš  € V ^8„  d   QhR\         P                  R\        \         P                  \         P                  \         P                  3,          R\        \         P                  \         P                  \         P                  3,          R\        R\        \         P                  ,          R\
        R\
        R\         P                  /# )	r    ÚqueriesÚq_keysÚq_valuesÚscaler4   Ú
group_sizeÚbitsÚreturn)r'   r(   ÚtupleÚfloatr   r&   )r)   s   "r   r*   r*   @   s™   € ÷ )ñ )Ü�X‰Xð)ä”"—(‘(œBŸH™H¤b§h¡hÐ.Õ/ð)ô ”B—H‘HœbŸh™h¬¯©Ð0Õ1ð)ô ð	)ô
 ”2—8‘8Õ
ð)ô ð)ô ð)ô ‡X�Xñ)r   c           	      ó†  € V P                   w  rxršV^ ,          P                   R
,          pW‹,          pW,          p V^8”  d4   \        P                  ! WW¼Wš34      p \        R V4      p\        R V4      p\        P                  ! V .VO5RRRVRV/ pVeÕ   \        V\        4      '       dX   VP                   RR w  rï\        P                  ! Wþ,
          V4      p\        P                  ! V4      pVR,          VR,          8¬  pVP                  \        P                  8X  dA   \        P                  ! WM\        P                  ! VP                  4      P                  4      pMWÔ,          p\        P                  ! VRRR7      p\        P                  ! V.VO5RR	RVRV/ pV^8”  d   \        P                  ! VWxWš34      pV# )r   c                 ó2   € \         P                  ! V RR7      # ©r/   )Úaxiséýÿÿÿ©r'   r1   ©Úxs   &r   Ú<lambda>Ú8quantized_scaled_dot_product_attention.<locals>.<lambda>Q   s   € ¤B§N¢N°1¸2Õ$>r   c                 ó2   € \         P                  ! V RR7      # rO   rR   rS   s   &r   rU   rV   R   s   € ¤b§n¢n°Q¸RÕ&@r   Ú	transposeTrH   rI   N)rP   ÚpreciseFrQ   éþÿÿÿr-   éÿÿÿÿ)r<   r'   Úreshaper   Úquantized_matmulÚ
isinstanceÚstrr0   ÚdtypeÚbool_ÚwhereÚfinfoÚminÚsoftmax)rD   rE   rF   rG   r4   rH   rI   ÚBÚ	n_q_headsÚLÚDÚ
n_kv_headsÚ	n_repeatsÚscoresÚqLÚkLÚ	q_indicesÚ	k_indicesÚouts   &&&&&&&            r   Ú&quantized_scaled_dot_product_attentionrr   @   s˜  € ð !Ÿ™Ñ€A�!Ø˜•—‘ Õ$€JØÕ'€IàÕ€Gà�1„}Ü—*’*˜W¨*ÀÐ&FÓGˆÜÑ>ÀÓGˆÜÑ@À(ÓKˆä× Ò ØðØòØ$(ðØ5?ðØFJñ€Fð ÒÜ�dœC× Ò Ø—\‘\ " #Ð&‰FˆBÜŸ	š	 "¥'¨2Ó.ˆIÜŸ	š	 "›ˆIØ˜WÕ%¨°4­Ñ8ˆDØ�:‰:œŸ™Ô!Ü—X’X˜d¬B¯HªH°V·\±\Ó,B×,FÑ,FÓG‰Fà�NˆFÜ�ZŠZ˜ R°Ô6€FÜ
×
Ò
ØðØòØ%*ðØ7AðØHLñ€Cð �1„}Ü�jŠj˜˜q¨QÐ2Ó3ˆà€Jr   c                ó°   € V ^8„  d   QhR\         R\        \        P                  ,          R\        \        P                  ,          R\        P                  /# )r    rG   r4   ÚsinksrJ   )rL   r   r'   r(   )r)   s   "r   r*   r*   l   sJ   € ÷ 
ñ 
ô
 ð
ô ”2—8‘8Õ
ð
ô ”B—H‘HÕð
ô ‡X�Xñ
r   c           
      óÚ   € \        VR 4      '       d6   Ve   \        R4      h\        V VVVVVP                  VP                  R7      # \
        P                  P                  V VVVVVR7      # )rI   z0Quantized SDPA does not support attention sinks.)rG   r4   rH   rI   )rG   r4   rt   )r=   Ú
ValueErrorrr   rH   rI   r'   ÚfastÚscaled_dot_product_attention)rD   ÚkeysÚvaluesr?   rG   r4   rt   s   &&&&&&&r   rx   rx   l   s   € ô ˆu�f×ÒØÒÜÐOÓPÐPÜ5ØØØØØØ×'Ñ'Ø—‘ô
ð 	
ô �w‰w×3Ñ3ØØØØØØð 4ó 
ð 	
r   )r   NNN)NNF)N)é@   é   )r   Údataclassesr   Útypingr   r   Úmlx.coreÚcorer'   Ú	mlx.utilsr   r   r5   r@   rB   rr   rx   r
   r   r   Ú<module>r‚      sN   ðó Ý !ß  å Ý ð ÷	
ð 	
ó ð	
÷÷*
ô÷)÷X
ñ 
r   