- 简介大型语言模型(LLMs)在越来越真实的软件工程(SE)任务中不断提高。在真实的软件堆栈中,大量的软件工程工作都是花费在开发基础系统软件上,例如Linux内核。与应用级软件不同,像Linux这样的系统代码库是多语言的(低级别的C/Assembly/Bash/Rust),庞大的(>2000万行),关键的(影响全球数十亿设备)和高度并发的(涉及复杂的多线程)。为了评估ML模型在开发这种大规模系统级软件时是否有用,我们介绍了kGym(一个平台)和kBench(一个数据集)。kGym平台提供了一个SE环境,可以在多个虚拟机上并行编译和运行内核,检测操作和崩溃,检查日志,查询和修补代码库。我们使用kGym来促进对kBench的评估,kBench是从真实的Linux内核错误中提取的崩溃解决基准。kBench中的一个示例错误包含崩溃堆栈跟踪、错误重现文件、开发人员编写的修复程序和其他相关数据。为了了解当前的性能,我们通过提示LLMs解决Linux内核崩溃来进行基准实验。我们的初步评估表明,在未辅助和辅助(即向模型披露有错误的文件)设置中,表现最佳的LLM分别达到0.72%和5.38%。这些结果突显了需要进一步研究以增强模型在SE任务中的性能。提高在kBench上的性能需要模型掌握新的学习技能,包括理解崩溃的原因和修复故障、编写内存安全和硬件感知的代码以及理解并发性。因此,这项工作在机器学习和系统软件交叉领域开辟了多个研究途径。
- 图表
- 解决问题本文试图评估机器学习模型在开发大规模系统级软件中的实用性,提出了一个平台kGym和一个数据集kBench用于Linux内核的崩溃解决基准测试。
- 关键思路使用kGym平台和kBench数据集对机器学习模型在解决Linux内核崩溃问题时的表现进行评估,并发现需要进一步研究以提高模型的性能。
- 其它亮点使用kGym平台和kBench数据集对机器学习模型在解决Linux内核崩溃问题时的表现进行了评估,发现模型在未辅助和辅助(即将有缺陷文件提供给模型)设置下的表现分别为0.72%和5.38%。这项工作为机器学习和系统软件交叉领域的研究开辟了多个研究方向。
- 最近的相关研究包括使用机器学习进行程序修复和使用深度学习进行代码推荐等。
沙发等你来抢
去评论
评论
沙发等你来抢