TROISINH
FrontierAlignment Frontier

Online DPO — Generate response on-the-fly thay vì offline dataset cố định

Online DPO liên tục sinh response mới và đánh giá real-time trong khi train, khắc phục distribution shift khiến offline DPO plateau. Hiểu bản chất alignment động.

Hãy tưởng tượng bạn đang dạy một đầu bếp mới. Thay vì cho học viên xem video nấu ăn từ tuần trước (khi họ còn vụng về) và bảo "làm giống vậy", bạn đứng bên cạnh, quan sát từng động tác hiện tại của họ, chỉnh sửa ngay lập tức. Online DPO làm điều tương tự: thay vì học từ dataset cố định, model liên tục được đánh giá và cải thiện chính những gì nó vừa tạo ra.

Vấn đề

Distribution shift — khi dữ liệu huấn luyện trở nên "cũ" trước khi được học.

Standard DPO (Offline DPO) bắt đầu bằng cách tạo một bộ dữ liệu preference cố định: prompt cùng cặp response (chosen/rejected) được sinh từ một model SFT ban đầu — gọi là reference model πref\pi_{\text{ref}}. Sau đó, DPO tối ưu policy πθ\pi_\theta để tối đa hóa likelihood của chosen và giảm likelihood của rejected.

Vấn đề xuất hiện sau vài epoch: πθ\pi_\theta đã thay đổi, nhưng dữ liệu preference vẫn là từ "con người" πref\pi_{\text{ref}} của quá khứ. Đây là distribution shift — model đang học để thích những thứ mà "bản thân cũ" của nó làm, dù hiện tại nó đã có khả năng sinh ra output hoàn toàn khác. Kết quả là performance plateau sớm, hoặc "catastrophic forgetting" khi model cố gắng giữ KL divergence với một reference đã lỗi thời.

Thêm nữa, offline DPO không thể tự cải thiện: nếu cả hai response trong một pair đều tệ (cùng sai hoặc cùng đúng), gradient sẽ zero và model không học được gì. Dataset tĩnh chứa đầy "noise" này, và ta không thể lọc nó đi vì không biết đâu là hard negative cho policy hiện tại.

Ý tưởng cốt lõi

Liên tục tạo mới, đánh giá ngay, cập nhật tức thì.

Online DPO (hay Online Direct Preference Optimization) loại bỏ dataset cố định. Tại mỗi bước huấn luyện, thay vì lấy batch từ bộ nhớ, model:

  1. On-policy sampling: Sinh ra 2 (hoặc nhiều) response mới toanh từ chính πθ\pi_\theta hiện tại cho một prompt.
  2. Real-time judgment: Dùng LLM-as-judge, reward model, hoặc verifier để chọn response tốt hơn (chosen) và xấu hơn (rejected) ngay lúc đó.
  3. Immediate update: Tính DPO loss trên cặp preference vừa được tạo và cập nhật weight ngay lập tức.

Đây là sự chuyển đổi từ offline learning sang online learning — giống như chuyển từ việc đọc sách dạy nấu ăn sang có một đầu bếp giỏi đứng cạnh chỉnh tay bạn từng giây.

Tại sao việc này khắc phục được distribution shift?

Trong DPO, implicit reward được định nghĩa là r(x,y)=βlogπθ(yx)πref(yx)r(x,y) = \beta \log \frac{\pi_\theta(y|x)}{\pi_{\text{ref}}(y|x)}. Công thức này giả định πθ\pi_\thetaπref\pi_{\text{ref}} gần nhau (do KL constraint). Nhưng khi πθ\pi_\theta drift xa πref\pi_{\text{ref}} (ví dụ: sau 1000 step), reward này trở nên vô nghĩa — giống như đánh giá đầu bếp hiện tại dựa trên tiêu chuẩn của người học việc 3 tháng trước.

Online DPO giải quyết bằng cách liên tục "refresh" dữ liệu. Tại mỗi step, bạn luôn so sánh những gì model vừa sinh ra, nên πθ\pi_\theta luôn được huấn luyện trên distribution của chính nó — on-policy. Điều này biến bài toán thành một dạng contextual bandit: model thử nghiệm (generate), quan sát phần thưởng (judge), và cập nhật chiến lược.

Fast-Slow Chasing: Biến thể nâng cao

Một cách triển khai tinh vi là OFS-DPO (Online DPO with Fast-Slow Chasing). Ở đây, ta dùng hai module LoRA: một "fast" với learning rate cao để explore nhiều chiến lược, một "slow" với learning rate thấp để giữ stability. Fast liên tục đuổi theo slow, tạo ra hiệu ứng "intraspecific competition" — giống như có một đầu bếp sáng tạo (fast) liên tục thử món mới, và một đầu bếp bảo thủ (slow) đảm bảo món ăn không quá lạc lõng. Kỹ thuật này đặc biệt hiệu quả cho continual learning cross-domain, nơi offline DPO thường thất bại do quên kiến thức cũ.

"Aha" Moment: Tương tác giữa Generator và Judge

Insight quan trọng nhất của Online DPO không chỉ là "sinh ra dữ liệu mới", mà là tương tác hai chiều giữa generation và evaluation. Khi bạn dùng LLM-as-judge để chọn giữa hai response vừa sinh, bạn thực chất đang tạo ra một curriculum learning động: model luôn được thử thách ở biên giới khả năng của nó (the "zone of proximal development"). Nếu cả hai response đều tệ, judge sẽ chọn "ít tệ hơn", tạo gradient hữu ích. Nếu cả hai đều tốt, judge chọn cái xuất sắc nhất, nâng ceiling. Offline DPO không thể làm điều này vì dataset đã đóng hộp.

That's it. Điểm mấu chốt chỉ đơn giản là: thay vì học từ quá khứ, hãy học từ hiện tại. Không cần theory phức tạp hơn DPO gốc, chỉ cần loop thêm bước generation và judgment vào trong training loop.

Tại sao nó hoạt động

Mathematical alignment thông qua on-policy data.

DPO tối ưu Bradley-Terry objective: LDPO=logσ(βlogπθ(ywx)πref(ywx)βlogπθ(ylx)πref(ylx))\mathcal{L}_{\text{DPO}} = -\log \sigma\left(\beta \log \frac{\pi_\theta(y_w|x)}{\pi_{\text{ref}}(y_w|x)} - \beta \log \frac{\pi_\theta(y_l|x)}{\pi_{\text{ref}}(y_l|x)}\right).

Khi πθ\pi_\thetaπref\pi_{\text{ref}} diverge, các log-ratio này trở nên lớn và unstable. Online DPO giải quyết bằng cách liên tục reset πref\pi_{\text{ref}} hoặc bằng cách không cần πref\pi_{\text{ref}} nữa (trong một số biến thể chỉ dùng relative preference giữa hai sample hiện tại).

Cơ chế bandit đảm bảo rằng model chỉ học từ những gì nó có thể sinh ra ngay lúc này. Điều này ngăn chặn "mode collapse" — hiện tượng model tìm ra một khe hở trong reward model cố định và exploit nó liên tục. Với judge động (đặc biệt là LLM-as-judge), khe hở thay đổi liên tục, buộc model phải thực sự cải thiện chất lượng tổng thể thay vì hack reward.

Stability through fresh negatives.

Trong offline DPO, "hard negatives" (các response gần đúng nhưng sai chi tiết) rất hiếm và cố định. Online DPO liên tục tạo ra hard negatives mới từ chính policy hiện tại — những câu trả lời mà model "tưởng" là tốt nhưng thực ra sai. Việc này tạo ra negative gradient mạnh hơn, giúp model học nhanh hơn ở những vùng uncertainty cao.

Ý nghĩa thực tế

Hiệu năng: Bắt kịp PPO mà không cần complexity.

Các nghiên cứu (như "What Matters in Data for DPO?") cho thấy offline DPO underperform so với PPO do distribution mismatch. Online DPO với LLM-as-judge (OAIF) hoặc Online DPO với Fast-Slow Chasing có thể đạt performance ngang hoặc vượt PPO trên AlpacaEval 2.0 và MT-Bench, trong khi vẫn giữ được simplicity của DPO (không cần value model như PPO).

Chi phí: Trade-off rõ ràng.

Online DPO đòi hỏi 2x inference cost trong quá trình train (phải sinh response trước khi backward). Tuy nhiên, sample efficiency tăng cao — bạn cần ít step hơn để converge vì mỗi batch đều là "fresh" và relevant. Trong thực tế, điều này có nghĩa là train lâu hơn một chút mỗi step nhưng cần ích step hơn tổng cộng.

Khi nào dùng?

  • Khi bạn có verifier tốt (math, code, logic) hoặc LLM-as-judge đáng tin cậy.
  • Khi domain chuyển đổi liên tục (continual learning) và không thể tạo dataset tĩnh bao quát mọi scenario.
  • Khi offline DPO bị plateau sớm (thường thấy sau 1-2 epoch).
Offline DPOOnline DPO
DataCố định, từ πref\pi_{\text{ref}}Động, từ πθ\pi_\theta hiện tại
Distribution ShiftCó, nghiêm trọng sau vài epochKhông, luôn on-policy
Inference Cost1x (chỉ train)2x (generate + train)
Sample EfficiencyThấp (nhiều useless pairs)Cao (hard negatives liên tục)
StabilityCao (deterministic)Trung bình (noisy gradients)
VerifierKhông cầnBắt buộc (LLM-as-judge/RM)

Đào sâu hơn

Paper gốc:

  • "Direct Language Model Alignment from Online AI Feedback" (Guo et al., 2024) — Giới thiệu OAIF, nền tảng của Online DPO hiện đại.
  • "Online DPO: Online Direct Preference Optimization with Fast-Slow Chasing" (Qi et al., 2024) — Kỹ thuật dual LoRA để cải thiện stability.
  • "The Crucial Role of Samplers in Online Direct Preference Optimization" (Xiong et al., 2024) — Phân tích importance sampling trong online setting.
  • "Direct Preference Optimization" (Rafailov et al., 2023) — Nền tảng lý thuyết DPO.

Bài liên quan TroiSinh:

Cùng cụm (Alignment Frontier):

  • SimPO — Bỏ luôn reference model, đơn giản hóa DPO xuống mức tối giản với length-normalized reward.
  • ORPO — Kết hợp SFT và preference optimization trong một stage duy nhất, không cần pipeline phức tạp.
  • KTO — Chỉ cần binary feedback (thumbs up/down) thay vì pairwise preference, phù hợp cho data thực tế.
  • Synthetic Data & Self-Play — Model tự tạo training data cho chính mình, bước tiến tự nhiên sau Online DPO.

Đọc tiếp:

  • DPO — Hiểu rõ nền tảng offline DPO để thấy tại sao online variant cần thiết.
  • RLHF — So sánh với PPO-based RLHF truyền thống, nơi Online DPO lấy cảm hứng về online learning.
  • Reasoning RL — GRPO và RLVR cũng dùng online generation với verifiable rewards, là đồng minh tư tưởng với Online DPO trong việc dùng real-time feedback thay vì static dataset.

External Resources:

On this page