Transformers documentation

PEFT

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

and get access to the augmented documentation experience

to get started

PEFT

PeftAdapterMixin, Transformers ile adaptörleri yönetmek için PEFT kütüphanesinden fonksiyonlar sağlar. Bu mixin, tüm prompt-öğrenme dışı PEFT yöntemlerini (LoRA, IA3, AdaLoRA ve diğerleri) destekler. Prefix tuning yöntemleri (prompt tuning, prompt learning), bir torch modülüne enjekte edilemedikleri için desteklenmez.

sınıf transformers.integrations.PeftAdapterMixin

< >

( )

PEFT kütüphanesinde desteklenen adaptör ağırlıklarını yüklemek ve kullanmak için tüm işlevleri içeren bir sınıf. Adaptörler ve bunların transformer tabanlı bir modele enjekte edilmesi hakkında daha fazla ayrıntı için PEFT kütüphanesinin belgelerine göz atın: https://huggingface.co/docs/peft/index

Şu anda desteklenen PEFT yöntemleri, tümüyle prompt öğrenme dışı yöntemlerdir (LoRA, IA³ vb.). Prompt tuning, prompt learning gibi diğer PEFT modelleri kapsam dışıdır, çünkü bu adaptörler bir torch modülüne “enjekte edilemez”. Bu yöntemleri kullanmak için PEFT kütüphanesinin kullanım kılavuzuna başvurun.

Bu mixin ile doğru PEFT sürümü yüklüyse (>= 0.20.0), aşağıdakiler yapılabilir:

  • Yerel bir yolda veya uzak bir Hub deposunda saklanan bir adaptörü yükleyin ve modele enjekte edin
  • Modelde yeni adaptörler ekleyin ve bunları Trainer ile veya kendi yöntemlerinizle eğitin.
  • Birden çok adaptör ekleyin ve bunları iteratif olarak etkinleştirin / devre dışı bırakın
  • Modeldeki tüm adaptörleri etkinleştir / devre dışı bırak.
  • Aktif adaptörün state_dict'ini alın.

load_adapter

< >

( peft_model_id: str | None = Noneadapter_name: str | None = Nonepeft_config: dict[str, typing.Any] | None = Noneadapter_state_dict: dict[str, 'torch.Tensor'] | None = Nonelow_cpu_mem_usage: bool = Falseis_trainable: bool = Falsehotswap: typing.Union[bool, typing.Literal['auto']] = 'auto'local_files_only: bool = Falseadapter_kwargs: dict[str, typing.Any] | None = Noneload_config: typing.Optional[ForwardRef('LoadStateDictConfig')] = None**kwargs )

Parametreler

  • peft_model_id (str, isteğe bağlı) — Hub'da aranacak modelin tanımlayıcısı veya kaydedilmiş adaptör yapılandırma dosyasının ve adaptör ağırlıklarının yerel yolu.
  • adapter_name (str, isteğe bağlı) — Kullanılacak adaptör adı. Ayarlanmazsa, “default” adı kullanılır.
  • load_config (LoadStateDictConfig, isteğe bağlı) — Adaptör ağırlıklarını çekerken yeniden kullanılacak bir yükleme yapılandırması, genellikle from_pretrained üzerinden.
  • kwargs (dict[str, Any], isteğe bağlı) — Anahtar kelime argümanları olarak geçirilen ek LoadStateDictConfig alanları.
  • peft_config (dict[str, Any], isteğe bağlı) — Eklenecek adaptörün yapılandırması; desteklenen adaptörler, tüm prompt öğrenme dışı yapılandırmalardır (LoRA, IA³ vb). Bu argüman, kullanıcılar PEFT durum sözlüklerini doğrudan geçirdiğinde kullanılır.
  • adapter_state_dict (dict[str, torch.Tensor], isteğe bağlı) — Yüklenmesi gereken adaptörün state dict'i. Bu argüman, kullanıcıların PEFT state dict'lerini doğrudan geçirdiği durumlarda kullanılır.
  • low_cpu_mem_usage (bool, isteğe bağlı, varsayılan False) — PEFT adaptörünün yüklenmesi sırasında bellek kullanımını azaltır. Bu, yükleme sürecini de hızlandırmalıdır.
  • is_trainable (bool, isteğe bağlı, varsayılan False) — Uyarlamanın (adapter) eğitilebilir olup olmadığı. False ise, uyarlama dondurulur ve yalnızca çıkarım (inference) için kullanılabilir.
  • hotswap — ("auto" veya bool, isteğe bağlı, varsayılanı "auto") Mevcut (LoRA) adaptörün, yeni yüklenen adaptörle yerinde değiştirilip değiştirilmeyeceğini belirtir. Bu, ek bir adaptör yüklemek yerine mevcut adaptör ağırlıklarının yeni adaptörün ağırlıklarıyla değiştirilmesi anlamına gelir. Bu işlem daha hızlı ve bellek açısından daha verimli olabilir. Ancak hotswap'in ana avantajı, model `torch.compile` ile derlendiğinde yeni adaptörün yüklenmesinin modelin yeniden derlenmesini gerektirmemesidir. Hotswap kullanıldığında, geçirilen adapter_name zaten yüklenmiş bir adaptörün adı olmalıdır.

    Yeni ve eski adaptörlerin farklı rütbelere ve/veya LoRA alfa değerlerine (yani ölçeklemeye) sahip olması durumunda, adaptörü yüklemekten önce ek bir yöntemi çağırmalısınız:

Dosyadan veya uzak Hub klasöründen adaptör ağırlıklarını yükler. Adaptörler ve PEFT yöntemleri hakkında bilgi sahibi değilseniz, bunlar hakkında daha fazla bilgi edinmek için PEFT resmi dokümantasyonunu okumaya sizi davet ediyoruz: https://huggingface.co/docs/peft

Adaptör ağırlıklarını yüklemek için PEFT'nin bir arka uç olarak kurulu olması gerekir.

add_adapter

< >

( adapter_configadapter_name: str | None = None )

Parametreler

  • adapter_config (~peft.PeftConfig) — Eklenecek adaptörün yapılandırması; desteklenen adaptörler, prompt öğrenme dışı yöntemlerdir (LoRA, IA³ vb.).
  • adapter_name (str, isteğe bağlı, varsayılan "default") — Eklenecek adaptörün adı. Bir ad geçirilmezse, adaptöre varsayılan bir ad atanır.

Eğer adaptörler ve PEFT yöntemleriyle aşina değilseniz, bunlar hakkında daha fazla bilgi edinmek için PEFT resmi dokümantasyonunu okumaya davet ediyoruz: https://huggingface.co/docs/peft

Eğitim amacıyla mevcut modele yeni bir adaptör ekler. Adaptör adı geçirilmezse, PEFT kütüphanesinin sözleşmesine uyulması için adaptöre varsayılan bir ad atanır (PEFT'te varsayılan adaptör adı olarak “default” kullanılır).

Yeni eklenen adaptörün otomatik olarak etkinleştirilmediğini unutmayın. Etkinleştirmek için model.set_adapter kullanın.

set_adapter

< >

( adapter_name: list[str] | str )

Parametreler

  • adapter_name (Union[list[str], str]) — Ayarlanacak adaptörün adı. Birden fazla adaptör ayarlamak için bir dizi dize de olabilir.

Eğer adaptörler ve PEFT yöntemleriyle aşina değilseniz, bunlar hakkında daha fazla bilgi edinmek için PEFT resmi dokümantasyonunu okumaya davet ediyoruz: https://huggingface.co/docs/peft

Belirli bir adaptörü, modelin o adaptörü kullanmasını zorlayarak ve diğer adaptörleri devre dışı bırakarak ayarlar.

disable_adapters

< >

( )

Eğer adaptörler ve PEFT yöntemleriyle aşina değilseniz, bunlar hakkında daha fazla bilgi edinmek için PEFT resmi dokümantasyonunu okumaya davet ediyoruz: https://huggingface.co/docs/peft

Modelde bağlı olan tüm adaptörleri devre dışı bırakır. Bu, yalnızca temel modelle çıkarım yapılmasına yol açar.

enable_adapters

< >

( )

Eğer adaptörler ve PEFT yöntemleriyle aşina değilseniz, bunlar hakkında daha fazla bilgi edinmek için PEFT resmi dokümantasyonunu okumaya davet ediyoruz: https://huggingface.co/docs/peft

Modelde bağlı olan adaptörleri etkinleştirin.

enable_peft_hotswap

< >

( target_rank: int = 128check_compiled: typing.Literal['error', 'warn', 'ignore'] = 'error' )

Parametreler

  • target_rank (int, isteğe bağlı, varsayılan 128) — Yüklenecek tüm adaptörler arasındaki en yüksek rank.
  • check_compiled (str, isteğe bağlı, varsayılan olarak "error") — Modelin zaten derlenmiş olduğu durumu nasıl ele alınacağı, bu durumun genellikle kaçınılması gerekir. Seçenekler:
    • “error” (varsayılan): bir hata fırlat
    • “warn”: bir uyarı yayınla
    • “ignore”: hiçbir şey yapma

Farklı rütlere sahip PEFT adaptörlerinin sıcak değiştirilmesine olanak tanır veya model derlenmişse yeniden derlemeyi tetiklemeden bu işlemi yapmanızı sağlar.

Şu anda, hotswapping yalnızca LoRA için desteklenmektedir.

Bu yöntemin çağrılması yalnızca adaptörlerin sıcak değiştirilmesi sırasında ve model derlenmişse veya yüklenen adaptörlerin dereceleri farklıysa gereklidir. Dereceler tamamen aynıysa ve model derlenmemişse, bu yöntemi önce çağırmadan sıcak değiştirme işlemi çalışır.

active_adapters

< >

( )

Eğer adaptörler ve PEFT yöntemleriyle aşina değilseniz, bunlar hakkında daha fazla bilgi edinmek için PEFT resmi dokümantasyonunu okumaya davet ediyoruz: https://huggingface.co/docs/peft

Modelin mevcut etkin adaptörlerini alır. Çoklu adaptör çıkarımı (birden fazla adaptörün çıkarım için birleştirilmesi) durumunda, kullanıcıların bunlara göre işlem yapabilmeleri için tüm etkin adaptörlerin listesini döndürür.

Daha önceki PEFT sürümlerinde (çoklu adaptör çıkarımını desteklemeyenler) module.active_adapter tek bir dize döndürür.

get_adapter_state_dict

< >

( adapter_name: str | None = Nonestate_dict: dict | None = None )

Parametreler

  • adapter_name (str, isteğe bağlı) — State dict'in alınacağı adaptörün adı. Bir ad geçirilmezse, etkin adaptör kullanılır.
  • state_dict (torch.Tensor içeren iç içe sözlük, isteğe bağlı) — Modelin durum sözlüğü. Varsayılan olarak self.state_dict() kullanılır ancak modelin durum sözlüğünü geri yüklerken özel önlemler alınması gerekiyorsa (model paralelliği kullanılırken olduğu gibi) kullanılabilir.

Eğer adaptörler ve PEFT yöntemleriyle aşina değilseniz, bunlar hakkında daha fazla bilgi edinmek için PEFT resmi dokümantasyonunu okumaya davet ediyoruz: https://huggingface.co/docs/peft

Belirtilen adapter_name adaptörünün yalnızca ağırlık tensörlerini içermesi gereken adaptör durum sözlüğünü (state dict) alır. adapter_name geçirilmezse, etkin adaptör kullanılır.

delete_adapter

< >

( adapter_names: list[str] | str )

Parametreler

  • adapter_names (Union[list[str], str]) — Silinecek adaptör(ler)in adı(ları).

Alt modelden bir PEFT adaptörünü siler.

Update on GitHub