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
- Hugging Face PEFT library: https://huggingface.co/docs/peft/index (diakses 8 Oktober 2026)
- LoRA paper (Hu et al., 2022): https://arxiv.org/abs/2106.09685
- QLoRA paper (Dettmers et al., 2023): https://arxiv.org/abs/2305.14314
Istilah Terkait