斯坦福大学推出Parsel:一个让复杂算法变得简单的人工智能框架
2023年07月05日 由 Neo 发表
161092
0
尽管大型语言模型(LLM)的推理能力近期有了的进展,但它们仍然难以处理像开发复杂程序这样的层次化多步推理任务。相比之下,人类程序员(通常)学会了把困难的任务分解成可单独工作(模块化)和可协同工作(组合性)的可管理的组件。另外,如果人类生成的代码在某个函数中出现问题,应该可以重写那部分软件,而不影响应用程序的其他部分。相反,人们天真地期望代码LLM能够生成没有错误的代码序列。
这促使斯坦福大学的一项最新研究探讨了如何使用LLM进行问题分解和组合性解决方案构建。他们提出了Parsel,一个编译器,它接受一个包含用自然语言写的函数描述和定义实现函数期望行为的约束条件的规范。通过使用Parsel,程序员可以用自然语言编写程序,来解决竞赛级别的编程问题,超过之前的最先进水平超过75%。
一个代码LLM被给予一个函数的描述和它依赖的函数的签名,并被要求生成函数的实现。当添加一个约束条件时,编译器会搜索可能的实现组合,直到找到一个有效的。
以前的研究表明,与人类不同,代码语言模型不能开发出能够顺序执行多个小任务的程序。Parsel通过将分解和实现过程分开来解决了这个问题。虽然他们打算实现自然语言编程,但他们发现LLM在Parcel编码方面也表现出色。
将一个抽象计划分解到可以自动解决的程度是人类推理中常见的模式,这在Parsel的生成和实现中得到了体现;这种组合结构对于语言模型也是有用的。在这项研究中,团队展示了LLM可以从少量实例中创建Parsel,并且它们的解决方案在来自APPS数据集的竞赛级别问题上超过了最先进的方法。令人兴奋的是,使用Parsel由高级任务生成逐步机器人计划的LLM写出的计划,比零样本规划器基线准确率高出三分之二以上。
为了评估Parsel的效果,经验丰富的竞赛程序员Gabriel Poesia使用它来破解一系列APPS挑战,这些挑战通常出现在编程竞赛中。在6个小时内,他找到了10个问题中5个问题的解决方案,其中包括3个GPT-3之前失败了的问题。
研究人员通过将其制定为一个通用框架,展示了Parsel可以用于定理证明和其他需要算法推理的活动。
他们计划在不久的将来实现自动单元测试生成。他们提到,一种方法是搜索特殊情况,并看看是否有一组函数在所有现有测试上都达成一致,并且在任何新测试上也达成一致。这样就避免了实现组合中指数增长的问题,这可能使得自动分解成为可能。他们还打算调整语言模型的“置信度阈值”,因为对于更重要或更关键部分或部分程序而言,保持描述清晰和简洁是必要的。
来源:https://www.marktechpost.com/2023/07/04/researchers-at-stanford-introduce-parsel-an-artificial-intelligence-ai-framework-that-enables-automatic-implementation-and-validation-of-complex-algorithms-with-code-large-language-models-llms/