# BEFT: Düşük Veri Senaryolarında Dil Modellerinin Yanlılık-Etkin İnce Ayarı

[BEFT](https://arxiv.org/abs/2509.15974), ö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:

*Genel 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 potansiyeline sahiptir. Ancak, farklı sapma terimlerinin (yani sorgu, anahtar veya değer projeksiyonlarındaki **b**q, **b**k ve **b**v) ince ayarı ile aşağı akış performansındaki bağlantı, bugüne kadar büyük ölçüde belirsiz kalmıştır. Bu makalede, **b**q, **b**k ve **b**v ince ayarı ile aşağı akış görevinin performansı arasındaki bağlantıyı inceliyoruz. Temel bulgumuz, düşük veri senaryolarında **b**q ve **b**k ile karşılaştırıldığında **b**v'nin 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 **b**v'nin doğrudan ince ayarının etkinliği için güçlü kanıtlar sunmaktadır*.

## Karma performans değerlendirmesi genel bakış

<iframe src="https://peft-internal-testing-peft-method-comparison-embed.hf.space/?highlight[type]=BEFT" frameborder="0" width="850" height="1000"
>

# API

## BeftConfig[[peft.BeftConfig]]

#### peft.BeftConfig[[peft.BeftConfig]]

```python
peft.BeftConfig(task_type: Optional[Union[str, TaskType]] = None, peft_type: Optional[Union[str, PeftType]] = None, auto_mapping: Optional[dict] = None, peft_version: Optional[str] = None, base_model_name_or_path: Optional[str] = None, revision: Optional[str] = None, inference_mode: bool = False, target_modules: Optional[Union[list[str], str]] = None, modules_to_save: Optional[list[str]] = None, init_weights: bool = True)
```

[Kaynak](https://github.com/huggingface/peft/blob/main/src/peft/tuners/beft/config.py#L25)

**Parametreler:**

target_modules (`Optional[Union[List[str], str]]`) : Adaptörün uygulanacağı modüllerin adları. Bu alan belirtilirse, yalnızca belirtilen adlara sahip modüller değiştirilir. Bir dize geçirildiğinde, bir regex eşleşmesi yapılır. Bir 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 alan 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ğeri `True`'dir. Bu değeri `False` olarak ayarlamak önerilmez.

Bu, bir [BeftModel](/docs/peft/main/tr/package_reference/beft#peft.BeftModel) yapılandırmasını depolamak için kullanılan yapılandırma sınıfıdır.

## BeftModel[[peft.BeftModel]]

#### peft.BeftModel[[peft.BeftModel]]

```python
peft.BeftModel(model, peft_config: Union[PeftConfig, dict[str, PeftConfig]], adapter_name: str, low_cpu_mem_usage: bool = False, state_dict: Optional[dict[str, torch.Tensor]] = None)
```

[Kaynak](https://github.com/huggingface/peft/blob/main/src/peft/tuners/beft/model.py#L26)

**Parametreler:**

model ([PreTrainedModel](https://huggingface.co/docs/transformers/main/en/main_classes/model#transformers.PreTrainedModel)) : Uyarlanacak model.

config ([BeftConfig](/docs/peft/main/tr/package_reference/beft#peft.BeftConfig)) : (BEFT) modelinin yapılandırması.

adapter_name (`str`) : Adaptörün adı, varsayılan olarak `"default"`'tur.

low_cpu_mem_usage (`bool`, `optional`, varsayılan `False`) : Meta cihazında boş adaptör ağırlıkları oluşturur. Yükleme sürecini hızlandırmak için faydalıdır.

**Dönüş:** `torch.nn.Module`

The (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:

```py
>>> 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](https://huggingface.co/docs/transformers/main/en/main_classes/model#transformers.PreTrainedModel)) -- Uyarlanacak model.
- **peft_config** ([BeftConfig](/docs/peft/main/tr/package_reference/beft#peft.BeftConfig)): (BEFT) modelinin yapılandırması.

