PEFT documentation
Yardımcı yöntemler
Yardımcı yöntemler
PEFT için yardımcı işlevler koleksiyonu.
Bir modelin PEFT modeli olup olmadığını kontrol etme
peft.helpers.check_if_peft_model
< source >( model_name_or_path: str ) → bool
Modelin bir PEFT modeli olup olmadığını kontrol edin.
LoraLayer Modüllerinde Adapter Ölçeğinin Geçici Olarak Yeniden Ölçeklendirilmesi
peft.helpers.rescale_adapter_scale
< source >( model: Modulemultiplier: float | int )
Parametreler
- model — Ölçeklemesi ayarlanacak
LoraLayermodüllerini içeren model. - multiplier (float veya int) —
scalingözniteliğini yeniden ölçekleyen çarpan. Tipi float veya int olmalıdır.
Yükseltilen
ValueError
ValueError— Model herhangi birLoraLayerörneği içermiyorsa, modelin ölçeklendirmeyi desteklemediğini gösterir.
Bir modeldeki LoRA adaptörünün ölçeklemesini geçici olarak yeniden ölçeklemek için bağlam yöneticisi.
Bağlam yöneticisi (context manager) çıktığında orijinal ölçekleme değerleri geri yüklenir. Bu bağlam yöneticisi, LoRA adaptörlerini doğrudan yüklemiş olan transformers ve diffusers modelleriyle çalışır.
LoRA için, bu bağlam yöneticisini [0, 1] aralığında bir çarpanla uygulamak, wise-ft uygulamakla (detaylar için #1940 adresine bakın) kesin olarak eşdeğerdir. İnce ayar için kullanılan eğitim verileri ile çıkarım sırasında kullanılan test verileri arasında bir dağılım kayması varsa, modelin performansını iyileştirebilir.
Uyarı: PyTorch için Apple'ın MPS arka ucunun kullanıldığı durumlarda, ölçeklerin tamamen geri yüklenmeden önce bağlamdan çıkıldıktan sonra kısa bir uyku süresi eklenmesi gerektiği bildirilmiştir.
LoRA katmanlarının forward metodunda girdi dtype dönüşümünü devre dışı bırakmak için bağlam yöneticisi
peft.helpers.disable_input_dtype_casting
< source >( model: Moduleactive: bool = True )
Bağlam yöneticisi, girdi veri türünün ağırlığın veri türüne dönüştürülmesini devre dışı bırakır.
DoRA önbellekleme özelliğini etkinleştirmek için bağlam yöneticisi (çalışma zamanında daha hızlıdır ancak daha fazla bellek gerektirir)
DoRA önbellekleme özelliğini etkinleştiren bağlam yöneticisi; bu özellik, bellek maliyeti karşılığında DoRA çıkarım hızını artırır.
Aktif önbellekleme ile somutlaştırılmış LoRA ağırlığı (B @ A) ve ağırlık normu (temel ağırlık + LoRA ağırlığı) önbelleğe alınır.
Önbellekleme bağlamı içinde bile, model eğitim modundaysa önbellekleme devre dışı bırakılır. Model eğitim moduna geçtiğinde önbellek temizlenir.
Örnek:
>>> 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 hedef seçimi
KappaTuneSelector ve find_kappa_target_modules, KappaTune makalesinden genel bir hedef seçme süreci uygular.
Yöntem, daha yüksek esnekliğe (daha yüksek çıktı diferansiyel entropisine) ve daha düşük uzmanlaşmaya (belirli giriş yönlerine karşı daha düşük duyarlılığa) sahip modülleri belirler.
Bu özellikler, seçilen modülleri, LoRA, DoRA, LoHa, AdaLoRA ve hatta orijinal ağırlıkların doğrudan ince ayarı dahil olmak üzere eğitilebilir parametreler ekleyen herhangi bir uyarlama yönteminde katastrofik unutmayı azaltmak için iyi adaylar haline getirir.
sınıf peft.helpers.KappaTuneSelector
< source >( model: Modulemax_dim_size_to_analyze: int = 16384moe_param_suffixes: tuple[str, ...] | None = Noneshow_progress: bool = True )
Modül başına / parametre başına koşul sayılarını hesaplamak ve en iyi LoRA hedeflerini döndürmek için hafif bir yardımcı araç.
Destekler:
- Klasik nn.Linear modülleri (LoraConfig içindeki target_modules)
- Llama-4, Qwen2_MoE, Qwen3_MoE, Mixtral, OLMoE ve benzeri modellerde kullanılan, 3B nn.Parameter olarak saklanan modern füzyonlu MoE ağırlıkları (gate_up_proj / down_proj, gate_proj / up_proj vb.). Bunlar target_parameters üzerinden döndürülür.
Notlar:
- Köşegen sayısı (condition number) hesabı SVD çalıştırılmasını gerektirir ve çok büyük modellerde birkaç dakika sürebilir. İlerleme çubuğu
show_progressparametresiyle gösterilebilir veya devre dışı bırakılabilir.
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 )
Parametreler
- model (nn.Module) — Köşegen sayıları için ağırlıkları analiz edilecek temel model.
- top_p (float, optional) — En düşük koşul sayılarına sahip aday modül/parametrelerin üst kesrini seçin.
- max_dim_size_to_analyze (int, optional) — SVD ile analiz edilen maksimum matris boyutunun üst sınırı. Varsayılan değer 16384'tür.
- moe_param_suffixes (Optional[tuple[str, …]], optional) —
target_parametersüzerinden döndürülmesi gereken füzyonlu MoE tensörlerini tanımlamak için kullanılan parametre adı son ekleri. None ise, mantıklı varsayılanlar kullanılır. - show_progress (bool, optional) — Aday tensör/modüller üzerinde koşul sayılarının (SVD tabanlı) hesaplanması sırasında ilerleme çubuğu gösterilip gösterilmeyeceğini belirtir. CI veya diğer etkileşimli olmayan ortamlarda devre dışı bırakın. Varsayılan değer True'dur.
KappaTune hedef seçimi için tek satırlık pratik işlev. Hem target_modules hem de target_parameters değerlerini döndürür.