摘要
arXiv:2504.20412v2 类型:替换交叉
摘要:代码大型语言模型(LLMs)在多种软件工程任务中展现出了令人印象深刻的性能。特别是,在代码修复任务中,它们表现出色。然而,用于评估代码LLMs性能的常用基准通常仅限于小规模设置。在本文中,我们基于kGym,它提供了一个系统级别Linux内核错误的基准,并提供了一个在Linux内核上运行实验的平台。本文引入了CrashFixer,这是第一个适用于Linux内核错误的基于LLM的软件修复代理。受到内核开发人员典型工作流程的启发,我们识别了专家开发人员在解决内核崩溃时利用的关键能力。以此为引导,我们重新审视了kGym平台,并确定了在Linux内核(50K文件和20M代码行)规模下实际运行基于LLM的代理所需的关键系统改进。我们通过扩展kGym来实现这些更改,创建了一个改进的平台,称为kGymSuite,并将其开源。最后,本文评估了针对此类复杂内核错误的各种修复策略,并展示了在复杂系统如Linux内核中,在尝试修复错误之前显式生成假设的价值。我们还评估了CrashFixer在仍待解决的错误上的能力,并发现至少有两份被认为有可能解决报告错误的修复建议。