PEFT documentation

Parametre verimli ince ayar yöntemleri

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

and get access to the augmented documentation experience

to get started

Parametre verimli ince ayar yöntemleri

PEFT yöntemleri, tam ince ayar (full fine-tuning) ile karşılaştırılabilir performans hedeflerken olabildiğince az parametre eğitir. Eğitilebilir parametre sayısı azaldıkça ifade gücü de azalır, bu nedenle aynı performansın garanti edilmediğini belirtmek gerekir. Buna karşılık daha az bellek kullanılır, genellikle daha az hesaplama gücü gerekir ve uzman adaptörleri arasında hızlı geçiş (hot-swapping) ile önceki bilgilerin daha az unutulması gibi özellikler elde edilir.

Büyük modellerin eğitimi için genel tavsiyelerde bulunmak zordur ancak üretken modeller, özellikle dil modelleri için şu adımları izleyebilirsiniz:

  1. Görevi zaten yapabilir mi görmek için prompting (ör. prompt içindeki few-shot örnekler) kullanın. Model sorunuzu çözüyorsa harika! Artık promptu öğrenmek ve değerli tokenları tasarruf etmek için Prompt-based methods kullanabilirsiniz.
  2. İpucu tabanlı yöntemler yeterli değilse katman ayarlama ve adaptör yöntemlerini kullanabilirsiniz. Bu yöntemler, ipucu tabanlı yöntemlerden genellikle daha ifade edicidir ve tam ince ayara daha yakındır.
  3. Zaten öğrenilmiş bilgilerin korunmasını ölçmeye özen gösterin çünkü her ince ayar adımı, geçmiş bilgilerin unutulmasına yol açabilir.

PEFT yöntem karşılaştırma paketi, seçilen test setlerinde ve modellerde uygulanan (çoğu) yöntemin kabaca bir genel görünümünü sunmayı amaçlar.

Tüm PEFT yöntemleri eşit yaratılmamıştır ve yetenekler arasında farklılıklar vardır:

  • Kantizasyon: tüm yöntemler kantize edilmiş temel modelleri desteklemez
  • Özellikler: tüm özellikler tüm yöntemler için desteklenmez (ör. birden çok adaptör, karışık adaptör çıkarımı, birleştirme/ayırma)
  • Katman türleri: doğrusal katmanlar genel olarak desteklenir, ancak tüm adaptör yöntemleri gömme (sözlüğü genişletmek için önemli) veya konvolüsyonel katmanları (bazı görüntü modelleri için önemli) desteklemez.
  • Çalışma zamanı: PEFT yöntemleri genellikle çalışma zamanı ek yükü getirir ancak bunun bir kısmı azaltılabilir (örneğin, uyarlayıcı ağırlıklarını birleştirerek)

Prompt tabanlı yöntemler

Prompting, dondurulmuş bir önceden eğitilmiş modeli, görevi tanımlayan veya hatta görevin bir örneğini gösteren bir metin istemi (prompt) ekleyerek belirli bir aşağı akış (downstream) görevi için hazırlar. Prompting ile her aşağı akış görevi için ayrı bir modeli tamamen eğitmek yerine aynı dondurulmuş önceden eğitilmiş modeli kullanabilirsiniz. Bu çok daha kolaydır çünkü aynı modeli birkaç farklı görev için kullanabilirsiniz ve modelin tüm parametrelerini eğitmek yerine daha küçük bir prompt parametresi setini eğitmek ve depolamak önemli ölçüde daha verimlidir.

İki tür istem yöntemi vardır:

  • hard prompts, ayrık giriş jetonlarına sahip, elle oluşturulan metin istekleridir; dezavantajı, iyi bir istek oluşturmak için çok fazla emek gerektirmesidir
  • soft prompts, bir veri setine optimize edilebilen, giriş gömlemelerine (embeddings) birleştirilen öğrenilebilir tensörlerdir; dezavantajları, bu “sanal token”leri gerçek bir kelimenin gömlemelerine eşleştirmemeniz nedeniyle insan tarafından okunabilir olmamalarıdır

PEFT kütüphanesi, çeşitli istem (prompting) yöntemlerini (p-tuning, prefix tuning, prompt tuning, …) destekler; yumuşak istem (soft prompt) yöntemlerinin tam listesini görmek için içeriğe bakın. Bu yöntemleri diğer görevlere ve kullanım senaryolarına uygulamakla ilgileniyorsanız, defter koleksiyonumuza göz atın!

Nedensel dil modelinin eğitim sürecine genel bir aşinalık, odak noktanızı yumuşak istem (soft prompting) yöntemlerine vermenizi sağlayacağından gerçekten faydalı olacaktır. Yeniyseniz, Transformers dokümantasyonundaki Nedensel dil modelleme rehberine önce göz atmanızı öneririz. Hazır olduğunuzda geri dönün ve PEFT'yi eğitim sürecinize ne kadar kolay entegre edebileceğinizi görün!

Katman Ayarlama

Layer Tuning, belirli bir katman türünü veya bir katmanın belirli bir yönünü hedefleyen yöntemleri sınıflandırır; örneğin LayerNorm Tuning yalnızca LayerNorm katmanlarını ve TrainableTokens yalnızca gömme matrisindeki belirli token'ları hedefler. Bu, model girdisiyle çalışan prompt tabanlı yöntemlerden veya mevcut ağırlıkları genişleten ve genellikle katman türünden daha bağımsız olan, doğrusal veya konvolüsyonel katmanları hedefleyen adapter yöntemlerinden farklıdır.

Uyarlama yöntemleri

Adapter yöntemleri, ince ayar için mevcut modellere nispeten küçük, eğitilebilir matrisler eklemenin yolları olarak görülebilir. Hedef, bellek veya hesaplama gibi kaynakları tasarruflu kullanmak için ince ayar gerektiren görevin yönüne büyük modeli yönlendirmek üzere az sayıda eğitilebilir parametre eklemektir.

Adaptörleri hayata geçirmenin popüler bir yolu, bellek tasarrufu sağlamak amacıyla uyarlanan ağırlığın yerleşimi için düşük rütbeli bir ayrıştırmayı temsil eden daha küçük, eğitilebilir matrisleri eklemektir. Ağırlık matrisini düşük rütbeli bir ayrıştırma olarak ifade etmenin çeşitli yolları vardır, ancak en yaygın yöntem Düşük Rütbeli Uyarlama (LoRA)'dır. PEFT kütüphanesi, bu formülasyonun birkaç farklı varyasyonunu destekler; bunlardan bazıları LoRA'nın doğrudan varyasyonlarıdır ve LoRA altında belgelenmiştir, bazıları ise Düşük Rütbeli Hadamard Çarpımı (LoHa), Düşük Rütbeli Kronecker Çarpımı (LoKr) ve Uyarlanabilir Düşük Rütbeli Uyarlama (AdaLoRA) gibi kendi başına birer yöntem sayılacak kadar farklıdır. Bu yöntemleri anlamsal segmentasyon ve token sınıflandırması gibi diğer görevlere ve kullanım senaryolarına uygulamakla ilgileniyorsanız, defter koleksiyonumuza göz atın!

LoRA, PEFT yöntemleri arasında en popüler olanlardan biridir ve PEFT ile yeni başlıyorsanız iyi bir başlangıç noktasıdır. Başlangıçta büyük dil modelleri için geliştirilmiştir ancak verimliliği ve etkinliği sayesinde difüzyon modelleri için son derece popüler bir eğitim yöntemidir.

Düşük rütbeli adaptörler yalnızca olası adaptör formülasyonlarından biridir; PEFT, birçok başka türde adaptör de uygular. Örneğin, Ortogonal İnce Ayarlama yöntemleri (OFT, BOFT, …) küçük boyut elde etmek için adaptör ağırlıklarının ortogonal ayrıştırmalarını kullanır. MiSS gibi yöntemler matrisleri parçalara ayırır ve bu parçaları paylaşarak bellek tasarrufu sağlar. IA3, anahtar, değer ve besleme ileri aktivasyonlarını yeniden ölçekleyen öğrenilmiş vektörler tanıtır.

Update on GitHub