ó
    I½hjZ$  ã                  óp  • % S SK Jr  S SKrS SK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SKJrJrJrJrJrJrJr  SSKJr  SS	KJr  \\\\\\S
.rS\S'   S rS r " S S5      r  " S S\ 5      r! " S S\ 5      r" " S S\ 5      r# " S S\ 5      r$ " S S\ 5      r% " S S\ 5      r& " S S\ 5      r'g)é    )ÚannotationsN)ÚOptional)Ú	AutoModelÚAutoModelForCausalLMÚAutoModelForQuestionAnsweringÚAutoModelForSeq2SeqLMÚ"AutoModelForSequenceClassificationÚAutoModelForTokenClassificationÚAutoTokenizeré   )Ú
PeftConfig)Ú	PeftModelÚPeftModelForCausalLMÚPeftModelForFeatureExtractionÚPeftModelForQuestionAnsweringÚPeftModelForSeq2SeqLMÚ"PeftModelForSequenceClassificationÚPeftModelForTokenClassification)ÚTOKENIZER_CONFIG_NAME)Úcheck_file_exists_on_hf_hub)ÚSEQ_CLSÚSEQ_2_SEQ_LMÚ	CAUSAL_LMÚ	TOKEN_CLSÚQUESTION_ANSÚFEATURE_EXTRACTIONzdict[str, type[PeftModel]]Ú MODEL_TYPE_TO_PEFT_MODEL_MAPPINGc                 ó
   • / SQ$ )N)Ú	diffusersÚlerobotzmegatron-coreÚtransformers© r"   ó    Ú—C:\Users\johnn\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.13_qbz5n2kfra8p0\LocalCache\local-packages\Python313\site-packages\peft/auto.pyÚget_default_import_allowlistr%   7   s   € òð r#   c                ó<   ^• TU ;   a  g[        U4S jU  5       5      $ )ar  Ensure that the parent_name is in the allowlist or, at least, the prefix (e.g., "transformers.").
This is done because PEFT uses importlib.import_module on adapter config values. To prevent PEFT being used as a
means to execute code by importing a potentially malicious package (i.e. as a means to execute planted code), we
limit the possible packages to a known value.
Tc              3  óL   >#   • U  H  nTR                  U S 35      v •  M     g7f)Ú.N)Ú
startswith)Ú.0ÚallowedÚparent_names     €r$   Ú	<genexpr>Ú)check_import_allowlist.<locals>.<genexpr>I   s%   øé € ÐNÂI¸ˆ{×%Ñ%¨¨	° m×4Ð4ÂIùs   ƒ!$)Úany)Ú	allowlistr,   s    `r$   Úcheck_import_allowlistr1   @   s!   ø€ ð �iÓØäÔNÁIÓNÓNÐNr#   c                  óV   • \ rS rSrSrSrS r\     S         SS jj5       rSr	g)Ú_BaseAutoPeftModeléL   Nc                ó¢   • [        U R                  R                   SU R                  R                   SU R                  R                   S35      e)Nz+ is designed to be instantiated using the `z5.from_pretrained(pretrained_model_name_or_path)` or `z.from_config(config)` methods.)ÚEnvironmentErrorÚ	__class__Ú__name__)ÚselfÚargsÚkwargss      r$   Ú__init__Ú_BaseAutoPeftModel.__init__P   sR   € äØ�~‰~×&Ñ&Ð'ð (ØŸ.™.×1Ñ1Ð2ð 3Ø—‘×'Ñ'Ð(Ð(FðHó
ð 	
r#   c           	     ój  • [         R                  " U4SU0UD6nUR                  n	UR                  n
Uc
  [	        5       n[        USS5      nU R                  b  U R                  nOU R                  c  Ub  [        S5      eUb^  [        U   nU R                  R                  UR                  :w  a0  [        SUR                   SU R                  R                   S35      eOyUck  [        USS5      b]  [        USS5      nUS	   nUS
   n[        UU5      (       d  [        SU SU S35      e[        R                  " U5      n[        UU5      nO[        S5      eWR                  " U	4SU
0UD6nUR                  SS5      nUc  UR                  SS5      nSn[        R                   R#                  [        R                   R%                  U[&        5      5      (       a  SnO![)        U[&        UUR                  SS5      US9nU(       aˆ  [+        US5      (       aw  [,        R                  " UUUUR                  SS5      S9nUR/                  5       R0                  R2                  S   n[5        U5      U:”  a  UR7                  [5        U5      5        U R                  R                  " UU4UUUUS.UD6$ )a-  
A wrapper around all the preprocessing steps a user needs to perform in order to load a PEFT model. The kwargs
are passed along to `PeftConfig` that automatically takes care of filtering the kwargs of the Hub methods and
the config object init.

The parameters are equivalent to the ones of [`PeftModel.from_pretrained`]. Differences are documented below.

Args:
    import_allowlist (`list[str]`, *optional*, defaults to `{get_default_import_allowlist()}`)
        AutoPeftModel will attempt to instantiate the base model that is configured in the adapter config.
        Since this operation needs to potentially import other packages, this allowlist is a safe-guard to
        prevent importing malicious packages. You may need to specify your package's import name here if it is
        not in the defaults.
ÚrevisionNÚ	task_typezšCannot use `AutoPeftModel` with a task type, please use a specific class for your task type. (e.g. `AutoPeftModelForCausalLM` for `task_type='CAUSAL_LM'`)zExpected target PEFT class: z, but you have asked for: zE make sure that you are loading the correct model for your task type.Úauto_mappingÚbase_model_classÚparent_libraryz"The auto mapping wants to import 'zy' which is not in the import allowlist. If you are sure that importing this library is safe, specify `import_allowlist=['z']` in `from_pretrained()`.zxCannot infer the auto class from the config, please make sure that you are loading the correct model for your task type.ÚtokenÚuse_auth_tokenFTÚ	repo_type)Úrepo_idÚfilenamer?   rF   rD   Úget_input_embeddingsÚtrust_remote_code)r?   rD   rJ   r   )Úadapter_nameÚis_trainableÚconfigr?   )r   Úfrom_pretrainedÚbase_model_name_or_pathr?   r%   ÚgetattrÚ_target_classÚ
ValueErrorr   Ú_target_peft_classr8   r1   Ú	importlibÚimport_moduleÚgetÚosÚpathÚexistsÚjoinr   r   Úhasattrr   rI   ÚweightÚshapeÚlenÚresize_token_embeddings)ÚclsÚpretrained_model_name_or_pathrK   rL   rM   r?   Úimport_allowlistr;   Úpeft_configÚbase_model_pathÚbase_model_revisionr@   Útarget_classÚexpected_target_classrA   rB   Úparent_library_namerC   Ú
base_modelrD   Útokenizer_existsÚ	tokenizerÚembedding_sizes                          r$   rN   Ú"_BaseAutoPeftModel.from_pretrainedX   s	  € ô2 !×0Ò0Ð1NÑlÐYaÐlÐekÑlˆØ%×=Ñ=ˆØ)×2Ñ2ÐàÑ#Ü;Ó=Ðä˜K¨°dÓ;ˆ	à×ÑÑ(Ø×,Ñ,‰LØ×ÑÑ&¨9Ñ+@äð móð ð Ñ Ü$DÀYÑ$OÐ!Ø×%Ñ%×.Ñ.Ð2G×2PÑ2PÓPÜ Ø2Ð3H×3QÑ3QÐ2RÐRlÐmp÷  nDñ  nD÷  nMñ  nMð  mNØ[ð\óð ð Qð
 Ñ¤7¨;¸ÈÓ#MÑ#YÜ" ;°ÀÓEˆLØ+Ð,>Ñ?ÐØ".Ð/?Ñ"@Ðä)Ð*:Ð<O×PÑPÜ Ø8Ð9LÐ8Mð N+à+>Ð*?Ð?Zð\óð ô '×4Ò4Ð5HÓIˆNÜ" >Ð3CÓD‰Läð Kóð ð "×1Ò1°/ÑjÐL_ÐjÐciÑjˆ
à—
‘
˜7 DÓ)ˆØ‰=Ø—J‘JÐ/°Ó6ˆEà ÐÜ�7‰7�>‰>œ"Ÿ'™'Ÿ,™,Ð'DÔF[Ó\×]Ñ]Ø#Ñä:Ø5Ü.Ø!Ø Ÿ*™* [°$Ó7Øñ Ðö ¤¨
Ð4J× KÑ KÜ%×5Ò5Ø-Ø!ØØ"(§*¡*Ð-@À%Ó"Hñ	ˆIð (×<Ñ<Ó>×EÑE×KÑKÈAÑNˆNÜ�9‹~ Ó.à×2Ñ2´3°y³>ÔBà×%Ñ%×5Ò5ØØ)ð
ð &Ø%ØØñ
ð ñ
ð 	
r#   r"   )ÚdefaultFNNN)
rK   ÚstrrL   ÚboolrM   zOptional[PeftConfig]r?   zOptional[str]rb   zOptional[list[str]])
r8   Ú
__module__Ú__qualname__Ú__firstlineno__rQ   rS   r<   ÚclassmethodrN   Ú__static_attributes__r"   r#   r$   r3   r3   L   sp   † Ø€MØÐò
ð ð &Ø"Ø'+Ø"&Ø04ði
ð ði
ð ð	i
ð
 %ði
ð  ði
ð .ôi
ó ói
r#   r3   c                  ó   • \ rS rSrSr\rSrg)ÚAutoPeftModeléÅ   Nr"   )r8   rq   rr   rs   rQ   r   rS   ru   r"   r#   r$   rw   rw   Å   s   † Ø€MØ"Ór#   rw   c                  ó   • \ rS rSr\r\rSrg)ÚAutoPeftModelForCausalLMéÊ   r"   N)	r8   rq   rr   rs   r   rQ   r   rS   ru   r"   r#   r$   rz   rz   Ê   s   † Ø(€MØ-Ór#   rz   c                  ó   • \ rS rSr\r\rSrg)ÚAutoPeftModelForSeq2SeqLMéÏ   r"   N)	r8   rq   rr   rs   r   rQ   r   rS   ru   r"   r#   r$   r}   r}   Ï   s   † Ø)€MØ.Ór#   r}   c                  ó   • \ rS rSr\r\rSrg)Ú&AutoPeftModelForSequenceClassificationéÔ   r"   N)	r8   rq   rr   rs   r	   rQ   r   rS   ru   r"   r#   r$   r€   r€   Ô   s   † Ø6€MØ;Ór#   r€   c                  ó   • \ rS rSr\r\rSrg)Ú#AutoPeftModelForTokenClassificationéÙ   r"   N)	r8   rq   rr   rs   r
   rQ   r   rS   ru   r"   r#   r$   rƒ   rƒ   Ù   s   † Ø3€MØ8Ór#   rƒ   c                  ó   • \ rS rSr\r\rSrg)Ú!AutoPeftModelForQuestionAnsweringéÞ   r"   N)	r8   rq   rr   rs   r   rQ   r   rS   ru   r"   r#   r$   r†   r†   Þ   s   † Ø1€MØ6Ór#   r†   c                  ó   • \ rS rSr\r\rSrg)Ú!AutoPeftModelForFeatureExtractionéã   r"   N)	r8   rq   rr   rs   r   rQ   r   rS   ru   r"   r#   r$   r‰   r‰   ã   s   † Ø€MØ6Ór#   r‰   )(Ú
__future__r   rT   rW   Útypingr   r!   r   r   r   r   r	   r
   r   rM   r   Ú
peft_modelr   r   r   r   r   r   r   Úutils.constantsr   Úutils.otherr   r   Ú__annotations__r%   r1   r3   rw   rz   r}   r€   rƒ   r†   r‰   r"   r#   r$   Ú<module>r‘      sÖ   ðö #ã Û 	Ý ÷÷ ñ õ ÷÷ ñ õ 3Ý 4ð 2Ø)Ø%Ø0Ø1Ø7ñ@Ð  Ð"<ó òò	O÷v
ñ v
ôr#Ð&ô #ô
.Ð1ô .ô
/Ð 2ô /ô
<Ð-?ô <ô
9Ð*<ô 9ô
7Ð(:ô 7ô
7Ð(:õ 7r#   