ó
    >:jsÆ  ã                  ó¢  • S SK Jr  S SKrS SK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rS SKrS SKJrJr  S SKJrJ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  SSKJr  SSKJ r J!r!J"r"J#r#J$r$J%r%J&r&  SSK'J(r(  S r)S r*SS jr+ SS jr, S       SS jjr-        S S jr.S r/   S!     S"S jjr0SS.S jr1 S#       S$S jjr2g)%é    )ÚannotationsN)Ú
namedtuple)ÚOptional)Úfile_existsÚhf_hub_download)ÚEntryNotFoundErrorÚLocalEntryNotFoundError)Ú	load_file)Úhttp_user_agent)Úis_transformers_ge_v5)ÚPEFT_TYPE_TO_PREFIX_MAPPINGé   )ÚINCLUDE_LINEAR_LAYERS_SHORTHAND)ÚTpInfo)ÚEMBEDDING_LAYER_NAMESÚSAFETENSORS_WEIGHTS_NAMEÚWEIGHTS_NAMEÚAuxiliaryTrainingWrapperÚcheck_file_exists_on_hf_hubÚinfer_deviceÚmatch_target_against_key)ÚPeftTypec                ó¸   • [        U S5      =(       aH    [        U R                  [        R                  R
                  [        R                  R                  45      $ )z.Check if the layer has an embedding base layerÚ
base_layer)ÚhasattrÚ
isinstancer   ÚtorchÚnnÚLinearÚ	Embedding)Úlayers    ÚU/home/mande/repo/quber/.venv/lib/python3.13/site-packages/peft/utils/save_and_load.pyÚhas_valid_embedding_base_layerr#   0   s;   € ä�5˜,Ó'×o¬J°u×7GÑ7GÌ%Ï(É(Ï/É/Ô[`×[cÑ[c×[mÑ[mÐInÓ,oÐoó    c                óx   • U R                  5        H&  u  p4U(       d  XA:X  d  U[        USS5      :X  d  M$  Us  $    g)z7Get the name of the embedding module for a given layer.r   N)Únamed_modulesÚgetattr)Úmodelr!   Úis_embedding_in_target_modulesÚnameÚmodules        r"   Úget_embedding_layer_namer,   5   s<   € à×+Ñ+Ö-‰ˆÞ.°6³?ÀvÔQXÐY^Ð`lÐnrÓQsÕGsØŠKñ .ð r$   c                óD  • 0 SSp2n[        U SS5      c  gU R                  5        Hg  n[        US5      (       d  M  UR                  UR                  R
                  5        UR                  R                  nUR                  R                  nMi     U(       a
  [        XUS9$ g)z9Collect TP info from lora modules that have _tp_info set.NÚ_tp_planÚ_tp_info)Útp_planÚdevice_meshÚtp_size)	r'   Úmodulesr   Úupdater/   r0   r1   r2   r   )r(   r0   r1   r2   r+   s        r"   Ú_get_tp_infor5   =   s…   € à$&¨¨d˜'€Gäˆu�j $Ó'Ñ/ØØ—-‘-–/ˆÜ�6˜:×&Ó&Ø�N‰N˜6Ÿ?™?×2Ñ2Ô3Ø Ÿ/™/×5Ñ5ˆKØ—o‘o×-Ñ-ŠGñ	 "ö
 Ü˜gÈÑPÐPØr$   c           
     ó   ^^(^)^*^+• U(       a  [        U SU 5      n U R                  T   m(Uc  U R                  5       n[        U 5      nUbª  SSKJn  SSKJn  [        X5      (       a  U R                  R                  (       a  SOSm+[        U+4S jU 5       5      nUR                  n	U(       a)  U	R                  5        V
Vs0 s H  u  p«T+ U
 3U_M     n	n
nU" XUR                  UR                  5      nT(R                   ["        R$                  ["        R&                  4;   Ga¤  T(R(                  nUS	:X  a  U V
s0 s H  n
S
U
;   d  M  X¡U
   _M     nn
OtUS:X  a$  U V
s0 s H  n
S
U
;   d  SU
;   d  M  X¡U
   _M     nn
OJUS:X  a>  0 nU H5  n
S
U
;   d  M  X   XÚ'   U
R+                  S
5      S   S-   nXá;   d  M/  X   XÞ'   M7     O[,        eUR                  5        V
Vs0 s H  u  p«S
U
;   a  TU
;   d  SU
;   d  M  X«_M     nn
nT(R                   ["        R&                  :X  a`  T(R.                  nUbQ  UR                  5        V
Vs0 s H  u  p«U
R1                  ST 3S5      U_M     nn
nUT(l        U R3                  XýT5      nT(R4                  (       a7  ST S3m)U)4S jnUR                  5        V
Vs0 s H  u  p«U" U
5      U_M     nn
nGOT(R                   ["        R6                  :X  a§  T(R(                  nUS	:X  a  U V
s0 s H  n
SU
;   d  M  X¡U
   _M     nn
GO½US:X  a%  U V
s0 s H  n
SU
;   d  SU
;   d  M  X¡U
   _M     nn
GO’US:X  a?  0 nU H5  n
SU
;   d  M  X   XÚ'   U
R+                  S5      S   S-   nXá;   d  M/  X   XÞ'   M7     GOM[,        eT(R                   ["        R8                  :X  a@  U V
s0 s H1  oªR+                  S5      S   R;                  S5      (       d  M,  X¡U
   _M3     nn
GOéT(R                  (       aÉ  0 nT(R                   ["        R<                  :X  a\  U R>                  T   R@                  US'   U R>                  T   RB                  US'   U R>                  T   RD                  RF                  nOFT(RH                  (       a$  U R>                  T   RD                  RF                  nOU RK                  T5      nUUS'   GOT(R                   ["        RL                  :X  aó  [N        T(R                      nU V
s0 s H  n
UU
;   d  M  X¡U
   _M     nn
[P        RR                  " 5       S:X  a  [T        RV                  " S5        U RY                  5        H~  u  nn[[        US5      (       d  M  UR\                  R                  5        HG  u  p«[P        RR                  " 5       S:X  a  UR_                  [`        Rb                  5      OUUU SU
 3'   MI     M€     GOþT(R                   ["        Rd                  :X  as  [N        T(R                      nU V
s0 s H  n
UU
;   d  M  X¡U
   _M     nn
T(Rf                  (       a0  ST 3U;  a  [i        S5      eUST-      UST-   '   US T-      US T-   '   GOmT(R                   ["        Rj                  :X  a²  [N        T(R                      nU V
s0 s H   n
UU
;   d  M  S!U
;  d  M  S"U
;  d  M  X¡U
   _M"     nn
S#T S3nU H4  n
U
R;                  U5      (       d  M  U
R1                  US#5      nX   UU'   M6     T(Rf                  (       a  U H  n
S"U
;   d  M  TU
;   d  M  X   XÚ'   M     GO�T(R                   ["        Rl                  :X  as  [N        T(R                      nU V
s0 s H  n
UU
;   d  M  X¡U
   _M     nn
T(Rf                  (       a0  S$T 3U;  a  [i        S%5      eUS$T-      US$T-   '   US&T-      US&T-   '   GOT(R                   ["        Rn                  :X  a  U V
s0 s H  n
S'U
;   d  M  X¡U
   _M     nn
GOÏT(R                   ["        Rp                  :X  GaJ  0 nT(Rr                  S(:  a  [`        Rt                  nORT(Rr                  S):  a  [`        Rv                  nO1T(Rr                  S*:  a  [`        Rx                  nO[`        Rz                  nT(R|                  (       a˜  U H‘  n
S+U
;   d  M  X   R                  T(R~                  5      u  nnUR�                  U
S,-   UR_                  US-905        UR�                  U
S.-   [`        R‚                  " USS/9SS2SS2SS24   R…                  5       05        M“     OU V
s0 s H  n
S+U
;   d  M  X¡U
   _M     nn
US0T-      US0T-   '   OfT(R                   [‡        ["        5      ;   a1  [N        T(R                      m+U V
s0 s H  n
T+U
;   d  M  X¡U
   _M     nn
O[i        S1T(R                    35      eU RY                  5        Hà  u  nn[        U[ˆ        5      (       d  M  UR;                  S25      (       a  UR‹                  S25      nUR                  5        V
Vs0 s H5  u  p«U
R;                  U S35      (       d  M   U
R‹                  U S35      U_M7     nn
nUR�                  UR�                  TU5      R                  5        V
Vs0 s H  u  p«U SU
 3U_M     snn
5        Mâ     S3n[[        T(S45      (       a¤  [        T(RŽ                  [�        5      (       a[  T(RŽ                  [’        :w  aG  [[        U S55      (       a  U R•                  5       OU n[—        U(4S6 jURY                  5        5       5      nO*T(RŽ                  (       a  [—        U(4S7 j[˜         5       5      nT(R                   ["        Rš                  :H  =(       d    [        T(S8S5      SLnUS9:X  a(  U(       a!  U(       d  [T        RV                  " S:5        S;nGOUS9:X  Ga  [        [        U S<S5      S=S5      n [        T(S>S5      n!S3n"U!bt  [œ        Rž                  R¡                  [œ        Rž                  R£                  U!S?5      5      n#U#=(       d    [¥        U!S?5      n$U$c  [T        RV                  " S@U! SA35        S3n"OU$n"U (       aZ  U!(       aS  U"(       aL  U U R¦                  R¨                  R«                  U!5      R¬                  :w  a  [T        RV                  " SB5        S;nOS3nU(       a¤  [[        U SC5      (       a“  U R¯                  5       U R±                  5       4 Hn  n%U(       a  [³        U%5      (       d  M  [µ        U U%U5      n&U&(       d  M2  UR�                  UR                  5        V
Vs0 s H  u  p«U&U
;   d  M  X«_M     snn
5        Mp     OU(       a  [T        RV                  " SD5        [¶        R¸                  " [¶        Rº                  " ST 35      SE-   5      m*UU(U*4SF jn'UR                  5        V
Vs0 s H  u  p«U'" U
5      U_M     nn
nU$ s  snn
f s  sn
f s  sn
f s  snn
f s  snn
f s  snn
f s  sn
f s  sn
f s  sn
f s  sn
f s  sn
f s  sn
f s  sn
f s  sn
f s  sn
f s  sn
f s  snn
f s  snn
f s  snn
f s  snn
f )Gu½  
Get the state dict of the given adapter of the PEFT model.

This only includes the PEFT parameters, not the parameters of the base model. Thus the returned `state_dict` is
generally small compared to the full model size. To retrieve the full `state_dict`, just call `model.state_dict()`.

Note that the adapter name is removed from the `state_dict`, as this is just an arbitrary name that can be changed
when loading the adapter. So e.g. if the adapter name is `'default'` and the original key is
`'model.q_proj.lora_A.default.weight'`, the returned key will be `'model.q_proj.lora_A.weight'`. Use this function
in conjunction with [`set_peft_model_state_dict`] to take care of the adapter name when loading weights.

Args:
    model ([`PeftModel`]): The Peft model. When using torch.nn.DistributedDataParallel, DeepSpeed or FSDP,
        the model should be the underlying model/unwrapped model (i.e. model.module).
    state_dict (`dict`, *optional*, defaults to `None`):
        The state dict of the model. If not provided, the state dict of the passed model will be used.
    adapter_name (`str`, *optional*, defaults to `"default"`):
        The name of the adapter whose state dict should be returned.
    unwrap_compiled (`bool`, *optional*, defaults to `False`):
        Whether to unwrap the model if torch.compile was used.
    save_embedding_layers (`Union[bool, str]`, , *optional*, defaults to `auto`):
        If `True`, save the embedding layers in addition to adapter weights. If `auto`, checks the common embedding
        layers `peft.utils.other.EMBEDDING_LAYER_NAMES` in config's `target_modules` when available. Based on it
        sets the boolean flag. This only works for ðŸ¤— transformers models.

Ú	_orig_modNr   )Úgather_state_dict_for_save)Ú	PeftModelúbase_model.úbase_model.model.c              3  óD   >#   • U  H  oR                  T5      v •  M     g 7f©N)Ú
startswith)Ú.0ÚkÚprefixs     €r"   Ú	<genexpr>Ú,get_peft_model_state_dict.<locals>.<genexpr>   s   øé € Ð'QÂjÀ¯©°V×(<Ð(<Âjùs   ƒ ÚnoneÚlora_ÚallÚbiasÚ	lora_onlyÚ.Ú úlora_magnitude_vector.ú.weightc                ó>   >• U R                  T5      (       a  U S S n U $ )Niùÿÿÿ©Úendswith)r@   Únew_dora_suffixs    €r"   Úrenamed_dora_weightsÚ7get_peft_model_state_dict.<locals>.renamed_dora_weights§   s"   ø€ Ø—:‘:˜o×.Ñ.Ø˜#˜2˜�AØ�r$   Úboft_Ú	boft_onlyéÿÿÿÿÚ	adaption_Úprefix_task_colsÚprefix_task_rowsÚprompt_embeddingsÚWindowszÁWindows has issues saving integers into safetensors. Hence, we convert shira_indices to float32 before saving on Windows OS. The shira_indices will always be converted to integers when loading.Úshira_indicesú.shira_indices.zbase_model.vera_A.z‰Model was initialised to not save vera_A and vera_B but config now specifies to save projection! Set `config.save_projection` to `False`.zbase_model.vera_B.ú.tinylora_v.ú.tinylora_P.zbase_model.tinylora_v.zbase_model.pvera_A.z‹Model was initialised to not save pvera_A and pvera_B but config now specifies to save projection! Set `config.save_projection` to `False`.zbase_model.pvera_B.Úinternal_xlora_classifieré   i €  l        Úvblora_logitsÚ_topk_indices)ÚdtypeÚ_topk_weights©Údimzbase_model.vblora_vector_bank.zUnknown PEFT type passed: ú_fsdp_wrapped_module.FÚtarget_modulesÚget_base_modelc              3  ó˜   >^#   • U  H>  u  mn[        U4S  j[         5       5      (       d  M&  [        TR                  T5      v •  M@     g7f)c              3  óZ   >#   • U  H   n[         R                  " S U S3T5      v •  M"     g7f)z(.*\.)?Ú$N)ÚreÚmatch)r?   Úer@   s     €r"   rB   Ú6get_peft_model_state_dict.<locals>.<genexpr>.<genexpr>Z  s)   øé € ÐSÒ=R¸”r—x’x 7¨1¨#¨Q °×3Ð3Ò=Rùs   ƒ(+N)Úanyr   r   rh   )r?   Ú_r@   Úconfigs     @€r"   rB   rC   W  s?   ùé € ð (â2‘D�A�qÜÔSÕ=RÓS×Só CÔ(¨×)>Ñ)>À×BÐBÚ2ùs
   „%A
­A
c              3  ó@   >#   • U  H  oTR                   ;   v •  M     g 7fr=   )rh   )r?   r@   rs   s     €r"   rB   rC   ]  s   øé € Ð'bÒLaÀq¨V×-BÑ-BÖ(BÒLaùs   ƒÚtrainable_token_indicesÚautozXSetting `save_embedding_layers` to `True` as embedding layers found in `target_modules`.Trs   Ú
vocab_sizeÚbase_model_name_or_pathzconfig.jsonz Could not find a config file in z4 - will assume that the vocabulary was not modified.zdSetting `save_embedding_layers` to `True` as the embedding layer has been resized during finetuning.Úget_input_embeddingsuY   Could not identify embedding layer(s) because the model is not a ðŸ¤— transformers model.rl   c                ó  >• SU ;  a  U $ TR                   [        R                  :X  a/  S H)  nSU ST S3nX ;   d  M  U R                  USU S35      s  $    U R	                  ST 35      (       a  U R                  ST 35      $ U R                  S5      u  pnTR                   [        R                  :X  a3  UR                  T S35      (       a  U S-   UR                  T S35      -   $ TR                  SU 5      n U  SU 3$ )NrI   )Úpeanut_encodersÚpeanut_decodersrr   rJ   )Ú	peft_typer   ÚPEANUTÚreplacerO   ÚremovesuffixÚ
rpartitionÚVBLORAr>   ÚremoveprefixÚsub)ÚkeyÚ	containerÚmarkerrr   ÚsuffixÚadapter_namers   Úpatterns        €€€r"   Úremove_adapter_nameÚ6get_peft_model_state_dict.<locals>.remove_adapter_name˜  s  ø€ Ø�c‹>àˆJà×ÑœxŸ™Ó.ó D�	Ø˜Y˜K q¨¨°aÐ8�Ø•=ØŸ;™; v°°9°+¸QÐ/?Ó@Ò@ñ Dð
 �<‰<˜!˜L˜>Ð*×+Ñ+à×#Ñ# a¨ ~Ð$6Ó7Ð7ð Ÿ™¨Ó,‰ˆ�à×Ñ¤§¡Ó/°V×5FÑ5FÈ,ÈÐWXÐGY×5ZÑ5Zð ˜‘9˜v×2Ñ2°l°^À1Ð3EÓFÑFÐFà�k‰k˜"˜cÓ"ˆØ��a˜�xÐ Ð r$   )^r'   Úpeft_configÚ
state_dictr5   Ú)transformers.integrations.tensor_parallelr8   Úpeft.peft_modelr9   r   Úactive_peft_configÚis_prompt_learningrF   r0   Úitemsr1   r2   r}   r   ÚLORAÚADALORArG   ÚsplitÚNotImplementedErrorÚrank_patternr   Ú!resize_state_dict_by_rank_patternÚuse_doraÚBOFTÚADAPTION_PROMPTr>   ÚMULTITASK_PROMPT_TUNINGÚprompt_encoderrW   rX   Ú	embeddingÚweightÚinference_modeÚget_prompt_embedding_to_saveÚSHIRAr   ÚplatformÚsystemÚwarningsÚwarnr&   r   r[   Útor   Úfloat32ÚVERAÚsave_projectionÚ
ValueErrorÚTINYLORAÚPVERAÚXLORAr‚   Únum_vectorsÚuint8Úint16Úint32Úint64Úsave_only_topk_weightsÚtopkr4   ÚsoftmaxÚ
contiguousÚlistr   rƒ   Úadapter_state_dictrh   Ústrr   ri   rq   r   ÚTRAINABLE_TOKENSÚosÚpathÚexistsÚjoinr   rs   Ú	__class__Úfrom_pretrainedrw   ry   Úget_output_embeddingsr#   r,   rm   ÚcompileÚescape),r(   rŽ   r‰   Úunwrap_compiledÚsave_embedding_layersÚtp_infor8   r9   Úkeys_starting_with_prefixr0   r@   ÚvrG   Ú	to_returnÚ	bias_namer˜   rQ   rY   Úshira_prefixr*   r+   Úvera_prefixÚtinylora_prefixÚadapter_v_prefixÚnew_keyÚindices_dtypeÚlogitsÚindicesÚmodule_state_dictÚembedding_is_targetedÚ_modelÚusing_trainable_tokensrw   Úmodel_idÚhas_base_configÚlocal_config_existsr¿   r!   Úembedding_module_namer‹   rs   rP   rŠ   rA   s,     `                                     @@@@r"   Úget_peft_model_state_dictrÝ   M   sÞ  ü€ ö: Ü˜˜{¨EÓ2ˆà×Ñ˜|Ñ,€FØÑØ×%Ñ%Ó'ˆ
ô ˜5Ó!€GØÑÝXå-ô ˜%×+Ñ+°×0HÑ0H×0[×0[ñ à$ð 	ô
 %(Ô'QÁjÓ'QÓ$QÐ!Ø—/‘/ˆÞ$Ø5<·]±]´_ÔE²_©T¨Q˜&˜ ! �~ qÒ(±_ˆGÑEÙ/°
ÀW×EXÑEXÐZa×ZiÑZiÓjˆ
ð ×ÑœHŸM™M¬8×+;Ñ+;Ð<Ô<ð �{‰{ˆØ�6‹>Ù3=ÓN²:¨aÀÈAÁÓ)˜ q™MÒ)±:ˆIÐNˆIØ�U‹]Ù3=Ó]²:¨aÀÈAÃÐQWÐ[\ÑQ\Ó)˜ q™MÒ)±:ˆIÐ]ˆIØ�[Ó ØˆIÛ�Ø˜a•<Ø#-¡=�I‘LØ !§¡¨Ó 0°Ñ 3°fÑ <�IØ Õ.Ø/9Ñ/D˜	Ó,ò  ô &Ð%Ø&/§o¡oÔ&7ÔsÒ&7™d˜a¸WÈ»\ÈlÐ^_ÓN_ÐekÐopÑep“T�Q’TÑ&7ˆ	ÑsØ×Ñœx×/Ñ/Ó/Ø!×.Ñ.ˆLØÑ'ØQ]×QcÑQcÔQeÔfÒQeÉÈ §	¡	¨A¨l¨^Ð*<¸bÓ AÀ1Ò DÑQe�ÑfØ&2�Ô#Ø!×CÑCÀLÐ]iÓj�	à�?�?ð !7°|°nÀGÐLˆOõð
 AJÇÁÔ@QÔRÒ@Q¹¸Ñ-¨aÓ0°!Ò3Ñ@QˆIÑRùà	×	Ñ	œXŸ]™]Ó	*Ø�{‰{ˆØ�6‹>Ù3=ÓN²:¨aÀÈAÁÓ)˜ q™MÒ)±:ˆIÐN‰IØ�U‹]Ù3=Ó]²:¨aÀÈAÃÐQWÐ[\ÑQ\Ó)˜ q™MÒ)±:ˆIÐ]‰IØ�[Ó ØˆIÛ�Ø˜a•<Ø#-¡=�I‘LØ !§¡¨Ó 0°Ñ 3°fÑ <�IØ Õ.Ø/9Ñ/D˜	Ó,ó  ô &Ð%à	×	Ñ	œX×5Ñ5Ó	5Ù/9Ófªz¨!¿W¹WÀS»\È"Ñ=M×=XÑ=XÐYd×=eÓ%�Q 1™Ò%©zˆ	Ðf‰	à	×	"×	"Øˆ	Ø×Ñœx×?Ñ?Ó?Ø,1×,@Ñ,@ÀÑ,N×,_Ñ,_ˆIÐ(Ñ)Ø,1×,@Ñ,@ÀÑ,N×,_Ñ,_ˆIÐ(Ñ)Ø %× 4Ñ 4°\Ñ B× LÑ L× SÑ SÑà×$×$Ø$)×$8Ñ$8¸Ñ$F×$PÑ$P×$WÑ$WÑ!à$)×$FÑ$FÀ|Ó$TÐ!Ø):ˆ	Ð%Ó&à	×	Ñ	œXŸ^™^Ó	+Ü2°6×3CÑ3CÑDˆÙ/9ÓOªz¨!¸\ÈQÑ=NÓ%�Q 1™Ò%©zˆ	ÐOÜ�?Š?Ó 	Ó)Ü�MŠMðtôð "×/Ñ/Ö1‰LˆD�&Ü�v˜×/Ó/Ø"×0Ñ0×6Ñ6Ö8‘D�Aô 08¯ªÓ/@ÀIÓ/M˜Ÿ™œUŸ]™]Ô+ÐSTð    o°a°SÐ9Ó:ó 9ó 2ð 
×	Ñ	œXŸ]™]Ó	*Ü1°&×2BÑ2BÑCˆÙ/9ÓNªz¨!¸[ÈAÑ=MÓ%�Q 1™Ò%©zˆ	ÐNØ×!×!ð $ L >Ð2¸*ÓDÜ ð@óð ð >HÐH\Ð_kÑHkÑ=lˆIÐ*¨\Ñ9Ñ:Ø=GÐH\Ð_kÑHkÑ=lˆIÐ*¨\Ñ9Ñ:ùØ	×	Ñ	œX×.Ñ.Ó	.Ü5°f×6FÑ6FÑGˆñ  ó
â�Ø !Ñ#ó à(6¸aÑ(?ó àDRÐZ[ÑD[ó ˆA˜!‰}ÒÙð 	ð 
ð 4°L°>ÀÐCÐÛˆAØ�|‰|Ð,×-Ó-ØŸ)™)Ð$4Ð6NÓO�Ø%/¡]�	˜'Ó"ñ ð ×!×!Û�Ø! QÕ&¨<¸1Õ+<Ø#-¡=�I“Lñ  ùð 
×	Ñ	œXŸ^™^Ó	+Ü1°&×2BÑ2BÑCˆÙ/9ÓNªz¨!¸[ÈAÑ=MÓ%�Q 1™Ò%©zˆ	ÐNØ×!×!ð % \ NÐ3¸:ÓEÜ ðBóð ð ?IÐI^ÐamÑImÑ>nˆIÐ+¨lÑ:Ñ;Ø>HÐI^ÐamÑImÑ>nˆIÐ+¨lÑ:Ñ;ùØ	×	Ñ	œXŸ^™^Ó	+Ù/9Ó^ªz¨!Ð=XÐ\]Ñ=]Ó%�Q 1™Ò%©zˆ	Ð^‰	Ø	×	Ñ	œXŸ_™_Ô	,Øˆ	à×Ñ Ó$Ü!ŸK™K‰MØ×Ñ %Ó'Ü!ŸK™K‰MØ×Ñ %Ó'Ü!ŸK™K‰Mä!ŸK™KˆMØ×(×(ã�Ø" aÕ'Ø&0¡m×&8Ñ&8¸¿¹Ó&E‘O�F˜GØ×$Ñ$ a¨/Ñ&9¸7¿:¹:ÈM¸:Ð;ZÐ%[Ô\Ø×$Ñ$ a¨/Ñ&9¼5¿=º=ÈÐUWÑ;XÒYZÒ\]Ð_bÐ`bÐ_bÐYbÑ;c×;nÑ;nÓ;pÐ%qÖrò	  ñ 4>ÓV²:¨aÀÐTUÑAUÓ)˜ q™MÒ)±:ˆIÐVØEOØ,¨|Ñ;ñF
ˆ	Ð2°\ÑAÒBð 
×	Ñ	œT¤(›^Ó	+Ü,¨V×-=Ñ-=Ñ>ˆÙ/9ÓIªz¨!¸VÀq¹[Ó%�Q 1™Ò%©zˆ	ÐIˆ	äÐ5°f×6FÑ6FÐ5GÐHÓIÐIð ×+Ñ+Ö-‰ˆˆfÜ�fÔ6×7Ó7Ø�‰Ð6×7Ñ7ð ×(Ñ(Ð)@ÓA�ð ;E×:JÑ:JÔ:Lô!Ú:L±$°!ÐPQ×P\ÑP\Ð`dÐ_eÐefÐ]g×PhÓ-�—‘ $  q˜zÓ*¨AÒ-Ñ:Lð ñ !ð ×ÑØ.4×.GÑ.GÈÐVgÓ.h×.nÑ.nÔ.pÔqÒ.p¡d a�D�6˜˜1˜#� Ò!Ñ.pÒqöñ .ð: "ÐÜˆvÐ'×(Ñ(Ü�f×+Ñ+¬S×1Ñ1°v×7LÑ7LÔPoÓ7oô 07°uÐ>N×/OÑ/O�U×)Ñ)Ô+ÐUZˆFÜ$'ô (à"×0Ñ0Ô2ó(ó %Ñ!ð
 ×"×"Ü$'Ô'bÕLaÓ'bÓ$bÐ!ð 	×ÑœH×5Ñ5Ñ5×u¼ÀÐIbÐdhÓ9iÐquÐ9uð ð  Ó&Ö+@ÖI_Ü�ŠÐpÔqØ $ÒØ	 &Ô	(ÜœW U¨H°dÓ;¸\È4ÓPˆ
Ü˜6Ð#<¸dÓCˆð  ˆð ÑÜ"$§'¡'§.¡.´·±·±¸hÈÓ1VÓ"WÐØ(×`Ô,GÈÐR_Ó,`ˆFØ‰~ä—’Ø6°x°jÐ@tÐuôð #(‘à"(�ö ÞÞØ˜uŸ|™|×5Ñ5×EÑEÀhÓO×ZÑZÓZä�MŠMØvôð %)Ñ!à$)Ð!æ¤¨Ð0F×!GÑ!GØ×0Ñ0Ó2°E×4OÑ4OÓ4QÓRˆEö )Ô,JÈ5×,QÓ,QÜ(@ÀÈÐOdÓ(eÐ%ß(Ð(Ø×$Ñ$°z×7GÑ7GÔ7IÔ%hÒ7I©t¨qÐMbÐfgÑMg£d a¢dÑ7IÒ%hÖiò Sö 
Ü�ŠÐqÔrô �jŠjœŸš Q | nÐ#5Ó6¸Ñ=Ó>€G÷!ð< 8A·±Ô7HÔIÒ7H©t¨qÑ$ QÓ'¨Ò*Ñ7H€IÑIØÐùók	 Fùò Oùâ]ùó tùó  gùó Sùò
 Oùâ]ùò gùò" Pùò& Oùò 
ùò* Oùò _ùò( Wùò Jùó!ùó rùó\ &iùóL JsÞ   Ã xÄ9
xÅ	xÅxÅ1	xÇx$Ç6x$È?"x*Ê-x0Ë;
x6Ì		x6Ì x;Ì4	x;Î.+y Ï	y Ó9
yÔ	yØ

y
Ø	y
Ú
yÚ)yÚ1yÚ9	yÝ+
yÝ9	yß)
yß7	yå
yå	yæ!
y#æ/	y#è:y(éy(ê'y.õ/y4õ?y4÷:y:c                óª  • U(       d  U/ 4$ / nU R                  5       nUR                  5        H‘  u  pVXT;  a  M  XE   R                  S   S:X  a)  XE   R                  5       S-  UR                  5       :X  a  MJ  XE   R                  UR                  :w  d  Mh  UR	                  XVR                  XE   R                  45        M“     U H	  u  n  nX	 M     X4$ )NrU   r   é   )rŽ   r“   ÚshapeÚnumelÚappend)r(   Úpeft_model_state_dictÚignore_mismatched_sizesÚ
mismatchedrŽ   r…   Útensorrr   s           r"   Ú_find_mismatched_keysrç   º  sÖ   € ö #Ø$ bÐ(Ð(à€JØ×!Ñ!Ó#€JØ,×2Ñ2Ö4‰ˆØÓ Ùð ‰O×!Ñ! "Ñ%¨Ó*°±×1FÑ1FÓ1HÈ1Ñ1LÐPV×P\ÑP\ÓP^Ó1^ñ à‰?× Ñ  F§L¡LÕ0Ø×Ñ˜s§L¡L°*±/×2GÑ2GÐHÖIñ 5ó  ‰	ˆˆQ�Ø!Ò&ñ  ð !Ð,Ð,r$   c                óL  • 0 nU R                  5        H�  u  pEX$;   a  UR                  U5      u    pgSU;   aX  SR                  UR                  S5      SS 5      n[        R
                  " [        R                  " U5      S-   U SU 3U5      nOU SU 3nXSU'   M‰  XSU'   M�     U$ )zbUtility function to remap the state_dict keys to fit the PEFT model by inserting the adapter name.rI   r   Nrl   )r“   r�   rÀ   r–   rm   r„   rÅ   )	rŽ   r‰   Úparameter_prefixrã   r…   Úvalrr   rˆ   Úsuffix_to_replaces	            r"   Ú$_insert_adapter_name_into_state_dictrì   Ö  s¸   € ð ÐØ×$Ñ$Ö&‰ˆØÓ"ØŸ>™>Ð*:Ó;‰LˆAˆqØ�f‹}Ø$'§H¡H¨V¯\©\¸#Ó->¸q¸rÐ-BÓ$CÐ!ô —f’fœRŸYšYÐ'8Ó9¸DÑ@À\ÀNÐRSÐTeÐSfÐBgÐilÓm‘à˜˜Q˜|˜nÐ-�Ø), #Ó&à), #Ó&ñ 'ð !Ð r$   c                óÚ  • SSK JnJnJnJn  SSKJn  SnSn	Sn
SnSS	/nU R                  5        GH8  u  pÞ[        Xç5      (       d  M  UR                  5       nUR                  R                  n[        US
S5      n[        USS5      nUb  Uc  M`  U(       aw  U H  nUU;   d  M  SU 3n  O   U HY  nSnSnU H  nUR                  U5      (       d  M  Un  O   U H  nUR                  U5      (       d  M  Un  O   UU:w  d  MU  Un
Un	  O   SnU	(       a  UR                  U	5      nU
(       a  X­-   n[        R                   " UU   5      nUUl        UR%                  5       Ul        SnSn[        UU5      (       a	  U SU S3nO¶[        UU5      (       a	  U SU S3nOœ[        UU5      (       ae  U S3nUU;   a   UU   Ul        UR+                  UU   US9UU'   U SU 3nUU   R,                  nUUl        UR+                  UUS9nUR,                  nO&[/        SU SUR0                  R2                   S35      eUc  UU   nUc  UUl        UR+                  UUS9nUUl        UUU'   GM;     g)a�  
Shard LoRA adapter weights in-place in `state_dict` according to the tensor-parallel plan of the model.

Args:
    model (`nn.Module`): The TP base model (with `_hf_tp_plan` and `_hf_device_mesh` set on its layers).
    state_dict (`dict`): The adapter state dict to shard in-place (as loaded from a checkpoint).
    adapter_name (`str`): The name of the adapter whose weights are being sharded.
r   )ÚALL_PARALLEL_STYLESÚColwiseParallelÚEmbeddingParallelÚRowwiseParallelrß   )Ú	LoraLayerTNrJ   r;   r:   Ú_hf_tp_planÚ_hf_device_meshrI   Fz.lora_BrL   z.lora_Az.base_layer.weight©Údevicez.lora_embedding_AzUnknown tensor parallel plan z for )r�   rî   rï   rð   rñ   Útuners.lora.layerrò   r&   r   Úget_base_layerr    rö   r'   r>   rƒ   ÚcopyÚdeepcopyr1   Úget_local_rankÚrankÚempty_paramÚshard_tensorÚTr¬   rÁ   Ú__name__)r(   rŽ   r‰   rî   rï   rð   rñ   rò   Úshould_checkÚprefix_to_removeÚprefix_to_addÚadapter_name_in_keyÚpossible_prefixesr*   r+   r   rö   r0   r1   r…   Ú
key_prefixÚname_prefixÚpÚtp_layerr    ÚshardedÚembedding_keys                              r"   Ú_maybe_shard_state_dict_for_tpr  ë  sÞ  € ÷ó õ .à€LØÐØ€MØÐà,¨mÐ<Ðà×+Ñ+×-‰ˆÜ˜&×,Ñ,ÙØ×*Ñ*Ó,ˆ
Ø×"Ñ"×)Ñ)ˆÜ˜* m°TÓ:ˆÜ˜jÐ*;¸TÓBˆà‰?˜kÑ1Ùö Û!�Ø 3Õ&Ø,-¨l¨^Ð*<Ð'Ùñ "ó
 "�Ø�
Ø �Û*�AØ—~‘~ a×(Ó(Ø%&˜
Ùñ +ó +�AØ—‘ q×)Ó)Ø&'˜Ùñ +ð  Õ,Ø$.�MØ'2Ð$Ùñ "ð  !ˆLæØ×$Ñ$Ð%5Ó6ˆDÞØ Ñ'ˆDô —=’=Ð!4°WÑ!=Ó>ˆØ*ˆÔØ#×2Ñ2Ó4ˆŒàˆØˆÜ�h ×0Ñ0Ø�F˜'Ð"5Ð!6°gÐ>‰CÜ˜ /×2Ñ2Ø�F˜'Ð"5Ð!6°gÐ>‰CÜ˜Ð"3×4Ñ4ð  $˜fÐ$6Ð7ˆMØ 
Ó*Ø'1°-Ñ'@�Ô$Ø,4×,AÑ,AÀ*È]ÑB[ÐdjÐ,AÐ,k�
˜=Ñ)Ø�FÐ+Ð,?Ð+@ÐAˆCð   ‘_×&Ñ&ˆFØ#)ˆHÔ Ø×+Ñ+¨F¸6Ð+ÐBˆGà—i‘i‰GäÐ<¸W¸IÀUÈ6×K[ÑK[×KdÑKdÐJeÐefÐgÓhÐhà‰>Ø ‘_ˆFØ‰?Ø#)ˆHÔ Ø×+Ñ+¨F¸6Ð+ÐBˆGà%ˆÔØ!ˆ
�3Œòg .r$   c                ó  ^&• U R                   U   nUn[        [        U SS5      S5      n[        (       a  U(       a  SSKJn  U" U UUUS9nU R                  5        Hu  u  pš[        U
[        5      (       d  M  U
R                  U5      nU	R                  S5      (       a  U	R                  S5      n	U H  nU	 SU 3nU	 SX¼    3nX   Xn'   Xm	 M     Mw     UR                  (       d  UR                  [        R                  :X  a  UnGOTUR                  [        R                   :X  a  UnGO2UR                  ["        ;   Ga  0 n["        UR                     nUR                  [        R$                  :X  Gaa  UR&                  (       GaO  U R(                  U   R*                  u  nn[-        UR/                  5       5      nU GH  nS	U;   d  M  Xl   R1                  [2        R4                  5      nUR7                  S	S
5      nXlR7                  S	S5         n[2        R8                  " USUR;                  SSS9-
  /SS9n[2        R<                  " U5      n[2        R>                  " / UR*                  SS QUP5      RA                  [C        S5      5      R1                  URD                  5      RG                  SUU5      nUUU'   Xl	 XlR7                  S	S5      	 GM     0 nUR                  [        RH                  :X  aM  U Vs/ s H  nSU;   d  M  UPM     nnU H-  nUR7                  SSU S35      nURK                  U5      UU'   M/     [M        XbUS9nUR                  [        RH                  :X  a  URO                  U5        UR                  [        RP                  :X  a#  URR                  nUb  U RU                  UU5        GO¡UR                  [        RV                  :X  a¬  [X        RZ                  " 5       S:X  a  [\        R^                  " S5        U R                  5        Hg  u  pš[        U
S5      (       d  M  U	 SU 3U;   d  M%  URK                  U	 SU 35      nUR1                  [2        R`                  5      U
Rb                  U'   Mi     GO×UR                  [        Rd                  :X  az  URf                  (       a  SU;  a  [i        S5      eURf                  (       d  SU;   a  [\        R^                  " S5        GOhURf                  (       d  [\        R^                  " S5        GO?UR                  [        RH                  :X  a›  [k        S U 5       5      nURf                  (       a  U(       d  [\        R^                  " S5        GOßURf                  (       d  U(       a  [\        R^                  " S5        GO¯URf                  (       d  [\        R^                  " S5        GO†UR                  [        Rl                  :X  ay  URf                  (       a  S U;  a  [i        S!5      eURf                  (       d  S U;   a  [\        R^                  " S"5        GOURf                  (       d  [\        R^                  " S#5        OïUR                  [        Rn                  :X  aŠ  S$U 3m&U&4S% jnURq                  5        VVs0 s H  u  nnU" U5      U_M     nnn[2        Rr                  Ru                  5       (       a/  [2        Rr                  Rw                  5       (       a  [y        XU5        OGUR                  [        Rz                  :X  a"  [k        S& U 5       5      (       a  [i        S'5      eO[|        e[        XUS(9u  nnU(       aM  U R�                  US)SS*9n U Rƒ                  5        H'  n
[        U
S+5      (       d  M  U
R…                  U5        M)     OU R�                  US)S,9n UR                  (       al  UR                  [        R†                  :X  a"  U Rˆ                  U   R‹                  US-   5        O,U Rˆ                  U   RŒ                  R�                  S.US-   0SS,9  UR                  [        RŽ                  :X  a  U Rˆ                  U   R�                  US)S,9  U(       ag  S/R‘                  U V!V"V#s/ s H  u  n!n"n#S0U! S1U" S2U# S33PM     sn#n"n!5      n$S4U R’                  R”                   S5U$ S3n%[\        R^                  " U%5        U $ s  snf s  snnf s  sn#n"n!f )6a¸  
Set the state dict of the PEFT model.

Given a PEFT `state_dict` (as returned by [`get_peft_model_state_dict`]), insert the weights into the model. The
model needs to have the PEFT adapters already in place (e.g. via [`inject_adapter_in_model`]).

Setting the adapter weights also takes care of re-inserting the adapter name. This name may be a different name
than the one originally used to train the adapter.

Args:
    model ([`PeftModel`]):
        The Peft model.
    peft_model_state_dict (`dict`):
        The state dict of the Peft model.
    adapter_name (`str`, *optional*, defaults to `"default"`):
        The name of the adapter whose state dict should be set.
    ignore_mismatched_sizes (`bool`, *optional*, defaults to `False`):
        Whether to ignore mismatched in the state dict.
    low_cpu_mem_usage (`bool`, `optional`, defaults to `False`):
        This argument must be `True` if the `model` was loaded with adapter weights on the meta device, e.g. after
        calling `inject_adapter_in_model` with `low_cpu_mem_usage=True`. Otherwise, leave it as `False`.

Returns:
    load_result (`_IncompatibleKeys`)
        A named tuple with `missing_keys` and `unexpected_keys` fields.

rs   NÚ
model_typer   )Ú0convert_peft_adapter_state_dict_for_transformers)r(   r�   rº   r‰   rg   rI   rb   rJ   rd   r   rU   T)Úkeepdimre   z-infr]   )r‰   ré   rZ   zÇWindows has issues saving integers into safetensors. Hence, we had converted shira_indices to float32 before saving on Windows OS. The shira_indices will always be converted to integers when loading.r[   r\   zbase_model.vera_AzXSpecified to load vera_A and vera_B from state dictionary however they were not present!zãSpecified to not load vera_A and vera_B from state dictionary however they are present in state dictionary! Consider using them to ensure checkpoint loading is correct on all platforms using `peft_config.save_projection = True`zìSpecified to not load vera_A and vera_B from state dictionary. This means we will be relying on PRNG initialisation to restore these projections using `config.projection_prng_key`, which may not be accurate on all system configurations.c              3  ó,   #   • U  H
  nS U;   v •  M     g7f)r^   N© )r?   r@   s     r"   rB   Ú,set_peft_model_state_dict.<locals>.<genexpr>þ  s   é € Ð TÒ>S¸ °1Ö!4Ò>Sùó   ‚z�Specified to load tinylora_P from state dictionary however it was not present! Projection tensors will be regenerated from the projection_seed.zÜSpecified to not load tinylora_P from state dictionary however they are present in state dictionary! Consider using them to ensure checkpoint loading is correct on all platforms using `peft_config.save_projection = True`záSpecified to not load tinylora_P from state dictionary. This means we will be relying on PRNG initialisation to restore these projections using `config.projection_seed`, which may not be accurate on all system configurations.zbase_model.pvera_AzZSpecified to load pvera_A and pvera_B from state dictionary however they were not present!zåSpecified to not load pvera_A and pvera_B from state dictionary however they are present in state dictionary! Consider using them to ensure checkpoint loading is correct on all platforms using `peft_config.save_projection = True`zîSpecified to not load pvera_A and pvera_B from state dictionary. This means we will be relying on PRNG initialisation to restore these projections using `config.projection_prng_key`, which may not be accurate on all system configurations.rK   c                ó>   >• U R                  T5      (       a  U S-   n U $ )NrL   rN   )r@   Úold_dora_suffixs    €r"   rQ   Ú7set_peft_model_state_dict.<locals>.renamed_dora_weights&  s    ø€ Ø—:‘:˜o×.Ñ.Ø˜I™�AØ�r$   c              3  ó,   #   • U  H
  nS U;   v •  M     g7f)z.oft_r.Nr  )r?   r…   s     r"   rB   r  1  s   é € ÐEÒ/D¨�9 Ö#Ò/Dùr  z†Trying to load old OFT checkpoint, which is no longer supported. Please install PEFT <= v0.15.2 to load it or train a new OFT adapter.)rä   F)ÚstrictÚassignÚ%_move_adapter_to_device_of_base_layer)r  rY   r    Ú
z- z: found shape z in the checkpoint and z in the model instantiatedzSome weights of zy were not initialized from the model checkpoint and are being ignored because you passed `ignore_mismatched_sizes=True`: )Kr�   r   r'   r   Ú)peft.utils.transformers_weight_conversionr  r&   r   r   Úadapter_state_dict_load_mapr>   rƒ   r’   r}   r   rœ   r¯   r   r‚   rµ   Úvblora_vector_bankrà   r¹   Úkeysr¨   r   Úlongr   ÚcatÚsumÚlogÚzerosÚfill_Úfloatrö   Úscatterr­   Úpoprì   r4   r•   r˜   Úresize_modules_by_rank_patternr£   r¤   r¥   r¦   r§   Úintr[   rª   r«   r¬   rq   r®   r”   r“   ÚdistributedÚis_availableÚis_initializedr  ÚOFTr—   rç   Úload_state_dictr3   r  Ú	CARTRIDGErž   Úload_prompt_embeddingsrŸ   r�   rÀ   rÁ   r   )'r(   rã   r‰   rä   Úlow_cpu_mem_usagers   rŽ   Úis_like_transformers_modelr  r*   r+   Úkey_mapr@   Ú
lookup_keyÚ	store_keyré   r°   rr   Ústate_dict_keysrÊ   Úoriginal_keyÚtopk_weightsÚtopk_logitsÚmatrixÚtinylora_v_state_dictÚtinylora_v_keysrÑ   r˜   Úshira_indices_valuesÚhas_projectionrQ   Úmismatched_keysÚload_resultr…   Úshape1Úshape2Úmismatched_warningÚmsgr  s'                                         @r"   Úset_peft_model_state_dictrG  Z  s&  ø€ ðD ×Ñ˜|Ñ,€FØ&€Jä!(¬°¸À$Ó)GÈÓ!VÐßÒÖ!;ånáEØØØ)Ø%ñ	
ˆ
ð ×+Ñ+Ö-‰ˆÜ�fÔ6×7Ó7ð ×8Ñ8¸ÓFˆGØ�‰Ð6×7Ñ7ð ×(Ñ(Ð)@ÓA�Û�Ø $˜v Q q c˜]�
Ø#˜f A g¡j \Ð2�	à(=Ñ(I�
Ñ%ð Ò*ó ñ .ð& × ×  F×$4Ñ$4¼×8PÑ8PÓ$PØ *ÒØ	×	Ñ	œXŸ^™^Ó	+Ø *ÒØ	×	Ñ	Ô8Ô	8Ø "ÐÜ6°v×7GÑ7GÑHÐØ×ÑœxŸ™Ô.°6×3P×3PÐ3PØ"×5Ñ5°lÑC×IÑI‰NˆK˜Ü" :§?¡?Ó#4Ó5ˆOÜ$�ð # aÕ'Ø"™×(Ñ(¬¯©Ó4�AØ#$§9¡9¨_¸bÓ#A�Là#-¯i©i¸ÈÓ.YÑ#Z�Lä#(§9¢9¨l¸AÀ×@PÑ@PÐQSÐ]aÐ@PÐ@bÑ<bÐ-cÐikÑ#l�Lä"'§)¢)¨LÓ"9�KäŸšÐ$L {×'8Ñ'8¸¸"Ð'=Ð$LÀÐ$LÓMß™œu V›}Ó-ß™˜K×.Ñ.Ó/ß ™  Q¨Ó4ð	 ð 06�J˜|Ñ,à"˜Ø"§9¡9¨_¸oÓ#NÓOñ/ %ð6 !#ÐØ×Ñœx×0Ñ0Ó0ñ +5ÓLª* Q¸È!Ñ8KŸq©*ˆOÐLÛ$�ØŸ)™) N°lÀ<À.ÐPQÐ4RÓS�Ø1;·±ÀÓ1BÐ% gÓ.ñ %ô !EØÐDTñ!
Ðð
 ×Ñœx×0Ñ0Ó0Ø!×(Ñ(Ð)>Ô?à×Ñœx×/Ñ/Ó/Ø!×.Ñ.ˆLØÑ'Ø×4Ñ4°\À<ÔPùØ×Ñ¤§¡Ó/Ü�ŠÓ  IÓ-Ü—’ð$ôð
 !&× 3Ñ 3Ö 5‘�Ü˜6 ?×3Ó3à˜˜¨|¨nÐ=ÐAVÕVØ/D×/HÑ/HÈDÈ6ÐQ`ÐamÐ`nÐIoÓ/pÐ,ð >R×=TÑ=TÔUZ×U^ÑU^Ó=_˜×,Ñ,¨\Ó:ó !6ð ×Ñ¤§¡Ó.Ø×%×%Ð*=ÐEZÓ*ZÜ Ønóð ð ×+×+Ð0CÐG\Ó0\Ü—’ð<öð
 ×+×+Ü—’ðEôùð
 ×Ñ¤×!2Ñ!2Ó2Ü Ñ TÑ>SÓ TÓTˆNØ×%×%®nÜ—’ðWöð ×+×+¶Ü—’ð<öð
 ×+×+Ü—’ðEôùð
 ×Ñ¤§¡Ó/Ø×%×%Ð*>ÐF[Ó*[Ü Øpóð ð ×+×+Ð0DÐH]Ó0]Ü—’ð<öð
 ×+×+Ü—’ðEôøð
 ×Ñ¤§¡Ó.ð !7°|°nÐEˆOõð
 Mb×LgÑLgÔLiÔ$jÒLiÁDÀAÀqÑ%9¸!Ó%<¸aÒ%?ÑLiÐ!Ñ$jä× Ñ ×-Ñ-×/Ñ/´E×4EÑ4E×4TÑ4T×4VÑ4VÜ.¨uÈ\ÔZøà×Ñ¤§¡Ó-ÜÑEÑ/DÓE×EÑEÜ ð ]óð øô "Ð!ä-BØÐ>Uñ.Ñ*Ð˜?ö Ø×+Ñ+Ð,AÈ%ÐX\Ð+Ð]ˆà—m‘m–oˆFÜ�vÐF×GÓGØ×<Ñ<¸\ÖJò &ð ×+Ñ+Ð,AÈ%Ð+ÐPˆà× × Ø×Ñœx×1Ñ1Ó1Ø× Ñ  Ñ.×EÑEÐF[Ð\oÑFpÕqà× Ñ  Ñ.×8Ñ8×HÑHØÐ0Ð1DÑEÐFÈtð Iñ ð ×Ñœ8×;Ñ;Ó;Ø×Ñ˜\Ñ*×:Ñ:Ð;PÐY^Ð:Ñ_æà!ŸY™Yñ ,;õâ+:Ñ'�C˜ ð �S�E˜¨ xÐ/FÀvÀhÐNhÓiÙ+:óó
Ðð ˜uŸ™×7Ñ7Ð8ð 9XØXjÐWkÐklðnð 	ô 	�Š�cÔØÐùòc Mùó@ %kùôNs   Ë7
c4Ìc4Ú(c9âc?T)Úweights_onlyc                ó2   • [         R                  " USU 0UD6$ )z|Call torch.load and handle weights_only.

Defaults to weights_only=True to anticipate upcoming switch on the PyTorch side.

rH  )r   Úload)rH  ÚargsÚkwargss      r"   Ú
torch_loadrM  `  s   € ô �:Š:�tÐA¨,ÐA¸&ÑAÐAr$   c                ó.  ^• TR                  SS5      b#  [        R                  R                  U TS   5      OU nUc
  [	        5       nSU4S jjnST;  a  [        5       TS'   [        R                  R                  [        R                  R                  U[        5      5      (       a(  [        R                  R                  U[        5      nSnGO=[        R                  R                  [        R                  R                  U[        5      5      (       a'  [        R                  R                  U[        5      nSnOÐ[        R                  R                  (       a*  U" SS9nTR                  SS5         [        X4SS0TD6nSnO‡TR                  S	S5      n	U	c  TR                  S
S5      n	U" SS9n[        U UTR                  SS5      TR                  SS5      U	S9n
U
nU
(       a  [        U [        40 TD6nO [        U [        40 TD6nU(       aN  [%        [&        R(                  S5      (       a%  U[&        R*                  " S5      :X  a  [-        USS9nO([-        XaS9nO[/        U[&        R*                  " U5      S9nU(       d  UnU$ 0 nUR1                  5        Hœ  u  pÞUR3                  S5      (       a  SnO$UR3                  S5      (       a  SnO[#        S5      eUR5                  U5      nUR1                  5        H+  u  nn[6        R8                  " UUU5      u  nnUS:”  d  M)  Un  O   U U 3nXìU'   Mž     U$ ! [         a    U" SS9n[        X4SS0TD6nSn GNUf = f! [          a$    [#        SU  SU  S[         S[         SU  S35      ef = f)a  
A helper method to load the PEFT weights from the HuggingFace Hub or locally

Args:
    model_id (`str`):
        The local path to the adapter weights or the name of the adapter to load from the HuggingFace Hub.
    device (`str`):
        The device to load the weights onto.
    key_mapping (dict, *optional*, defaults to None)
        Extra mapping of PEFT `state_dict` keys applied before loading the `state_dict`. When this mapping is
        applied, the PEFT-specific `"base_model.model"` prefix is removed beforehand and the adapter name (e.g.
        `"default"`) is not inserted yet. Only pass this argument if you know what you're doing.
    hf_hub_download_kwargs (`dict`):
        Additional arguments to pass to the `hf_hub_download` method when loading from the HuggingFace Hub.
Ú	subfolderNTc                óš   >• U (       a  [         O[        nTR                  SS 5      b#  [        R                  R                  TS   U5      $ U$ )NrO  )r   r   Úgetr½   r¾   rÀ   )Úuse_safetensorsÚweights_nameÚhf_hub_download_kwargss     €r"   Úget_hub_filenameÚ+load_peft_weights.<locals>.get_hub_filename„  sK   ø€ Þ3BÕ/Ìˆð &×)Ñ)¨+°tÓ<ÑHô �G‰G�L‰LÐ/°Ñ<¸lÓKð	
ð ð	
r$   Ú
user_agentF)rR  Úlocal_files_onlyÚtokenÚuse_auth_tokenÚrevisionÚ	repo_type)Úrepo_idÚfilenamer[  r\  rY  zCan't find weights for z in z8 or in the Hugging Face Hub. Please check that the file z or z is present at rI   ÚmpsÚcpurõ   )Úmap_locationr;   r:   z»An error occurred while trying to load a PEFT state_dict with key_mapping. This should not happen. Please open an issue on https://github.com/huggingface/peft/issues and report the error.r   )T)rQ  r½   r¾   rÀ   r   r   r¿   r   r   Úhuggingface_hubÚ	constantsÚHF_HUB_OFFLINEr)  r   r	   r   r   r¬   r   r   Úbackendsrö   Úsafe_load_filerM  r“   r>   rƒ   rm   Úsubn)rÙ   rö   Úkey_mappingrT  r¾   rU  r^  rR  Úhub_filenamerY  Úhas_remote_safetensors_fileÚadapters_weightsÚremapped_adapters_weightsr…   rê   rA   rŠ   ÚreplacementÚkey_newÚ	n_replaceÚkey_with_prefixs      `                 r"   Úload_peft_weightsrq  i  sƒ  ø€ ð( "×%Ñ% k°4Ó8ÑDô 	�‰�‰�XÐ5°kÑBÔCàð 	ð �~Ü“ˆ÷
ð Ð1Ó1Ü/>Ó/@Ð˜|Ñ,ä	‡w�w‡~�~”b—g‘g—l‘l 4Ô)AÓB×CÑCÜ—7‘7—<‘< Ô&>Ó?ˆØŠÜ	�‰�‰œŸ™Ÿ™ T¬<Ó8×	9Ñ	9Ü—7‘7—<‘< ¤lÓ3ˆØ‰Ü	×	"Ñ	"×	1×	1á'¸Ñ=ˆØ×"Ñ"Ð#5°tÔ<ð	$Ü& xÑoÐPTÐoÐXnÑoˆHØ"‰Oð '×*Ñ*¨7°DÓ9ˆØ‰=Ø*×.Ñ.Ð/?ÀÓFˆEá'¸Ñ=ˆÜ&1ØØ!Ø+×/Ñ/°
¸DÓAØ,×0Ñ0°¸dÓCØñ'
Ð#ð 6ˆæ&ä&ØÜ(ñð )ñ‰HðÜ*¨8´\Ñ\ÐE[Ñ\�ö Ü”5—>‘> 5×)Ñ)¨v¼¿ºÀeÓ9LÓ/LÜ-¨h¸uÑEÑä-¨hÑFÑä% h¼U¿\º\È&Ó=QÑRÐæØ$4Ð!ð4 %Ð$ð- %'Ð!Ø(×.Ñ.Ö0‰HˆCØ�~‰~Ð1×2Ñ2Ø,‘Ø—‘ ×.Ñ.Ø&‘ä ðwóð ð
 ×"Ñ" 6Ó*ˆCØ(3×(9Ñ(9Ö(;Ñ$�˜Ü%'§W¢W¨W°kÀ3Ó%GÑ"�˜à˜q•=Ø!�CÙñ )<ð "( ¨¨Ð.ˆOØ9< oÓ6ñ' 1ð* %Ð$øôQ 'ó 	$ñ ,¸EÑBˆLÜ& xÑoÐPTÐoÐXnÑoˆHØ#‹Oð	$ûô> &ó Ü Ø-¨h¨Z°t¸H¸:ð F2Ü2>°¸tÔD\ÐC]Ð]lÐmuÐlvÐvwðyóð ðús   Å5L? Ç<M& Ì? M#Í"M#Í&.N)ÚreturnzTpInfo | None)NÚdefaultFrv   )F)r(   ztorch.nn.Modulerã   údict[str, torch.Tensor]rä   Úboolrr  zRtuple[dict[str, torch.Tensor], list[tuple[str, tuple[int, ...], tuple[int, ...]]]])rŽ   rt  r‰   r»   ré   r»   rr  rt  )rs  FF)rä   ru  r3  ru  rr  r   )NN)rÙ   r»   rö   zOptional[str]rh  zOptional[dict[str, str]]rr  Údict)3Ú
__future__r   rù   r½   r¤   rm   r¦   Úcollectionsr   Útypingr   rb  r   r   r   Úhuggingface_hub.errorsr   r	   Úsafetensors.torchr
   rf  Útransformers.utilsr   Úpeft.import_utilsr   Úpeft.mappingr   rc  r   Úintegrationsr   Úotherr   r   r   r   r   r   r   Ú
peft_typesr   r#   r,   r5   rÝ   rç   rì   r  rG  rM  rq  r  r$   r"   Ú<module>r‚     s6  ðõ #ã Û 	Û Û 	Û Ý "Ý ã Û ß 8ß NÝ 9Ý .å 3Ý 4å 6Ý  ÷÷ ñ õ !òpò
ôð" bhôjð\ mrð-Øð-Ø3Jð-Øeið-àWõ-ð8!Ø'ð!Ø7:ð!ØNQð!àô!ò*l"ðd Ø$)Ø#ðBð "ð	Bð
 ðBð õBðL $(õ Bð Z^ð{%Øð{%Ø(ð{%Ø>Vð{%à	ö{%r$   