微信扫一扫,关注公众号

  • 科技行者

  • 算力行者

见证连接与计算的「力量」

首页 阿里巴巴研究团队突破:让AI像程序员一样"检查代码"来纠正自己的错误

阿里巴巴研究团队突破:让AI像程序员一样"检查代码"来纠正自己的错误

2025-09-12 19:47
分享至:
----..---.-...-/--...-.-......./-...-....-..--../-............-.- ----..---.-...-/--...-.-......./-...-....-..--../-............-.- ----..---.-...-/--...-.-......./-...-....-..--../-............-.- ----..---.-...-/--...-.-......./-...-....-..--../-............-.-
2025-09-12 19:47 科技行者

这项由阿里巴巴淘宝天猫集团的宋小帅、吴亚南等研究人员完成的研究发表于2025年1月,论文标题为"ProgCo: Program Helps Self-Correction of Large Language Models"。有兴趣深入了解的读者可以通过GitHub代码库https://github.com/songxiaoshuai/progco获取完整的研究资料和实现代码。

当我们写作业或工作时,总会犯一些错误,这时最好的方法就是重新检查一遍自己的答案。现在的人工智能大模型其实也面临同样的问题——它们回答问题时也会出错,特别是在处理复杂的数学题或者需要严格按照指示执行任务时。就像一个学生做完题目后需要检查答案一样,理想情况下,AI也应该能够自己发现错误并进行修正。

然而现实情况并不乐观。目前的AI大模型在自我纠错方面表现得相当糟糕,特别是在没有外部帮助的情况下。它们往往过于自信,很难意识到自己的错误,有时甚至会把原本正确的答案改成错误的。这就像一个过于自信的学生,明明答对了题目,却在检查时把正确答案改错了。

阿里巴巴的研究团队为这个问题提出了一个巧妙的解决方案。他们的核心想法是让AI像程序员写代码一样,为每个问题生成一个"验证程序"。这个验证程序就像是一个专门的检查工具,能够系统性地验证答案是否正确。

一、让AI写"验证程序"来检查自己的答案

研究团队开发的方法叫做"程序驱动自我纠错",简称ProgCo。这个方法的巧妙之处在于它模仿了程序员的工作方式。当程序员写完代码后,通常会编写测试程序来验证代码是否正确工作。研究团队让AI也学会了这种方式。

整个过程可以比作一个严谨的质检流程。首先,AI会针对收到的问题生成一个专门的验证程序。这个程序就像是一个定制的检查清单,专门用来验证这类问题的答案。比如对于数学题,验证程序可能会从答案开始,反向推算是否满足题目条件。对于需要按特定格式回答的问题,验证程序会检查格式是否正确、内容是否完整。

接下来,当AI给出初始答案后,这个验证程序就开始工作了。AI会像执行代码一样,一步步运行这个验证程序,检查自己的答案。如果验证通过,那么答案就被认为是正确的。如果验证失败,AI就知道需要重新思考和修改答案。

这种方法的优势在于,验证程序能够表达比自然语言更复杂、更严谨的检查逻辑。就像代码比自然语言描述更精确一样,程序化的验证能够捕捉到许多细微的错误,而这些错误在简单的文字检查中很容易被遗漏。

二、双重优化机制避免错误指导

研究团队很快意识到一个新问题:如果验证程序本身有错误怎么办?这就像用一把不准的尺子去测量东西,测量结果肯定也是错的。更糟糕的是,错误的反馈可能会误导AI,让它把正确的答案改错。

为了解决这个问题,研究团队设计了一个双重优化的机制,叫做"程序驱动优化"(ProgRe)。这个机制不仅会优化AI的答案,还会同时优化验证程序本身。

当验证程序指出答案有问题时,AI不会直接按照反馈修改答案。相反,它会先进行一个"预备反思"的过程。在这个过程中,AI会生成一个临时的修改版本,然后将这个版本与原始答案进行对比,分析两者之间的差异,从中提取关键的改进要点。

这种对比分析就像是在两个不同版本的作文之间找差异,看看哪些修改是有意义的,哪些可能是不必要的。通过这种对比,AI能够更好地理解问题的关键所在,然后基于这些洞察重新生成最终答案。

与此同时,验证程序也在不断进化。每一轮验证后,程序会根据答案的信息和验证结果进行自我反思和改进。如果发现自己的检查逻辑有漏洞或者过于严格,验证程序会调整自己的检查标准,变得更加准确和合理。

这种双重优化的机制确保了整个系统能够螺旋式上升,答案越来越准确,验证程序也越来越可靠。

三、在真实任务中的卓越表现

为了验证这套方法的有效性,研究团队在三个不同类型的任务上进行了大规模测试。这些任务包括指令遵循任务(类似于严格按照要求完成作业)、小学数学应用题(GSM8K数据集)和高难度数学竞赛题(MATH数据集)。

在指令遵循任务中,AI需要严格按照给定的格式和要求来回答问题。比如要求用全大写字母回答、包含特定的标题格式等。传统的自我纠错方法在这类任务上表现平平,有时甚至会让原本正确的答案变得更糟。而使用ProgCo方法后,AI的表现有了显著提升。

在数学问题上,这种改进更加明显。以GPT-3.5为例,使用ProgCo方法后,在GSM8K数据集上的准确率提升了5.84%,在MATH数据集上提升了5.8%。经过三轮优化后,这些提升分别达到了7.28%和8.0%。

特别值得注意的是,许多传统的自我纠错方法在数学问题上不仅没有改进,反而会降低准确率。这说明错误的自我检查比不检查还要糟糕。而ProgCo方法在各种类型的任务上都实现了持续的改进,证明了其方法的可靠性。

研究团队还发现,这种程序化验证方法在识别错误答案方面表现出色。在检测错误答案的召回率和F1分数上,ProgCo都显著超越了传统方法。这意味着它不仅能发现更多的错误,而且很少出现误报。

四、可以与现实工具完美结合

这套方法还有一个重要优势:它可以轻松与现实世界的程序工具结合使用。由于验证过程本身就是程序化的,当遇到需要精确计算的情况时,AI可以调用真正的Python计算工具来执行数值运算,而不是依赖自己有时不够准确的计算能力。

这种结合带来了进一步的性能提升。在需要精确计算字数、检查特定格式的任务中,结合Python工具后的ProgCo表现更加出色。比如在IFEval任务上,GPT-4o的表现从87.8%提升到91.31%。

这种设计哲学体现了研究团队的深刻洞察:AI不需要在所有方面都做到完美,而应该学会在合适的时候借助合适的工具。就像一个聪明的学生会使用计算器来验证复杂运算一样,AI也可以在需要时调用专门的工具来确保准确性。

五、超越传统采样方法的效率优势

研究团队还将ProgCo与另一种流行的AI改进方法——自一致性采样进行了比较。自一致性采样的基本思路是让AI多次回答同一个问题,然后从多个答案中选择最一致或最优的那个。这种方法虽然有效,但需要消耗大量的计算资源。

比较结果显示,ProgCo在效率方面具有明显优势。在数学任务上,ProgCo只需要一轮纠错就能超越3次采样的性能,经过五轮纠错后甚至能够匹敌10次采样的效果。更重要的是,由于ProgCo具有早期停止机制(当验证通过时就停止),它的平均运行轮数只有大约1.2轮,效率远高于需要固定次数采样的传统方法。

这种效率优势意味着ProgCo可以在实际应用中以更低的成本实现更好的效果。对于需要大规模部署的AI系统来说,这种效率提升具有重要的实用价值。

六、深入的案例分析揭示工作原理

为了更好地展示ProgCo的工作原理,研究团队提供了详细的案例分析。在一个指令遵循的例子中,AI需要写一个关于狗粮创业公司的笑话,要求全部使用大写字母并包含特定格式的标题。

验证程序会检查三个关键方面:回答是否全为大写字母、是否为英文、是否包含正确格式的标题。在执行过程中,验证程序发现原始答案不满足大写字母和标题格式的要求,给出了具体的错误反馈。基于这个反馈,AI重新生成了符合所有要求的答案。

在数学问题的案例中,验证程序采用了反向推理的方法。给定一个关于平均速度的问题,验证程序从AI给出的答案开始,反向计算是否满足题目条件。通过这种反向验证,程序发现了原始答案中的逻辑错误,并指导AI找到了正确的解法。

这些案例清晰地展示了ProgCo方法的两个核心优势:程序化验证的严谨性和反向推理的有效性。程序化验证确保了检查过程的全面性和准确性,而反向推理则提供了一个不同于正向思维的验证视角。

七、方法的局限性和未来发展方向

研究团队也坦诚地指出了当前方法的一些局限性。首先,虽然使用伪代码和AI执行器扩展了应用范围,但这项研究主要在指令遵循和数学任务上进行验证,在其他类型的复杂任务上的表现还需要进一步探索。

其次,虽然AI执行器能够整合自身知识和因果推理能力,但在处理大规模精确数值计算方面仍有局限。不过这个问题可以通过结合真实的符号计算工具来缓解,正如实验中展示的那样。

第三,由于缺乏专门的训练,研究团队使用了详细的提示来指导AI完成各项任务,这增加了推理成本。未来可以通过为ProgCo的各个组件合成训练数据并联合训练AI模型来解决这个问题,减少对提示的依赖并降低推理成本。

尽管存在这些局限,ProgCo方法代表了AI自我纠错领域的一个重要突破。它不仅在技术上实现了创新,更重要的是提供了一种全新的思路——让AI学会使用程序化工具来增强自身能力。

研究团队认为,这种程序化自我纠错的思路具有广阔的应用前景。随着AI模型能力的不断提升和计算资源的日益丰富,类似ProgCo这样结合符号推理和神经网络优势的方法将会发挥越来越重要的作用。

说到底,这项研究解决的是一个我们在日常生活中都会遇到的问题:如何有效地检查和改正自己的错误。研究团队通过让AI模仿程序员的工作方式,找到了一个既实用又有效的解决方案。这不仅让AI变得更加可靠,也为我们展示了人工智能与程序化工具结合的巨大潜力。

对于普通用户来说,这意味着未来的AI助手将变得更加值得信赖。当你请AI帮你处理复杂任务时,它不仅会给出答案,还会自动验证答案的正确性,就像一个既聪明又谨慎的助手。而对于AI研究领域来说,这项工作开启了一个新的研究方向,展示了如何通过巧妙的设计让AI获得更强的自我改进能力。

Q&A

Q1:ProgCo是什么?它与传统的AI自我纠错方法有什么区别?

A:ProgCo是阿里巴巴研究团队开发的程序驱动自我纠错方法。与传统方法不同,它让AI为每个问题生成专门的验证程序,就像程序员写测试代码一样。这种方法比简单的文字检查更严谨、更准确,能够发现更多细微错误并避免误判。

Q2:ProgCo方法在实际任务中表现如何?

A:实验结果显示ProgCo在多个任务上都有显著提升。在GPT-3.5上,GSM8K数学题准确率提升了5.84%,MATH竞赛题提升了5.8%,经过多轮优化后分别达到7.28%和8.0%的提升。在指令遵循任务上也有类似的改进效果。

Q3:使用ProgCo方法需要很多计算资源吗?

A:实际上ProgCo比传统的多次采样方法更节省资源。由于具有早期停止机制,它平均只需要1.2轮就能完成纠错,而且一轮ProgCo的效果就能超越3次传统采样,效率优势明显。

分享至
0赞

好文章,需要你的鼓励

推荐文章
----..---.-...-/--...-.-......./-...-....-..--../-............-.- ----..---.-...-/--...-.-......./-...-....-..--../-............-.- ----..---.-...-/--...-.-......./-...-....-..--../-............-.- ----..---.-...-/--...-.-......./-...-....-..--../-............-.-