PEFT documentation

Helper methods

You are viewing main version, which requires installation from source. If you'd like regular pip install, checkout the latest stable version (v0.21.0).
Hugging Face's logo
Join the Hugging Face community

and get access to the augmented documentation experience

to get started

Helper methods

PEFT를 위한 헬퍼 함수 모음입니다.

모델이 PEFT 모델인지 확인

peft.helpers.check_if_peft_model

< >

( model_name_or_path: str ) → bool

매개변수

  • model_name_or_path (str) — 확인할 모델 ID로, 로컬 또는 Hugging Face Hub에 있을 수 있습니다.

반환값

bool

모델이 PEFT 모델인 경우 True, 그렇지 않은 경우 False.

모델이 PEFT 모델인지 확인합니다.

LoraLayer 모듈에서 어댑터 스케일 임시 재조정

peft.helpers.rescale_adapter_scale

< >

( model: Modulemultiplier: float | int )

매개변수

  • model — LoraLayer 모듈의 스케일링을 조정할 대상이 포함된 모델.
  • multiplier (float 또는 int) — scaling 속성을 다시 스케일링하는 배율입니다. float 또는 int 타입이어야 합니다.

Raises

ValueError

  • ValueError — 모델에 LoraLayer 인스턴스가 하나도 없는 경우, 이는 모델이 스케일링을 지원하지 않음을 나타냅니다.

모델에서 LoRA 어댑터의 스케일링을 일시적으로 재조정하기 위한 컨텍스트 매니저입니다.

컨텍스트 매니저가 종료되면 원래의 스케일링 값이 복원됩니다. 이 컨텍스트 매니저는 LoRA 어댑터를 직접 로드한 transformers 및 diffusers 모델과 함께 작동합니다.

LoRA의 경우, 이 컨텍스트 매니저를 [0, 1] 범위의 배율과 함께 적용하는 것은 wise-ft를 적용하는 것과 엄밀히 동일합니다(자세한 내용은 #1940 참조). 파인튜닝에 사용된 학습 데이터와 추론 시 사용된 테스트 데이터 사이에 분포 이동이 있는 경우, 모델의 성능을 향상시킬 수 있습니다.

Warning: Apple의 PyTorch용 MPS 백엔드를 사용할 때, 스케일이 완전히 복원되기 전에 컨텍스트를 종료한 후 짧은 sleep 시간을 추가해야 한다는 보고가 있습니다.

예:

>>> model = ModelWithLoraLayer()
>>> multiplier = 0.5
>>> with rescale_adapter_scale(model, multiplier):
...     outputs = model(**inputs)  # Perform operations with the scaled model
>>> outputs = model(**inputs)  # The original scaling values are restored here

LoRA 레이어의 forward 메서드에서 입력 dtype 캐스팅을 비활성화하는 컨텍스트 매니저

peft.helpers.disable_input_dtype_casting

< >

( model: Moduleactive: bool = True )

매개변수

  • model (nn.Module) — 입력 dtype 캐스팅을 조정할 PEFT 모듈을 포함하는 모델.
  • active (bool) — 컨텍스트 매니저가 활성 상태인지(default) 비활성 상태인지를 나타냅니다.

Context manager은 입력의 dtype을 가중치의 dtype으로 캐스팅하는 것을 비활성화합니다.

DoRA 캐싱을 활성화하는 컨텍스트 매니저(추론 시 더 빠르지만 더 많은 메모리가 필요함)

class peft.helpers.DoraCaching

< >

( enabled: bool = True )

DoRA 추론의 속도를 향상시키되 메모리를 대가로 하는 DoRA 캐싱을 활성화하는 컨텍스트 매니저입니다.

활성 캐싱이 사용되면, 물질화된 LoRA 가중치(B @ A)와 가중치 노름(기본 가중치 + LoRA 가중치)이 캐시됩니다.

캐싱 컨텍스트 내부에서도 모델이 학습 모드에 있으면 캐싱이 비활성화됩니다. 모델이 학습 모드로 전환되면 캐시가 삭제됩니다.

예:

>>> from peft.helpers import DoraCaching

>>> model.eval()  # put in eval model for caching to work

>>> with DoraCaching():  # use as a context manager
...     output = model(inputs)

>>> dora_caching = DoraCaching()
>>> dora_caching(enabled=True)  # permanently enable caching
>>> output = model(inputs)
>>> dora_caching(enabled=False)  # permanently disable caching
>>> output = model(inputs)

KappaTune 대상 선택

KappaTuneSelector와 find_kappa_target_modules는 KappaTune 논문에서 제시한 일반적인 대상 선택 과정을 구현합니다.

이 메서드는 더 높은 유연성(더 높은 출력 미분 엔트로피)과 더 낮은 전문성(특정 입력 방향에 대한 더 낮은 민감도)을 가진 모듈을 식별합니다.

이러한 특성으로 인해 선택된 모듈은 LoRA, DoRA, LoHa, AdaLoRA를 포함하여 학습 가능한 매개변수를 추가하는 모든 적응 방법, 심지어 원래 가중치의 직접적인 미세 조정에서도 재앙적 망각을 완화하는 데 적합한 후보가 됩니다.

class peft.helpers.KappaTuneSelector

< >

( model: Modulemax_dim_size_to_analyze: int = 16384moe_param_suffixes: tuple[str, ...] | None = Noneshow_progress: bool = True )

모듈별/파라미터별 조건수를 계산하고 최적의 LoRA 타겟을 반환하는 경량 유틸리티입니다.

지원:

  • 클래식한 nn.Linear 모듈(LoraConfig의 target_modules)
  • Llama-4, Qwen2_MoE, Qwen3_MoE, Mixtral, OLMoE 및 유사한 모델에서 사용되는 3차원 nn.Parameter로 저장된 최신 융합 MoE 가중치(gate_up_proj / down_proj, gate_proj / up_proj 등)입니다. 이들은 target_parameters를 통해 반환됩니다.

참고:

  • Condition-number 계산에는 SVD 실행이 필요하며, 매우 큰 모델의 경우 몇 분 정도 소요될 수 있습니다. show_progress를 통해 진행 표시줄을 표시하거나 비활성화할 수 있습니다.

peft.find_kappa_target_modules

< >

( model: Moduletop_p: float = 0.2max_dim_size_to_analyze: int = 16384moe_param_suffixes: tuple[str, ...] | None = Noneshow_progress: bool = True )

매개변수

  • model (nn.Module) — 조건수를 분석할 가중치를 가진 기본 모델.
  • top_p (float, optional) — 가장 낮은 조건수를 가진 상위 비율의 후보 모듈/파라미터를 선택합니다.
  • max_dim_size_to_analyze (int, optional) — SVD를 통해 분석할 최대 행렬 차원의 상한입니다. 기본값은 16384입니다.
  • moe_param_suffixes (Optional[tuple[str, …]], optional) — target_parameters를 통해 반환해야 하는 융합 MoE 텐서를 식별하는 데 사용되는 매개변수 이름 접미사입니다. None인 경우, 적절한 기본값이 사용됩니다.
  • show_progress (bool, optional) — 후보 텐서/모듈에 대해 조건수(SVD 기반)를 계산하는 동안 진행 표시줄을 표시할지 여부입니다. CI 또는 기타 비대화형 환경에서는 비활성화하세요. 기본값은 True입니다.

KappaTune 대상 선택을 위한 한 줄 편의 함수입니다. target_modules와 target_parameters를 모두 반환합니다.

Update on GitHub