为面向库的代码生成进行的草图持续预训练
本篇研究是探讨 open-domain code generation 领域中的挑战 --- 对于不同编程社区中经常变化和扩展的函数和类的生成,特别是当涉及到未知的代码库时。作者提出了一个框架,利用API文档中的信息生成代码,并进行了相关实验并开放了一个新数据集。
Feb, 2022
本文研究使用预训练的代码语言模型Codex进行few-shot学习的三个代码操作和生成任务,实现手动开发工具所需的更少的工作量,并提供关于如何设计适当输入和影响模型大小的见解,结果表明few-shot语言模型是出乎意料地有效的,但还需要探索更多多样的提示方式来处理更多复杂的任务。
Jun, 2022
本文提出了一种新的预训练目标——源代码的自然化,在大规模的自然代码库中通过引入非自然代码形式的六类语义保持变换,来训练生成等效但更加自然的代码,进一步提升了自然代码的统计学习能力,实现了三种软件工程任务的生成,翻译和细化,达到了CodeT5的水平。
Jun, 2022
本文研究了利用大型语言模型进行自然语言生成的能力,并应用于编程课程中常见的两种学习资源的制作。研究发现,在创建编程练习时,只需要输入关键词,即可显著影响编程概念和上下文主题的内容,同时也证明了大多数自动生成的内容是全新且合理的。这些结果表明,使用大型生成机器学习模型作为教学工具是有重要价值的,但在交付给学生之前需要一些监督来确保生成的内容质量。文章还探讨了OpenAI Codex及类似工具对初学者编程教育的影响,并强调了可能改善教学体验的未来研究方向。
Jun, 2022
DocPrompting是一种自然语言到代码生成的方法,利用文档(documentation)明确地生成代码。通过应用于各种编程语言,我们证明了它可以改进自然语言到代码模型,可以提高2.85%的绝对正确率。
Jul, 2022
本研究提出了一个基于GPT-3.5的评估框架,用于评估代码生成的功能正确性和人类偏好,能够在不需要测试oracle或参考文献的情况下,达到比CodeBERTScore更高的准确性和一致性。
Apr, 2023
当今大型语言模型 (LLMs) 具备高度的代码生成和理解能力,特别是在解释用户指导任务时,它们对于解释陌生库中的代码模块显得尤为有希望。最近的研究表明,大型专有 LLMs 可以通过演示学习上下文中的新型库使用。这些结果引发了几个问题,即演示是否需要、是否较小的(更加开放的)模型也具备这种能力等等。本研究以更广泛的方法系统评估不同类型的 LLMs,在三个反映不同领域专业化程度的场景中,了解它们在基于上下文定义的库生成代码时的能力和限制。我们的研究结果表明,即使是开源的较小型 LLMs,如 Llama-2 和 StarCoder,也展现出了对新型代码库的熟练理解能力。我们的发现进一步揭示,LLMs 在学习新的库模块时表现出惊人的高度熟练度,即使只提供自然语言描述或函数的原始代码实现,这比演示要便宜得多。总体而言,我们的研究结果为在更具适应性和动态性的编码环境中利用LLMs铺平了道路。
Nov, 2023
通过使用Syntax Graph Retrieval Augmented Code Generation (CodeGRAG)模型,可以提高大型语言模型在单轮代码生成任务中的性能,填补编程语言和自然语言之间的差距,并使用外部结构化知识作为不同编程语言之间的桥梁,从而显著提高语言模型的代码生成能力。
May, 2024
使用语言导向的代码草稿提供即时且逐步的反馈,从而提高人工与大型语言模型之间的交互效果。该方法通过利用提示中固有的语言结构和经典的自然语言处理技术,将提示转化为代码草稿,并作为中间占位符,预览预期的代码结构,引导大型语言模型生成期望的代码。
May, 2024
基于大规模语言模型的代码生成领域的综述,介绍了对LLMs在代码生成领域的最新进展、数据处理、性能评估、实际应用,对学术与实践之间的差距进行了分析,提出了关键挑战和机遇,并提供了一个资源网站以记录和传播该领域的最新进展。
Jun, 2024