PEFT documentation

BEFT: Fine-Tuning Model Bahasa yang Efisien terhadap Bias dalam Regim Data Rendah

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

BEFT: Fine-Tuning Model Bahasa yang Efisien terhadap Bias dalam Regim Data Rendah

BEFT adalah algoritma fine-tuning yang efisien secara parameter (PEFT) yang hanya melakukan fine-tuning pada istilah bias yang ditambahkan dari value projections pada model transformer pretrained. BEFT menunjukkan bahwa fine-tuning istilah bias yang ditambahkan dari value projections pada transformer pretrained umumnya menghasilkan kinerja downstream yang lebih tinggi dalam kondisi data rendah dibandingkan fine-tuning istilah bias yang ditambahkan dari query/key projections.

BEFT saat ini memiliki beberapa tradeoff berikut:

Kelebihan:

  • BEFT membutuhkan jauh lebih sedikit parameter daripada LoRA, sambil mempertahankan kinerja yang kompetitif atau lebih unggul di berbagai tugas dalam kondisi data rendah.

Kekurangan:

  • Pada kondisi data yang melimpah, BEFT mungkin menunjukkan efektivitas yang terbatas dibandingkan dengan LoRA dan fine-tuning parameter penuh.

Jika kasus penggunaan Anda termasuk dalam rezim data tinggi, pertimbangkan metode PEFT lain seperti LoRA.

Abstrak dari makalah tersebut adalah:

Penyesuaian halus (fine-tuning) pada istilah bias model bahasa besar (LLM) berpotensi mencapai efisiensi parameter yang belum pernah ada sebelumnya sambil mempertahankan kinerja yang kompetitif, terutama dalam kondisi data rendah. Namun, hubungan antara penyesuaian halus berbagai istilah bias (yaitu, bq, bk, dan bv pada proyeksi query, key, atau value) dengan kinerja hilir (downstream) masih belum jelas hingga saat ini. Dalam makalah ini, kami menyelidiki hubungan antara penyesuaian halus bq, bk, dan bv dengan kinerja tugas hilir. Temuan utama kami adalah bahwa penyesuaian halus langsung pada bv umumnya menghasilkan kinerja hilir yang lebih tinggi dalam kondisi data rendah, dibandingkan dengan bq dan bk. Kami mengevaluasi secara luas sifat unik ini di berbagai LLM yang mencakup arsitektur encoder-only dan decoder-only hingga 6,7 miliar parameter (termasuk LLM tanpa bias). Hasil kami memberikan bukti kuat untuk efektivitas penyesuaian halus langsung pada bv di berbagai tugas hilir.

Ikhtisar benchmark

API

BeftConfig

kelas peft.BeftConfig

< >

( 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 )

Parameter

  • target_modules (Optional[Union[List[str], str]]) β€” Nama-nama modul yang akan diterapkan adapter-nya. Jika ini ditentukan, hanya modul dengan nama yang ditentukan yang akan diganti. Saat meneruskan string, pencocokan regex akan dilakukan. Saat meneruskan daftar string, pencocokan persis akan dilakukan atau diperiksa apakah nama modul diakhiri dengan salah satu string yang diteruskan. Jika ini tidak ditentukan, modul akan dipilih sesuai dengan arsitektur model. Jika arsitekturnya tidak diketahui, error akan dilempar β€” dalam kasus ini, Anda harus menentukan modul target secara manual.
  • modules_to_save (Optional[List[str]]) β€” Daftar modul di luar lapisan BEFT yang akan diatur sebagai trainable dan disimpan dalam checkpoint akhir.
  • init_weights (bool) β€” Apakah akan menginisialisasi vektor di lapisan BEFT, secara default True. Mengatur ini ke False tidak disarankan.

Ini adalah kelas konfigurasi untuk menyimpan konfigurasi dari BeftModel.

BeftModel

kelas peft.BeftModel

< >

( 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

Parameter

  • model (PreTrainedModel) β€” Model yang akan diadaptasi.
  • config (BeftConfig) β€” Konfigurasi model (BEFT).
  • adapter_name (str) β€” Nama adapter, secara default "default".
  • low_cpu_mem_usage (bool, optional, defaults to False) β€” Membuat bobot adapter kosong pada perangkat meta. Berguna untuk mempercepat proses pemuatan.

Mengembalikan

torch.nn.Module

Model (BEFT).

Membuat Infused Adapter dengan hanya melakukan fine-tuning pada istilah bias yang ditambahkan dari proyeksi nilai dari model transformers yang telah dilatih sebelumnya dalam kondisi data pelatihan rendah (BEFT). Metode ini dijelaskan secara rinci di https://arxiv.org/abs/2509.15974

Contoh:

>>> 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)

Atribut:

Update on GitHub