Direct Preference Optimization (DPO)
Tìm hiểu cách Direct Preference Optimization (DPO) đơn giản hóa việc căn chỉnh AI. Khám phá cách phương pháp hiệu quả này thay thế RLHF để cải thiện độ an toàn và hiệu suất của model.
Direct Preference Optimization (DPO) là một kỹ thuật thuật toán ổn định và hiệu quả được sử dụng để tinh chỉnh các model trí tuệ nhân tạo, đảm bảo chúng phù hợp với mong muốn của con người, các tiêu chuẩn an toàn và hướng dẫn đạo đức. Không giống như các phương pháp truyền thống yêu cầu các pipeline đa giai đoạn phức tạp để thu thập phản hồi từ con người, DPO đơn giản hóa quy trình căn chỉnh về mặt toán học bằng cách coi việc học ưu tiên trực tiếp như một tác vụ phân loại trong học máy tiêu chuẩn. Bằng cách trực tiếp tối ưu hóa model dựa trên tập dữ liệu về ưu tiên của con người—nơi các nhà chú thích chọn phản hồi "thắng" thay vì "thua"—các nhà phát triển có thể cải thiện đáng kể tính hữu ích, sự trung thực và độ an toàn của các model nền tảng quy mô lớn và các hệ thống AI tạo sinh hiện đại.
Link to this sectionCách DPO đơn giản hóa việc căn chỉnh model#
Cải tiến chính của Direct Preference Optimization nằm ở việc loại bỏ "trung gian" kiến trúc. Trong lịch sử, việc căn chỉnh một Large Language Model (LLM) hoặc Vision-Language Model liên quan đến một quy trình phức tạp được gọi là Reinforcement Learning from Human Feedback (RLHF). RLHF yêu cầu huấn luyện một model phần thưởng riêng biệt để ước tính điểm số của con người, sau đó sử dụng một thuật toán học tăng cường dễ gây mất ổn định như Proximal Policy Optimization để cập nhật model chính.
DPO loại bỏ nhu cầu về model phần thưởng riêng biệt này một cách toán học. Thay vào đó, nó dựa vào một loss function dẫn xuất giúp tăng xác suất tạo ra các kết quả đầu ra "được ưu tiên" đồng thời giảm xác suất của những kết quả "bị từ chối". Nó sử dụng một model tham chiếu để giới hạn Kullback-Leibler divergence, đảm bảo model đã cập nhật không trôi quá xa so với phân phối dữ liệu huấn luyện gốc. Sự đơn giản hóa toán học này làm cho quy trình hoạt động gần giống với supervised learning tiêu chuẩn, dẫn đến hội tụ nhanh hơn và giảm mức sử dụng bộ nhớ trên phần cứng GPU. Điều này vốn dĩ làm giảm nguy cơ sụp đổ model và loại bỏ việc tinh chỉnh siêu tham số trên diện rộng.
Link to this sectionCác ứng dụng thực tế#
Direct Preference Optimization đang định hình lại cơ bản cách các hệ thống AI tương tác được xây dựng và triển khai trên nhiều ngành công nghiệp quan trọng nhằm theo đuổi AI Safety mạnh mẽ.
- Nâng cao các tác nhân hội thoại: Trong lĩnh vực chatbot và trợ lý ảo, DPO được sử dụng để giảm tính độc hại và căn chỉnh phản hồi theo các thực tiễn an toàn tốt nhất của OpenAI và nghiên cứu của Anthropic về căn chỉnh AI. Các nhà chú thích con người xem xét hai câu trả lời cho một lời nhắc, đánh dấu câu trả lời lịch sự, thực tế là "đã chọn". Sau đó, DPO cập nhật trọng số của model để ưu tiên phong cách hội thoại cụ thể này trong khi phạt các ảo tưởng.
- Tinh chỉnh các Vision-Language Model: Khi nhận dạng hình ảnh phát triển, các model ngày càng được yêu cầu phải giải thích những gì chúng nhìn thấy cho người vận hành. Đối với các ứng dụng như trả lời câu hỏi bằng hình ảnh, DPO cho phép các nhà nghiên cứu căn chỉnh đầu ra văn bản của model với các ưu tiên chi tiết của con người. Ví dụ, nếu người dùng yêu cầu một hệ thống robot sử dụng Ultralytics YOLO26 mô tả một đối tượng, DPO sẽ huấn luyện model ưu tiên các mô tả thực tế, súc tích thay vì các diễn giải mơ hồ, tuân thủ chặt chẽ các nguyên tắc AI Ethics nghiêm ngặt.
Link to this sectionDPO trong thực tế#
Việc triển khai DPO yêu cầu dữ liệu cặp chất lượng cao. Các quy trình làm việc hiện đại sử dụng các công cụ toàn diện như Ultralytics Platform để quản lý liền mạch các tập dữ liệu này, đảm bảo rằng quy trình gán nhãn dữ liệu mang lại các ví dụ "người thắng" và "kẻ thua" rõ ràng. Bạn có thể khám phá nghiên cứu nền tảng đằng sau điều này trong bài báo Direct Preference Optimization: Your Language Model is Secretly a Reward Model hoặc đọc về Căn chỉnh và Ưu tiên của con người từ Stanford HAI.
Đoạn mã Python sau đây minh họa cấu trúc dữ liệu nền tảng cần thiết cho phép tính loss theo kiểu DPO bằng cách sử dụng các hàm được tìm thấy trong tài liệu tham khảo PyTorch API.
import torch
import torch.nn.functional as F
def dpo_loss(chosen_logps, rejected_logps, beta=0.1):
# DPO maximizes the margin between chosen and rejected log probabilities
logits = beta * (chosen_logps - rejected_logps)
# The loss minimizes the negative log sigmoid of this margin
return -F.logsigmoid(logits).mean()
print(f"DPO Loss: {dpo_loss(torch.tensor([-0.5]), torch.tensor([-2.5])):.4f}")





