Code Repair with LLMs gives an Exploration-Exploitation Tradeoff

2024年05月26日
  • 简介
    通过大型语言模型(LLMs)迭代地改进和修复源代码,也就是所谓的“细化”,已经成为生成程序的流行方式,因为这些程序过于复杂,无法一次性构建。给定一组测试用例以及一个候选程序,LLM可以通过被提示失败的测试用例来改进该程序。但如何最好地迭代地改进代码仍然是一个未解决的问题,之前的工作采用了简单的贪心或广度优先策略。我们在这里展示了细化暴露了一个“探索-利用”权衡:利用通过了最多测试用例的程序来改进,或者探索改进一个较少考虑的程序。我们将这个问题框架化为一个“臂获取赌博机”问题,并使用汤普森抽样来解决。由此产生的基于LLM的程序合成算法具有广泛的适用性:在循环不变量合成、视觉推理难题和竞赛编程问题中,我们发现我们的新方法可以使用更少的语言模型调用来解决更多问题。
  • 图表
  • 解决问题
    如何更好地使用大型语言模型(LLMs)进行程序迭代改进和修复?
  • 关键思路
    将程序迭代改进视为一个探索-利用的抉择问题,并使用汤普森抽样算法来解决这个问题,从而可以更加高效地使用LLMs进行程序合成。
  • 其它亮点
    论文提出了一种新的使用LLMs进行程序迭代改进的方法,并将其应用于多个领域。实验结果表明,该方法可以更加高效地解决问题。
  • 相关研究
    近期的相关研究包括:1)使用LLMs进行程序合成的相关研究;2)基于汤普森抽样算法的探索-利用问题解决方法的研究。
PDF
原文
点赞 收藏 评论 分享到Link

沙发等你来抢

去评论