SwingArena: Competitive Programming Arena for Long-context GitHub Issue Solving
作者: Wendong Xu, Jing Xiong, Chenyang Zhao, Qiujiang Chen, Haoran Wang, Hui Shen, Zhongwei Wan, Jianbo Dai, Taiqiang Wu, He Xiao, Chaofan Tao, Z. Morley Mao, Ying Sheng, Zhijiang Guo, Hongxia Yang, Bei Yu, Lingpeng Kong, Quanquan Gu, Ngai Wong
分类: cs.CL
发布日期: 2025-05-29 (更新: 2025-06-02)
💡 一句话要点
SwingArena:用于长上下文GitHub Issue解决的竞争性编程平台
🎯 匹配领域: 支柱九:具身大模型 (Embodied Foundation Models)
关键词: 大型语言模型 软件开发 代码生成 持续集成 GitHub Issue 检索增强代码生成 竞争性评估 长上下文处理
📋 核心要点
- 现有静态基准测试难以模拟真实软件开发中迭代和协作的复杂性,无法有效评估LLM在此场景下的能力。
- SwingArena通过模拟提交者和审查者的角色,构建LLM交互式评估环境,并利用RACG模块处理长上下文代码。
- 实验表明,不同LLM在补丁生成和CI验证方面表现出不同的优势,验证了SwingArena评估框架的有效性。
📝 摘要(中文)
SwingArena是一个用于评估大型语言模型(LLM)的竞争性评估框架,它模拟了真实的软件开发工作流程。与传统的静态基准不同,SwingArena通过将LLM配对为提交者(生成补丁)和审查者(创建测试用例并通过持续集成(CI)管道验证补丁)来模拟软件迭代的协作过程。为了支持这些交互式评估,我们引入了一个检索增强代码生成(RACG)模块,该模块通过提供来自大型代码库的语法和语义相关的代码片段来有效地处理长上下文挑战,支持多种编程语言(C++、Python、Rust和Go)。这使得该框架能够跨不同的任务和上下文进行扩展,同时尊重token限制。我们的实验使用了从2300个issue中选择的400多个高质量的真实GitHub issue,结果表明,像GPT-4o这样的模型擅长积极的补丁生成,而DeepSeek和Gemini则优先考虑CI验证的正确性。SwingArena提供了一种可扩展且可扩展的方法,用于在真实的、CI驱动的软件开发环境中评估LLM。更多细节可在我们的项目页面swing-bench.github.io上找到。
🔬 方法详解
问题定义:论文旨在解决如何更真实、有效地评估大型语言模型(LLM)在软件开发场景中的能力。现有静态基准测试无法捕捉软件开发的迭代性和协作性,难以反映LLM在实际开发中的表现。此外,处理大型代码库中的长上下文信息也是一个挑战。
核心思路:论文的核心思路是构建一个竞争性的评估环境,模拟真实的软件开发流程。通过让LLM扮演提交者和审查者的角色,进行补丁生成、测试用例创建和持续集成验证,从而评估LLM在软件开发中的综合能力。同时,引入检索增强代码生成(RACG)模块来处理长上下文信息。
技术框架:SwingArena框架包含以下主要模块:1) 问题选择模块:从GitHub issue中选择高质量的真实问题。2) 提交者模块:LLM作为提交者,根据问题描述生成代码补丁。3) 审查者模块:LLM作为审查者,创建测试用例并验证补丁的正确性。4) RACG模块:从大型代码库中检索相关的代码片段,为LLM提供上下文信息。5) CI验证模块:通过持续集成管道自动验证补丁的正确性。
关键创新:SwingArena的关键创新在于其交互式和竞争性的评估方式,以及对真实软件开发流程的模拟。与传统的静态基准测试相比,SwingArena能够更全面地评估LLM在软件开发中的能力。RACG模块的引入使得框架能够处理长上下文信息,从而更好地模拟真实开发场景。
关键设计:RACG模块的关键设计包括:1) 代码检索策略:使用语法和语义相关的代码片段进行检索。2) 上下文窗口大小:根据token限制动态调整上下文窗口大小。3) 编程语言支持:支持C++、Python、Rust和Go等多种编程语言。实验中,使用了超过400个高质量的真实GitHub issue,并选择了GPT-4o、DeepSeek和Gemini等LLM进行评估。
📊 实验亮点
实验结果表明,GPT-4o在补丁生成方面表现出色,能够生成更具侵略性的补丁,而DeepSeek和Gemini则更注重CI验证的正确性。这些结果表明,不同的LLM在软件开发的不同方面具有不同的优势。SwingArena提供了一个平台,可以帮助开发者更好地了解这些优势,并选择最适合其需求的LLM。
🎯 应用场景
SwingArena可用于评估和比较不同LLM在软件开发任务中的性能,帮助开发者选择合适的LLM。该框架还可以用于改进LLM的软件开发能力,例如通过训练LLM更好地理解代码上下文和生成高质量的补丁。未来,SwingArena可以扩展到其他软件开发任务,例如代码重构、代码审查和代码生成。
📄 摘要(原文)
We present SwingArena, a competitive evaluation framework for Large Language Models (LLMs) that closely mirrors real-world software development workflows. Unlike traditional static benchmarks, SwingArena models the collaborative process of software iteration by pairing LLMs as submitters, who generate patches, and reviewers, who create test cases and verify the patches through continuous integration (CI) pipelines. To support these interactive evaluations, we introduce a retrieval-augmented code generation (RACG) module that efficiently handles long-context challenges by providing syntactically and semantically relevant code snippets from large codebases, supporting multiple programming languages (C++, Python, Rust, and Go). This enables the framework to scale across diverse tasks and contexts while respecting token limitations. Our experiments, using over 400 high-quality real-world GitHub issues selected from a pool of 2,300 issues, show that models like GPT-4o excel at aggressive patch generation, whereas DeepSeek and Gemini prioritize correctness in CI validation. SwingArena presents a scalable and extensible methodology for evaluating LLMs in realistic, CI-driven software development settings. More details are available on our project page: swing-bench.github.io