SpecRover: 通过大型语言模型提取代码意图
使用LLM辅助静态分析进行识别use-before-initialization(UBI)错误的研究通过设计LLift代理和提示来克服多个挑战,测试结果表明在实际场景中具有非常强大的能力,并发现了Linux内核中以前未知的13个UBI错误,为使用LLM在大规模现实世界数据集中发现错误的新方法和机会铺平了道路。
Aug, 2023
使用LLM4nl2post将非正式自然语言转化为形式化方法的后置条件,并通过验证度量在质量和生成的后置条件的可区分性方面进行比较。结果显示,这些后置条件通常是正确的且能够区分错误的代码,并且通过LLMs进行LLM4nl2post有潜力在实践中发挥重要作用,在Defects4J中成功捕获了70个真实世界历史BUG。
Oct, 2023
该论文介绍了RepairAgent,其是第一个基于大型语言模型(LLM)的自主代理解决程序修复挑战的工作。RepairAgent通过调用合适的工具来自主规划和执行修复操作,包括收集有关错误的信息、收集修复材料以及验证修复结果,并在先前修复尝试的反馈和信息基础上决定调用哪些工具。该研究表明,RepairAgent在修复164个错误中表现出了良好的效果,并修复了先前技术无法修复的39个错误。与LLM的交互对每个错误平均造成了270,000个token的开销,根据OpenAI GPT-3.5模型的当前定价,平均每个错误的成本为14美分。这项工作是首次提出基于LLM的自主代理程序修复技术,为未来软件工程的代理技术铺平了道路。
Mar, 2024
提出了一种自动化的方法AutoCodeRover,将LLMs与复杂的代码搜索能力相结合,从而实现对Github问题的自主解决,进而实现程序改进。
Apr, 2024
使用GPT4、Coq和Coqhammer实现的LLM4PR工具将正式程序细化技术与非正式LLM方法相结合,通过将规范转换为前置条件和后置条件,基于细化演算自动生成提示,并与LLM进行交互以生成代码,最后验证生成的代码是否符合细化演算的条件,从而确保代码的正确性。
Jun, 2024
本研究解决软件项目中自动程序改进的需求,重点在于开发一个有效的工作流程进行迭代规范推断。提出的SpecRover方法通过结合项目结构和行为进行意图推断,评估生成的补丁,并显示出比现有方法提升超过50%的有效性,展示了规范推断在自动化程序修复中的重要性。
Aug, 2024
本研究针对大型语言模型在代码调试方面的能力缺乏探索的问题,提出了DEBUGEVAL,一个全面评估调试能力的基准测试。通过提出MASTER框架,生成经过精炼的数据用于监督微调,从而显著提升调试能力,实验证明该方法有效改进了大型语言模型的调试性能。
Aug, 2024
本研究解决了利用大型语言模型(LLMs)进行自动化修复漏洞的挑战,特别是面对复杂多样的软件系统。提出的火星代码智能体结合LLMs和高级代码分析技术,通过系统化的过程有效识别和修复软件代码中的漏洞,显示出较高的成功修复率,对现有自动化方法具有重要影响。
Sep, 2024
本研究解决了大型语言模型(LLMs)在复杂代码生成任务中的准确性问题。提出了一种新的LLM代理架构——精炼与生成指导调试(RGD),通过分步骤处理代码生成,提升了LLMs的自主生成与精炼代码的能力。实验结果表明,RGD在代码生成能力上实现了显著提升,为程序开发提供了更有效的自动调试工具。
Oct, 2024
本研究解决了大型语言模型(LLMs)在复杂代码生成任务中的准确性问题,提出了一种名为RGD的多LLM代理调试框架。该框架通过分解代码生成任务,结合自我反思和反馈进行迭代代码改进,实验结果显示在多个数据集上均显著提升了代码生成性能,展示了其在增强LLMs自主生成和改进代码能力方面的潜力。
Oct, 2024