- 简介自动代码补全旨在从未完成的代码中生成后续标记,近期预训练的大型语言模型(LLMs)的进展使其受益匪浅。然而,这些模型在处理复杂的代码逻辑或超出训练数据范围时,常常存在连贯性问题和幻觉。现有的检索增强生成(RAG)技术通过使用单独的编码模型检索相关代码,其中检索到的代码片段作为代码补全的上下文参考,部分解决了这些问题。但是,它们的检索范围受到编码模型定义的单一视角的限制,这在很大程度上忽略了代码语义中的复杂性和多样性。为了解决这个限制,我们提出了ProCC,一个代码补全框架,利用提示工程和上下文多臂赌博算法,灵活地融合和适应代码的多个视角。ProCC首先采用基于提示的多检索器系统,使用提示模板引导LLM知识,以多个检索视角理解代码语义。然后,它采用自适应检索选择算法,将代码相似性纳入决策过程,确定最适合LLM完成代码的检索视角。实验结果表明,ProCC在我们收集的开源基准套件上比最先进的代码补全技术提高了8.6%,在从亿级电商公司收集的私有领域基准套件上提高了10.1%,准确匹配方面表现优异。ProCC还允许以即插即用的方式增强微调技术,相对于我们研究的微调模型,提高了5.6%。
- 图表
- 解决问题论文旨在解决自动代码补全中存在的连贯性问题和幻觉问题,提出了一种新的代码补全框架。
- 关键思路论文提出的ProCC框架通过使用基于提示的多重检索器系统和自适应检索选择算法,灵活地融合和适应多个代码视角,从而提高代码补全的准确性。
- 其它亮点论文在开源基准测试套件和亿级电商公司的私有领域基准测试套件上进行了实验,证明了ProCC在准确匹配方面比现有技术提高了8.6%和10.1%。ProCC还允许以即插即用的方式增强微调技术,相比于现有的微调模型,提高了5.6%的性能。
- 与该论文相关的研究包括使用预训练模型的代码补全技术和基于检索的代码补全技术。
沙发等你来抢
去评论
评论
沙发等你来抢