DRO¶
DRO(Richemond et al., 2024;Kimi Team, 2025)是一种离策略(甚至离线)的 RL 目标。它不截断概率比重,而是加一个二次惩罚,把学习器拉向采样器:
[ \mathcal{L}{\text{DRO}}(\theta) = \mathbb{E}\right)^2\right] ]}\left[\log p_\theta(x) \cdot A(x) - \frac{1}{2}\beta \left(\log \frac{p_\theta(x)}{q(x)
注意 DRO 期望的是软 advantage 形式,需要在构造 Datum 之前在客户端侧算好。
等价代码:
quadratic_term = (target_logprobs - sampling_logprobs) ** 2
dro_objective = target_logprobs * advantages - 0.5 * beta * quadratic_term
loss = -dro_objective.sum()
Inputs
target_tokens: array[(N,), int]—— 由 (q) 采样的 token ID。logprobs: array[(N,), float]——sampling_logprobs。advantages: array[(N,), float]—— 逐 token 的 advantage(软形式)。
Outputs
logprobs——target_logprobs。
Diagnostics
loss:sum—— DRO 损失总和。
自定义 beta¶
覆盖散度惩罚强度: