通过交互式代理基础的数据精炼提高大型语言模型的代码调试能力
本论文结合自我调试技术和大型语言模型,提出了一种代码生成方法,不依靠反馈信息和测试用例,实现了语言模型的自我纠错和错误说明能力,从而在文本到SQL生成、C++到Python转换等方面,取得了更优秀的性能表现。
Apr, 2023
本文探讨了使用 Large Language Models 进行程序合成时,实现 Synthesize,Execute,Debug 方法的方法,包括替换或修复故障程序,以及不同基于模板和基于模型的提示生成技术,取得了比传统方法更好的表现。
Apr, 2023
大型语言模型 (LLMs) 在编码能力方面表现出色。然而,作为编程能力的另一个关键组成部分,LLMs 的调试能力仍未得到充分探索。我们介绍了“DebugBench”,一个包含 4,253 个实例的 LLM 调试基准。它涵盖了 C++、Java 和 Python 中的四个主要漏洞类别和 18 个次要类型。通过使用 GPT-4 在源数据中植入漏洞,收集 LeetCode 社区的代码片段,并进行严格的质量检查来构建 DebugBench。我们以零样本场景中评估了两个商业和三个开源模型。我们发现,(1)与人类相比,GPT-4 等闭源模型的调试性能较差,Code Llama 等开源模型未能达到任何通过率;(2)调试的复杂性明显取决于漏洞类别;(3)运行时反馈对调试性能有明显影响,但并非总是有帮助。作为扩展,我们还比较了 LLM 调试和代码生成,发现闭源模型它们之间存在很强的关联。这些发现将有助于 LLM 在调试方面的发展。
Jan, 2024
通过在上下文中学习的方法,引导大型语言模型使用“print debugging”方法进行调试,其中包括插入打印语句以跟踪和分析日志,以解决编程问题中复杂的数据结构和算法的性能问题。在Leetcode问题数据集上的实验表明,我们的方法在易和中等难度的Leetcode问题中比橡皮鸭调试提高了1.5%和17.9%。
Jan, 2024
自调试是代码生成领域的关键,并且该研究旨在提出一个训练框架,显著提高了语言模型的自调试能力,通过生成一系列解释和改进轨迹,进行自动化数据收集和筛选,进行监督微调和强化学习,并通过对代码解释和改进质量的考虑,实现对四个基准测试的性能提升。研究还表明,通过该框架训练的语言模型能够持续改进代码,并生成更有用的代码解释,帮助开发人员更好地理解源代码中的错误。
May, 2024
通过新的基准测试DevEval,我们评估了8种流行的大型语言模型在真实代码库中的编码能力,并发现这些模型的编码能力在真实世界的代码库中存在缺陷。
May, 2024
该论文提出了一种新的策略,通过连接静态代码文本和动态执行状态,训练具有全面语义的Code LLMs,从而填补Code LLMs在诸如调试和程序修复等复杂任务中对深层语义的依赖的差距。该方法通过收集PyX,一个具有可执行样本、功能描述和执行跟踪的干净代码语料库,训练Code LLMs使用自然语言编写代码、表示和推理执行行为,从而开发出了仅有67亿参数的SemCoder,该模型在代码生成和执行推理任务上与GPT-3.5-turbo表现相当。
Jun, 2024
本研究解决了大型语言模型(LLMs)在复杂代码生成任务中的准确性问题。提出了一种新的LLM代理架构——精炼与生成指导调试(RGD),通过分步骤处理代码生成,提升了LLMs的自主生成与精炼代码的能力。实验结果表明,RGD在代码生成能力上实现了显著提升,为程序开发提供了更有效的自动调试工具。
Oct, 2024
本研究解决了大型语言模型(LLMs)在复杂代码生成任务中的准确性问题,提出了一种名为RGD的多LLM代理调试框架。该框架通过分解代码生成任务,结合自我反思和反馈进行迭代代码改进,实验结果显示在多个数据集上均显著提升了代码生成性能,展示了其在增强LLMs自主生成和改进代码能力方面的潜力。
Oct, 2024