认识LEVER:一种简单的人工智能方法,通过学习验证生成的程序和执行结果来改进语言到代码生成

LEVER是一种简单的人工智能方法,用于改进语言到代码生成通过学习验证生成的程序和执行结果

大型语言模型(LLMs)最近取得了重大进展。这些模型在人工智能领域有着重要的推动作用,并具有完成各种任务的巨大潜力。从模仿人类回答问题和生成内容,到总结文本段落和翻译语言,LLMs 能够胜任各种任务。虚拟助手、机器人控制、数据库接口和其他人工智能应用都依赖于将自然语言描述转化为可执行代码的能力。虽然在代码上进行预训练的代码 LLMS,或者说基于代码的模型,已经在使用上下文少样本学习方面表现出色,但这些模型的性能可能可以提高,并且对它们进行优化可能会消耗大量计算资源。

虽然在少样本情况下,LLMs 可能在准确性上存在困难,但当给出足够多的样本时,它们通常会提供准确的结果,即当样本规模扩大时,多数投票和按测试用例进行过滤可以极大地提高它们的性能。数据类型、值范围和变量属性是程序正确性的有力指标,也是模型解决方案的丰富语义元素。在最近的一项研究中,研究人员团队介绍了一种名为“Learning to Verify(LEVER)”的方法,该方法使用代码 LLMS 实现从自然语言生成代码。

LEVER 利用自然语言描述、程序表面形式和执行结果的综合表示来训练验证器,以识别和拒绝有错误的程序。验证概率和 LLMS 生成概率被结合起来创建一个总概率,并对具有相同执行结果的程序进行边缘化处理。使用这个概率作为重新排序得分,选择具有提供正确结果的最佳可能性的程序作为输出。

LEVER 提出了一种改进语言到代码生成的方法,通过包含学习验证过程来判断从 LLMS 中采样的程序是否准确。LEVER 通过检查生成的程序来提高输出的准确性和正确性。为了评估 LEVER 的有效性,已经在包括表格 QA、数学 QA 和基本 Python 编程在内的四个数据集上进行了实验。利用 code-davinci-002,性能优势从4.6%到10.9%不等,并且结果始终优于基础代码 LLMS。在所有数据集上,LEVER 实现了全新的最先进结果,展示了它在从自然语言描述中生成精确和上下文相关的代码方面的优越性。

总之,LEVER 技术提高了代码 LLMS 将自然语言描述转化为可执行代码的能力。通过利用一个考虑执行结果的验证器,这种方法在准确性上超过了更传统的执行错误修剪策略。研究结果展示了它在语言到代码任务中的高效性,并表明它有潜力增强许多人工智能应用,包括数据库接口、机器人控制和虚拟助手。