来源笔记

Evaluating Repository-level Software Documentation via Question Answering and Feature-Driven Development

Software DocumentationRepository Level BenchmarkQuestion AnsweringCode IntelligenceSoftware Engineering

SWD-Bench 是一个用于评估仓库级软件文档的基准,通过测试 LLM 能否根据文档回答开发问题来完成评估。它把评价重点从含糊的裁判打分,转到仓库理解和实现细节上的任务表现。

  • 现有文档基准通常只给小段代码打分,因此看不到文档是否解释了跨多个文件和模块的功能。
  • 常见评估方法,尤其是使用 Likert 量表的 LLM-as-a-judge,标准模糊,而且往往缺少足够的仓库知识来判断对错。
  • 这一点很重要,因为仓库文档要用于真实工作:判断某个功能是否存在、找到对应代码,并理解到足以扩展或修复的程度。
  • 论文构建了 SWD-Bench,这是一个仓库级 QA 基准,包含 4,170 条条目,数据来自 12 个 SWE-Bench 仓库中的 pull request。
  • 每条样本被转成三个和开发流程相关的 QA 任务:Functionality Detection(这个功能是否存在?)、Functionality Localization(哪些文件实现了它?)和 Functionality Completion(补全缺失的技术细节)。
  • 数据流程从 177.4k 个 GitHub pull request 开始,经过多步筛选,保留已合并、已审查、与功能相关且是持续性变更的 PR,最后留下 4,170 个高质量 PR。
  • 对每个 PR,基准收集仓库上下文,例如依赖分析、关联 issue、外部页面和提交历史,然后用 LLM 按 WHAT/WHY/HOW 三个维度写出功能描述。
  • 评估时,把模型答案和从 PR 元数据与代码变更中提取出的客观参考答案比较,而不是直接让 LLM 给文档质量打分。
  • SWD-Bench 包含 4,170 个基准条目。功能描述平均长度为 771.45 个字符;正向检测样本占 50.65%
  • 定位任务平均每条需要找到 2.01 个文件,范围是 1 到 62 个文件。
  • 补全任务平均每条需要补充 7.48 个细节,范围是 3 到 23 个细节。
  • 100 条抽样条目上的人工验证中,标注者间一致性达到 90% 以上的 Kappa,支持数据集质量。
  • 论文声称,当前仓库级文档生成方法仍有明显局限,而仓库上下文更丰富的方法表现更好,但这段摘要没有给出完整的任务指标表。
  • 在下游使用中,最佳方法生成的文档让 SWE-Agent 的 issue 解决率提高了 20.00%,说明它对解决问题有实际价值。