[论文解读] Long Code Arena: a Set of Benchmarks for Long-Context Code Models
本文介绍了 Long Code Arena,一个包含六个任务的基准测试套件,要求对整个项目进行长上下文代码理解,包括基于库的生成、CI 修复、项目级补全、提交信息生成、错误定位和模块摘要。该基准测试套件基于宽松许可的开源仓库构建,并经过严格的手动验证,提供了高质量的数据集、评估工具和基线模型,发布于 HuggingFace 和 GitHub,以推动长上下文代码模型的研究。
Nowadays, the fields of code and natural language processing are evolving rapidly. In particular, models become better at processing long context windows - supported context sizes have increased by orders of magnitude over the last few years. However, there is a shortage of benchmarks for code processing that go beyond a single file of context, while the most popular ones are limited to a single method. With this work, we aim to close this gap by introducing Long Code Arena, a suite of six benchmarks for code processing tasks that require project-wide context. These tasks cover different aspects of code processing: library-based code generation, CI builds repair, project-level code completion, commit message generation, bug localization, and module summarization. For each task, we provide a manually verified dataset for testing, an evaluation suite, and open-source baseline solutions based on popular LLMs to showcase the usage of the dataset and to simplify adoption by other researchers. We publish the benchmark page on HuggingFace Spaces with the leaderboard, links to HuggingFace Hub for all the datasets, and link to the GitHub repository with baselines: https://huggingface.co/spaces/JetBrains-Research/long-code-arena.
研究动机与目标
- 为解决现有基准测试无法评估代码模型在单个文件或方法之外的整个项目上下文中的表现这一问题。
- 创建真实、高保真的评估任务,反映需要访问多个文件或整个模块的现实世界软件工程工作流程。
- 通过对手动验证和筛选来自真实开源仓库(采用宽松许可证)的样本,确保数据质量。
- 提供开源的评估工具、发布于 HuggingFace Hub 的数据集以及基线实现,以加速长上下文代码模型的研究。
- 实现对长上下文大语言模型在复杂、项目级代码处理任务上的公平且可复现的评估。
提出的方法
- 该基准测试从 4,343 个经过筛选的开源 GitHub 仓库构建,筛选标准包括大小、活跃度和宽松许可证,以确保数据质量和可重用性。
- 针对六个任务中的每一个,从源代码、提交历史、问题记录和 GitHub Actions 日志中提取数据,以模拟真实世界开发上下文。
- 应用严格的过滤和手动验证,以确保正确性和相关性,尤其针对提交信息生成和错误定位等任务。
- 使用微调后的 CodeBERT 深度学习分类器,基于大小写和动词使用等质量标准对提交信息进行过滤。
- 数据集发布于 HuggingFace Hub,设有公开排行榜,基线模型使用主流大语言模型实现,以展示其使用方法。
- 评估设置确保训练集和测试集互不重叠,并注重时间一致性,以避免数据泄露。
实验结果
研究问题
- RQ1长上下文代码模型在需要理解整个项目或模块而非孤立函数的任务上表现如何?
- RQ2现有基准测试在多大程度上未能反映现实世界软件工程工作流程的复杂性?
- RQ3经过精心筛选并经人工验证的项目级代码任务数据集,是否能提高模型评估的可靠性和可复现性?
- RQ4当在真实、项目级的基准测试上评估时,主流大语言模型在长上下文代码任务上的表现如何?
- RQ5构建和维护高质量、可扩展的长上下文代码模型基准测试的关键挑战是什么?
主要发现
- Long Code Arena 基准测试包含六个需要项目级上下文的任务,如 CI 构建修复和模块摘要,这些任务在大多数现有基准测试中均不存在。
- 每个任务包含 100 至 1,000 个经人工验证的示例,数据源自 4,343 个采用宽松许可证的高质量开源仓库。
- 基于 CodeBERT 的深度学习分类器经过微调,用于根据大小写和动词使用等质量标准过滤提交信息,从而提升了提交信息生成数据集的质量。
- 该基准测试托管于 HuggingFace Spaces,设有公开排行榜,所有数据集均可在 HuggingFace Hub 上获取,供社区使用。
- 基线实现已发布于 GitHub,展示了主流大语言模型在每个任务上的应用,为未来研究提供参考基准。
- 数据集构建过程通过确保时间一致性和使用互不重叠的训练集与测试集,避免了数据泄露。
更好的研究,从现在开始
从阅读论文到最终审阅,大幅缩短您的研究时间。
无需绑定信用卡
本解读由 AI 生成,并经人工编辑审核。