中文

通过检索增强语言模型构建编码助手

计算与语言 2024-11-05 v2

摘要

预训练语言模型在代码相关任务中显示出强大的效果,包括代码检索、代码生成、代码摘要和代码补全等任务。本文提出了 COde assistaNt viA retrieval-augmeNted language model (CONAN),旨在通过模拟人类在编码过程中寻找知识的行为来构建代码助手。具体而言,CONAN 由一个具备代码结构感知能力的检索器(CONAN-R)和基于双视图代码表示的检索增强生成模型(CONAN-G)组成。CONAN-R 通过 Code-Documentation Alignment 和 Masked Entity Prediction 任务对 CodeT5 进行预训练,使语言模型具备代码结构感知能力并学习代码片段和文档的有效表示。随后 CONAN-G 设计了双视图代码表示机制,以实现检索增强的代码生成模型。CONAN-G 将代码文档描述作为提示,帮助语言模型更好地理解代码语义。我们的实验表明,CONAN 在各种代码生成任务上均实现了令人满意的性能,显著优于以往的检索增强代码生成模型。进一步的分析表明,CONAN 通过对齐代码-文档数据对学习针对代码片段和文档的定制表示,并通过掩码和预测代码数据中的实体来捕获结构语义。此外,检索到的代码片段和文档提供了必要的程序语言和自然语言信息,以辅助代码生成过程。CONAN 还可用作大型语言模型(LLM)的助手,通过提供较短的代码文档长度中的外部知识来提高其在各种代码任务上的效果。它显示了 CONAN 提取必要信息并帮助过滤检索代码文档中噪声的能力。

关键词

引用

@article{arxiv.2410.16229,
  title  = {Building A Coding Assistant via the Retrieval-Augmented Language Model},
  author = {Xinze Li and Hanbin Wang and Zhenghao Liu and Shi Yu and Shuo Wang and Yukun Yan and Yukai Fu and Yu Gu and Ge Yu},
  journal= {arXiv preprint arXiv:2410.16229},
  year   = {2024}
}