斯坦福大学的研究人员介绍了Parsel:一种人工智能AI框架,可以通过代码实现和验证复杂算法,并支持大型语言模型LLMs的自动化实施

尽管近年来在大型语言模型(LLM)推理方面取得了一些进展,但LLM仍然在分层多步推理任务(如开发复杂程序)方面遇到困难。与其他标记生成器相比,人类程序员(通常)已经学会将困难的任务分解为可以独立工作(模块化)和协同工作(组合式)的可管理组件。作为一个额外的好处,如果人类生成的标记导致函数出现问题,应该可以重写软件的那部分而不影响应用程序的其他部分。相比之下,天真地预期代码LLM将产生没有错误的标记序列。

这促使斯坦福大学最近进行的一项研究探索使用LLM在问题分解和组合式解决方案构建中的应用。他们提出了Parsel,一个编译器,它接受包含用自然语言编写的函数描述和定义所需函数行为的约束的规范。通过使用Parsel,编码人员可以用简单的语言编写能够解决竞赛级别的编码问题的程序,其性能超过了之前的SoTA超过75%。

给定一个函数的描述和它所依赖的函数的签名,代码LLM被要求生成函数的实现。当添加约束时,编译器将遍历可能的实现组合,直到找到一个可行的。

以往的研究表明,与人类不同,代码语言模型无法开发顺序执行多个小任务的程序。Parsel通过分割分解和实现过程来消除这个问题。虽然他们打算实现自然语言编码,但他们发现LLM在Parsel编码方面也表现出色。

将抽象计划分解直到可以自动解决是人类推理中常见的模式,反映在Parsel的生成和实现中;这种组合结构对于语言模型也是有用的。在这项研究中,团队证明了LLM可以从少量实例中创建Parsel,并且他们的解决方案在APPS数据集上的竞赛级问题上优于最先进的方法。使用Parsel由LLM编写的计划可以从高级作业中生成逐步的机器人计划,令人兴奋的是,其准确度超过了零样本规划器基线的三分之二以上。

为了评估Parsel的有效性,有经验的竞争性编码员Gabriel Poesia使用它攻克了一系列在编码竞赛中常见的APPS挑战。在6小时内,他找到了10个问题中的5个解决方案,其中包括GPT-3以前失败的3个问题。

研究人员表明,Parsel可以用作定理证明和其他需要算法推理的活动的通用框架。

他们计划在不久的将来实现自主单元测试生成。他们提到一个方法是搜索特殊情况,看看在所有现有测试上达成一致的函数组是否也在任何新测试上达成一致。这样可以避免实现组合的指数增长,从而可能实现自动分解。他们还计划调整语言模型的“置信阈值”,因为对于更关键的程序或程序部分,保持描述清晰简洁是必要的。