论文

分块如何影响检索增强代码完成?对照实证研究

How Does Chunking Affect Retrieval-Augmented Code Completion? A Controlled Empirical Study

上下文与知识检索增强

摘要

用于代码完成的检索增强生成(RAG)管道依赖于分块将源文件分割成可检索的单元,但通常在没有经验依据的情况下采用分块策略,并且实践者的建议明显不一致。我们提出了一项受控实证研究,通过将四种代表性策略(函数、声明、滑动窗口和 cAST)与四个 检索器、五个生成器和两个基准(RepoEval 和 CrossCodeEval)上的九个参数配置交叉,总共 864 个实验设置,来隔离分块对代码完成质量的影响。我们的结果表明,分块策略对基于 RAG 的代码完成具有统计上显着的影响。与直觉相反,基于函数的分块在 RepoEval 上的表现比所有其他策略低 3.57--5.64 个百分点(Cliff 的 delta = -1.0),而其余分块策略的表现相当。我们的进一步分析表明,这一观察结果适用于所有 检索器 生成器组合。我们还发现跨文件上下文长度是主要参数:从 2,048 个标记加倍到 8,192 个标记可带来高达 4.2 个百分点的改进,而块大小具有较弱的非单调效应。在成本质量帕累托前沿,滑动窗口和 cAST 在两个基准测试中均占主导地位;函数分块从来都不是帕累托最优的。