Transformers documentation

PEFT

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" or bool, optional, defaults to "auto") Whether to substitute an existing (LoRA) adapter with the newly loaded adapter in-place. This means that, instead of loading an additional adapter, this will take the existing adapter weights and replace them with the weights of the new adapter. This can be faster and more memory efficient. However, the main advantage of hotswapping is that when the model is compiled with torch.compile, loading the new adapter does not require recompilation of the model. When using hotswapping, the passed adapter_name should be the name of an already loaded adapter.

    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:

    model = AutoModel.from_pretrained(...)
    max_rank = ...  # the highest rank among all LoRAs that you want to load
    # call *before* compiling and loading the LoRA adapter
    model.enable_peft_hotswap(target_rank=max_rank)
    model.load_adapter(file_name_1, adapter_name="default")
    # optionally compile the model now
    model = torch.compile(model, ...)
    output_1 = model(...)
    # now you can hotswap the 2nd adapter, use the same name as for the 1st
    # hotswap is activated by default since enable_peft_hotswap was called
    model.load_adapter(file_name_2, adapter_name="default")
    output_2 = model(...)

    Varsayılan olarak hotswap devre dışıdır ve hotswap=True parametresinin geçirilmesini gerektirir. Önce enable_peft_hotswap çağrıldıysa, bu özellik etkinleştirilir. Bu durumda yine de hotswap=False parametresini geçirerek manuel olarak devre dışı bırakabilirsiniz.

    Hotswapping'in, burada belgelenen birkaç kısıtlamaya sahip olduğunu unutmayın: https://huggingface.co/docs/peft/main/en/package_reference/hotswap

  • adapter_kwargs (dict[str, Any], isteğe bağlı) — Adapter yapılandırmasının from_pretrained yöntemi ve find_adapter_config_file yönteminde iletilen ek anahtar kelime argümanları.

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