ó
    >:jv:  ã                   ód  • S SK r S SKJrJr  S SKrS SKrS SKrS SKJr  S SKJ	r	  S SK
Jr  S SKJr  SSKJr  \R                   R#                  \R$                  5      \R                   R#                  S	5      :¼  a  S S
KJr  OS S
KJr   " S S\	5      r " S S\R.                  \5      r " S S5      rg)é    N)ÚAnyÚOptional)Únn)Ú	LoraLayer)Úcheck_adapters_to_merge)Ú	transposeé   )ÚAdaLoraConfigz4.33.0)Údeepspeed_configc            
       ót   ^ • \ rS rSrSrSrS\R                  SS4U 4S jjrS\	S	\
S
\
S\SS4
S jrS rSrU =r$ )ÚAdaLoraLayeré$   )Úlora_AÚlora_BÚlora_EÚlora_embedding_AÚlora_embedding_B)ÚrÚ
lora_alphaÚscalingÚlora_dropoutÚranknumÚ
base_layerÚreturnNc                 óü   >• [         TU ]  U5        [        R                  " 0 5      U l        [        R                  " 0 5      U l        [        R                  " 0 5      U l        [        R                  " 0 5      U l        g ©N)ÚsuperÚ__init__r   ÚParameterDictr   r   r   r   )Úselfr   Ú	__class__s     €ÚV/home/mande/repo/quber/.venv/lib/python3.13/site-packages/peft/tuners/adalora/layer.pyr   ÚAdaLoraLayer.__init__+   sX   ø€ Ü‰Ñ˜Ô$Ü×&Ò& rÓ*ˆŒÜ×&Ò& rÓ*ˆŒÜ×&Ò& rÓ*ˆŒÜ×'Ò'¨Ó+ˆ�ó    Úadapter_namer   r   Úconfigc                 óZ  • UR                   nUR                  nUR                  nUS:  a  [        SU 35      eX R                  U'   X0R
                  U'   US:”  a  [        R                  " US9n	O[        R                  " 5       n	X�R                   U'   [        R                  " [        R                  " X R                  5      5      U R                  U'   [        R                  " [        R                  " US5      5      U R                  U'   [        R                  " [        R                  " U R                  U5      5      U R                   U'   [        R                  " [        R                  " S5      SS9U R"                  U'   U R"                  U   R$                  R'                  [)        U5      5        SU R"                  U   l        US:”  a  UO
[)        U5      U R,                  U'   U(       a  U R/                  U5        U R1                  U5        U R3                  U R4                  US9  g )	Nr   z?`r` should be a positive integer or 0, but the value passed is ç        )Úpr	   F)Úrequires_grad)Úinference_mode)r   Úinit_lora_weightsr+   Ú
ValueErrorr   r   r   ÚDropoutÚIdentityÚ	ParameterÚtorchÚrandnÚin_featuresr   r   Úout_featuresr   r   ÚdataÚfill_Úfloatr*   r   Úreset_lora_parametersÚ%_move_adapter_to_device_of_base_layerÚset_adapterÚactive_adapters)
r    r%   r   r   r&   Úkwargsr   r,   r+   Úlora_dropout_layers
             r"   Úupdate_layerÚAdaLoraLayer.update_layer2   s¢  € Ø×*Ñ*ˆØ"×4Ñ4ÐØ×.Ñ.ˆØˆq‹5äÐ^Ð_`Ð^aÐbÓcÐcà �‰ˆ|ÑØ(2�‰˜Ñ%Ø˜#ÓÜ!#§¢¨lÑ!;Ñä!#§¢£Ðà*<×Ñ˜,Ñ'ô %'§L¢L´·²¸Q×@PÑ@PÓ1QÓ$Rˆ�‰�LÑ!ä$&§L¢L´·²¸QÀÓ1BÓ$Cˆ�‰�LÑ!ä$&§L¢L´·²¸T×=NÑ=NÐPQÓ1RÓ$Sˆ�‰�LÑ!ä%'§\¢\´%·+²+¸a³.ÐPUÑ%Vˆ�‰�\Ñ"Ø�‰�\Ñ"×'Ñ'×-Ñ-¬e°A«hÔ7Ø38ˆ�‰�\Ñ"Ô0Ø3=À³>¡ZÄuÈQÃxˆ�‰�\Ñ"ÞØ×&Ñ& |Ô4à×2Ñ2°<Ô@Ø×Ñ˜×-Ñ-¸nÐÒMr$   c                 óH  • XR                   R                  5       ;   a…  [        R                  R	                  U R
                  U   5        [        R                  R                  U R                   U   SSS9  [        R                  R                  U R                  U   SSS9  g g )Nr(   g{®Gáz”?)ÚmeanÚstd)r   Úkeysr   ÚinitÚzeros_r   Únormal_r   )r    r%   s     r"   r8   Ú"AdaLoraLayer.reset_lora_parametersT   sq   € ØŸ;™;×+Ñ+Ó-Ó-Ü�G‰G�N‰N˜4Ÿ;™; |Ñ4Ô5Ü�G‰G�O‰O˜DŸK™K¨Ñ5¸CÀTˆOÑJÜ�G‰G�O‰O˜DŸK™K¨Ñ5¸CÀTˆOÒJð .r$   )r   r   r   r   )Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Úadapter_layer_namesÚother_param_namesr   ÚModuler   ÚstrÚintr
   r>   r8   Ú__static_attributes__Ú__classcell__©r!   s   @r"   r   r   $   se   ø† ð aÐàQÐð, 2§9¡9ð ,°÷ ,ð N¨ð  N°ð  NÀ#ð  NÈ}ð  NÐkoô  N÷DKð Kr$   r   c                   ó  ^ • \ rS rSr  SS\R
                  S\S\S\S\SS4U 4S	 jjjr	SS
\
S\\\      SS4S jjrSS jrS\R                   4S jrS\R                   S\S\S\R                   4S jrS\4U 4S jjrSrU =r$ )Ú	SVDLinearé[   r   r%   r&   r   r   r   Nc                 óØ   >• [         TU ]  5         [        R                  X5        SU R                  5       R                  l        UR                  U l        X l        U R                  X$XSS9  g )NF)r&   )	r   r   r   Úget_base_layerÚweightr*   Úfan_in_fan_outÚ_active_adapterr>   )r    r   r%   r&   r   r   r<   r!   s          €r"   r   ÚSVDLinear.__init__]   s\   ø€ ô 	‰ÑÔÜ×Ñ˜dÔ/à5:ˆ×ÑÓ×$Ñ$Ô2à$×3Ñ3ˆÔØ+ÔØ×Ñ˜,¨:ÐÒEr$   Ú
safe_mergeÚadapter_namesc                 ó>  • [        X5      nU(       d  gU GH  nU R                  5       nX0R                  R                  5       ;   d  M3  U(       a€  UR                  R
                  R                  5       nXPR                  U5      -  n[        R                  " U5      R                  5       (       d  [        SU S35      eXTR                  l        O.UR                  =R
                  U R                  U5      -  sl        U R                  R                  U5        GM     g)a  
Merge the active adapter weights into the base weights

Args:
    safe_merge (`bool`, *optional*):
        If True, the merge operation will be performed in a copy of the original weights and check for NaNs
        before merging the weights. This is useful if you want to check if the merge operation will produce
        NaNs. Defaults to `False`.
    adapter_names (`List[str]`, *optional*):
        The list of adapter names that should be merged. If None, all active adapters will be merged. Defaults
        to `None`.
Nz1NaNs detected in the merged weights. The adapter z seems to be broken)r   rX   r   rC   rY   r5   ÚcloneÚget_delta_weightr1   ÚisfiniteÚallr-   Úmerged_adaptersÚappend)r    r]   r^   Úactive_adapterr   Úorig_weightss         r"   ÚmergeÚSVDLinear.mergeo   sé   € ô 0°ÓDˆÞàä+ˆNØ×,Ñ,Ó.ˆJØ§¡×!1Ñ!1Ó!3Õ3Þð $.×#4Ñ#4×#9Ñ#9×#?Ñ#?Ó#A�LØ ×$9Ñ$9¸.Ó$IÑI�Lä Ÿ>š>¨,Ó7×;Ñ;×=Ñ=Ü(ØOÐP^ÐO_Ð_rÐsóð ð .:×%Ñ%Õ*à×%Ñ%×*Ò*¨d×.CÑ.CÀNÓ.SÑSÕ*Ø×$Ñ$×+Ñ+¨N×;ò# ,r$   c                 ó¤  • U R                   (       d  [        R                  " S5        g[        U R                  5      S:”  a�  U R                  R                  5       nXR                  R                  5       ;   a<  U R                  5       R                  =R                  U R                  U5      -  sl
        [        U R                  5      S:”  a  MŽ  gg)zG
This method unmerges all merged adapter layers from the base weights.
z Already unmerged. Nothing to do.Nr   )ÚmergedÚwarningsÚwarnÚlenrd   Úpopr   rC   rX   rY   r5   ra   )r    rf   s     r"   ÚunmergeÚSVDLinear.unmerge”   s•   € ð �{�{Ü�MŠMÐ<Ô=ØÜ�$×&Ñ&Ó'¨!Ó+Ø!×1Ñ1×5Ñ5Ó7ˆNØ§¡×!1Ñ!1Ó!3Ó3Ø×#Ñ#Ó%×,Ñ,×1Ò1°T×5JÑ5JÈ>Ó5ZÑZÕ1ô �$×&Ñ&Ó'¨!×+r$   c                 óÎ   • [        U R                  U   U R                  U   U R                  U   -  -  U R                  5      U R
                  U   -  U R                  U   S-   -  $ ©Ngñhãˆµøä>)r   r   r   r   rZ   r   r   )r    Úadapters     r"   ra   ÚSVDLinear.get_delta_weight    se   € ä�d—k‘k 'Ñ*¨d¯k©k¸'Ñ.BÀTÇ[Á[ÐQXÑEYÑ.YÑZÐ\`×\oÑ\oÓpØ�l‰l˜7Ñ#ñ$à�|‰|˜GÑ$ tÑ+ñ-ð	
r$   ÚxÚargsr<   c                 óÄ  • U R                   (       a9  U R                  (       a  U R                  5         U R                  " U/UQ70 UD6nU$ U R                  (       a  U R                  " U/UQ70 UD6nU$ U R                  " U/UQ70 UD6nU R                   HÆ  nXPR
                  R                  5       ;  a  M"  U R
                  U   nU R                  U   nU R                  U   nU R                  U   n	U R                  U   n
U R                  U   S-   nU R                  XR                  5      nXI" U5      Xh-  R                  -  UR                  -  U
-  U-  -  nMÈ     U$ rs   )Údisable_adaptersrk   rp   r   r;   r   rC   r   r   r   r   r   Ú_cast_input_dtypeÚdtypeÚT)r    rv   rw   r<   Úresultrf   r   r   r   Údropoutr   r   s               r"   ÚforwardÚSVDLinear.forward§   sG  € Ø× × Ø�{�{Ø—‘”Ø—_’_ QÐ8¨Ò8°Ñ8ˆFð$ ˆð# �[�[Ø—_’_ QÐ8¨Ò8°Ñ8ˆFð  ˆð —_’_ QÐ8¨Ò8°Ñ8ˆFØ"&×"6Ô"6�Ø!¯©×)9Ñ)9Ó);Ó;ÙØŸ™ ^Ñ4�ØŸ™ ^Ñ4�ØŸ™ ^Ñ4�Ø×+Ñ+¨NÑ;�ØŸ,™, ~Ñ6�ØŸ,™, ~Ñ6¸Ñ=�à×*Ñ*¨1¯l©lÓ;�Ø˜7 1›:¨©×(;Ñ(;Ñ;¸f¿h¹hÑFÈ'ÑQÐT[Ñ[Ñ[’ñ #7ð ˆr$   c                 ó*   >• [         TU ]  5       nSU-   $ )Nzadalora.)r   Ú__repr__)r    Úrepr!   s     €r"   r‚   ÚSVDLinear.__repr__¿   s   ø€ Ü‰gÑÓ ˆØ˜CÑÐr$   )r[   rZ   )r   r	   )FN)r   N)rH   rI   rJ   rK   r   rN   rO   r
   rP   r   Úboolr   Úlistrh   rp   r1   ÚTensorra   r   r   r‚   rQ   rR   rS   s   @r"   rU   rU   [   sÐ   ø† ð ØñFà—I‘IðFð ðFð ð	Fð
 ðFð ðFð 
÷Fð Fñ$#< ð #<¸XÀdÈ3ÁiÑ=Pð #<Ð\`õ #<ôJ
[ð
¨5¯<©<ô 
ð˜Ÿ™ð ¨cð ¸Sð ÀUÇ\Á\ô ð0 ˜#÷  õ  r$   rU   c                   óf   • \ rS rSrSrS rS rS rS rS\	4S jr
S	 rS
 rS rS rSS jrS rSrg)ÚRankAllocatoréÄ   zÕ
The RankAllocator for AdaLoraModel. Paper: https://openreview.net/pdf?id=lq62uWRJjiY

Args:
    config ([`AdaLoraConfig`]): The configuration of the AdaLora model.
    model: the model that we apply AdaLoRA to.

c                 ó*  • X l         X0l        UR                  U l        UR                  U l        U R                  S:”  a  U R                  S:  d   eU R                  S:”  a  U R                  S:  d   eU R	                  5         U R                  U5        g )Nr   r	   )Úpeft_configr%   Úbeta1Úbeta2Ú	reset_iptÚ_set_budget_scheduler)r    ÚmodelrŒ   r%   s       r"   r   ÚRankAllocator.__init__Î   sv   € Ø&ÔØ(ÔØ ×&Ñ&ˆŒ
Ø ×&Ñ&ˆŒ
Ø�z‰z˜A‹~ $§*¡*¨q£.Ð0Ð0Ø�z‰z˜A‹~ $§*¡*¨q£.Ð0Ð0à�‰ÔØ×"Ñ" 5Õ)r$   c                 ó$   • XR                   l        g r   )rŒ   Ú
total_step)r    r”   s     r"   Úset_total_stepÚRankAllocator.set_total_stepÙ   s   € Ø&0×ÑÕ#r$   c                 ó.   • 0 U l         0 U l        0 U l        g r   )ÚiptÚexp_avg_iptÚexp_avg_unc)r    s    r"   r�   ÚRankAllocator.reset_iptÜ   s   € ØˆŒØˆÔØˆÕr$   c                 óÀ  • SU l         [        5       U l        UR                  5        Hi  u  p#SU R                   3U;   d  M  U =R                   UR                  S5      -  sl         U R                  R                  UR                  SS5      5        Mk     [        U R                  5      U l        U R                  R                  [        U R                  5      -  U l        g )Nr   úlora_A.r   ú%s)Úinit_bgtÚsetÚname_setÚnamed_parametersr%   ÚsizeÚaddÚreplaceÚsortedrŒ   Útarget_rrn   Ú
target_bgt)r    r‘   Únr)   s       r"   r�   Ú#RankAllocator._set_budget_schedulerá   s£   € ØˆŒÜ›ˆŒØ×*Ñ*Ö,‰DˆAØ˜×*Ñ*Ð+Ð,°Õ1Ø—’ §¡¨£Ñ*•Ø—‘×!Ñ! !§)¡)¨H°dÓ";Ö<ñ -ô ˜tŸ}™}Ó-ˆŒà×*Ñ*×3Ñ3´c¸$¿-¹-Ó6HÑHˆ�r$   Ústepc                 ó²  • U R                   R                  nU R                   R                  nU R                   R                  nX::  a  U R                  nSnXV4$ XU-
  :”  a  U R
                  nSnXV4$ SX-
  XC-
  U-
  -  -
  n[        U R                  U R
                  -
  US-  -  U R
                  -   5      nXR                   R                  -  S:X  a  SOSnXV4$ )NFTr	   é   r   )rŒ   ÚtinitÚtfinalr”   rŸ   r¨   rP   ÚdeltaT)r    r«   r®   r¯   r”   ÚbudgetÚmask_indÚ	mul_coeffs           r"   Úbudget_scheduleÚRankAllocator.budget_scheduleì   sã   € Ø× Ñ ×&Ñ&ˆØ×!Ñ!×(Ñ(ˆØ×%Ñ%×0Ñ0ˆ
à‹=Ø—]‘]ˆFØˆHð ÐÐð  Ñ'Ó'Ø—_‘_ˆFØˆHð ÐÐð ˜T™\¨jÑ.AÀEÑ.IÑJÑJˆIÜ˜$Ÿ-™-¨$¯/©/Ñ9¸iÈ¹lÑKÈdÏoÉoÑ]Ó^ˆFØ#×&6Ñ&6×&=Ñ&=Ñ=ÀÓB‘tÈˆHØÐÐr$   c                 ó>  • UR                  5        GHõ  u  p#SU;   d  M  U R                  U;   d  M   X R                  ;  ai  [        R                  " U5      U R                  U'   [        R                  " U5      U R
                  U'   [        R                  " U5      U R                  U'   [        R                  " 5          [        5       bM  SS K	nUR                  R                  U5      nX5-  R                  5       R                  5       U R                  U'   O7X3R                  -  R                  5       R                  5       U R                  U'   U R                  U R
                  U   -  SU R                  -
  U R                  U   -  -   U R
                  U'   U R                   U R                  U   -  SU R                   -
  U R                  U   U R
                  U   -
  R                  5       -  -   U R                  U'   S S S 5        GMø     g ! , (       d  f       GM  = f)NÚlora_r   r	   )r¢   r%   r˜   r1   Ú
zeros_liker™   rš   Úno_gradr   Ú	deepspeedÚutilsÚsafe_get_full_gradÚabsÚdetachÚgradr�   rŽ   )r    r‘   r©   r)   rº   r¿   s         r"   Ú
update_iptÚRankAllocator.update_iptÿ   s¤  € à×*Ñ*×,‰DˆAØ˜!�| × 1Ñ 1°QÕ 6ØŸH™HÓ$Ü"'×"2Ò"2°1Ó"5�D—H‘H˜Q‘KÜ*/×*:Ò*:¸1Ó*=�D×$Ñ$ QÑ'Ü*/×*:Ò*:¸1Ó*=�D×$Ñ$ QÑ'Ü—]’]•_Ü'Ó)Ñ5Û(à(Ÿ™×AÑAÀ!ÓD˜Ø'(¡x§n¡nÓ&6×&=Ñ&=Ó&?˜Ÿ™ šà'(¯6©6¡z×&6Ñ&6Ó&8×&?Ñ&?Ó&A˜Ÿ™ ™à*.¯*©*°t×7GÑ7GÈÑ7JÑ*JÈaÐRV×R\ÑR\ÉnÐ`d×`hÑ`hÐijÑ`kÑMkÑ*k�D×$Ñ$ QÑ'ð Ÿ
™
 T×%5Ñ%5°aÑ%8Ñ8¸AÀÇ
Á
¹NÈtÏxÉxÐXYÉ{Ð]a×]mÑ]mÐnoÑ]pÑOp×NuÑNuÓNwÑ;wÑwð ×$Ñ$ QÑ'÷ %’_ò -÷ %—_ús   Â>E HÈ
H	c                 ó@   • U R                   U   U R                  U   -  $ r   )r™   rš   )r    r©   s     r"   Ú_element_scoreÚRankAllocator._element_score  s#   € Ø×Ñ Ñ" T×%5Ñ%5°aÑ%8Ñ8Ð8r$   c                 ól   • UR                  SSS9nUR                  S5      UR                  S5      -   nU$ )Nr	   F©ÚdimÚkeepdiméÿÿÿÿ)ÚsumÚview)r    Úipt_EÚipt_ABÚsum_ipts       r"   Ú_combine_iptÚRankAllocator._combine_ipt  s3   € Ø—‘ ¨5�Ð1ˆØ—*‘*˜R“. 6§;¡;¨r£?Ñ2ˆØˆr$   c                 ó4  • 0 n0 n0 nUR                  5        GH&  u  pgSU R                   3U;   aW  U R                  U5      n[        R                  " USSS9n	UR                  SS5      n
X¤;  a  U	/XJ'   OXJ   R                  U	5        SU R                   3U;   ag  U R                  U5      n[        R                  " USS	S9R                  S
S5      n	UR                  SS5      n
X¤;  a  U	/XJ'   OXJ   R                  U	5        SU R                   3U;   d  Mÿ  U R                  U5      nUR                  SS5      n
XƒU
'   GM)     / nU Hh  n
X:   n[        R                  " XJ   SS9nU R                  XÍ5      nU
S-  nUR                  S
S5      X_'   UR                  UR                  S
5      5        Mj     [        R                  " [        R                  " U5      U R                  U-
  S9S   R                  5       n0 n[        R                  " 5          UR                  5        HY  u  pgSU R                   3U;   d  M  UR                  XV   U:*  S5        XV   U:*  ) R                  S
5      R                  5       UU'   M[     S S S 5        U$ ! , (       d  f       U$ = f)Nr�   r	   TrÆ   r   rž   zlora_B.r   FrÉ   r   úlora_E.r   )rÇ   )Úkr(   )r¢   r%   rÃ   r1   rA   r¥   re   rË   ÚcatrÏ   ÚkthvaluerŸ   Úitemr¹   Úmasked_fill_Útolist)r    r‘   r±   Ú	value_iptÚ
vector_iptÚtriplet_iptr©   r)   Ú	entry_iptÚcomb_iptÚname_mÚ	all_scorerÌ   rÍ   rÎ   Úname_EÚmask_thresholdÚrank_patterns                     r"   Úmask_to_budgetÚRankAllocator.mask_to_budget  s‡  € Øˆ	Øˆ
Øˆà×*Ñ*×,‰DˆAØ˜×*Ñ*Ð+Ð,°Ó1Ø ×/Ñ/°Ó2�	Ü Ÿ:š: i°QÀÑE�ØŸ™ 8¨TÓ2�ØÓ+Ø*2¨�JÒ&àÑ&×-Ñ-¨hÔ7Ø˜×*Ñ*Ð+Ð,°Ó1Ø ×/Ñ/°Ó2�	Ü Ÿ:š: i°QÀÑF×KÑKÈBÐPQÓR�ØŸ™ 8¨TÓ2�ØÓ+Ø*2¨�JÒ&àÑ&×-Ñ-¨hÔ7Ø˜×*Ñ*Ð+Ð,°Õ1Ø ×/Ñ/°Ó2�	ØŸ™ 8¨TÓ2�Ø$-˜&Ô!ñ) -ð, ˆ	ã ˆFØÑ%ˆEÜ—Y’Y˜zÑ1°qÑ9ˆFØ×'Ñ'¨Ó6ˆGØ˜hÑ&ˆFØ")§,¡,¨r°1Ó"5ˆKÑØ×Ñ˜WŸ\™\¨"Ó-Ö.ñ !ô ŸšÜ�IŠI�iÓ Ø�m‰m˜fÑ$ñ
ð ñ÷ ‰T‹Vð 	ð
 ˆä�]Š]�_Ø×.Ñ.Ö0‘�Ø˜T×.Ñ.Ð/Ð0°AÕ5Ø—N‘N ;¡>°^Ñ#CÀSÔIØ)4©¸>Ñ)IÐ'J×&PÑ&PÐQSÓ&T×&[Ñ&[Ó&]�L “Oñ 1÷ ð
 Ð÷ Œ_ð
 Ðús   È'JÈ;AJÊ
Jc                 óø   • X R                   R                  U R                   R                  -
  :  a  U R                  U5        U R	                  U5      u  pEU(       d  U(       a  U R                  X5      nXF4$ S nXF4$ r   )rŒ   r”   r¯   rÀ   r´   rã   )r    r‘   Úglobal_stepÚ
force_maskr±   r²   râ   s          r"   Úupdate_and_allocateÚ!RankAllocator.update_and_allocateR  st   € à×)Ñ)×4Ñ4°t×7GÑ7G×7NÑ7NÑNÓNØ�O‰O˜EÔ"Ø×/Ñ/°Ó<Ñˆæ–zØ×.Ñ.¨uÓ=ˆLð Ð#Ð#ð  ˆLØÐ#Ð#r$   c                 ó8  • SnU R                   [        [        UR                  5       5      5      ;  a  Sn[        R
                  " 5          UR                  5        H£  u  pESU R                    3U;   d  M  U(       d  UOUR                  SU R                    3S5      n[        R                  " X&   5      R                  S5      R                  UR                  5      nUR                  UR                  5       ) S5        M¥     S S S 5        g ! , (       d  f       g = f)NFTrÒ   Ú.Ú rÉ   r(   )r%   ÚnextÚiterrC   r1   r¹   r¢   r¥   r‡   Ú	unsqueezeÚtoÚdevicer×   r…   )r    r‘   râ   Úis_adapter_name_truncatedr©   r)   ÚkeyÚmasks           r"   Úmask_using_rank_patternÚ%RankAllocator.mask_using_rank_pattern^  sÒ   € à$)Ð!Ø×Ñ¤D¬¨l×.?Ñ.?Ó.AÓ)BÓ$CÓCØ(,Ð%ä�]Š]�_Ø×.Ñ.Ö0‘�Ø˜T×.Ñ.Ð/Ð0°AÕ5Þ#<™!À!Ç)Á)ÈaÐPT×PaÑPaÐObÐLcÐegÓBh�CÜ Ÿ<š<¨Ñ(9Ó:×DÑDÀRÓH×KÑKÈAÏHÉHÓU�DØ—N‘N D§I¡I£K <°Ö5ñ	 1÷ �_Ž_ús   Á
'DÁ5BDÄ
D)
r%   r�   rŽ   r™   rš   rŸ   r˜   r¡   rŒ   r¨   N)F)rH   rI   rJ   rK   Ú__doc__r   r•   r�   r�   rP   r´   rÀ   rÃ   rÏ   rã   rè   rõ   rQ   © r$   r"   r‰   r‰   Ä   sG   † ñò	*ò1òò
	Ið  Cô  ò&ò.9òò
2ôh
$õ6r$   r‰   )rl   Útypingr   r   Ú	packagingr1   Útransformersr   Úpeft.tuners.lorar   Úpeft.tuners.tuners_utilsr   Ú
peft.utilsr   r&   r
   ÚversionÚparseÚ__version__Útransformers.integrationsr   Útransformers.deepspeedr   rN   rU   r‰   rø   r$   r"   Ú<module>r     sŽ   ðó ß  ã Û Û Ý å &Ý <Ý  å !ð ×Ñ×Ñ˜<×3Ñ3Ó4¸	×8IÑ8I×8OÑ8OÐPXÓ8YÓYÞ:å7ô4K�9ô 4Kônf �—	‘	˜<ô f ÷Re6ò e6r$   