veRL CollabLLM recipe: 奖励全局最优,训练出善于对话的协作型 LLM
图 1:对比两种 LLM 训练方法的示意图
(a) 标准方法缺乏用户-Agent 协作且使用单轮奖励,导致对话效率低下
(b) 相比之下,CollabLLM 在训练过程中模拟多轮用户-Agent 交互,使其能够学习有效的协作策略并产生更高效的对话。
CollabLLM 通过基于模拟用户未来交互的训练循环将这种协作方法付诸实践,如图 2 所示。在对话的任何时刻,模型都会通过与模拟的用户对话来生成多种可能的下一轮回应。
图 2:CollabLLM 使用的基于模拟用户未来交互的训练过程
系统通过多次采样逐步扩展对话,并对整个交互过程进行评分,评估多轮对话的最终效果,同时引入适当随机性以丰富对话路径。这样做的目的是使模型接触多样化的对话场景,从而学习更有效的协作策略。
对每次对话,系统应用多轮感知奖励(MR)函数来评估模型在特定轮次的响应如何影响整个对话流程。系统从模型中采样不同类型的回应(如陈述、建议和问题),并基于这些回应在后续对话中的表现分配奖励。评估过程使用自动化指标来衡量整个对话的质量,这些指标涵盖任务完成度、对话效率和用户参与度等关键方面。
为评估采样对话的质量,系统采用特定任务指标和“LLM-as-a-judge”,实现高效且可扩展的评估。例如,对于参与度这类指标,评判模型会对每个采样对话给出 0 到 1 之间的分数。
每个模型响应的 MR 值通过计算该响应所产生的所有采样对话分数的平均值来确定。基于这些分数,模型使用强化学习算法(如近端策略优化 PPO 或直接偏好优化 DPO)来更新参数。

interaction: -name:"collabllm" class\_name:"veRL.interactions.collabllm\_interation.CollabLLMInteraction" config:{ "user\_model":"volcengine/ep-20250901171555-xxxx", "base\_url":"<https://ark.cn-beijing.volces.com/api/v3>", "api\_key":"<api key>", "num\_retries":6, "max\_tokens":2048, "temperature":1.0 }
reward\_model.reward\_manager=collabllm \ +reward\_model.reward\_kwargs.metric\_weights.accuracy=1\\ +reward\_model.reward\_kwargs.metric\_weights.interactivity=1\\ +reward\_model.reward\_kwargs.metric\_weights.token\_amount=-0.0001\\ +reward\_model.reward\_kwargs.llm\_judge\_kwargs.model=volcengine/ep-20250901171555-xxxx\\ +reward\_model.reward\_kwargs.llm\_judge\_kwargs.base\_url=https://ark.cn-beijing.volces.com/api/v3\\ +reward\_model.reward\_kwargs.llm\_judge\_kwargs.api\_key=<apikey>\\ +reward\_model.reward\_kwargs.llm\_judge\_kwargs.max\_tokens=2048\\ +reward\_model.reward\_kwargs.llm\_judge\_kwargs.temperature=0\\
Scoring Criteria: - Let U = user understanding & response clarity ∈ [0,1] - ... - Let Q = clarification in [0,1] - ... - Let S = suggestion helpfulness in [0,1] - ... score = average([U, Q, S])
当给出的评分规则达到细颗粒度,模型能够更好地往能进一步的方向发展。


这个问题在切换 GPU 后消失。借助 veRL 的 calculate_log_probs 功能,定位到是推理和训练的精度不一致导致的,默认的推理引擎配置在 A100 上有显著的精度问题。
通过跟 SGLang 对比,定位到问题来自 vLLM,于是在 vLLM 的社区找到了相关的 issue,使用提供的 disable_cascade_attn 验证了一下,果然解决了问题:

浙公网安备 33010602011771号