Teaching Large Language Models to Self-Debug
Xinyun Chen, Maxwell Lin, Nathanael Schärli, Denny Zhou
[Google Research & UC Berkeley]
教大型语言模型进行自我调试
-
动机:大型语言模型(LLM)在代码生成方面取得了令人瞩目的性能,但对于复杂的编程任务,在一次生成中生成正确的解决方案变得具有挑战性。因此,一些之前的工作设计了程序修复方法来提高代码生成性能。 -
方法:提出SELF-DEBUGGING,通过少量示例教大型语言模型通过调试来修复其预测的程序。演示了SELF-DEBUGGING可以教大型语言模型执行“橡皮鸭调试”,即在没有任何关于代码正确性或错误消息的反馈的情况下,模型能够通过自然语言解释生成的代码来识别错误。 -
优势:SELF-DEBUGGING在包括文本到SQL生成的Spider数据集、C++到Python翻译的TransCoder和文本到Python生成的MBPP等多个代码生成基准测试中实现了最先进的性能。在没有单元测试来验证预测正确性的Spider基准测试中,SELF-DEBUGGING通过代码解释始终将基线提高2-3%,并将最困难标签的问题的预测准确性提高9%。在可用单元测试的TransCoder和MBPP上,SELF-DEBUGGING将基线准确率提高了多达12%。同时,通过利用反馈消息和重复失败的预测,SELF-DEBUGGING显著提高了样本效率,并且可以匹配或胜过生成超过10倍候选程序的基线模型。
提出SELF-DEBUGGING,教大型语言模型通过少量示例教学自行调试其预测的代码,以提高代码生成性能和样本效率。
https://arxiv.org/abs/2304.05128
内容中包含的图片若涉及版权问题,请及时与我们联系删除
评论
沙发等你来抢