Langsung ke konten

Apa itu PEFT (Parameter-Efficient Fine-Tuning)?

PEFT adalah kumpulan teknik fine-tuning yang hanya melatih sebagian kecil parameter model, bukan seluruhnya, sehingga menghemat memori GPU dan waktu komputasi secara signifikan.

Apa itu PEFT?

Fine-tuning model bahasa besar seperti LLaMA 70B secara penuh membutuhkan puluhan GPU kelas server—biaya yang tidak terjangkau bagi kebanyakan pengembang. PEFT (Parameter-Efficient Fine-Tuning) hadir sebagai jalan tengah: memodifikasi hanya sebagian kecil parameter model sehingga hasilnya mendekati full fine-tuning dengan biaya yang jauh lebih rendah.

Nama "parameter-efficient" merujuk pada fakta bahwa hanya 0.1–1% dari total parameter yang diubah, sementara sisa bobot model dibekukan (frozen).

Teknik-teknik utama dalam PEFT

LoRA (Low-Rank Adaptation) — Teknik paling populer. Alih-alih mengubah matriks bobot asli W secara langsung, LoRA menambahkan dua matriks kecil berdimensi rendah (A dan B) yang dikalikan:

W_baru = W_asli + A × B
(di mana rank r << dimensi asli)

Contoh: model dengan 7 miliar parameter hanya melatih ~4 juta parameter LoRA tambahan.

QLoRA — Kombinasi LoRA + kuantisasi 4-bit. Model asli dikompres ke 4-bit (hemat memori), adaptor LoRA dilatih dalam presisi penuh. Ini yang memungkinkan fine-tuning LLaMA 65B pada satu GPU 48GB.

Prefix Tuning — Menambah token virtual di awal setiap layer transformer. Token ini dilatih; bobot model utama tidak berubah.

Prompt Tuning — Lebih sederhana dari prefix tuning: hanya menambah token virtual di input layer pertama.

IA3 (Infused Adapter by Inhibiting and Amplifying Inner Activations) — Mengalikan aktivasi internal dengan vektor yang dapat dilatih, lebih hemat dari LoRA.

Perbandingan efisiensi

Metode % Parameter Dilatih Memori GPU (7B model)
Full fine-tuning 100% ~80 GB
LoRA (r=8) ~0.5% ~16 GB
QLoRA (4-bit) ~0.5% ~6 GB

Contoh pemakaian

Library Hugging Face PEFT memudahkan penerapan LoRA hanya dengan beberapa baris kode:

from peft import get_peft_model, LoraConfig, TaskType

config = LoraConfig(
    task_type=TaskType.CAUSAL_LM,
    r=16,           # rank
    lora_alpha=32,
    target_modules=["q_proj", "v_proj"]
)

model = get_peft_model(base_model, config)
model.print_trainable_parameters()
# trainable params: 4,194,304 || all params: 6,742,609,920 || trainable%: 0.0622

Batasan dan salah paham umum

Bukan pengganti full fine-tuning untuk semua kasus: Untuk perubahan besar pada perilaku model (bukan sekadar adaptasi domain), full fine-tuning masih memberikan hasil lebih baik.

Rank terlalu kecil melemahkan adaptasi: Rank LoRA yang terlalu rendah (r=1 atau r=2) bisa membatasi kapasitas model mempelajari pola baru. Pilihan umum: r=8 sampai r=64.

Adaptor tidak portabel lintas arsitektur: File adaptor LoRA yang dilatih untuk LLaMA tidak kompatibel dengan Mistral atau GPT—arsitektur berbeda, layer berbeda.

Istilah terkait

  • LoRA
  • Fine-Tuning
  • QLoRA
  • Kuantisasi AI
  • LLM

Rujukan resmi

Istilah Terkait

LoRAFine-TuningKuantisasi AILLMDistilasi Model AI