LILO:通过压缩和文档化代码学习可解释的代码库
当今大型语言模型 (LLMs) 具备高度的代码生成和理解能力,特别是在解释用户指导任务时,它们对于解释陌生库中的代码模块显得尤为有希望。最近的研究表明,大型专有 LLMs 可以通过演示学习上下文中的新型库使用。这些结果引发了几个问题,即演示是否需要、是否较小的(更加开放的)模型也具备这种能力等等。本研究以更广泛的方法系统评估不同类型的 LLMs,在三个反映不同领域专业化程度的场景中,了解它们在基于上下文定义的库生成代码时的能力和限制。我们的研究结果表明,即使是开源的较小型 LLMs,如 Llama-2 和 StarCoder,也展现出了对新型代码库的熟练理解能力。我们的发现进一步揭示,LLMs 在学习新的库模块时表现出惊人的高度熟练度,即使只提供自然语言描述或函数的原始代码实现,这比演示要便宜得多。总体而言,我们的研究结果为在更具适应性和动态性的编码环境中利用 LLMs 铺平了道路。
Nov, 2023
使用各种大型语言模型自动生成代码片段的自然语言摘要,研究结果表明,代码语言模型优于其通用模型,而零 - shot 方法在训练集和测试集之间分布不同的数据集上取得了更好的结果。
Oct, 2023
该研究论文介绍了如何将大型语言模型用于编写机器人策略代码,并达成具有几何空间推理能力、可自主创新、精确且具备行为常识的策略,同时提供了对多个真实机器人平台进行演示和基准测试的代码和视频。
Sep, 2022
该论文介绍了一种名为 LAPS 的技术,它使用自然语言注释来引导库和神经引导搜索模型的联合学习,以实现程序的归纳合成。与一些自然语言注释不可用的测试时间相比,LAPS 可生产高质量的程序库并提高搜索效率和泛化性。
Jun, 2021
使用大型语言模型 (LLMs) 驱动的代码生成在最近变得越来越流行。然而,自动生成机器学习 (ML) 任务的代码仍然面临着重大挑战。本文通过结合 LLMs 和自动化机器学习 (autoML) 来探索 ML 程序合成的极限,旨在完全自动化从数据准备到建模和后处理的整个 ML 工作流程的代码生成过程,只使用 ML 任务的文本描述。
May, 2024
大型语言模型在代码生成方面取得了杰出的表现,但对于库导向的代码生成仍然令人不满,尤其是对于 LLM 的训练数据中没有的库。为了解决这个问题,我们提出了 CAPIR(组合式 API 推荐),它采用了 “分而治之” 的策略来推荐粗粒度的需求所需的 API。通过在 RAPID 和 LOCG 两个基准测试上的实验结果,证明了 CAPIR 相对于现有基准方法的有效性。
Feb, 2024
本文提出了一种可以从语言相关演示中学习多样、可解释的原始行为或技能的分层模仿学习框架 (LISA),采用向量量化方法来学习与语言指令高度相关的离散化技能编码,并在导航和机器人操作环境中实现了对未见过指令的方案的任务解决能力的提高,从而在序列决策制定中实现更自然地基于语言条件,以学习可以解释和可控的行为。
Feb, 2022
该研究介绍了一种技术,它允许大型语言模型在解决编程任务时利用用户提供的代码,并且提出了一种逐步生成模块化子函数的方法,以帮助模型在初始生成的代码不足时进行未来的代码生成尝试。
Nov, 2023
该论文介绍了语料库引导的自顶向下合成,作为一种从某个特定领域语言(DSL)程序语料库中合成捕捉常见功能的库函数的机制。该算法直接从初始 DSL 原语中构建抽象,使用中间抽象的句法模式匹配来智能地剪枝搜索空间,并指导算法朝向最大程度捕捉语料库中共享结构的抽象。我们在一个名为 Stitch 的工具中介绍了该方法的实现,并将其与 DreamCoder 的最新演绎库学习算法进行了评估。我们的评估结果显示,与 DreamCoder 相比,Stitch 快 3-4 个数量级,使用的内存少 2 个数量级,同时保持相当或更好的库质量。我们还演示了 Stitch 在包含数百个复杂程序的语料库上的可扩展性,这些程序采用先前的演绎方法是难以处理的,并在实证上表明,它对提前终止搜索过程是鲁棒的,从而通过提前停止的方式使其能够应对具有挑战性的数据集的扩展。
Nov, 2022
通过改善大型语言模型的抽象能力和预测的准确性,提出了一种名为 ReGAL 的梯度自由学习方法来重构代码并学习可复用函数库,从而在多个领域中提高程序预测的准确性。
Jan, 2024