Lensa ML

RLHF

Langkah 1 dari 6: Masalah Alignment

Kenapa model bahasa mentah perlu alignment

Temperature1
Distribusi probabilitas tokenThe35%cat19%sat13%on12%the8%mat5%is4%a4%Hasil: the on the cat the The
Temperature
1.00
Probabilitas tertinggi
34.6%
Entropi
2.63 bit

Temperature sedang: hasil sampelnya terbaca lancar, tetapi tidak ada bagian dari sampling yang membuatnya membantu, jujur, atau tidak berbahaya.

Geser temperature dari 0,3 ke 2,0 dan lihat readout entropy naik. Temperature membagi logit sebelum softmax, p_i = exp(z_i / T) / Σ exp(z_j / T), jadi ia hanya mengubah bentuk distribusi yang sudah dipelajari model. Pretraining mengajari model memprediksi token berikutnya dari teks web, artinya model meniru apa yang biasanya muncul berikutnya, bukan apa yang diminta pengguna. InstructGPT menunjukkan seberapa besar jarak itu: pelabel lebih menyukai model aligned berukuran 1,3 miliar parameter daripada GPT-3 berukuran 175 miliar parameter yang menjadi titik awalnya. Perbaikan pertama yang biasa dilakukan adalah supervised fine-tuning (SFT) pada demonstrasi tertulis.

Langkah 2 dari 6: Mengumpulkan Preferensi Manusia

Membangun dataset berisi output yang sudah diperingkat

Perbandingan4
Pasangan preferensi manusiaAJawaban ringkas dan akuratBJawaban melantur dari topik✓ABalasan panjang tapi benar✓BPenjelasan jelas dan membantuATeks pendek tapi menyesatkanBRespons benar tapi kasar✓APanduan bertahap yang membantuBRespons samar dan tidak lengkap✓
Pasangan
4
Ukuran dataset
8 respons
Jam kerja manusia
2.0 perkiraan

Dataset sedang: pasangannya cukup untuk menangkap preferensi dasar. Kualitas dan keragaman anotator sama pentingnya dengan jumlah.

Geser Perbandingan dari 1 ke 10 dan lihat ukuran dataset serta perkiraan jam kerja manusia bertambah. Pelabel membandingkan jawaban alih-alih memberi skor karena memilih yang lebih baik dari dua pilihan lebih cepat dan lebih konsisten antarorang daripada memberi nilai. Di InstructGPT, pelabel memeringkat 4 sampai 9 respons per prompt. Peringkat berisi K respons menghasilkan K(K − 1)/2 pasangan, jadi satu peringkat berisi 9 respons menghasilkan 36 perbandingan. Reward model-nya dilatih dengan sekitar 33.000 prompt. Pelabel dalam studi itu sepakat satu sama lain pada sekitar 73% kasus, dan angka ini membatasi akurasi reward model apa pun.

Langkah 3 dari 6: Melatih Reward Model

Belajar memberi skor output seperti manusia

Train step0
Skor rewardJawaban akurat dan membantu0.07Balasan sopan tapi salah0.32Teks kasar tapi benar0.20Output berbahaya dan menyesatkan0.12Panduan bertahap yang jelas0.28Akurasi1.00.5
Langkah
0
Akurasi
50.0%
Skor terbaik
0.32

Awal training: kelima skor berkumpul di sekitar nilai yang sama, ditambah noise. Model belum bisa membedakan output yang baik dan yang buruk.

Geser Train step dari 0 ke 20 dan lihat skor saling menjauh sementara kurva akurasi naik. Reward model biasanya berupa salinan model bahasa dengan output layer yang diganti agar menghasilkan satu angka. Setiap pasangan dilatih dengan loss Bradley-Terry, L = −log σ(r(x, y_w) − r(x, y_l)), dengan y_w sebagai jawaban yang dipilih dan y_l yang ditolak. Loss ini hanya melihat selisihnya, jadi reward tidak punya titik nol yang tetap. Kurvanya mendatar di dekat 72%, kira-kira posisi reward model sungguhan pada perbandingan manusia yang tidak ikut training, dan dekat dengan tingkat kesepakatan pelabel sendiri.

Langkah 4 dari 6: Optimasi PPO

Memperbarui policy dengan sinyal reward

KL weight β0.50
Distribusi base (biru) vs policy (ungu)T0T1T2T3T4T5T6T7BasePolicy (PPO)
KL weight
0.50
KL div
0.308
Reward
0.708
Objektif
0.554

β sedang: reward naik sementara policy tetap dekat dengan base model, sehingga terhindar dari teks yang rusak.

Geser KL weight β dari 0 ke 2 dan bandingkan batang ungu policy dengan batang biru base. PPO memaksimalkan r(x, y) − β · KL(π || π_ref): skor reward model dikurangi penalty karena menjauh dari reference model yang dibekukan. PPO (Schulman dkk., 2017) adalah metode policy gradient yang membatasi setiap update agar policy tidak berubah terlalu banyak dari satu batch sampel. Setiap respons utuh dihitung sebagai satu episode dan diberi skor sekali di akhir. Training menyimpan empat model di memori: policy, reference, reward model, dan value model.

Langkah 5 dari 6: Batasan KL Divergence

Menjaga model tetap dekat dengan base-nya

KL budget1
Base model vs model alignedABCDEFBaseAligned
KL budget
1.0
KL divergence
0.137
Dalam budget
Ya

KL budget sedang: cukup ruang untuk mengubah perilaku sambil mempertahankan kemampuan inti model.

Geser KL budget dari 0,1 ke 5 dan lihat batang aligned berwarna teal menjauh dari batang biru base. KL(P || Q) = Σ P(x) log(P(x) / Q(x)) bernilai nol ketika kedua distribusi sama, dan membesar ketika P menaruh massa di tempat Q hanya menaruh sedikit. Tanpa batas ini, policy akan menemukan teks yang skornya tinggi di reward model tetapi tidak disukai orang, sebuah bentuk hukum Goodhart. Sebagian implementasi menetapkan target KL dan menyetel β untuk mencapainya, mirip dengan pandangan budget ini. InstructGPT juga mencampurkan gradient pretraining (PPO-ptx) untuk menjaga skor benchmark.

Langkah 6 dari 6: Alternatif DPO

Direct preference optimization tanpa reward model

DPO β0.10
Pipeline PPO vs DPOPPO (3 model)Model SFTReward ModelPPO PolicyDPO (1 model)Optimasi LangsungMargin preferensi (dipilih − ditolak)Jawaban membantuvs Output berbahaya0.602.10Penjelasan jelasvs Balasan membingungkan1.202.20Respons jujurvs Teks menipu0.102.10ReferenceDPO Policy
DPO β
0.10
Rata-rata margin
2.13
Pergeseran vs ref
1.50

β rendah: DPO mengikuti preferensi dengan kuat dan bergeser jauh dari reference model. Lebih sederhana daripada PPO, dengan risiko reward hacking yang sama.

Geser DPO β dari 0,05 ke 0,5 dan bandingkan margin reference dengan margin policy. DPO (Rafailov dkk., 2023) menunjukkan bahwa objektif dengan batasan KL punya policy terbaik dalam bentuk tertutup, sehingga reward bisa ditulis lewat policy itu sendiri: r(x, y) = β log(π(y|x) / π_ref(y|x)), ditambah suku yang hilang saat dua jawaban dibandingkan. Loss Bradley-Terry lalu menjadi classification loss biasa pada pasangan preferensi, tanpa sampling dan tanpa reward model. Selisih reward sama dengan β kali pergeseran policy dari margin reference, jadi β yang lebih kecil butuh pergeseran lebih besar: rata-rata 1,5 pada nilai default 0,1, dan 0,3 pada 0,5. Zephyr dan Llama 3 di-tuning dengan DPO.

Apa itu RLHF (reinforcement learning from human feedback)?

Reinforcement learning from human feedback (RLHF) adalah cara melakukan fine-tuning pada model dengan penilaian manusia atas output-nya, bukan dengan jawaban benar yang ditulis tangan. Orang membandingkan pasangan respons, reward model belajar memprediksi mana yang lebih mereka sukai, lalu model bahasa dilatih dengan reinforcement learning agar menghasilkan respons yang mendapat skor tinggi dari reward model.

RLHF adalah langkah yang mengubah model bahasa besar hasil pretraining menjadi asisten yang bisa dipakai. InstructGPT dari OpenAI (2022) memakainya agar GPT-3 mengikuti instruksi, dan resep yang sama dipakai untuk ChatGPT. Metode ini diterapkan ketika tujuannya mudah dinilai tetapi sulit dituliskan sebagai loss: kegunaan jawaban, nada, penolakan permintaan berbahaya, dan kualitas ringkasan. Direct preference optimization (DPO) adalah varian yang lebih sederhana dan kini dipakai banyak model terbuka.

Ide utama

  • RLHF melakukan fine-tuning model ke arah output yang disukai orang, memakai perbandingan alih-alih jawaban tertulis.
  • Pipeline standarnya: supervised fine-tuning, lalu reward model, lalu reinforcement learning dengan PPO.
  • Reward model yang dilatih pada pasangan hanya mempelajari selisih reward, lewat loss −log σ(r_chosen − r_rejected).
  • Penalty KL terhadap reference model menjaga policy agar tidak hanyut ke teks yang mengakali reward model.
  • Reward hacking terjadi ketika reward yang dipelajari naik, tetapi penilaian manusia atas output-nya tidak ikut naik.
  • DPO berlatih langsung pada pasangan preferensi dan tidak butuh reward model terpisah atau putaran RL.

Pertanyaan umum

Apa bedanya RLHF dan supervised fine-tuning?

Supervised fine-tuning berlatih pada demonstrasi: model menyalin jawaban tertulis token demi token. RLHF berlatih pada penilaian atas output model sendiri, sehingga bisa memperbaiki perilaku yang mudah dikenali orang tetapi sulit dituliskan. Sebagian besar pipeline menjalankan SFT lebih dulu, lalu RLHF.

Kenapa disebut reinforcement learning?

Model diperlakukan sebagai policy. Ia menghasilkan satu respons utuh, menerima satu reward berupa skalar, lalu diperbarui agar respons dengan reward tinggi lebih mungkin muncul. Tidak ada token target yang benar di tiap posisi, hanya satu skor untuk seluruh jawaban, dan situasi seperti inilah yang menjadi sasaran reinforcement learning.

Dari mana asal RLHF?

Christiano dkk. (2017) melatih agent di gim Atari dan robotika simulasi dari perbandingan manusia atas klip video pendek. Dengan sekitar 900 perbandingan, robot simulasi belajar melakukan salto ke belakang. Metode ini kemudian diterapkan pada peringkasan teks, lalu pada kepatuhan terhadap instruksi di InstructGPT.

Apakah RLHF masih dipakai, atau sudah digantikan DPO?

Keduanya dipakai. DPO lebih murah dan lebih sederhana dijalankan, sehingga banyak model open-weight memakainya atau salah satu variannya. RLHF berbasis PPO masih dipakai ketika reward model terpisah dibutuhkan, misalnya untuk memberi skor sampel baru selama training. Banyak pipeline juga mengganti sebagian label manusia dengan umpan balik buatan AI (RLAIF).

Penjelasan terkait

Referensi

  1. Ouyang et al. (2022), "Training language models to follow instructions with human feedback" (InstructGPT)
  2. Christiano et al. (2017), "Deep reinforcement learning from human preferences"
  3. Rafailov et al. (2023), "Direct Preference Optimization: Your Language Model is Secretly a Reward Model"
  4. Schulman et al. (2017), "Proximal Policy Optimization Algorithms"

Terakhir diperbarui