#6789·trl

GRPO: 当 top_p/top_k/min_p 截断采样时,vLLM 重要性采样比例会偏差

作者: qgallouedec创建于 2026年8月18日更新于 2026年9月18日

当“top p < 1”、“top k > 0”或“min p”被设定时,GRPO的 vLLM 重要性抽样校正比较了在** 不同分布** 上计算的两个对数概率,因此该比率有偏差。 vLLM 返回日志- probs 在已切换的(核)分布上重新正常化,而训练员则在完整的词汇上重新计算.

另外两个RL框架现在已经为此运出一个训练边的固定装置,原生的vLLM固定装置被合并,但尚未被放入TRL支持中.

{\fn黑体\fs22\bord1\shad0\3aHBE\4aH00\fscx67\fscy66\2cHFFFFFF\3cH808080}不匹配之处

生成方询问vLLM后处理器日志- probs, 无论是colocate还是服务器模式:

https://GitHub.com/huggingface/trl/blob/main/trl/generation/vllm generation.py#L365 (中文(简体) ).

训练侧分温度,并取出全伏卡布平面:

https://GitHub.com/huggingface/trl/blob/main/trl/trainer/grpo trainer.py#L1530-L1534 (英语).

‘被处理的 logprobs'指"在每个对数处理器之后",它包括上-p/上-k截取后在幸存的符上再进行再正态化. 温度是按对称处理的(1532行的镜像,而该对称是4159号的固定;截取不是. 对于一个在核体内存活下来的被抽样标记物, vLLM 的log-prob因此通过 “-log(幸存概率质量的和) ” (-log- summer of survival position summe) 的“log--log---behavour ” 的“-log- log- log- behavour ” 来表示“更高的* ” 。

`重要性-抽样-ratio'将每桶损失直接乘以:

https://GitHub.com/huggingface/trl/blob/main/trl/trainer/grpo trainer.py#L3208-L3209 (中文(简体) ).

因此,效果是对政策梯度进行无声的、象征性的依赖下压,而不是崩溃。

范围

  • 默认是安全的:top p=1.0'、top k=0'、`min p=None',因此没有东西被截断,两种分配方式一致。
  • " AsyncGRPOTrainer " 受到更严重的影响。 服务器发射通过`--logprobs-mode已处理 logprobs',这些发电机日志-probs不是可选的校正:它们是政策比率本身的分母,没有旗帜守卫它们。
log ratio = log probs - 旧 log probs # async grpo  教练.py#L945
coef 1 = 火炬.exp(log ratio)

AsyncGROPOFIG ' 暴露出top p'/top k'/min p'像GRPO',它记录的不是`sampling logp-difference'等同物,因此没有什么可注意的漂移。

  • 一旦用户设定了其中任何一种,就会受到影响,因为top p=0.9'/top k=50'的配方有时会受到影响。
  • 只使用`vllm importance sampling recordion=True'活动。
  • 相同的 “logprobs mode=” 处理过的 logprobs” 被设置在 `trl/scripts/vllm serve.py# L361',所以服务器模式同样受到影响.

###已可观察.

由于精确地衡量了这一差距,因此在截断下的现有衡量峰值:

抽样/抽样 logp difference/mean'和./max' (grpo trainer.py, + generate 和 score completements')

快速检查:用top p=1.0'和top p=0.8'运行GRPO+vLLM,并比较这一度量。 如果跳跃时没有其他变化,偏差是真实的. 值得我们做之前,我们选择固定。

前作艺术

  • VLLM (法语) . . . . . . .

内容来源: huggingface/trl