Relative Positioning Based Code Chunking Method For Rich Context Retrieval In Repository Level Code Completion Task With Code Language Model

📄 arXiv: 2510.08610v1 📥 PDF

作者: Imranur Rahman, Md Rayhanur Rahman

分类: cs.SE, cs.AI, cs.LG

发布日期: 2025-10-07

备注: Accepted to Context Collection Workshop co-located with ASE 2025


💡 一句话要点

提出基于相对位置的代码块划分方法,提升代码语言模型在仓库级代码补全任务中的性能

🎯 匹配领域: 支柱九:具身大模型 (Embodied Foundation Models)

关键词: 代码补全 大型语言模型 代码块划分 相对位置 上下文构建

📋 核心要点

  1. 现有代码补全研究缺乏对大型语言模型(LLM)有效上下文构建的深入探索,未能充分利用IDE可获取的信息。
  2. 该论文提出一种基于代码块划分和相对位置的上下文收集策略,旨在提升LLM在代码补全任务中的性能。
  3. 实验结果表明,所提出的代码块划分和相对位置策略能够有效提升代码补全任务的性能。

📝 摘要(中文)

代码补全能够帮助开发者提高效率并简化开发生命周期。尽管现代集成开发环境(IDE)中已经存在代码补全功能,但对于如何基于IDE可获取的信息来构建更适合大型语言模型(LLM)的代码补全上下文,相关研究仍然不足。本文提出了一种有效的上下文收集策略,旨在辅助LLM在代码补全任务中表现更好。该策略的核心思想是将代码仓库预处理成更小的代码块,然后利用基于句法和语义相似性的代码块检索以及相对位置信息。实验结果表明,代码块划分以及代码块在最终上下文中的相对位置能够提升代码补全任务的性能。

🔬 方法详解

问题定义:论文旨在解决代码补全任务中,如何为大型语言模型(LLM)构建更有效的上下文的问题。现有方法可能无法充分利用代码仓库中的信息,导致LLM无法准确预测后续代码。痛点在于如何从庞大的代码库中提取出与当前代码上下文最相关的代码片段,并以最佳方式呈现给LLM。

核心思路:论文的核心思路是将整个代码仓库分解成更小的、更易于管理的“代码块”,然后通过句法和语义相似性来检索与当前上下文相关的代码块。此外,论文还强调了代码块在最终上下文中的相对位置的重要性,认为相对位置信息有助于LLM更好地理解代码之间的关系。

技术框架:该方法包含以下几个主要阶段:1) 代码块划分:将整个代码仓库分割成小的代码块。具体的划分方法未知。2) 代码块检索:基于句法和语义相似性,从代码块集合中检索与当前代码上下文最相关的代码块。具体的相似度计算方法未知。3) 上下文构建:将检索到的代码块按照一定的规则(例如,相对位置)组合成最终的上下文,并输入到LLM中。4) 代码补全:LLM基于给定的上下文生成代码补全建议。

关键创新:该方法的关键创新在于强调了代码块划分和相对位置信息在代码补全任务中的重要性。与传统方法相比,该方法能够更有效地利用代码仓库中的信息,并为LLM提供更具信息量的上下文。通过代码块划分,降低了检索的复杂度,并通过相对位置的引入,使得模型能够学习到代码之间的结构关系。

关键设计:论文中没有详细说明代码块划分的具体方法、句法和语义相似性的计算方式,以及相对位置信息的具体编码方式。这些都是需要进一步研究和设计的关键技术细节。损失函数和网络结构取决于所使用的LLM,论文中没有提及具体的修改或定制。

🖼️ 关键图片

fig_0

📊 实验亮点

论文的主要亮点在于提出了一种基于代码块划分和相对位置的上下文收集策略,并验证了该策略在代码补全任务中的有效性。虽然论文中没有给出具体的性能数据和对比基线,但强调了代码块划分和相对位置信息对代码补全性能的提升作用。具体的提升幅度未知。

🎯 应用场景

该研究成果可应用于各种集成开发环境(IDE)中的代码补全功能,提高开发者的编码效率。通过更准确的代码补全建议,可以减少开发者的手动输入,降低错误率,并加速软件开发过程。此外,该方法还可以应用于代码搜索、代码推荐等领域,帮助开发者更好地理解和利用代码仓库中的信息。

📄 摘要(原文)

Code completion can help developers improve efficiency and ease the development lifecycle. Although code completion is available in modern integrated development environments (IDEs), research lacks in determining what makes a good context for code completion based on the information available to the IDEs for the large language models (LLMs) to perform better. In this paper, we describe an effective context collection strategy to assist the LLMs in performing better at code completion tasks. The key idea of our strategy is to preprocess the repository into smaller code chunks and later use syntactic and semantic similarity-based code chunk retrieval with relative positioning. We found that code chunking and relative positioning of the chunks in the final context improve the performance of code completion tasks.