- 简介未预料到的运行时错误,缺乏预定义的处理程序,可能会突然终止执行并导致严重后果,如数据丢失或系统崩溃。尽管在开发阶段努力识别潜在错误,但这些未预料到的错误仍然是完全消除的挑战,因此运行时缓解措施仍然是最小化其影响的必要手段。自动化的自我修复技术,如重用现有的处理程序,已被研究用于减少执行终止带来的损失。然而,现有方法的可用性受其预定义的启发式规则的限制,无法适应不同的运行时错误。最近,大型语言模型(LLM)的出现为解决这个问题开辟了新的途径。受到它们在理解和生成代码方面的显着能力的启发,我们提出使用LLM实时处理运行时错误的Healer,是第一个LLM辅助的自我修复框架,用于处理运行时错误。当发生未处理的运行时错误时,Healer将被激活,借助其内部的LLM生成一段错误处理代码,并在框架拥有的运行时环境内执行该代码,以获得修正后的程序状态,从而程序可以继续执行。我们的探索性研究使用四个不同的代码基准和三种最先进的LLM,GPT-3.5、GPT-4和CodeQwen-7B,评估了Healer的性能。结果表明,无需任何微调,GPT-4可以成功帮助程序从72.8%的运行时错误中恢复,突显了LLM在处理运行时错误方面的潜力。
- 图表
- 解决问题提出使用大型语言模型(LLMs)实现自动化运行时错误处理的方法,解决运行时错误无法完全消除的问题。
- 关键思路使用内部的LLM生成错误处理代码,并在运行时环境内执行以获得修正的程序状态。
- 其它亮点论文提出了Healer框架,是第一个使用LLMs辅助自我修复的运行时错误处理框架。在四个不同的代码基准测试和三种最先进的LLMs的帮助下,Healer可以成功地帮助程序从72.8%的运行时错误中恢复,突出了LLMs在处理运行时错误方面的潜力。
- 近期的相关研究包括使用机器学习技术进行错误检测和修复,以及使用符号执行和模糊测试等技术进行错误处理。其中一些论文包括:《Automated Program Repair Using Machine Learning》、《Katch: High-Coverage Testing of Software Patches》等。
沙发等你来抢
去评论
评论
沙发等你来抢