BAB 04

04 - Fine-Tuning LLMs: LoRA, QLoRA, RLHF, DPO, dan Unsloth

Estimasi Waktu: 55 menit
Level: Advanced


RAG vs. Fine-Tuning: Kapan Harus Melakukan Apa?

Sebelum melakukan fine-tuning, Anda wajib paham perbedaannya dengan RAG:

FiturRAGFine-Tuning
TujuanMemberi akses informasi baru/dinamis.Mengubah gaya bicara, format output, atau memperdalam pemahaman domain khusus.
Pengetahuan BaruSangat mudah (tinggal update Vector DB).Sulit (model rentan mengalami catastrophic forgetting).
Kebutuhan GPURendah (tidak melatih model).Tinggi (butuh GPU VRAM besar).
KompleksitasSedang.Tinggi.

Aturan praktisnya: Gunakan RAG untuk fakta. Gunakan Fine-Tuning untuk gaya, format, dan instruksi khusus.


1. Parameter-Efficient Fine-Tuning (PEFT) & LoRA

Melatih seluruh parameter LLM (Full Fine-Tuning) sangat mahal karena membutuhkan puluhan GPU H100. Industri menggunakan PEFT (Parameter-Efficient Fine-Tuning), dengan teknik paling populer bernama LoRA (Low-Rank Adaptation).

Konsep LoRA:

Dibanding memperbarui matriks bobot ($W$) berukuran raksasa pada LLM, LoRA mengunci bobot asli model dan menyisipkan dua matriks adaptor kecil berpangkat rendah ($A$ dan $B$) secara paralel. Ini mengurangi jumlah parameter yang perlu dilatih hingga 99%.

  INPUT ───┬───────────────────► WEIGHTS (Locked: W) ───┬───► OUTPUT
           │                                            │
           └─► ADAPTER A (Rank r) ──► ADAPTER B (r) ───┘

2. QLoRA: Fine-Tuning di Satu GPU

QLoRA (Quantized LoRA) menyempurnakan LoRA dengan melakukan kuantisasi model dasar ke format 4-bit (NormalFloat4) dan menggunakan optimasi memori tingkat lanjut (Double Quantization & Paged Optimizers).

Dengan QLoRA, model berukuran 7B atau 8B parameter (seperti Llama-3-8B) dapat difine-tune di satu GPU konsumer (seperti RTX 3090/4090 dengan 24GB VRAM) bukan kluster server.


3. Alignment: RLHF & DPO

Setelah model dilatih mengikuti instruksi, model perlu diselaraskan (aligned) agar aman, jujur, dan tidak beracun (helpful, harmless, honest).


4. Modern Tools: Unsloth & Axolotl

Contoh Konfigurasi Axolotl (dataset & hyperparameter):

base_model: meta-llama/Meta-Llama-3-8B-Instruct
load_in_4bit: true
adapter: lora
lora_r: 16
lora_alpha: 32
datasets:
  - path: ojan/dataset_percakapan_indo
    type: sharegpt
dataset_prepared_path: last_run_prepared
val_set_size: 0.05
output_dir: ./model_output
sequence_len: 2048
learning_rate: 0.0002

Latihan

  1. Buka Notebook Google Colab gratis. Coba jalankan tutorial fine-tuning dari notebook resmi Unsloth untuk melatih model Llama 3.2 1B/3B dengan dataset kustom Anda.
  2. Pelajari format dataset ShareGPT dan Alpaca untuk fine-tuning instruksi. Ubah data percakapan Anda menjadi format tersebut.

Target: Memahami proses teknis melatih model kustom menggunakan LoRA/QLoRA dan bagaimana mempersiapkan dataset training.