OpenArchLabOpen Architecture — From Models to Systems

F · Training Methods & Model Adaptation

Preference training · dạy model ưu tiên câu trả lời tốt hơn (reward model, PPO, DPO)

Sau SFT, preference training dạy model chọn câu trả lời tốt hơn từ cặp chosen/rejected hoặc điểm thưởng, theo hai nhánh là RLHF (reward model và PPO) hoặc DPO.

LESSON ID train-alignment GROUP Kiến trúc huấn luyện
Mục lục bài học

1Định nghĩa

Preference training, còn gọi là alignment (căn chỉnh), là giai đoạn huấn luyện sau Supervised Fine-Tuning nhằm dạy model phân biệt câu trả lời nào chất lượng, chính xác và an toàn hơn. Thay vì đưa một đáp án mẫu để bắt chước như SFT, tín hiệu học ở đây là sự so sánh tương đối giữa câu trả lời được chọn (chosen) và câu bị loại (rejected) trên cùng một prompt, hoặc điểm số từ một bộ chấm thưởng.

Có hai nhánh triển khai chính, dùng thay cho nhau. DPO (Direct Preference Optimization) tối ưu trực tiếp trọng số trên các cặp chosen/rejected có sẵn bằng một hàm loss duy nhất, không sinh mẫu mới lúc huấn luyện. RLHF (Reinforcement Learning from Human Feedback) huấn luyện một reward model làm giám khảo, cho model tự sinh câu trả lời để chấm điểm bằng PPO hoặc GRPO, hoặc chấm bằng bộ kiểm tra tự động (verifiable reward cho toán hay code), kèm ràng buộc không lệch quá xa bản SFT gốc; mỗi vòng cập nhật dùng lại hàm mất mát và vòng huấn luyện quen thuộc.

Ví dụ đời thường: sau khi nhân viên lễ tân đã thuộc quy trình cơ bản, quản lý đưa hai cách trả lời cho cùng một vị khách khó tính, một cách lịch sự đi thẳng vào giải pháp và một cách vòng vo đổ lỗi, để nhân viên học ưu tiên thái độ chuẩn mực. Ví dụ dừng lại ở chỗ: người lễ tân hiểu vì sao cách một tốt hơn, còn model chỉ nghiêng xác suất về kiểu câu được chấm cao, và nếu thước chấm lệch thì nó nghiêng theo cái lệch đó.

2Luồng

Hai nhánh là phương án thay thế, không phải hai giai đoạn nối tiếp. RLHF đi qua bước 3 rồi bước 4, còn DPO đi thẳng bước 5; cả hai cùng dùng bước 1 và 2 ở đầu, bước 6 ở cuối. Bốn bước phục vụ không đổi giữa hai nhánh. Chọn từng nút để mở bài liên quan.

Sơ đồ kiến trúc huấn luyện · 22 ô (1A → 5C)

Kiến trúc huấn luyện LLM · Ánh xạ với Bài Lab tổng hợp

Thứ tự đọc: 1A → 1B ở cột 1, 2A → 2D ở cột 2, 3A → 3E ở cột 3; mũi tên next batch từ 3E quay về cột 1 và mũi tên load weights đi xuống băng 5 (5A → 5C). Cột 4 không phải bước kế tiếp: 4A, 4B tiết kiệm bộ nhớ, còn 4C–4G là các phương pháp huấn luyện thay thế nhau. Di chuột hoặc bấm vào từng ô để đọc pop-over.

Sơ đồ kiến trúc huấn luyện LLM gồm 22 ô từ 1A đến 5C
4G4 · Scale & Training Methods
chosen vs rejected · reward

4G · Preference (DPO / RLHF)

Dạy mô hình nghiêng về câu trả lời tốt hơn bằng các cặp câu được chọn và câu bị loại.

Nhận gì
Checkpoint sau SFT và các bộ (câu hỏi, câu được chọn, câu bị loại), hoặc một hàm thưởng.
Làm gì, vì sao
DPO (Direct Preference Optimization) tăng xác suất tương đối của câu được chọn so với câu bị loại, đo so với một mô hình tham chiếu đóng băng. RLHF dùng thêm mô hình thưởng (reward) và vòng học tăng cường. Cả hai nhằm dạy mô hình nghiêng về câu trả lời tốt hơn.
Ra gì
Một policy (mô hình đã điều chỉnh hành vi), lưu thành checkpoint.
Ví dụ, cách đọc ô
Nhãn ô: chosen vs rejected · reward. Ví dụ: cùng câu hỏi, chosen là "ca." còn rejected là "sua.". Biên DPO bằng 0 khi policy còn bằng tham chiếu và dương khi đã nghiêng về chosen.
Lưu ý
Biên dương không chứng minh câu được chọn trở nên chắc chắn hơn; xác suất của nó có thể còn giảm. Chất lượng phụ thuộc hoàn toàn vào dữ liệu ưu tiên.
Sơ đồ luồng (10 bước)
  1. Nạp policy đã SFT và đóng băng bản reference

    Một checkpoint đảm nhận hai vai trò, bản học được và bản mốc neo cố định.

  2. Thu cặp ưu tiên chosen/rejected

    Policy sinh nhiều câu trả lời cho cùng prompt, người chấm xếp hạng rồi đóng gói thành cặp.

  3. Huấn luyện reward model (nhánh RLHF)

    Khởi tạo từ SFT, thay đầu từ vựng bằng đầu cho một điểm số, học bằng pairwise loss.

  4. PPO với KL penalty (nhánh RLHF)

    Sinh rollout, chấm bằng reward model trừ phạt lệch SFT, cập nhật trong vùng bị chặn.

  5. Loss DPO (nhánh trực tiếp)

    So tỉ số xác suất của policy với reference trên cả chosen lẫn rejected, không cần sampling.

  6. Đánh giá độc lập và lưu aligned policy

    Chống reward hacking và alignment tax, chỉ lưu trọng số policy.

  7. Phục vụ 1 · Nạp aligned policy

    Reference, reward model và value model ở lại phía huấn luyện.

  8. Phục vụ 2 · Prefill của policy đã align

    Compute giống hệt model nền; chỉ phân phối logits đã đổi.

  9. Phục vụ 3 · Decode của policy đã align

    Trọng số cố định, không có vòng chấm thưởng lúc phục vụ.

  10. Phục vụ 4 · Dừng, trả văn bản và đo chất lượng thật

    Kết quả phục vụ là nguồn cặp phản hồi mới cho vòng căn chỉnh sau.

Mã Mermaid
flowchart TD
  step1["Nạp policy đã SFT và đóng băng bản reference"]
  step2["Thu cặp ưu tiên chosen/rejected"]
  step3["Huấn luyện reward model (nhánh RLHF)"]
  step4["PPO với KL penalty (nhánh RLHF)"]
  step5["Loss DPO (nhánh trực tiếp)"]
  step6["Đánh giá độc lập và lưu aligned policy"]
  step7["Phục vụ 1 · Nạp aligned policy"]
  step8["Phục vụ 2 · Prefill của policy đã align"]
  step9["Phục vụ 3 · Decode của policy đã align"]
  step10["Phục vụ 4 · Dừng, trả văn bản và đo chất lượng thật"]
  step1 --> step2
  step2 --> step3
  step3 --> step4
  step4 --> step5
  step5 --> step6
  step6 --> step7
  step7 --> step8
  step8 --> step9
  step9 --> step10

3Giải pháp

Bài toán: SFT cho một đáp án mẫu nhưng không nói đáp án nào tốt hơn

SFT dạy model bắt chước một câu trả lời. Nhưng với nhiều yêu cầu, viết ra câu trả lời hoàn hảo rất khó, trong khi so sánh hai câu và chọn câu tốt hơn dễ hơn nhiều và nhất quán hơn. Preference training tận dụng đúng điểm đó: dạy model nghiêng về kiểu trả lời được ưa thích và tránh lỗi như bịa đặt, vòng vo hay sai định dạng, mà không đòi một đáp án duy nhất.

Khái niệm tối thiểu cần nắm trước khi đi vào các bước

Policy là model đang được tối ưu, ký hiệu π_θ (θ là toàn bộ trọng số). Với một prompt, policy gán xác suất cho từng câu trả lời có thể có. Xác suất của cả câu là tích xác suất từng token, nên người ta làm việc với logarit để cộng thay vì nhân: log-prob của câu bằng tổng log-prob từng token, luôn là số âm; log-prob càng gần 0 thì câu càng có khả năng.

Hàm sigmoid σ(x) = 1/(1 + e^(−x)) đổi một số thực bất kỳ thành xác suất từ 0 đến 1; σ(0) = 0,5. Reference π_ref là bản sao cố định của policy lúc bắt đầu, dùng làm mốc để đo policy đã lệch bao xa. Các khái niệm loss, forward và optimizer đã có ở các bài forward, loss và AdamW.

Ví dụ chạy xuyên suốt cả bài

Prompt (tự bịa cho mục đích minh họa): "Quên mật khẩu internet banking thì làm gì?" Câu chosen: "Bạn chọn Quên mật khẩu trên màn hình đăng nhập, nhập số điện thoại đã đăng ký và làm theo mã OTP (mật khẩu dùng một lần) gửi về." Câu rejected: "Việc đó tùy ngân hàng, bạn tự tìm hiểu nhé." Cả hai là câu trả lời hoàn chỉnh cho cùng một prompt; chosen cụ thể và dùng được, rejected vòng vo.

Bước huấn luyện 1 · Điểm xuất phát: policy đã qua SFT và bản reference đóng băng

Preference training không bắt đầu từ model ngẫu nhiên mà từ một checkpoint đã qua SFT, tức model đã biết đọc chỉ dẫn và trả lời đúng khuôn hội thoại. Checkpoint đó đảm nhận hai vai trò cùng lúc: một bản mở khóa trọng số làm policy π_θ, và một bản sao y hệt đóng băng làm reference π_ref. Lý do: nếu policy trả lời lạc định dạng thì người chấm khó xếp hạng công bằng, cặp ưu tiên nhiễu sẽ kéo cả reward model lẫn DPO lệch; còn reference giữ cho policy không biến dạng ngôn ngữ khi chạy theo điểm thưởng.

Reference phải là bản sao đóng băng của đúng policy khởi đầu, nếu không KL penalty và loss DPO đo sai mốc. Cách kiểm tra: trước bản cập nhật đầu tiên, trọng số policy và reference trùng nhau; policy đã tuân đúng chat template. Nếu bạn chỉ có base model chưa SFT thì có hai lựa chọn tùy cách làm: SFT trước trên demonstrations rồi mới preference training (như InstructGPT), hoặc ước lượng reference bằng likelihood trên các câu trả lời được ưa (như bài DPO); không cách nào tự đúng cho mọi tác vụ, hãy đo trên dữ liệu giữ riêng.

Bước huấn luyện 2 · Cặp ưu tiên chosen/rejected cho cùng prompt

Dữ liệu cốt lõi là bộ ba (prompt, chosen, rejected). Quy trình thường gặp: chọn các prompt đại diện, cho policy hiện tại sinh nhiều câu trả lời cho mỗi prompt, người chấm xếp hạng và ghi lại căn cứ, rồi đóng gói thành bộ ba qua đúng chat template của tokenizer. Nếu xếp hạng bốn câu cho một prompt thì có thể tạo 4 × 3 / 2 = 6 cặp, đó là cách InstructGPT khai thác nhiều cặp từ mỗi lượt chấm. Khác với dữ liệu SFT chỉ có một đáp án, cặp này cho model thấy cả cái cần hướng tới lẫn lỗi cần tránh.

Thiết kế thu thập dữ liệu nên tách khỏi vòng huấn luyện, lưu nguồn câu trả lời, policy đã sinh chúng và tiêu chí xếp hạng. Trước khi huấn luyện, kiểm tra cặp nhiễu: cùng một prompt bị xếp ngược nhau ở hai lần đánh giá cho thấy tiêu chí chưa rõ. Người chấm bất đồng nhiều ở nhóm prompt nhạy cảm không tự hết khi thêm dữ liệu; lúc đó cần làm rõ hướng dẫn xếp hạng thay vì thu thêm cặp mù. Tách prompt đánh giá khỏi prompt thu cặp ngay từ đầu.

Bước huấn luyện 3 · Reward model dạng so sánh cặp (nhánh RLHF)

Reward model (RM) là hàm chấm điểm tự động. Thường nó được khởi tạo từ checkpoint SFT, bỏ ma trận đầu ra từ vựng (LM head) và thay bằng một lớp tuyến tính cho ra một số thực duy nhất r(prompt, câu trả lời). Mỗi câu chỉ cần một lượt forward. RM học bằng pairwise loss: L = −ln σ(r_chosen − r_rejected).

Ví dụ số (minh họa): nếu RM chấm r_chosen = 2,0 và r_rejected = 0,5 thì hiệu là 1,5, σ(1,5) ≈ 0,818 và loss ≈ 0,201. Nếu hai điểm bằng nhau, loss bằng ln 2 ≈ 0,693, mức của việc đoán mò. Nếu RM chấm ngược (hiệu −1,0) loss ≈ 1,313. Loss giảm nghĩa là RM xếp đúng thứ tự cặp nhiều hơn.

Cách đọc kết quả: đánh giá RM trên cặp giữ riêng bằng độ chính xác xếp đúng thứ tự và độ chênh điểm trung bình giữa chosen và rejected; chênh điểm sụp nghĩa là RM mất khả năng phân biệt. InstructGPT huấn luyện RM theo batch từng prompt thay vì xáo từng cặp riêng; đó là công thức của bài này chứ không phải định nghĩa của reward modeling. RM chỉ khái quát tốt trong phân phối nó đã thấy; câu trả lời quá khác dữ liệu huấn luyện sẽ bị chấm nhiễu, và PPO sẽ khai thác đúng chỗ nhiễu đó.

Bước huấn luyện 4 · PPO trên reward model với KL penalty (nhánh RLHF)

Mỗi vòng PPO gồm ba chặng. Chặng một: policy sinh câu trả lời mới (rollout) cho các prompt chưa có nhãn bằng sampling. Chặng hai: RM chấm điểm, rồi hệ thống trừ một khoản phạt KL nếu xác suất token của policy lệch xa reference. Ví dụ số: RM chấm 1,2; tổng log tỉ số xác suất so với reference trên câu là 4,0; hệ số phạt β_KL = 0,1; điểm thưởng cuối là 1,2 − 0,1 × 4,0 = 0,8. Chặng ba: cập nhật policy trong vùng an toàn nhờ objective bị chặn. (Biến thể GRPO, Group Relative Policy Optimization, thay value model bằng việc so các câu trả lời trong cùng một nhóm mẫu của một prompt.)

Objective bị chặn hoạt động như sau. Với mỗi token, ρ là tỉ số giữa xác suất mới và xác suất cũ của policy; advantage A cho biết lựa chọn đó tốt hơn (A dương) hay kém hơn (A âm) kỳ vọng do value model ước lượng. PPO tối đa hóa min(ρ·A, clip(ρ, 1 − ε, 1 + ε)·A) với ε thường là 0,2. Ví dụ A = +1 và ρ = 1,5: ρ·A = 1,5 nhưng giá trị chặn là 1,2, nên objective là 1,2 và không còn thêm động lực đẩy ρ xa hơn.

Về hệ thống đây là bài toán nặng: một vòng có thể cần bốn model cùng hoạt động là policy, reference, reward và value, đồng thời phải chuyển liên tục giữa pha sinh token (nặng về KV cache) và pha backward trên cụm GPU phân tán. Giữ KL penalty neo đúng vào reference SFT chứ không phải policy đang chạy. Theo dõi ratio giữa policy mới và cũ quanh 1,0 và điểm thưởng trung bình tăng dần; ratio vọt xa 1,0 nghĩa là cập nhật quá gắt. PPO-ptx (trộn gradient pretraining) là công thức của InstructGPT để giảm hồi quy trên benchmark công khai, không phải thành phần bắt buộc, và có cần hay không phải đo trên tập hồi quy của riêng bạn.

Bước huấn luyện 5 · Loss DPO trực tiếp, không reward model riêng (nhánh trực tiếp)

DPO thay thế cả hai bước 3 và 4 bằng một loss. Với mỗi cặp, ta tính log-prob của chosen và rejected dưới cả policy lẫn reference, lấy hiệu của hai log tỉ số, nhân β rồi đưa vào −ln σ: L = −ln σ(β × [(ln π_θ(chosen) − ln π_ref(chosen)) − (ln π_θ(rejected) − ln π_ref(rejected))]). Phần trong ngoặc là implicit reward chênh lệch: nó dương khi policy đã tăng khả năng của chosen và giảm khả năng của rejected so với reference.

Ví dụ số (minh họa) với β = 0,1. Lúc bắt đầu policy trùng reference nên mọi log tỉ số bằng 0, margin bằng 0 và loss bằng ln 2 ≈ 0,693. Giả sử sau một số bước, log-prob của chosen là −12,0 (reference −13,0, tăng 1,0) và của rejected là −15,0 (reference −14,0, giảm 1,0): margin = 0,1 × (1,0 − (−1,0)) = 0,2 và loss ≈ 0,598. Nếu tiến xa hơn, chosen tăng 2,0 và rejected giảm 3,0: margin = 0,1 × 5 = 0,5 và loss ≈ 0,474. Loss giảm khi policy phân biệt chosen và rejected rõ hơn so với reference.

Nhờ bỏ bước sinh mẫu trực tuyến và các model reward hay value, DPO đơn giản, ổn định và tốn bộ nhớ chỉ hơn SFT một chút (cần thêm lượt forward của reference). Chọn β theo sức tín hiệu của dữ liệu, vì β gắn trực tiếp với mức lệch được phép khỏi reference; không có giá trị mặc định chung. TRL coi sigmoid là loss mặc định và liệt kê thêm các biến thể từ bài khác; đổi biến thể là đổi công thức và phải đo lại trên tập giữ riêng. Kết quả của bài DPO: DPO vượt RLHF dựa trên PPO ở kiểm soát sắc thái, và ngang hoặc hơn ở tóm tắt và đối thoại một lượt, trong khi đơn giản hơn để cài đặt và huấn luyện. Một lượt huấn luyện đi theo một nhánh, không chạy cả hai.

Bước huấn luyện 6 · Đánh giá độc lập và lưu aligned policy

Điểm thưởng huấn luyện tăng hay loss giảm sâu chưa đủ để kết luận model tốt lên. Model có thể reward hacking (viết thật dài, nịnh người chấm, lặp cấu trúc để ăn điểm của RM) hoặc bị suy giảm khả năng nền như làm toán hay code (alignment tax). Vì thế nghiệm thu phải đo tỉ lệ thắng (win rate) so với baseline trên prompt chưa dùng, độ đúng và định dạng theo từng nhóm câu hỏi, và chạy lại các benchmark chung để bắt hồi quy. InstructGPT đo cả với người chấm không tham gia tạo dữ liệu huấn luyện, và đó là cách đo đáng sao chép.

Nếu thấy hồi quy khả năng chung, một công thức là trộn gradient pretraining kiểu PPO-ptx rồi đo lại cả hai vế. Khi đạt chuẩn, chỉ đóng gói trọng số policy kèm tokenizer và config; reference, reward model, value model và trạng thái AdamW ở lại phía huấn luyện. Ghi lại policy, dữ liệu và tiêu chí chấm của từng vòng để so sánh công bằng giữa các vòng.

Bước phục vụ 1 · Nạp aligned policy để phục vụ

Dù lúc huấn luyện cần reference, reward model hay value model, các thành phần phụ đó chỉ tồn tại ở cụm huấn luyện. Khi phục vụ, worker chỉ nạp một gói checkpoint của aligned policy, cùng cấu trúc lớp, kích thước ma trận và cách nạp lên HBM như bản SFT. Yêu cầu duy nhất là ghim đúng phiên bản tokenizer và chat template đã dùng khi huấn luyện; lệch phiên bản là lỗi triển khai không liên quan tới preference training.

Đây là toàn bộ trọng số của policy, khác LoRA là một base chung kèm adapter rời, nên không có bước gộp hay chọn adapter theo request ở lane này. Giữ manifest ghi rõ policy này được align từ checkpoint SFT nào trên cặp dữ liệu nào, để khi chất lượng lạ có đường truy ngược. Đo thời gian nạp và warmup riêng, tách khỏi độ trễ mỗi request.

Bước phục vụ 2 · Prefill của policy đã align

Pha prefill diễn ra y hệt model Decoder-only thường: mảng token đi qua các lớp Transformer trong một lượt song song để ghi KV cache và xuất logits chọn token đầu. Căn chỉnh DPO hay RLHF không thêm lớp hay đổi phép toán nào, nên compute và các tối ưu của engine giữ nguyên; thứ đổi là giá trị các con số trong trọng số, tức phân phối logits.

Cùng prompt cho logits khác trước khi align vì phân phối đã đổi, dù số phép tính giống hệt. Đừng đọc chênh lệch nhỏ về TTFT như bằng chứng preference training làm chậm suy luận; khác biệt phân phối output không đồng nghĩa khác biệt compute. Sai chat template đổi token ID đầu vào nên output khác dù cùng trọng số.

Bước phục vụ 3 · Decode của policy đã align

Vòng decode tự hồi quy chạy với trọng số cố định: đưa token mới vào mạng, đọc KV cache, nối K/V mới, rồi chọn token kế. Lúc phục vụ không có reward model nào chấm từng câu và không có vòng học tăng cường nào sửa trọng số. Hành vi trả lời đúng trọng tâm và ít bịa hơn đã nằm sẵn trong các ma trận trọng số từ khi kết thúc huấn luyện, không đến từ bước tính mới.

Tham số sampling vẫn quan trọng: cùng trọng số nhưng temperature hay top-p khác nhau cho phân phối output khác nhau. Khi so trước và sau align phải dùng cùng cấu hình sampling và hạt giống (seed) để so sánh công bằng. Nhớ rằng KV của token vừa chọn chỉ được thêm khi token đó được forward ở bước sau; lệch một token là lỗi trace thường gặp, không liên quan tới preference.

Bước phục vụ 4 · Dừng, trả văn bản và đo chất lượng thật

Chặng cuối giống bước xuất kết quả chuẩn: dừng khi gặp EOS, chuỗi dừng hoặc giới hạn độ dài, giải mã token thành văn bản, giải phóng KV cache. Kiểm tra stop string trải qua nhiều token và so văn bản stream với văn bản cuối, vì lỗi buffering dễ bị nhầm thành lỗi model.

Các câu trả lời phục vụ cũng là nguồn dữ liệu để đánh giá định kỳ hoặc thu thêm cặp tốt/kém cho vòng căn chỉnh tiếp theo. Đừng bao giờ lấy điểm reward của RM lúc huấn luyện để báo cáo chất lượng phục vụ vì hai con số sống ở hai phân phối khác nhau; mọi tuyên bố policy tốt hơn phải kèm baseline, tập prompt và thước đo độc lập.

Kết luận được rút ra và không được rút ra

Có thể kết luận: trên tập prompt và thước đo độc lập đã chọn, aligned policy được ưa hơn baseline với tỉ lệ đo được. Không thể kết luận: điểm thưởng tăng nghĩa là model tốt hơn; DPO luôn hơn PPO hoặc ngược lại (đó không phải quy tắc chọn tối ưu cho mọi tác vụ); hoặc không còn alignment tax chỉ vì benchmark chung chưa sụt. Mọi reward đều là một thước đo, và không phải reward nào cũng đến từ con người, vì kiểm chứng tự động cũng là một nguồn.

Thực hành trên Bài Lab tổng hợp

Giai đoạn 12 (Preference, nhánh DPO) của Bài Lab tổng hợp cho bạn chạy loss của bước 5 trên các cặp chosen/rejected thật của lab. Reward model và PPO (bước 3 và 4) được giải thích ở bài này nhưng không thuộc phần chạy được của giai đoạn đó. Trước khi chạy, hãy tự tính lại ví dụ DPO với β = 0,1 và kiểm tra rằng loss khởi đầu gần ln 2 khi policy còn trùng reference.

4Profiling

  • Độ chính xác xếp cặp và chênh điểm thưởng

    Với RM: tỉ lệ chosen được chấm cao hơn rejected trên cặp giữ riêng, và độ chênh điểm trung bình. Với DPO: implicit reward chênh giữa chosen và rejected và tỉ lệ cặp được xếp đúng trên tập giữ riêng. Đây là chỉ số của cơ chế học, chưa phải chất lượng cuối.

  • Độ lệch KL tới reference

    KL trung bình giữa policy hiện tại và reference. Tăng vọt nghĩa là policy đã rời phân phối mà RM còn đúng, hoặc β trong DPO quá nhỏ.

  • Tỉ lệ thắng và hồi quy khả năng chung

    Tỉ lệ câu trả lời của policy được ưa hơn baseline trên cùng prompt, phân theo độ dài, loại câu hỏi và lỗi. Cùng lúc đo chênh lệch điểm benchmark chung trước và sau align; càng âm càng cần xem lại.

  • Chi phí toàn pipeline

    Đo riêng sinh rollout, tính reward, tính reference và bước cập nhật theo thuật toán đang dùng, không chỉ thời gian của optimizer. Không đồng nhất một chỉ số reward với mọi tiêu chí chất lượng.

Mẹo đo lường: ghim số liệu trên workload thật, ghi cả p50/p95/p99 thay vì chỉ trung bình, và luôn ghi lại điều kiện chạy (batch, cache, đồng thời, phần cứng) trước và sau khi tối ưu. Số đo thiếu điều kiện chạy thì không so sánh được.

5Ví dụ

Tính tay loss DPO

Dùng β = 0,1, chosen có log-prob −11,0 (reference −13,0), rejected có −17,0 (reference −14,0). Hãy dự đoán loss. Đáp án: margin = 0,1 × (2,0 − (−3,0)) = 0,5, loss = −ln σ(0,5) ≈ 0,474, thấp hơn mức khởi đầu 0,693 vì policy đã tách chosen khỏi rejected.

Reward model chấm sai thứ tự

RM chấm chosen 0,3 và rejected 1,3. Loss là bao nhiêu và nói lên điều gì? Đáp án: hiệu −1,0 cho loss ≈ 1,313, lớn hơn mức đoán mò 0,693; gradient sẽ kéo RM đổi thứ tự. Một cặp sai không kết luận gì về RM; cần độ chính xác trên cả tập giữ riêng.

Phát hiện reward hacking

Điểm RM trung bình tăng đều qua các vòng PPO nhưng độ dài câu trả lời tăng gấp ba và độ đúng trên bộ kiểm tra độc lập không tăng. Hãy nêu kết luận và hành động. Đáp án: nghi ngờ policy khai thác RM bằng độ dài; tăng KL penalty hoặc sửa dữ liệu RM, và nghiệm thu bằng thước đo độc lập chứ không bằng điểm RM.

DPO từ hai câu trả lời

Trong ví dụ xuyên suốt, cùng một prompt có câu chosen cụ thể và câu rejected vòng vo. Tự kiểm tra: dataset SFT và dataset DPO khác nhau ở điểm cơ bản nào? Đáp án: SFT chỉ lưu một đáp án mong muốn để bắt chước, còn DPO lưu cả hai và dạy ưu tiên tương đối giữa chúng so với reference.

Học từ đáp án có thể kiểm chứng

Nếu tác vụ có bộ kiểm tra kết quả (đúng sai của bài toán, bài kiểm thử code), câu trả lời sinh ra có thể được chấm thưởng tự động, đó là một nguồn reward thay cho người chấm. Điều này giảm công gán nhãn nhưng không loại bỏ nhu cầu đánh giá độc lập: bộ kiểm tra chỉ đo những gì nó kiểm.

6Thuật ngữ

Preference training (alignment)
Giai đoạn huấn luyện sau SFT, dùng tín hiệu so sánh hoặc điểm thưởng để model nghiêng về câu trả lời tốt, đúng và an toàn hơn.
Policy
Model đang được tối ưu, ký hiệu π_θ; với mỗi prompt nó định ra xác suất cho từng câu trả lời có thể có.
Reference model
Bản sao đóng băng của policy khởi đầu (thường là checkpoint SFT), ký hiệu π_ref, dùng làm mốc neo cho KL penalty và loss DPO.
Chosen / rejected
Hai câu trả lời cho cùng một prompt; chosen là câu được người chấm ưa hơn, rejected là câu còn lại.
Reinforcement Learning from Human Feedback (RLHF)
Học tăng cường từ phản hồi con người; thường gồm reward model rồi tối ưu policy theo điểm thưởng bằng PPO.
Reward model (RM) và scalar reward
Model chấm điểm, nhận prompt cùng câu trả lời và xuất một số thực duy nhất; chỉ thứ tự tương đối giữa các điểm mới có nghĩa.
Pairwise loss (Bradley–Terry)
Loss bằng −ln sigmoid của hiệu điểm chosen trừ rejected, kéo điểm chosen cao hơn điểm rejected trên cùng prompt.
Proximal Policy Optimization (PPO)
Thuật toán học tăng cường trực tuyến cập nhật policy trong một vùng an toàn bằng objective bị chặn (clipped).
Rollout
Câu trả lời mà policy sinh ra trong vòng lặp để reward model chấm và PPO học.
KL penalty
Khoản trừ vào điểm thưởng, tỉ lệ với độ lệch của policy so với reference, để policy không đi quá xa model SFT hay khai thác chỗ yếu của reward model.
Value model (critic) và advantage
Value model ước lượng điểm thưởng kỳ vọng; advantage là mức một lựa chọn tốt hơn hay kém hơn kỳ vọng đó.
Direct Preference Optimization (DPO)
Tối ưu ưu tiên trực tiếp; học từ cặp chosen/rejected bằng một loss duy nhất so policy với reference, không cần reward model riêng hay vòng lấy mẫu.
Beta (β)
Hệ số dương trong DPO điều khiển mức lệch được phép so với reference; β càng lớn thì policy càng bám reference.
Implicit reward
Điểm thưởng ngầm do chính policy và reference định nghĩa trong DPO, bằng β nhân log tỉ số xác suất.
Reward hacking
Policy tăng điểm thưởng bằng cách khai thác chỗ yếu của thước đo, ví dụ viết dài hay nịnh người chấm, mà không làm câu trả lời tốt hơn thật.
Alignment tax
Mức mất điểm trên các tác vụ chung do quá trình căn chỉnh gây ra; phải đo riêng chứ không đoán.
Aligned policy
Checkpoint policy sau preference training; artifact duy nhất đi vào phục vụ.
Glossary (10)
Model weights
Các tham số số học được học và lưu trong checkpoint.
Checkpoint
Bản lưu trạng thái model; phạm vi states phụ thuộc mục đích serving hay resume.
Tokenizer
Bộ chuyển đổi văn bản và chuỗi mã token theo bảng từ vựng.
Forward pass
Tính kết quả model từ đầu vào theo weights hiện tại.
Backward pass
Tính gradients ngược qua các phụ thuộc của forward graph.
Batch
Nhóm công việc hoặc mẫu được xử lý trong một lượt tính.
Baseline
Cấu hình hoặc kết quả gốc dùng làm mốc so sánh.
Cache
Bộ nhớ giữ kết quả có thể dùng lại; trong attention thường giữ key/value vectors.
Runtime
Phần mềm quản lý việc thực thi, buffers và phụ thuộc giữa phép toán.
Random Number Generator
Bộ sinh số ngẫu nhiên; trạng thái có thể cần lưu để resume tương ứng.

7Bài liên quan

8Nguồn