论文
用于存储库级代码生成的自适应关键词元感知检索
Adaptive Critical Token-Aware Retrieval for Repository-Level Code Generation
摘要
存储库级代码生成任务需要合成满足任务要求的代码,同时与目标存储库上下文保持一致。由于现实世界的存储库通常超出 LLM 的输入长度限制,因此现有方法通常采用检索增强生成(RAG)来提供存储库特定的上下文。尽管改进了存储库上下文检索,但现有方法通常提供上下文作为任务级支持,而没有明确识别在生成过程中需要细粒度存储库上下文的关键词元。在LLM的自回归生成过程中,错误往往集中在少数决定性位置:一旦错误生成此类标记,后续代码可能会遵循错误的语义路径,最终导致功能故障。我们将这些位置称为“关键词元”。在本文中,我们提出了 ACToR,一种用于存储库级代码生成的自适应关键词元感知检索框架。 ACToR 在生成过程中识别关键词元,并根据需要触发有针对性的检索,以在这些决定性位置提供存储库上下文。此外,我们为密集的 检索器 设计了一种位置感知加权方法,以优先考虑生成信息更丰富的上下文。我们在两个具有代表性的存储库级基准测试(RepoExec 和 CoderEval)上评估 ACToR。实验结果表明,ACToR 始终优于最先进的方法,在 RepoExec 上实现了 8.4% 的相对改进,在 CoderEval 上实现了 15.4% 的相对改进。除了性能提升之外,我们还系统地量化了关键词元的影响,揭示了它们在主要生成失败中的核心作用,并强调了有针对性的检索策略的必要性。我们在 https://github.com/DeepSoftwareAnalytics/ACToR 提供代码和数据。