Apple vừa xin tòa ra lệnh cấm OpenAI dùng bí mật thương mại mà hai cựu nhân viên Apple bị cáo buộc mang theo. Vụ kiện cho thấy phần "làm sao huấn luyện model" giờ quý giá ngang phần cứng. Một trong những kỹ thuật huấn luyện quan trọng nhất vài năm qua chính là DPO, viết tắt của Direct Preference Optimization, ra đời để giải quyết một điểm nghẽn lớn trong RLHF cổ điển.
RLHF kiểu cũ: hai bước, một model thưởng
Muốn model trả lời "tốt hơn" theo ý con người, cách truyền thống là RLHF với PPO. Bước một, thu thập các cặp phản hồi được người gắn nhãn "cái nào hay hơn", rồi huấn luyện riêng một reward model để chấm điểm. Bước hai, dùng PPO, một thuật toán
reinforcement learning, để chỉnh policy sao cho điểm thưởng tăng lên, đồng thời phải theo dõi value function, lấy mẫu on-policy liên tục và canh không cho model lệch quá xa bản gốc. Pipeline này chạy được, nhưng nặng: ba bốn model phải chạy song song, hyperparameter nhạy, dễ mất ổn định.
Ý tưởng cốt lõi: phần thưởng đã ẩn sẵn trong chính policy
Nhóm Rafailov chỉ ra một điều tinh tế: nếu bạn biết nghiệm tối ưu của bài toán RLHF trông như thế nào, bạn có thể lật ngược công thức để biểu diễn reward chỉ bằng chính policy đang huấn luyện và policy tham chiếu, không cần model thưởng riêng nữa. Cụ thể, phần thưởng ẩn tỷ lệ với log của tỷ số xác suất policy mới chia cho policy gốc. Nói cách khác, model không học "chấm điểm" câu trả lời rồi mới sinh câu trả lời, nó sinh câu trả lời sao cho tỷ số xác suất đó tự nhiên phản ánh preference của con người.
Loss học trực tiếp từ từng cặp preference
Từ công thức implicit reward đó, DPO cắm thẳng vào mô hình Bradley Terry (mô hình xác suất kinh điển cho việc "A thắng B"), ra một hàm loss dạng phân loại nhị phân đơn giản: cho một cặp (câu trả lời được chọn, câu trả lời bị loại), model chỉ cần tăng xác suất tương đối của câu được chọn so với câu bị loại, so sánh với chính tỷ lệ đó ở policy tham chiếu. Không cần lấy mẫu, không cần rollout, không cần vòng lặp actor critic, chỉ là supervised learning trên dữ liệu preference có sẵn.
Beta, cái núm vặn độ tin vào sở thích con người
Trong công thức có một hệ số beta đóng vai trò nhiệt độ. Beta nhỏ cho phép policy đi xa reference model để chiều theo preference mạnh hơn, dễ tăng chất lượng nhưng cũng dễ overfit hoặc sinh văn phong lạ. Beta lớn giữ policy sát reference hơn, an toàn nhưng cải thiện chậm. Đây gần như tương đương với hệ số phạt KL trong PPO, chỉ khác là ở DPO nó nằm gọn trong một dòng loss thay vì phải cân bằng qua nhiều thành phần reward.
Vai trò của reference model: cái neo, không phải đối thủ
Reference model, thường chính là checkpoint sau bước supervised fine-tuning, không được cập nhật trong lúc train DPO. Nó đóng vai trò cái neo để đo policy mới đã lệch bao xa, giống hệt vai trò mà nó đóng trong ràng buộc KL của PPO. Không có neo này, model dễ bị "reward hacking", tức là tối ưu preference score bằng cách sinh ra câu trả lời kỳ quặc mà máy chấm điểm cao nhưng người đọc thấy dở.
Đánh đổi giữa DPO và PPO
DPO thắng ở sự đơn giản: ít model hơn, ít hyperparameter hơn, train ổn định hơn, phù hợp khi có sẵn tập preference tĩnh. PPO vẫn có chỗ đứng khi cần reward tinh chỉnh linh hoạt, kết hợp nhiều tiêu chí, hoặc học on-policy liên tục từ phản hồi mới thay vì một tập dữ liệu cố định. Nhiều đội
công nghệ giờ chọn DPO làm bước mặc định vì rẻ và dễ tái lập, chỉ quay lại PPO khi bài toán đòi hỏi kiểm soát reward phức tạp hơn.