SWE-QA-Benchmark
收藏github2025-09-30 更新2025-10-01 收录
下载链接:
https://github.com/peng-weihan/SWE-QA-Bench
下载链接
链接失效反馈官方服务:
资源简介:
SWE-QA基准数据集用于评估语言模型在12个流行Python项目(包括Django、Flask、Requests等)上回答仓库级别代码问题的能力
The SWE-QA benchmark dataset is designed to evaluate the ability of language models to answer repository-level code questions across 12 popular Python projects, including Django, Flask, Requests, and so on.
创建时间:
2025-09-18
原始信息汇总
SWE-QA数据集概述
数据集基本信息
- 数据集名称:SWE-QA
- 全称:SWE-QA: Can Language Models Answer Repository-level Code Questions?
- 主要用途:评估语言模型回答仓库级代码问题的能力
- 项目覆盖:包含12个流行Python项目(Django、Flask、Requests等)
数据集获取
- 官方地址:https://huggingface.co/datasets/swe-qa/SWE-QA-Benchmark
- 数据格式:JSONL格式
- 项目细分:包含astropy.jsonl、django.jsonl等项目特定数据集
数据集结构
主要目录
- questions/:问题数据集(JSONL格式)
- answers/:答案数据集
- faiss/:FAISS索引文件
- repos/:仓库数据
支持项目
- astropy
- django
- 其他Python项目
评估方法
直接LLM评估
- 方法:直接向LLM发送问题
- 输出:无额外上下文的答案生成
- 结果保存路径:datasets/answers/direct/
RAG函数分块
- 方法:将代码解析为函数级分块
- 流程:构建向量嵌入 → 检索相关代码上下文 → 生成答案
RAG滑动窗口
- 方法:将代码分割为重叠文本窗口
- 流程:创建文本块嵌入 → 检索相关块 → 生成上下文答案
评估与评分
- 评分方法:LLM-as-a-judge评估
- 支持方法:direct、func_chunk、sliding_window
- 评分脚本:llm-score.py
技术依赖
环境要求
- Python 3.12
- pip或conda包管理
- OpenAI API访问权限
- Voyage AI API访问权限(RAG方法需要)
仓库准备
- 支持克隆特定项目仓库
- 示例仓库:https://github.com/astropy/astropy
- 示例仓库:https://github.com/django/django
许可证
- 许可证类型:MIT许可证
- 许可证文件:LICENSE
搜集汇总
数据集介绍

构建方式
在软件工程领域,SWE-QA基准数据集的构建采用了系统化的方法,从12个流行的Python项目中提取代码库层面的问题。这些问题源自GitHub仓库的实际议题,通过专门的议题分析工具进行收集与整理,确保问题具有真实性和代表性。数据集以JSONL格式存储,涵盖多个项目如Django和Flask,每个条目包含详细的问题描述与对应的答案,为评估语言模型处理复杂代码问题的能力提供了坚实基础。
特点
该数据集的特点在于其广泛覆盖了多个知名Python项目,问题设计紧密围绕代码库层面的复杂场景,如功能实现和错误修复。数据集结构清晰,包含问题、答案及FAISS索引文件,支持高效的检索与评估。此外,数据集还提供了多种评估方法的实现,包括直接LLM评估和基于RAG的两种不同代码分块策略,为研究者提供了灵活的测试框架,以全面衡量模型在不同情境下的表现。
使用方法
使用SWE-QA数据集时,研究者需先配置环境变量并安装依赖项,随后可选择多种评估方法进行实验。直接LLM评估方法将问题直接输入语言模型生成答案,而RAG方法则通过函数分块或滑动窗口策略检索相关代码上下文,增强答案的准确性。评估过程利用LLM作为评判工具对生成答案进行打分,结果保存至指定目录,便于后续分析与比较,确保评估过程的系统性和可重复性。
背景与挑战
背景概述
随着大型语言模型在代码生成任务中的广泛应用,评估其处理复杂软件工程问题的能力成为研究重点。SWE-QA基准数据集由研究团队于2024年创建,聚焦于评估语言模型在仓库级代码问题解答中的表现。该数据集涵盖Django、Flask等12个主流Python项目,通过构建真实场景的代码库问题,推动智能编程助手在软件维护、代码理解等关键领域的发展。
当前挑战
仓库级代码问答面临多重挑战:模型需跨越函数级理解局限,整合跨文件代码语义;构建过程中需平衡代码规模与计算效率,精准提取关键代码片段;同时需解决项目异构性带来的标注一致性难题,确保评估结果的可靠性与泛化能力。
常用场景
经典使用场景
在软件工程与人工智能交叉领域,SWE-QA基准测试被广泛应用于评估语言模型处理仓库级代码问题的能力。该数据集通过整合Django、Flask等12个主流Python项目的真实代码库,构建了包含代码结构分析与问题解答的评估框架。研究者通常采用直接LLM推理、基于函数分块的检索增强生成以及滑动窗口文本处理三种典型方法,系统检验模型在复杂代码语境下的理解与响应效能。
衍生相关工作
基于该数据集衍生的经典研究包括多粒度代码表示学习框架与动态上下文建模技术。众多后续工作受其启发,开发了面向特定编程语言的增强型基准测试,如Java-RepoQA与CrossLang-CodeBench。在方法论层面,其提出的函数块检索策略催生了新一代代码检索模型,而滑动窗口机制则为长上下文代码理解任务提供了重要技术参照。
数据集最近研究
最新研究方向
在软件工程与人工智能交叉领域,SWE-QA基准测试聚焦于评估语言模型处理仓库级代码问题的能力,覆盖Django、Flask等12个主流Python项目。前沿研究主要探索检索增强生成技术在代码理解中的应用,通过函数级分块与滑动窗口两种策略构建代码语义索引,显著提升了模型对复杂代码库的上下文感知能力。这一方向与当前智能编程助手的发展趋势紧密契合,为自动化代码维护与知识检索提供了重要技术支撑,推动了语言模型在真实开发场景中的实用化进程。
以上内容由遇见数据集搜集并总结生成



