MURPHY: Feedback-Aware GRPO with Retrospective Credit Assignment for Multi-Turn Code Generation
本文介绍了 MURPHY,这是一种多轮扩展的组相对策略优化(GRPO)方法,它利用反馈条件化的展开树和回溯性信用分配,通过将成功改进产生的奖励传播回早期具有信息量的尝试,显著提升了自我修正的代码生成能力。
原始论文采用 CC BY 4.0 许可(http://creativecommons.org/licenses/by/4.0/)。 这是对下方论文的AI生成解释。它不是由作者撰写或认可的。如需技术准确性,请参阅原始论文。 阅读完整免责声明
想象一下,你正在教一个机器人解决复杂的谜题,比如编写计算机程序。
旧方法(“一次性”错误)
传统上,你会让机器人去解决这个谜题。如果它做错了,你可能只会说“再试一次”,然后让它从头开始猜测一个全新的解决方案。或者,在更高级的设置中,机器人会在测试过程中看到自己的错误并尝试修正,但机器人本身实际上并没有学会如何在未来更好地修正错误。这就像一名学生参加考试,在某道题上被打了个红色的"X",然后在下一场考试前立刻忘记了这一课。
当前“学习”方法的问题
较新的方法允许机器人尝试、失败、看到错误信息,然后再次尝试。这确实有效,但“老师”(训练算法)有点笨拙。它将整个尝试视为一个单一的整体。
- 场景:机器人尝试了一个解决方案,失败了,错误信息确切地告诉它为什么失败(例如:“你忘记处理负数了”)。机器人利用这个线索修复代码并成功了。
- 笨拙的老师:旧的训练方法会说:“最终成功做得好!”但它对第一次失败的尝试给予零分。它没有意识到,第一次失败实际上是有用的,因为它提供了解决问题所需的具体线索。它将失败视为完全的时间浪费。
引入 MURPHY:像“聪明侦探”一样的老师
这篇论文介绍了MURPHY,一种训练这些机器人的新方法。把 MURPHY 想象成一位侦探,它审视整个故事,而不仅仅是结局。
构建“尝试树”:MURPHY 不再只让机器人尝试一次,而是让它分叉展开。
- 分支 A:机器人尝试一个解决方案。它失败了。
- 转折:MURPHY 利用那次失败、错误信息和原始问题,要求机器人专门针对该错误再次尝试。
- 分支 B:机器人利用错误线索修复代码并成功了。
倒带(回溯性归功):这是神奇的部分。一旦机器人在分支 B 上成功,MURPHY 就会在时间上向后追溯。它说:“等一下!分支 B 之所以成功,仅仅是因为分支 A 提供了那个特定的错误线索。所以,分支 A 也应该得到功劳!”
- 这就像侦探意识到,嫌疑人的最初失误(留下指纹)实际上是导致逮捕的关键证据。指纹并不是一个“糟糕”的举动;它是通向解决方案的必要步骤。
两种归功方式:
- MARS(乐观主义者):如果机器人的任何后续尝试成功了,MARS 就会将全部功劳归于引发这一系列事件的最早那次失败。这就像说:“如果你最终找到了宝藏,那么你在迷路时画的那张地图就是有价值的。”
- MERS(现实主义者):这种方法根据所有后续尝试的平均成功率来分配功劳。它稍微谨慎一些,将功劳分散开来。
剪除死枝(剪枝):有时,机器人尝试了太多变体,导致“树”变得太大且处理缓慢。MURPHY 拥有一个智能的“园丁”工具。它观察各个分支,剪掉那些都在做同样事情(没有学到新东西)的分支。它保留那些显示出最多多样性和学习潜力的分支,从而节省时间和计算能力。
结果
作者在三个不同的编程挑战上,使用两个不同的机器人“大脑”(模型)测试了这种方法。
- 结果:MURPHY 显著提高了机器人自行修复代码的能力。
- 最佳效果:改进幅度在困难问题上最大。在简单问题上,机器人原本就表现不错。但在机器人必须失败、从错误中学习并再次尝试的困难问题上,MURPHY 帮助它们比之前的方法多成功约6%。
一句话总结
MURPHY 教导 AI:失败就是数据。它不再将失败的尝试视为“糟糕”的结果,而是将其视为“必要步骤”,前提是该失败提供了最终成功所需的信息。它重新调整了 AI 的机制,使其重视自我修正的过程,而不仅仅是最终答案。
您所在领域的论文太多了?
获取与您研究关键词匹配的最新论文每日摘要——附技术摘要,使用您的语言。