PEFT documentation
Helper methods
Helper methods
PEFT를 위한 헬퍼 함수 모음입니다.
모델이 PEFT 모델인지 확인
peft.helpers.check_if_peft_model
< source >( model_name_or_path: str ) → bool
모델이 PEFT 모델인지 확인합니다.
LoraLayer 모듈에서 어댑터 스케일 임시 재조정
peft.helpers.rescale_adapter_scale
< source >( model: Modulemultiplier: float | int )
모델에서 LoRA 어댑터의 스케일링을 일시적으로 재조정하기 위한 컨텍스트 매니저입니다.
컨텍스트 매니저가 종료되면 원래의 스케일링 값이 복원됩니다. 이 컨텍스트 매니저는 LoRA 어댑터를 직접 로드한 transformers 및 diffusers 모델과 함께 작동합니다.
LoRA의 경우, 이 컨텍스트 매니저를 [0, 1] 범위의 배율과 함께 적용하는 것은 wise-ft를 적용하는 것과 엄밀히 동일합니다(자세한 내용은 #1940 참조). 파인튜닝에 사용된 학습 데이터와 추론 시 사용된 테스트 데이터 사이에 분포 이동이 있는 경우, 모델의 성능을 향상시킬 수 있습니다.
Warning: Apple의 PyTorch용 MPS 백엔드를 사용할 때, 스케일이 완전히 복원되기 전에 컨텍스트를 종료한 후 짧은 sleep 시간을 추가해야 한다는 보고가 있습니다.
LoRA 레이어의 forward 메서드에서 입력 dtype 캐스팅을 비활성화하는 컨텍스트 매니저
peft.helpers.disable_input_dtype_casting
< source >( model: Moduleactive: bool = True )
Context manager은 입력의 dtype을 가중치의 dtype으로 캐스팅하는 것을 비활성화합니다.
DoRA 캐싱을 활성화하는 컨텍스트 매니저(추론 시 더 빠르지만 더 많은 메모리가 필요함)
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
< source >( 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
< source >( 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를 모두 반환합니다.