PEFT documentation
BEFT: Fine-Tuning Model Bahasa yang Efisien terhadap Bias dalam Regim Data Rendah
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
< 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 )
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 defaultTrue. Mengatur ini keFalsetidak disarankan.
Ini adalah kelas konfigurasi untuk menyimpan konfigurasi dari BeftModel.
BeftModel
kelas 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
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 toFalse) β 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:
- model (PreTrainedModel) β Model yang akan diadaptasi.
- peft_config (BeftConfig): Konfigurasi model (BEFT).