+
    TV-jÒ   ã                   ó´   € ^ RI t ^ RIHt ^ RIHt ^RIHtHt  ! R R]P                  4      t
 ! R R]P                  4      t ! R R]P                  4      tR# )	é    N)ÚQuantizedSwitchLinearÚSwitchLinearc                   ó~   a a€ ] tR t^t o]R	V3R lR ll4       tR
V3R lR lltRV3R lV 3R llltR tRt	Vt
V ;t# )Ú
LoRALinearc                óF   <€ V ^8„  d   QhRS[ P                  RS[RS[RS[/# ©é   ÚlinearÚrÚdropoutÚscale)ÚnnÚLinearÚintÚfloat)ÚformatÚ__classdict__s   "€Úb/Volumes/fast/ai/experiments/ui-tars-smoke/.venv/lib/python3.14/site-packages/mlx_lm/tuner/lora.pyÚ__annotate__ÚLoRALinear.__annotate__   s5   ø€ ÷ ñ Ù—	‘	ðáðñ ðñ ñ	ó    c                óÖ   € V P                   P                  w  rE\        V \        P                  4      '       d   V^ ,          V P
                  ,          p\        VVVVVR7      pWn        V# )é    )Ú
input_dimsÚoutput_dimsr   r   r   )ÚweightÚshapeÚ
isinstancer   ÚQuantizedLinearÚbitsr   r
   )r
   r   r   r   r   r   Úlora_lins   &&&&   r   Ú	from_baseÚLoRALinear.from_base   s`   € ð #)§-¡-×"5Ñ"5ÑˆÜ�fœb×0Ñ0×1Ò1Ø# b�¨F¯K©KÕ7ˆJÜØ!Ø#ØØØô
ˆð !ŒØˆr   c                ó    <€ V ^8„  d   QhRS[ /# ©r	   Ú
dequantize©Úbool)r   r   s   "€r   r   r   "   s   ø€ ÷ ñ ™tñ r   c           	     ó  € V P                   pR V9   pVP                  p\        V\        P                  4      pV'       dO   \
        P                  ! VVP                  VP                  VP                  VP                  VP                  R7      pVP                  w  rg\        P                  ! WvVR7      pV P                  V P                  P                   ,          V P"                  P                   ,          P%                  VP&                  4      p	WI,           Vn        V'       d   VP(                  Vn        V'       dJ   V'       gB   \        P                  P+                  VVP                  VP                  VP                  R7      pV# )Úbias©Ú
group_sizer    Úmode©r*   )r-   )r
   r   r   r   r   Úmxr&   ÚscalesÚbiasesr,   r    r-   r   r   r   Úlora_bÚTÚlora_aÚastypeÚdtyper*   Úfrom_linear)
Úselfr&   r
   r*   r   Úis_quantizedr   r   Úfused_linearÚdeltas
   &&        r   ÚfuseÚLoRALinear.fuse"   s  € Ø—‘ˆØ˜ÑˆØ—‘ˆÜ! &¬"×*<Ñ*<Ó=ˆçÜ—]’]ØØ—‘Ø—‘Ø!×,Ñ,Ø—[‘[Ø—[‘[ôˆFð #)§,¡,ÑˆÜ—y’y ¸tÔDˆà—*‘*˜tŸ{™{Ÿ}™}Õ,°·±·±Õ=×EÑEÀfÇlÁlÓSˆØ$�nˆÔßØ &§¡ˆLÔç§
Ü×-Ñ-×9Ñ9ØØ×!Ñ!Ø—‘Ø—[‘[ð	 :ó ˆLð Ðr   c                ó>   <€ V ^8„  d   QhRS[ RS[ RS[ RS[RS[RS[/# )r	   r   r   r   r   r   r*   ©r   r   r(   )r   r   s   "€r   r   r   C   sG   ø€ ÷ 7ñ 7áð7ñ ð7ñ ð	7ñ
 ð7ñ ð7ñ ñ7r   c                óh  <€ \         SV `  4        \        P                  ! WVR 7      V n        \        P
                  ! VR7      V n        WPn        ^\        P                  ! V4      ,          p\        P                  P                  V) VW3R7      V n        \        P                  ! W23R7      V n        R# ©r.   ©Úp©ÚlowÚhighr   ©r   N)ÚsuperÚ__init__r   r   r
   ÚDropoutr   r   ÚmathÚsqrtr/   ÚrandomÚuniformr4   Úzerosr2   )r8   r   r   r   r   r   r*   Ú	__class__s   &&&&&&&€r   rI   ÚLoRALinear.__init__C   s�   ø€ ô 	‰ÑÔô —i’i 
¸dÔCˆŒä—z’z GÔ,ˆŒð Œ
ð ”D—I’I˜jÓ)Õ)ˆÜ—i‘i×'Ñ'Ø�ØØ�/ð (ó 
ˆŒô
 —h’h aÐ%5Ô6ˆŽr   c                óî   € V P                  V4      pV P                  V4      V P                  ,          V P                  ,          pW P                  V,          P                  VP                  4      ,           # ©N)r
   r   r4   r2   r   r5   r6   ©r8   ÚxÚyÚzs   &&  r   Ú__call__ÚLoRALinear.__call___   sN   € Ø�K‰K˜‹NˆØ�\‰\˜!‹_˜tŸ{™{Õ*¨d¯k©kÕ9ˆØ—J‘J •N×*Ñ*¨1¯7©7Ó3Õ3Ð3r   )r   r
   r4   r2   r   ©é   ç        ç      4@©F©r[   r\   r]   F©Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ústaticmethodr"   r<   rI   rX   Ú__static_attributes__Ú__classdictcell__Ú__classcell__©rP   r   s   @@r   r   r      s;   ù‡ € Ø÷ñ ó ð÷*ò ÷B7õ 7÷84ò 4r   r   c                   ó‚   a a€ ] tR t^et o]R	V3R lR ll4       tR
V3R lR lltRV3R lV 3R llltR
R ltRt	Vt
V ;t# )ÚLoRASwitchLinearc                óF   <€ V ^8„  d   QhRS[ P                  RS[RS[RS[/# r   )r   ÚModuler   r   )r   r   s   "€r   r   ÚLoRASwitchLinear.__annotate__g   s5   ø€ ÷ ñ Ù—	‘	ðáðñ ðñ ñ	r   c           	     óp   € \        V P                  V P                  V P                  VVVR 7      pWn        V# ))r   r   Únum_expertsr   r   r   )rk   r   r   rp   r
   )r
   r   r   r   r!   s   &&&& r   r"   ÚLoRASwitchLinear.from_basef   s>   € ô $Ø×(Ñ(Ø×*Ñ*Ø×*Ñ*ØØØô
ˆð !ŒØˆr   c                ó    <€ V ^8„  d   QhRS[ /# r%   r'   )r   r   s   "€r   r   rn   x   s   ø€ ÷ ñ ™tñ r   c           	     óÈ  € V P                   pR V9   pVP                  p\        V\        4      pV'       dO   \        P
                  ! VVP                  VP                  VP                  VP                  VP                  R7      pVP                  w  rgp\        W‡WcR7      p	V P                  V P                  ,          p
V P                  P!                  VRV4      pWJV,          P#                  VP$                  4      ,           V	n        V'       d   VP&                  V	n        V'       d;   V'       g3   V	P)                  VP                  VP                  VP                  R7      p	V	# )r*   r+   r.   éÿÿÿÿ)r
   r   r   r   r/   r&   r0   r1   r,   r    r-   r   r   r   r2   r4   Úreshaper5   r6   r*   Úto_quantized)r8   r&   r
   r*   r   r9   rp   r   r   r:   r2   r4   s   &&          r   r<   ÚLoRASwitchLinear.fusex   s  € Ø—‘ˆØ˜ÑˆØ—‘ˆÜ! &Ô*?Ó@ˆçÜ—]’]ØØ—‘Ø—‘Ø!×,Ñ,Ø—[‘[Ø—[‘[ôˆFð 06¯|©|Ñ,ˆ *Ü# J¸[ÔTˆà—‘˜dŸk™kÕ)ˆØ—‘×$Ñ$ [°"°jÓAˆØ$°­×'?Ñ'?ÀÇÁÓ'MÕMˆÔßØ &§¡ˆLÔç§
Ø'×4Ñ4Ø!×,Ñ,°6·;±;ÀVÇ[Á[ð 5ó ˆLð Ðr   c                óD   <€ V ^8„  d   QhRS[ RS[ RS[ RS[ RS[RS[RS[/# )r	   r   r   rp   r   r   r   r*   r?   )r   r   s   "€r   r   rn   —   sQ   ø€ ÷ 'ñ 'áð'ñ ð'ñ ð	'ñ
 ð'ñ ð'ñ ð'ñ ñ'r   c                ób  <€ \         SV `  4        \        WW7R 7      V n        \        P
                  ! VR7      V n        W`n        ^\        P                  ! V4      ,          p\        P                  P                  V) VW4V3R7      V n        \        P                  ! W2V3R7      V n        W0n        R# rA   )rH   rI   r   r
   r   rJ   r   r   rK   rL   r/   rM   rN   r4   rO   r2   rp   )	r8   r   r   rp   r   r   r   r*   rP   s	   &&&&&&&&€r   rI   ÚLoRASwitchLinear.__init__—   s”   ø€ ô 	‰ÑÔô # :¸KÔSˆŒä—z’z GÔ,ˆŒð Œ
ð ”D—I’I˜jÓ)Õ)ˆÜ—i‘i×'Ñ'Ø�ØØ :Ð.ð (ó 
ˆŒô
 —h’h kÀÐ%BÔCˆŒØ&Ör   c                óz  € V P                  WVR 7      p\        P                  ! V P                  V4      V P                  P                  RR4      VVR7      p\        P                  ! VV P                  P                  RR4      VVR7      pW@P                  V,          P                  VP                  4      ,           # ))Úsorted_indices)Úrhs_indicesr|   rt   éþÿÿÿ)
r
   r/   Ú	gather_mmr   r4   Úswapaxesr2   r   r5   r6   )r8   rU   Úindicesr|   rV   rW   s   &&&&  r   rX   ÚLoRASwitchLinear.__call__µ   s–   € Ø�K‰K˜°>ˆKÓBˆÜ�LŠLØ�L‰L˜‹OØ�K‰K× Ñ   RÓ(ØØ)ô	
ˆô �LŠLØØ�K‰K× Ñ   RÓ(ØØ)ô	
ˆð —J‘J •N×*Ñ*¨1¯7©7Ó3Õ3Ð3r   )r   r
   r4   r2   rp   r   rZ   r^   r_   r`   ri   s   @@r   rk   rk   e   s:   ù‡ € Ø÷ñ ó ð÷"ò ÷>'õ '÷<4ô 4r   rk   c                   ó„   a a€ ] tR t^Æt o]R
V3R lR ll4       tRV3R lR lltR
V3R lV 3R llltR tR t	R	t
VtV ;t# )ÚLoRAEmbeddingc                óF   <€ V ^8„  d   QhRS[ P                  RS[RS[RS[/# )r	   Ú	embeddingr   r   r   )r   Ú	Embeddingr   r   )r   r   s   "€r   r   ÚLoRAEmbedding.__annotate__È   s5   ø€ ÷ ñ Ù—<‘<ðáðñ ðñ ñ	r   c                óÖ   € V P                   P                  w  rE\        V \        P                  4      '       d   V^ ,          V P
                  ,          p\        VVVVVR7      pWn        V# )r   )Únum_embeddingsÚdimsr   r   r   )r   r   r   r   ÚQuantizedEmbeddingr    r„   r†   )r†   r   r   r   rŠ   r‹   Úlora_embeddings   &&&&   r   r"   ÚLoRAEmbedding.from_baseÇ   sd   € ð  )×/Ñ/×5Ñ5ÑˆÜ�i¤×!6Ñ!6×7Ò7Ø˜"•9 	§¡Õ.ˆDÜ&Ø)ØØØØô
ˆð $-Ô ØÐr   c                ó    <€ V ^8„  d   QhRS[ /# r%   r'   )r   r   s   "€r   r   rˆ   Û   s   ø€ ÷ ñ ™tñ r   c           	     ó¬  € V P                   pVP                  p\        V\        P                  4      pV'       dO   \
        P                  ! VVP                  VP                  VP                  VP                  VP                  R 7      pVP                  w  rV\        P                  ! WV4      pV P                  V P                  ,          pV P                   p	W8V	,          P#                  VP$                  4      ,           Vn        V'       dJ   V'       gB   \        P                  P'                  VVP                  VP                  VP                  R 7      pV# )r+   )r†   r   r   r   rŒ   r/   r&   r0   r1   r,   r    r-   r   r‡   r   r4   r2   r5   r6   Úfrom_embedding)
r8   r&   r†   r   r9   rŠ   r‹   Úfused_embeddingr4   r2   s
   &&        r   r<   ÚLoRAEmbedding.fuseÛ   sý   € Ø—N‘Nˆ	Ø×!Ñ!ˆÜ! )¬R×-BÑ-BÓCˆçÜ—]’]ØØ× Ñ Ø× Ñ Ø$×/Ñ/Ø—^‘^Ø—^‘^ôˆFð  &Ÿ|™|ÑˆÜŸ,š, ~Ó<ˆà—‘˜dŸk™kÕ)ˆØ—‘ˆØ!'°F­?×*BÑ*BÀ6Ç<Á<Ó*PÕ!PˆÔç§
Ü ×3Ñ3×BÑBØØ$×/Ñ/Ø—^‘^Ø—^‘^ð	 Có ˆOð Ðr   c          
      ó8   <€ V ^8„  d   QhRS[ RS[ RS[ RS[RS[/# )r	   rŠ   r‹   r   r   r   )r   r   )r   r   s   "€r   r   rˆ   ú   s=   ø€ ÷ 0ñ 0áð0ñ ð0ñ ð	0ñ
 ð0ñ ñ0r   c                ód  <€ \         SV `  4        \        P                  ! W4      V n        \        P
                  ! VR 7      V n        WPn        ^\        P                  ! V4      ,          p\        P                  P                  V) VW3R7      V n        \        P                  ! W23R7      V n        R# )rB   rD   rG   N)rH   rI   r   r‡   r†   rJ   r   r   rK   rL   r/   rM   rN   r4   rO   r2   )r8   rŠ   r‹   r   r   r   rP   s   &&&&&&€r   rI   ÚLoRAEmbedding.__init__ú   s‹   ø€ ô 	‰ÑÔô Ÿš nÓ;ˆŒÜ—z’z GÔ,ˆŒð Œ
ð ”D—I’I˜nÓ-Õ-ˆÜ—i‘i×'Ñ'Ø�ØØ!Ð%ð (ó 
ˆŒô
 —h’h a YÔ/ˆŽr   c                óò   € V P                  V4      pV P                  V P                  V,          V P                  ,          4      pW P                  V,          P                  VP                  4      ,           pV# rS   )r†   r   r4   r2   r   r5   r6   )r8   rU   rV   rW   Úouts   &&   r   rX   ÚLoRAEmbedding.__call__  sS   € Ø�N‰N˜1ÓˆØ�L‰L˜Ÿ™ Q�¨$¯+©+Õ5Ó6ˆØ—:‘: •>×)Ñ)¨!¯'©'Ó2Õ2ˆØˆ
r   c                ó*  € V P                   P                  V4      pV P                  V4      V P                  P                  ,          V P
                  P                  ,          pW P                  V,          P                  VP                  4      ,           # rS   )	r†   Ú	as_linearr   r2   r3   r4   r   r5   r6   rT   s   &&  r   r›   ÚLoRAEmbedding.as_linear  s]   € Ø�N‰N×$Ñ$ QÓ'ˆØ�\‰\˜!‹_˜tŸ{™{Ÿ}™}Õ,°·±·±Õ=ˆØ—J‘J •N×*Ñ*¨1¯7©7Ó3Õ3Ð3r   )r   r†   r4   r2   r   rZ   r^   )ra   rb   rc   rd   re   r"   r<   rI   rX   r›   rf   rg   rh   ri   s   @@r   r„   r„   Æ   s?   ù‡ € Ø÷ñ ó ð÷&ò ÷>0õ 0ò4÷4ò 4r   r„   )rK   Úmlx.coreÚcorer/   Úmlx.nnr   Úmodels.switch_layersr   r   rm   r   rk   r„   © r   r   Ú<module>r¢      sK   ðó å Ý ç FôW4�—‘ô W4ôt^4�r—y‘yô ^4ôBW4�B—I‘Iö W4r   