Synthetic-Data-Zero-RL:让 RL 左脚踩右脚


MLNLP社区是国内外知名的机器学习与自然语言处理社区,受众覆盖国内外NLP硕博生、高校老师以及企业研究人员。
社区的愿景是促进国内外自然语言处理,机器学习学术界、产业界和广大爱好者之间的交流和进步,特别是初学者同学们的进步。
来源 | 知乎
作者|haotian


如果想左脚踩右脚,一个核心问题是:如何构造合适的prompt,且答案相对比较准确,这样,我们就能不断生成prompt并获取到gold-answer,且用该数据集做rl的训练,提升policy-model的性能。更进一步可以针对当前policy-model的能力评估结果,针对性合成相关的数据,提升policy的能力。(当然,也可以根据测试集针对性构造 测试集的模拟题)。

目前,合成prompt的方法有很多如EVOL-INSTRUCT、SELF-INSTRUCT等等。OpenCodeInstruct[1]提出了GENETIC INSTRUCT framework,合成了500万的code-sft-dataset,并在不同的base-model上均取得了不俗的效果:

RL能否左脚踩右脚,很大程度上取决于能否“因材施教”即根据当前policy的性能,自动化合成prompt&gold-answer,针对性提升模型缺失的技能、思维方法等等。

这里,我们选用PromptCoT[2]开源的数据作为rl训练的数据,prompt为合成数据且answer从r1-distill-qwen-7b蒸馏的response里面直接提取。(经验上,用多次采样+投票的机制,可能answer会更准确,但不可能避免引入teacher-model的bias。)

prompt-cot的合成过程如下:

合成过程

基于种子数据,提取concepts和rationales以及难度,并根据concepts/rationales/难度生成prompt。使用额外的评估模型评估prompt的质量如是否清晰/有答案等等。最终,多次拒绝采样后,得到prompt集合。最后一步,则是选择teacher-model获取对应的response。注意:这里,并没有使用复杂的策略保证蒸馏response的答案准确率。在保证种子数据去污染的情况下,prompt-cot算一个‘clean’的dataset。

PromptCoT已验证蒸馏数据的sft效果:在1.5b/7b-r1-distill上面,均有较大幅度的提升。

我们这里,主要验证zero-rl上使用这份合成数据是否有提升:

  • • 如果合成数据质量差(prompt没答案/蒸馏数据的答案错误等等),道理上,base上的rl结果会比较惨淡
  • • 如果合成数据质量较好,道理上,可以达到如orz/dapo/vapo的效果。

出于实验成本考虑,我们目前主要在qwen25-7b-base上进行了初步实验(还没有跑完训练)

实验设置

base-model:qwen25-7b-base,rollout-num=16, learning-rate=1e-6

训练配置:clip-higher(clip-ratio非对称)/acc-filter(0.1-0.8之间)/response_length-filter/repeatness-filter/token-level-loss(目前RL训练的基础配置)

结果如下

目前,只跑到550-step,但从上表可以看出,大部分数据集指标均接近orz-ppo的效果。orz-ppo为官方release的模型(使用57k数据训练)。

不管使用grpo还是reinforce++_baseline,基于prompt-cot的数据,zero-rl的效果可以和使用人工数据orz-57k达到相当的效果。初步表明PromptCoT的合成数据的质量确实有一定保障,以及使用7b-r1-distill作为teacher生成的response的答案准确率较高(虽然还没加复杂的答案投票机制)。

近期,Text to RL[3]提出了一个textbook合成rl数据的方法,且在instruct-model上做rl也有一定的正向收益:

基于以上结果,有理由相信,左脚踩右脚的可能性和前景,毕竟prompt-cot的prompt生成模型只是llama3.1-8b

总结

合理的prompt生成+reasoning-model蒸馏+答案投票(推理模型的投票能力都较强),可以为rl提供更多的答案可验证数据,进一步这些数据亦可用于pretrain阶段,提升数据的覆盖率,以及提供反事实数据(如 加入 不可解的问题等等)。

当然,现在llm的rl实验多数的说服力较低(RL的随机性更多:框架/推理引擎版本/随机数种子/各种未公开trick等等),以及 大部分实验结果只报了一次实验的结果(可能只报了峰值结果,没有报多次实验的平均结果,当然也因为训练周期长,多次实验成本过高,所以,大部分结果需要理性对待)。

最后,yy一下

  • • prompt生成和policy解题放到一个训练流程里面,在线根据policy的评估效果调整prompt生成—>个性化模型训练/对抗训练
  • • 采样引擎的问题会影响训练精度,尤其是rollout样本的分布。为了规避这部分的影响,需要更多的filter过滤样本,以及保持rollout-样本之间有足够的差异性/多样性(语料质量评估/多样性评估等等),还是那个观点:做好replay-buffer的数据质量/多样性控制,比硬调算法trick更关键,否则,很可能算法trick在解决replay-buffer的数据质量问题。

引用链接

[1] OpenCodeInstruct: https://arxiv.org/abs/2504.04030
[2] PromptCoT: https://arxiv.org/abs/2503.02324
[3] Text to RL: https://tufalabs.ai/blog/_site/jekyll/update/2025/03/25/textbooks-to-rl.html


(文:机器学习算法与自然语言处理)

发表评论

×

下载每时AI手机APP

 

和大家一起交流AI最新资讯!

立即前往