PEFT documentation
BEFT: Düşük Veri Senaryolarında Dil Modellerinin Yanlılık-Etkin İnce Ayarı
BEFT: Düşük Veri Senaryolarında Dil Modellerinin Yanlılık-Etkin İnce Ayarı
BEFT, önceden eğitilmiş transformer modellerindeki değer projeksiyonlarına eklenen sapma terimlerini ince ayar yapan parametre verimli ince ayar (PEFT) algoritmasıdır. BEFT, önceden eğitilmiş transformerlardaki değer projeksiyonlarına eklenen sapma terimlerinin ince ayarının, düşük veri senaryolarında, sorgu/anahtar projeksiyonlarına eklenen sapma terimlerinin ince ayarına kıyasla genellikle daha yüksek bir aşağı akış performansına yol açtığını göstermektedir.
BEFT şu anda aşağıdaki ödünleşimlere sahiptir:
Artıları:
- BEFT, LoRA'dan çok daha az parametreye ihtiyaç duyar ve düşük veri senaryolarında görevler arasında rekabetçi veya üstün performansını korur.
Dezavantajlar:
- Yüksek veri rejimlerinde, BEFT, LoRA ve tam parametreli ince ayara kıyasla sınırlı bir etkililik gösterebilir.
Kullanım senaryonuz yüksek veri rejimine aitse, LoRA gibi diğer PEFT yöntemlerini düşünün.
Makalenin özeti şudur:
Büyük dil modellerinin (LLM) sapma terimlerinin ince ayarının, özellikle düşük veri senaryolarında rekabetçi performansı korurken eşi görülmemiş bir parametre verimliliği sağlama potansiyeli vardır. Ancak, farklı sapma terimlerinin (yani sorgu, anahtar veya değer projeksiyonlarındaki bq, bk ve bv) ince ayarı ile aşağı akış performansındaki bağlantı, bugüne kadar büyük ölçüde belirsiz kalmıştır. Bu makalede, bq, bk ve bv ince ayarı ile aşağı akış görevinin performansı arasındaki bağlantıyı inceliyoruz. Temel bulgumuz, düşük veri senaryolarında bq ve bk ile karşılaştırıldığında, bv teriminin doğrudan ince ayarının genellikle daha yüksek aşağı akış performansına yol açmasıdır. Bu benzersiz özelliği, 6,7B parametreye kadar uzanan, yalnızca kodlayıcı ve yalnızca çözücü mimarilerini kapsayan geniş bir LLM yelpazesi (sapmasız LLM'ler dahil) üzerinde kapsamlı olarak değerlendiriyoruz. Sonuçlarımız, çeşitli aşağı akış görevlerinde bv teriminin doğrudan ince ayarının etkinliği için güçlü kanıtlar sunmaktadır.
Karma performans değerlendirmesi genel bakış
API
BeftConfig
sınıf peft.BeftConfig
< source >( task_type: Optional[Union[str, TaskType]] = Nonepeft_type: Optional[Union[str, PeftType]] = Noneauto_mapping: Optional[dict] = Nonepeft_version: Optional[str] = Nonebase_model_name_or_path: Optional[str] = Nonerevision: Optional[str] = Noneinference_mode: bool = Falsetarget_modules: Optional[Union[list[str], str]] = Nonemodules_to_save: Optional[list[str]] = Noneinit_weights: bool = True )
Parametreler
- target_modules (
Optional[Union[List[str], str]]) — Uyarlamanın (adapter) uygulanacağı modüllerin adları. Bu parametre belirtilirse, yalnızca belirtilen adlara sahip modüller değiştirilir. Bir dize (string) geçirildiğinde, bir regex eşleşmesi yapılır. Dize listesi geçirildiğinde, tam bir eşleşme yapılır veya modül adının, geçirilen dizelerden herhangi biriyle sona erip ermediği kontrol edilir. Bu parametre belirtilmezse, modüller model mimarisine göre seçilir. Mimari bilinmiyorsa bir hata oluşturulur — bu durumda, hedef modülleri manuel olarak belirtmelisiniz. - modules_to_save (
Optional[List[str]]) — BEFT katmanları dışında, eğitilebilir olarak ayarlanacak ve nihai checkpoint'te kaydedilecek modüllerin listesi. - init_weights (
bool) — BEFT katmanlarındaki vektörlerin başlatılıp başlatılmayacağını belirtir, varsayılan değeriTrue'dir. Bu değeriFalseolarak ayarlamak önerilmez.
Bu, bir BeftModel yapılandırmasını depolamak için kullanılan yapılandırma sınıfıdır.
BeftModel
sınıf peft.BeftModel
< source >( modelpeft_config: Union[PeftConfig, dict[str, PeftConfig]]adapter_name: strlow_cpu_mem_usage: bool = Falsestate_dict: Optional[dict[str, torch.Tensor]] = None ) → torch.nn.Module
Parametreler
- model (PreTrainedModel) — Uyarlanacak model.
- config (BeftConfig) — (BEFT) modelinin yapılandırması.
- adapter_name (
str) — Adaptörün adı, varsayılan olarak"default"'tır. - low_cpu_mem_usage (
bool,optional, defaults toFalse) — Meta cihazda boş adaptör ağırlıkları oluşturur. Yükleme sürecini hızlandırmak için faydalıdır.
Dönüş değeri
torch.nn.Module
(BEFT) modeli.
Düşük eğitim verisi senaryolarında (BEFT), önceden eğitilmiş bir transformers modelinin değer projeksiyonlarına eklenen sapma terimlerini ince ayarlayarak bir Infused Adapter oluşturur. Yöntem, https://arxiv.org/abs/2509.15974 adresinde ayrıntılı olarak açıklanmıştır.
Örnek:
>>> from transformers import AutoModelForSeq2SeqLM
>>> from peft import BeftConfig, get_peft_model
>>> config = BeftConfig(
... task_type="SEQ_2_SEQ_LM",
... target_modules=["v"],
... )
>>> model = AutoModelForSeq2SeqLM.from_pretrained("t5-base")
>>> beft_model = get_peft_model(model, config)Öznitelikler:
- model (PreTrainedModel) — Uyarlanacak model.
- peft_config (BeftConfig): (BEFT) modelinin yapılandırması.