中文

面向私有库的大语言模型代码生成

软件工程 2023-07-31 v1

摘要

大语言模型(LLMs),如 Codex 和 GPT-4,近期展示了其卓越的代码生成能力,显著提升了编码效率。本文将深入探讨利用 LLMs 进行私有库中的代码生成,因为私有库在日常编程中被广泛使用。尽管能力出众,生成此类私有 API 对 LLMs 而言仍是一个艰巨难题,因为它们在预训练过程中固有地缺乏对这些私有库的接触。为应对这一挑战,我们提出了一种模拟程序员编写私有代码过程的新型框架。该框架包含两个模块:APIFinder 首先从 API 文档中检索潜在有用的 API;随后 APICoder 利用这些检索到的 API 生成私有代码。具体而言,APIFinder 采用向量检索技术并允许用户在检索过程中参与。对于 APICoder,它可直接使用现成的代码生成模型。为进一步培养从提示中调用 API 的显式能力,我们对 APICoder 的增强版本 CodeGenAPI 进行了持续预训练。我们的目标是在大量公共库上训练上述两个模块,从而实现对私有库的泛化。同时,我们创建了四个私有库基准,包括 TorchDataEval、TorchDataComplexEval、MonkeyEval 和 BeatNumEval,并为每个基准精心手工编写测试用例以支持全面评估。在四个基准上的大量实验一致证实了我们的方法的有效性。此外,还进行了更深入的分析以获取额外见解。

关键词

引用

@article{arxiv.2307.15370,
  title  = {Private-Library-Oriented Code Generation with Large Language Models},
  author = {Daoguang Zan and Bei Chen and Yongshun Gong and Junzhi Cao and Fengji Zhang and Bingchao Wu and Bei Guan and Yilong Yin and Yongji Wang},
  journal= {arXiv preprint arXiv:2307.15370},
  year   = {2023}
}