Primal Generation, Dual Judgment: Self-Training from Test-Time Scaling
本文介绍了 DuST,这是一种自训练框架,它利用测试时采样构建一个“双重判断空间”,使模型能够通过在线策略强化学习对候选程序进行排序,从而在不依赖正确生成直接奖励的情况下,同时提升其判断代码正确性的能力和生成高质量解决方案的能力。
原始论文采用 CC BY 4.0 许可(http://creativecommons.org/licenses/by/4.0/)。 这是对下方论文的AI生成解释。它不是由作者撰写或认可的。如需技术准确性,请参阅原始论文。 阅读完整免责声明
想象一下,你正在教一个机器人编写计算机代码。传统上,你是这样教它的:“这是一个问题。写出一个解决方案。运行它。如果它有效,很好!如果它崩溃了,再试一次。”这就像给机器人的每一次尝试打一个单一的“通过”或“失败”的分数。机器人会学习,但它只知道它失败了,却不知道与其他它可能编写的方案相比,为什么它失败了。
本文介绍了一种名为DuST(双重自训练)的新教学方法。它利用“原始生成”与“双重判断”这一概念,改变了游戏规则。
以下是使用简单类比进行的分解:
1. 旧方法:“通过/失败”测验
原始生成:
把机器人想象成一个正在参加考试的学生。
- 过程: 学生写下一个答案。老师检查它。
- 反馈: 老师给出一个红色的"X"或一个绿色的对勾。
- 问题: 如果学生得到了一个"X",他们知道自己错了,但他们不知道自己的答案离正确有多近,也不知道为什么他们特定的答案不如他们可能想到的另一个答案。他们只知道“不要这样做”。
2. 新想法:“品尝测试”小组
测试时扩展(设置):
在本文的方法出现之前,研究人员试图通过让机器人一次性写出许多答案(比如 4 个或 5 个)并挑选最好的一个来帮助它。这就像一次“品尝测试”。
- 缺陷: 在旧方法中,一旦机器人选出了最佳答案,其他 4 个答案就被扔进了垃圾桶。机器人从“答案 #2 几乎正确”而“答案 #4 完全错误”这一事实中学不到任何东西。这种宝贵的比较数据被浪费了。
3. DuST 解决方案:从“陪跑者”中学习
双重判断空间:
作者认为,机器人应该从自己答案之间的比较中学习,而不仅仅是从最终的获胜者那里学习。
- 类比: 想象一场烹饪比赛。
- 旧方法: 评委品尝一道菜并说:“烧焦了。失败。”厨师无法了解到是什么让一道菜变得美味。
- DuST 方法: 厨师制作了同一道菜的 4 个不同版本。评委品尝所有 4 道菜。
- 菜 A:完美。
- 菜 B:有点太咸。
- 菜 C:没煮熟。
- 菜 D:烧焦了。
- 教训: 老师不只是告诉厨师“菜 A 很好”,而是说:“菜 A 获胜是因为它很均衡。菜 B 失败是因为盐放多了。菜 C 失败是因为火候不够。”厨师学到了成功与失败之间的差异。
4. DuST 如何运作(食谱)
该论文描述了一个机器人经历的特定循环:
- 生成: 机器人编写一批代码解决方案(“品尝测试”批次)。
- 判断: 机器人在安全沙箱中运行所有代码,看看哪些实际上有效(通过/失败)。
- 分组: 机器人查看该批次。如果所有都失败或所有都通过,它就丢弃该批次。它只保留部分有效且部分失败的批次。这就是“混合组”。
- 排名(训练): 机器人被要求将这些混合组从“最佳”到“最差”进行排名。
- 关键点: 机器人从未因编写代码本身而获得奖励。它只因正确识别哪种代码更好而获得奖励。
- 当它说“这段有效的代码比这段损坏的代码好”时,它就能得分。
- 神奇转移: 尽管机器人只被训练成为一名评判者,但它出人意料地变得更擅长成为一名编写者。通过学习辨别有效解决方案和损坏解决方案之间的细微差别,机器人开始“理解”是什么让代码有效。它将这些规则内化,并开始自己编写更好的代码。
5. 结果:为什么这很重要
该论文在几种不同的 AI 模型(从小型到超大型)上测试了这种方法,使用的是名为LiveCodeBench的标准代码测试。
- 更好的评判者: 模型在识别正确代码方面变得更好(提高了它们的“排名”分数)。
- 更好的编写者: 出人意料的是,即使从未直接被告知“编写一个正确的程序”,模型在从头编写代码方面也变得更擅长。
- “单发”奇迹: 在此训练之前,一个模型可能需要写 4 个答案并挑选最好的一个才能获得高分。经过 DuST 训练后,该模型只需编写一个答案即可获得相同的高分。它学会了立即生成“最佳”答案,而不需要猜测和检查。
6. 秘密武器:强化学习 vs. 单纯复制
作者进行了一项最终实验,以了解为什么这有效。
- SFT(监督微调): 他们尝试只是教机器人复制正确的排名(就像学生背诵答案键)。这让机器人成为了更好的评判者,但并没有让它成为更好的编写者。
- RL(强化学习): 他们使用了一种名为 GRPO 的方法,机器人通过尝试、失败并根据奖励调整自身行为来学习。这是关键。排名的“主动学习”允许机器人改变其思维方式,从而提高了其编写能力。
总结
DuST 是一种让 AI 通过成为自身作品的批判大师来学习编程的方法。通过训练 AI 区分其自身的“好”尝试和“坏”尝试,它学习了正确性的隐藏规则。这些知识随后会回流到其编写能力中,使其成为更好的程序员,而无需直接被告知如何编写完美的程序。它将失败尝试的“浪费”数据变成了强大的老师。
您所在领域的论文太多了?
获取与您研究关键词匹配的最新论文每日摘要——附技术摘要,使用您的语言。