Prompt-based Code Completion via Multi-Retrieval Augmented Generation

by

in

总结

本网页主要介绍了一种名为 ProCC 的代码自动完成框架,它通过多重检索增强的生成(Multi-Retrieval Augmented Generation)技术,结合提示工程和上下文多臂赌博机算法,以多角度理解代码语义,提高代码自动完成的准确性和效率。

摘要

网页详细介绍了 ProCC 框架的设计和实现,它包括两个主要组件:基于提示的多重检索器系统和自适应检索选择算法。基于提示的多重检索器系统通过设计三种不同的提示模板来理解代码语义,分别是词法语义、假设行和代码摘要三个视角。自适应检索选择算法则利用上下文多臂赌博机算法,根据不同的代码上下文动态选择最合适的检索视角,以提供最佳的上下文支持。实验结果表明,ProCC 在开源和私有领域的基准测试中都优于现有的最先进的代码自动完成技术,并且在微软的 Code Llama 和 StarCoder 模型上进行了评估,显示出显著的性能提升。

观点

  • 传统的代码自动完成技术往往忽略了代码语义的复杂性和多样性,而 ProCC 通过多视角的检索来克服这一限制。
  • ProCC 框架采用了提示工程技术,通过设计不同的提示模板,能够在不需要额外训练模型的情况下,有效地理解和表示代码的多个语义维度。
  • 通过上下文多臂赌博机算法,ProCC 能够根据每个不完整代码片段的具体情况,自适应地选择最佳的检索视角,从而提高代码完成的准确性。
  • 实验结果显示,ProCC 在多个代码完成场景中都表现出色,特别是在处理更复杂的函数体完成和随机行完成时,性能提升更为显著。
  • 文章强调,与传统的对抗性训练方法相比,基于提示的方法是一种轻量级且强大的技术,能够更好地利用大型预训练语言模型(LLMs)内嵌的知识。
  • 文章认为,代码自动完成技术的进步不仅能够提高开发者的效率,还能够降低企业的运营成本,并且在实际开发中得到了广泛的应用。

动机背景

方案

评测效果

链接

https://arxiv.org/pdf/2405.07530v1

Comments

Leave a Reply

Your email address will not be published. Required fields are marked *