AutoCodeRover:自主程序改进
自动编程的流行增加了对代码质量、安全性、程序修复和程序员责任等相关问题的关注,这些问题是组织在决定使用自动生成代码时所关心的关键问题,本文研究了自动编程的各个方面,并讨论了软件工程的进展,如程序修复和分析可以实现自动编程,并对未来的编程环境提出了展望,认为程序员可能需要转变角色以充分利用自动编程的力量。通过从大型语言模型自动生成的程序进行自动修复,可以生成更可靠的代码,并提供可靠性证据。
May, 2024
使用大型语言模型的代码代理在形式化用户问题为测试用例方面具有重要能力,并且在生成相关测试用例方面表现出众,尤其是在代码修复方面,生成的测试用例是提出代码修复的一个有效过滤器。
Jun, 2024
研究致力于自动修复代码漏洞的复杂挑战,引入了一种新的代码修改表示格式,使用了先进的大型语言模型(如 Code Llama 和 Mistral)。这些模型在 C 代码漏洞数据集上进行了微调,显着提高了自动代码修复技术的准确性和适应性。研究还对当前的评估指标(如完美预测)进行了关键评估,并强调了在真实场景中反映自动修复模型真正能力的局限性。研究强调了在代码修复任务中提高 LLMs 效果的数据集完整性和训练样本缺失测试数据集的重要性。此工作对数字安全的贡献不仅体现在提高代码安全方面的潜力上,而且推动了这些关键领域的进一步探索与研究。
Jan, 2024
本文探讨了使用 Large Language Models 进行程序合成时,实现 Synthesize,Execute,Debug 方法的方法,包括替换或修复故障程序,以及不同基于模板和基于模型的提示生成技术,取得了比传统方法更好的表现。
Apr, 2023
我们引入了一种多用途的代码漏洞分析系统 SecRepair,由一个大型语言模型 CodeGen2 提供支持,帮助开发人员识别和生成修复后的代码,并附带一个完整的漏洞描述和代码评论。我们的创新方法利用增强学习范式来生成由语义奖励机制增强的代码评论。研究结果强调,将增强学习与语义奖励结合起来,提高了模型在处理代码漏洞方面的能力和效果。
Jan, 2024
利用大型语言模型(LLMs)迭代改进和修复源代码已成为一种流行的方法,该方法被称为细化,可生成过于复杂无法一次构建的程序。我们发现细化代码暴露了探索与利用的权衡:通过改进通过测试用例的程序进行利用,或通过改进较少考虑的程序进行探索。我们将其视为一种获取臂的赌博机问题,并用汤普森采样解决。得到的基于 LLM 的程序合成算法具有广泛的适用性:在循环不变量合成、视觉推理谜题和竞赛编程问题中,我们发现我们的新方法可以在更少的语言模型调用下解决更多问题。
May, 2024
通过构建一个名为 Agentless 的简洁两阶段的定位和修复过程,本研究发现在自动软件开发问题的解决中,Agentless 不仅能够获得最高的性能(27.33%),而且成本最低(0.34 美元),超过现有的所有开源软件代理。
Jul, 2024
利用执行结果修正生成的代码,我们提出了一种基于人类编程阶段的生成和编辑方法来提高大型语言模型(LLM)在竞争性编程任务方面的代码质量,对使用不同参数大小的 9 种常见代码生成 LLM 在两个竞争性编程数据集上进行了广泛评估,相比于直接从 LLMs 生成的代码,我们的方法在 APP-dev 上的 pass@1 平均值提高了 89%,在 APPS-test 上提高了 31%,在 HumanEval 上提高了 48%,比其他后处理方法表现更优。
May, 2023
使用大型语言模型的程序修复任务中,通过降低训练数据量、使用代码剪裁技术及构建全面的代码修复数据集,我们的系统能够在更少的案例中准确匹配人工修复,并显著提升可用模型的性能。
Feb, 2024
BugLab 是一种基于机器学习的、自监督学习为主的程序分析方法,通过两个模型共同训练,可以有效地发现和修复代码中的错误,提高了 2374 个真实缺陷数据集的检测和修复准确度,同时发现了 19 个以前未知的错误。
May, 2021