Buckets:

mishig's picture
|
download
raw
14.9 kB

PEFT

Diffusers, PeftAdapterMixin sınıfı ile PEFT kütüphanesi aracılığıyla LoRA gibi adaptörlerin yüklenmesini destekler. Bu sayede Diffusers'taki UNet2DConditionModel, SD3Transformer2DModel gibi modelleme sınıfları bir adaptörle çalışabilir.

Diffusers'ta çıkarım için PEFT'yi nasıl kullanacağınızın genel bir bakış için Inference with PEFT eğitimine başvurun.

PeftAdapterMixin[[diffusers.loaders.PeftAdapterMixin]]

diffusers.loaders.PeftAdapterMixin[[diffusers.loaders.PeftAdapterMixin]]

diffusers.loaders.PeftAdapterMixin()

Kaynak

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 bir temel modele enjekte edilmesi hakkında daha fazla ayrıntı için PEFT belgelerini inceleyin.

PEFT'nin en son sürümünü yükleyin ve bu karışımı (mixin) şunları yapmak için kullanın:

  • Modelde yeni adaptörler ekleyin.
  • 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örlerin listesini alın.

active_adapters[[diffusers.loaders.PeftAdapterMixin.active_adapters]]

active_adapters()

Kaynak

Modelin aktif adaptörlerinin mevcut listesini alır.

Adaptörler ve PEFT yöntemleri hakkında bilgi sahibi değilseniz, bunlar hakkında daha fazla bilgi edinmek için PEFT belgelendirmesini okumaya davet ediyoruz.

add_adapter[[diffusers.loaders.PeftAdapterMixin.add_adapter]]

add_adapter(adapter_config, adapter_name: str = 'default')

Kaynak

Parametreler:

adapter_config ([~peft.PeftConfig]) : Eklenecek adaptörün yapılandırması; desteklenen adaptörler, non-prefix tuning ve adaption prompt yöntemleridir.

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ğitim için mevcut modele yeni bir adaptör ekler. Adaptör adı geçirilmezse, PEFT kütüphanesinin sözleşmesine uygun olarak adaptöre varsayılan bir ad atanır.

Adaptörler ve PEFT yöntemleri hakkında bilgi sahibi değilseniz, bunlar hakkında daha fazla bilgi edinmek için PEFT belgelerine göz atmanızı öneririz.

delete_adapters[[diffusers.loaders.PeftAdapterMixin.delete_adapters]]

delete_adapters(adapter_names: list[str] | str)

Kaynak

Parametreler:

adapter_names (list[str, str]) : Silinecek adaptörün adları (tek bir dize veya dize listesi).

Alt modelden bir adaptörün LoRA katmanlarını siler.

Örnek:

from diffusers import AutoPipelineForText2Image
import torch

pipeline = AutoPipelineForText2Image.from_pretrained(
    "stabilityai/stable-diffusion-xl-base-1.0", torch_dtype=torch.float16
).to("cuda")
pipeline.load_lora_weights(
    "jbilcke-hf/sdxl-cinematic-1", weight_name="pytorch_lora_weights.safetensors", adapter_names="cinematic"
)
pipeline.unet.delete_adapters("cinematic")

disable_adapters[[diffusers.loaders.PeftAdapterMixin.disable_adapters]]

disable_adapters()

Kaynak

Modele bağlı tüm adaptörleri devre dışı bırakın ve yalnızca temel modelle çıkarım yapmaya geri dönün.

Adaptörler ve PEFT yöntemleri hakkında bilgi sahibi değilseniz, bunlar hakkında daha fazla bilgi edinmek için PEFT belgelendirmesini okumaya davet ediyoruz.

disable_lora[[diffusers.loaders.PeftAdapterMixin.disable_lora]]

disable_lora()

Kaynak

Alt modelin etkin LoRA katmanlarını devre dışı bırakır.

Örnek:

from diffusers import AutoPipelineForText2Image
import torch

pipeline = AutoPipelineForText2Image.from_pretrained(
    "stabilityai/stable-diffusion-xl-base-1.0", torch_dtype=torch.float16
).to("cuda")
pipeline.load_lora_weights(
    "jbilcke-hf/sdxl-cinematic-1", weight_name="pytorch_lora_weights.safetensors", adapter_name="cinematic"
)
pipeline.unet.disable_lora()

enable_adapters[[diffusers.loaders.PeftAdapterMixin.enable_adapters]]

enable_adapters()

Kaynak

Modele bağlı olan adaptörleri etkinleştirir. Model, etkinleştirilecek adaptörlerin listesini almak için self.active_adapters() kullanır.

Adaptörler ve PEFT yöntemleri hakkında bilgi sahibi değilseniz, bunlar hakkında daha fazla bilgi edinmek için PEFT belgelendirmesini okumaya davet ediyoruz.

enable_lora[[diffusers.loaders.PeftAdapterMixin.enable_lora]]

enable_lora()

Kaynak

Alt modelin etkin LoRA katmanlarını etkinleştirir.

Örnek:

from diffusers import AutoPipelineForText2Image
import torch

pipeline = AutoPipelineForText2Image.from_pretrained(
    "stabilityai/stable-diffusion-xl-base-1.0", torch_dtype=torch.float16
).to("cuda")
pipeline.load_lora_weights(
    "jbilcke-hf/sdxl-cinematic-1", weight_name="pytorch_lora_weights.safetensors", adapter_name="cinematic"
)
pipeline.unet.enable_lora()

enable_lora_hotswap[[diffusers.loaders.PeftAdapterMixin.enable_lora_hotswap]]

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

Kaynak

Parametreler:

target_rank (int, isteğe bağlı, varsayılan 128) : Yüklenecek tüm adaptörler arasındaki en yüksek rütbe.

check_compiled (str, isteğe bağlı, varsayılan "error") : Model zaten derlenmişse bu durumun nasıl ele alınacağı, ki bu genellikle kaçınılması gereken bir durumdur. Seçenekler: - "error" (varsayılan): bir hata fırlat - "warn": bir uyarı ver - "ignore": hiçbir şey yapma

LoRA adaptörlerinin sıcak değiştirilmesine olanak tanır.

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.

load_lora_adapter[[diffusers.loaders.PeftAdapterMixin.load_lora_adapter]]

load_lora_adapter(pretrained_model_name_or_path_or_dict, prefix = 'transformer', hotswap: bool = False, **kwargs)

Kaynak

Parametreler:

pretrained_model_name_or_path_or_dict (str veya os.PathLike veya dict) : Şunlardan biri olabilir: - Hub'da barındırılan önceden eğitilmiş bir modelin model kimliği (örneğin google/ddpm-celebahq-256) olan bir dize. - ModelMixin.save_pretrained() ile kaydedilmiş model ağırlıklarını içeren bir dizin yolu (örneğin ./my_model_directory). - Bir torch state dict.

prefix (str, isteğe bağlı) : state dict'i filtrelemek için önek.

cache_dir (str | os.PathLike, isteğe bağlı) : Standart önbellek kullanılmıyorsa, indirilen önceden eğitilmiş model yapılandırmasının önbelleğe alındığı dizinin yolu.

force_download (bool, isteğe bağlı, varsayılan False) : Model ağırlıklarının ve yapılandırma dosyalarının (yeniden) indirilmesinin zorlanıp zorlanmayacağını belirler; önbellekteki sürümler varsa bunların üzerine yazar.

proxies (dict[str, str], isteğe bağlı) : Protokol veya uç nokta bazında kullanılacak vekil sunucuların sözlüğü, örneğin {'http': 'foo.bar:3128', 'http://hostname': 'foo.bar:4012'}. Vekiller her istekte kullanılır.

local_files_only (bool, isteğe bağlı, varsayılan False) : Sadece yerel model ağırlıklarının ve yapılandırma dosyalarının yüklenip yüklenmeyeceğini belirtir. True olarak ayarlanırsa, model Hub'dan indirilmez.

token (str veya bool, isteğe bağlı) : Uzaktaki dosyalar için HTTP bearer yetkilendirmesi olarak kullanılacak jeton. True ise, diffusers-cli login ile oluşturulan jeton (~/.huggingface içinde saklanır) kullanılır.

revision (str, isteğe bağlı, varsayılan "main") : Kullanılacak belirli model sürümü. Bir dal adı, etiket adı, commit kimliği veya Git tarafından izin verilen herhangi bir tanımlayıcı olabilir.

subfolder (str, isteğe bağlı, varsayılan "") : Hub'da veya yerel olarak daha büyük bir model deposu içindeki bir model dosyasının alt klasör konumu.

network_alphas (dict[str, float]) : Kararlı öğrenme için kullanılan ve taşma altı (underflow) durumunu önleyen ağ alfası değeri. Bu değer, kohya-ss eğitim betiğindeki --network_alpha seçeneğiyle aynı anlama gelir. bu bağlantıya bakın.

low_cpu_mem_usage (bool, isteğe bağlı) : Rastgele ağırlıkları başlatmadan yalnızca önceden eğitilmiş LoRA ağırlıklarını yükleyerek model yükleme hızını artırır.

hotswap : (bool, optional) Defaults to False. 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. If the new adapter and the old adapter have different ranks and/or LoRA alphas (i.e. scaling), you need to call an additional method before loading the adapter: py pipeline = ... # load diffusers pipeline max_rank = ... # the highest rank among all LoRAs that you want to load # call *before* compiling and loading the LoRA adapter pipeline.enable_lora_hotswap(target_rank=max_rank) pipeline.load_lora_weights(file_name) # optionally compile the model now Note that hotswapping adapters of the text encoder is not yet supported. There are some further limitations to this technique, which are documented here: https://huggingface.co/docs/peft/main/en/package_reference/hotswap

metadata : LoRA adaptör meta verileri. Sağlandığında, durum sözlüğü (state dict) üzerinden çıkarılan meta veriler LoraConfig başlatmak için kullanılmaz.

LoRA adaptörünü alttaki modele yükler.

save_lora_adapter[[diffusers.loaders.PeftAdapterMixin.save_lora_adapter]]

save_lora_adapter(save_directory, adapter_name: str = 'default', upcast_before_saving: bool = False, safe_serialization: bool = True, weight_name: str | None = None)

Kaynak

Parametreler:

save_directory (str veya os.PathLike) : LoRA parametrelerinin kaydedileceği dizin. Var değilse oluşturulur.

adapter_name : (str, varsayılan "default"): Seri hale getirilecek adaptörün adı. Altta yatan modelde birden fazla adaptör yüklüyse kullanışlıdır.

upcast_before_saving (bool, varsayılan False) : Seri hale getirmeden önce alttaki modelin torch.float32'ye dönüştürülüp dönüştürülmemesi.

safe_serialization (bool, isteğe bağlı, varsayılan True) : Modelin safetensors ile mi yoksa geleneksel PyTorch yöntemiyle pickle kullanılarak mı kaydedileceğini belirtir.

weight_name : (str, isteğe bağlı, varsayılan None): State dict'inin serialize edileceği dosyanın adı.

Alt modelle eşleşen LoRA parametrelerini kaydedin.

set_adapter[[diffusers.loaders.PeftAdapterMixin.set_adapter]]

set_adapter(adapter_name: str | list[str])

Kaynak

Parametreler:

adapter_name (str | list[str])) : Ayarlanacak adaptörlerin listesi veya tek bir adaptör durumunda adaptör adı.

Modeli yalnızca o adaptörü kullanmaya zorlayarak belirli bir adaptörü ayarlar ve diğer adaptörleri devre dışı bırakır.

Adaptörler ve PEFT yöntemleri hakkında bilgi sahibi değilseniz, bunlar hakkında daha fazla bilgi edinmek için PEFT belgelendirmesini okumaya davet ediyoruz.

set_adapters[[diffusers.loaders.PeftAdapterMixin.set_adapters]]

set_adapters(adapter_names: list[str] | str, weights: float | dict | list[float] | list[dict] | list[None] | None = None)

Kaynak

Parametreler:

adapter_names (list[str] veya str) : Kullanılacak adaptörlerin adları.

weights (Union[List[float], float], isteğe bağlı) : UNet ile kullanılacak adaptör ağırlıkları. None ise, tüm adaptörler için ağırlıklar 1.0 olarak ayarlanır.

Diffüzyon ağı (ör. unet, transformer vb.) kullanımında geçerli olan adaptörleri ayarlayın.

Örnek:

from diffusers import AutoPipelineForText2Image
import torch

pipeline = AutoPipelineForText2Image.from_pretrained(
    "stabilityai/stable-diffusion-xl-base-1.0", torch_dtype=torch.float16
).to("cuda")
pipeline.load_lora_weights(
    "jbilcke-hf/sdxl-cinematic-1", weight_name="pytorch_lora_weights.safetensors", adapter_name="cinematic"
)
pipeline.load_lora_weights("nerijs/pixel-art-xl", weight_name="pixel-art-xl.safetensors", adapter_name="pixel")
pipeline.unet.set_adapters(["cinematic", "pixel"], weights=[0.5, 0.5])

Xet Storage Details

Size:
14.9 kB
·
Xet hash:
856d1a6e6ffa9fed3c9cf5cd0ee10d45abea14f69eefaf946f049ed33a583544

Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.