大模型也能做仓库级代码性能优化?西安交大、新国立等联手打造SWE-Perf评测基准,揭示模型与人类专家的真实差距
- 2025-07-21 23:17:46
全文约 3200 字,预计阅读时间 8 分钟
在当前AI辅助编程迅速发展的背景下,大语言模型(LLM)已经能够在代码生成、调试和功能修复方面展现出惊人的能力。然而,一个更深层次的问题一直悬而未决:大模型是否能在真实代码仓库中实现媲美专家的性能优化能力?
为了回答这个问题,由西安交通大学、TikTok、新加坡国立大学(NUS)和加州大学圣地亚哥分校(UCSD)联合组成的研究团队,推出了一项开创性工作——SWE-Perf 。这是首个专门用于系统评估大语言模型在真实代码仓库中进行性能优化能力的基准测试。

什么是 SWE-Perf?
SWE-Perf(Software Engineering Performance Benchmark)是一个面向大语言模型的代码性能优化评测基准,旨在衡量模型在真实软件工程场景下对代码执行效率进行优化的能力。
传统上,代码性能优化需要深厚的专业知识,涉及对复杂软件系统的深入理解和跨模块的协作优化。现有的基准测试,如SWE-Bench[1]和Mercury[2],主要聚焦于代码正确性或单一函数的优化,难以应对真实软件仓库中跨文件、跨模块的复杂性能优化需求。SWE-Perf首次将评测扩展到整个代码仓库级别,并聚焦于性能提升这一更具挑战性的任务。
创新点
除了首次系统评估LLM在仓库级别的性能优化能力,SWE-Perf的核心创新还在于其数据收集与任务设计的严谨性。
研究团队从 10 万个GitHub拉取请求(PR)中筛选出 140 个具有显著性能提升的实例,确保每个实例都包含完整的代码库、目标函数、性能相关测试、专家编写的优化补丁以及可执行的Docker环境。这种设计不仅确保了基准测试的真实性,还为模型提供了一个清晰的“金标准”——专家优化的补丁,从而能够精确衡量模型与人类专家之间的性能差距。
此外,SWE-Perf提出了两种评估场景:文件级(Oracle)和仓库级(Realistic),分别测试模型在明确上下文和自主导航整个仓库时的优化能力。这种双场景设计为研究人员提供了多维度的评估视角,揭示了模型在不同复杂度任务中的表现。
图1:SWE-Perf基准测试的工作流程。图示展示了SWE-Perf如何通过提供源代码和性能测试,挑战语言模型生成优化补丁,并以运行时间增益和专家性能为参考进行评估。
数据收集:从海量PR到精选优化实例
SWE-Perf的数据收集过程分为五个阶段,确保了数据的真实性和可靠性。
首先,团队从12个高星级的GitHub仓库中收集了102,241个拉取请求,参考了SWE-Bench和SWE-GYM的筛选方法,但调整了过滤标准,聚焦于性能优化而非代码正确性。这使得SWE-Perf能够捕捉到那些真正带来性能提升的代码变更。
在第二阶段,研究团队为每个拉取请求构建了Docker环境,限制为单核CPU和16GB内存,以确保性能测量的可比性。通过运行pytest执行所有单元测试,他们收集了每个代码库的运行时间数据。考虑到某些仓库(如xarray)平均包含超过22万个测试用例,单次测试可能耗时超过一小时,这一阶段的计算量极为庞大。最终,19,499 个代码库成功生成了运行时间数据。
第三阶段通过性能比率(优化后运行时间与原始运行时间的比值)筛选出具有显著性能提升的拉取请求,保留那些比率低于0.3的实例,并确保单元测试在优化前后均通过,以保证功能正确性。
第四阶段进一步验证了性能提升的稳定性,通过20次重复测试和异常值过滤(基于四分位距方法),最终筛选出140个实例,涵盖9个仓库。这些实例的平均性能提升率为10.9%,最高可达87.8%,充分体现了真实世界优化场景的多样性。
最后,研究团队通过抽象语法树(AST)分析和动态执行,提取了优化目标函数,分为文件级和仓库级两类。这种细致的任务设计确保了SWE-Perf能够全面评估模型在不同场景下的优化能力。
图2:SWE-Perf数据收集流程。该图展示了从收集拉取请求到提取优化目标的五个阶段,确保数据具有显著且稳定的性能提升。
实验方法:多维度评估模型性能
SWE-Perf的评估框架设计了三个层次的指标:应用率(Apply)、正确性(Correctness)和性能(Performance),分别衡量模型生成补丁的适用性、功能正确性以及性能提升幅度。应用率检查补丁是否能无冲突地应用于原始代码库;正确性验证补丁应用后是否通过所有单元测试;性能指标则通过20次重复测试和统计分析,计算显著的性能增益。这种多层次评估方法确保了对模型能力的全面考察。
实验在两种场景下进行:文件级(Oracle)和仓库级(Realistic)。在文件级场景中,模型被提供明确的目标文件和函数,测试其在有限上下文下的优化能力;在仓库级场景中,模型需要自主导航整个代码库,模拟真实世界中开发者的工作环境。研究团队选择了10种主流语言模型(如Claude-3.7-sonnet、GPT-4o、DeepSeek-V3等)以及两种代表性方法(Agentless和OpenHands)进行测试。其中,Agentless采用基于管道的固定流程,而OpenHands则利用基于智能体的迭代推理,展现了不同的优化策略。
实验还在硬件上进行了严格控制,使用配备256个逻辑CPU核心和2TB内存的Linux机器,确保性能测量的稳定性和一致性。所有测试都在隔离的Docker环境中运行,消除了环境变量对结果的影响。
实验结果:揭示模型与专家的差距
实验结果显示,尽管语言模型在代码生成和错误修复方面表现出色,但在仓库级性能优化任务中,与专家水平相比仍存在显著差距。在文件级场景中,Gemini-2.5-Pro以95%的应用率和83.57%的正确率领先,但性能提升仅为1.48%,远低于专家的10.85%。在仓库级场景中,OpenHands(基于Claude-3.7-sonnet)表现最佳,性能提升达到2.26%,但仍与专家水平相差8.59%。
有趣的是,模型在某些特定仓库(如scikit-learn)上表现出与专家相近甚至略优的性能。例如,OpenHands在scikit-learn上的性能提升比专家高0.4%,显示出在特定场景下模型的潜力。然而,随着目标函数数量的增加或运行时间的延长,模型性能提升的难度显著增加,专家性能则持续攀升,凸显了模型在复杂场景下的局限性。
图3:不同方法在SWE-Perf九个仓库中的性能表现。图中展示了OpenHands在部分仓库中接近甚至超越专家性能,但整体差距依然显著。
深入分析:优化瓶颈与改进方向
通过对实验结果的深入分析,研究团队从四个方面揭示了模型的优化瓶颈。首先,通过仅计算正确补丁的性能指标,发现OpenHands在高性能上限场景中表现更优,表明其迭代推理能力在复杂任务中具有优势。其次,目标函数数量对性能的影响显著:当函数数量增加时,模型和专家的性能提升均变得更困难,但模型的性能下降更明显,显示出在多函数优化场景下的不足。
此外,运行时间与性能提升之间存在正相关关系。专家在较长运行时间的场景中能够实现更高的性能提升,而模型的性能则趋于平稳,表明其在处理复杂计算任务时的优化能力需要进一步增强。最后,通过词云分析,研究发现模型补丁更关注低层次数据结构和基础操作(如“children”和“time”),而专家补丁则聚焦于高层次抽象和数据完整性(如“literal”和“dtype”)。这表明模型在语义层面的优化策略尚需改进,尤其是在领域特定功能和性能关键组件的优化上。
图4:OpenHands补丁添加行的词云。词云显示OpenHands补丁聚焦于低层次数据结构和基础功能优化。
图5:专家补丁添加行的词云。专家补丁更注重高层次抽象和数据完整性,体现出更强的领域针对性。
未来展望:迈向专家级优化
SWE-Perf的推出不仅为语言模型的性能优化能力提供了严格的测试平台,还为未来的研究指明了方向。研究团队建议,未来的工作可以从以下几个方面入手:一是扩展数据集,覆盖更多类型的开源项目,以提高基准的通用性;二是开发新的模型架构或训练方法,增强模型在多函数和长运行时间场景下的优化能力;三是结合专家优化策略,改进模型在高层次抽象和领域特定优化上的表现。
此外,SWE-Perf在数据安全性和负责任使用上也做了充分考虑。所有代码库均来自许可宽松的开源项目,并通过沙箱化的Docker环境执行,降低了潜在风险。研究团队还计划以学术研究许可发布数据集,确保其在安全可控的环境中使用。
结语
SWE-Perf的发布标志着人工智能在软件工程领域迈出了重要一步。通过构建首个仓库级性能优化基准,它不仅揭示了当前语言模型在真实世界优化任务中的局限性,还为未来的技术突破提供了清晰的路线图。正如研究团队所强调的,性能优化不仅是技术挑战,更是推动生产级系统效率提升的关键。SWE-Perf的出现,让我们对AI在软件开发中的潜力充满期待,同时也提醒我们,距离专家级优化仍有很长的路要走。
SWE-Perf官方网站:https://swe-perf.github.io
论文原文:https://arxiv.org/abs/2507.12415
(本文作者:InternLM、Qwen 等 LLM)
SWE-Bench: https://arxiv.org/abs/2310.06770
[2]Mercury: https://arxiv.org/abs/2402.07844
-- 完 --
机智流推荐阅读:
1. 分享一个开源深度研究框架:DeepResearch Eco递归式工作流的设计与应用
2. 一起聊聊Nvidia Blackwell新特性之使用Thread Block Clusters的 GEMM
3. 上下文工程万字综述、Qwen“背题”疑云、反思性生成模型,HF本周30篇必读论文揭秘前沿趋势!
4. 从 PPO、DPO 到 GRPO:万字长文详解大模型训练中的三大关键算法
cc | 大模型技术交流群 hf | HuggingFace 高赞论文分享群 具身 | 具身智能交流群 硬件 | AI 硬件交流群 智能体 | Agent 技术交流群

- 点赞 (0)
-
分享
微信扫一扫
-
加入群聊
扫码加入群聊