当语言模型遇上私有库
本篇研究是探讨 open-domain code generation 领域中的挑战 --- 对于不同编程社区中经常变化和扩展的函数和类的生成,特别是当涉及到未知的代码库时。作者提出了一个框架,利用API文档中的信息生成代码,并进行了相关实验并开放了一个新数据集。
Feb, 2022
本研究提出了一个使用未标注的代码语料库来训练代码生成模型的方法。该模型包括一个草图生成器和一个生成器,可以用来生成针对库的代码片段,并在 PandasEval 和 NumpyEval 两个基准测试中展示出出色的性能。
Jun, 2022
DocPrompting是一种自然语言到代码生成的方法,利用文档(documentation)明确地生成代码。通过应用于各种编程语言,我们证明了它可以改进自然语言到代码模型,可以提高2.85%的绝对正确率。
Jul, 2022
本文介绍了一个包含三十种编程语言的开源代码数据集The Stack,以及如何构建、管理和使用该数据集来训练大型语言模型,通过在Python子集上训练350M参数解码器,在文本到代码的基准测试上取得了有前途的结果。
Nov, 2022
当今大型语言模型 (LLMs) 具备高度的代码生成和理解能力,特别是在解释用户指导任务时,它们对于解释陌生库中的代码模块显得尤为有希望。最近的研究表明,大型专有 LLMs 可以通过演示学习上下文中的新型库使用。这些结果引发了几个问题,即演示是否需要、是否较小的(更加开放的)模型也具备这种能力等等。本研究以更广泛的方法系统评估不同类型的 LLMs,在三个反映不同领域专业化程度的场景中,了解它们在基于上下文定义的库生成代码时的能力和限制。我们的研究结果表明,即使是开源的较小型 LLMs,如 Llama-2 和 StarCoder,也展现出了对新型代码库的熟练理解能力。我们的发现进一步揭示,LLMs 在学习新的库模块时表现出惊人的高度熟练度,即使只提供自然语言描述或函数的原始代码实现,这比演示要便宜得多。总体而言,我们的研究结果为在更具适应性和动态性的编码环境中利用LLMs铺平了道路。
Nov, 2023
大型语言模型在代码生成方面取得了杰出的表现,但对于库导向的代码生成仍然令人不满,尤其是对于LLM的训练数据中没有的库。为了解决这个问题,我们提出了CAPIR(组合式API推荐),它采用了“分而治之”的策略来推荐粗粒度的需求所需的API。通过在RAPID和LOCG两个基准测试上的实验结果,证明了CAPIR相对于现有基准方法的有效性。
Feb, 2024
通过新的基准测试DevEval,我们评估了8种流行的大型语言模型在真实代码库中的编码能力,并发现这些模型的编码能力在真实世界的代码库中存在缺陷。
May, 2024
使用大型语言模型进行自然语言到代码生成的优化检索增强生成模型(RAG)方法,与 fine-tuned 模型相比,能够在语法和编译率等方面取得相似的性能,在 API 名称和参数键方面略有差异并优势新颖的 API。
Jul, 2024
本研究针对现有评估主要集中在通用代码生成的不足,提出了一种系统的自动化框架AutoAPIEval,以评估大语言模型在API导向代码生成方面的能力。研究发现,不同模型在各任务中的表现差异显著,并指出API流行度和模型自信度等关键因素对代码质量的影响,具有重要的实际应用价值。
Sep, 2024
本研究解决了当前评估大型语言模型(LLMs)在面向API的代码生成能力方面的空白,提出了一种名为AutoAPIEval的轻量级自动化评估框架。研究发现,不同的LLMs在执行特定任务时表现差异显著,进而揭示了影响代码质量的重要因素,如API的受欢迎程度和模型的置信度。
Sep, 2024