LLMs Can’t Plan, But Can Help Planning in LLM-Modulo Frameworks

更多精彩内容,请关注微信公众号:NLP分享汇

原文链接:LLMs Can’t Plan, But Can Help Planning in LLM-Modulo Frameworks


你是怎么理解LLM的规划和推理能力呢,来自亚利桑那州立大学最近的一篇论文,对LLM的规划、推理能力提出了一些新看法。

在看这篇文章时,你不妨可以带入以下角色进行理解:

  • 乐观型:认为只要采用了合适的提示策略,LLM就能很好的完成任务

  • 悲观型:LLM在规划,或者推理任务唯一的好处是将问题从一种句法格式翻译成另一种,真正解决问题还需要靠外部符号求解器。

为什么会觉得LLM不能规划?

从丹尼尔·卡尼曼的《Thinking fast and slow》看LLM

图1 An informal account of viewing LLM

图1提供了一个非正式的视角,将大型语言模型(LLMs)视为一个巨大的外部非真实记忆(external non-veridical memory),充当伪系统1(pseudo System 1)。这一视角旨在解释LLMs在规划和推理任务中的作用及其局限性。

在心理学中,系统1通常指的是快速、直觉和自动的认知过程,而系统2则涉及缓慢、逻辑和努力的认知过程。这里,作者使用Kahneman(2011)的理论《Thinking fast and slow》,将LLMs比作一个巨大的伪系统1,意味着它们能够快速生成文本和响应,但并不涉及深层次的推理或规划。

为什么LLM不能规划?

自主模式下的限制尽管最初有关LLMs规划能力的说法颇为乐观,但近期的多项研究一致表明,在自主模式下,LLMs实际上无法生成可执行的计划。即使是表现最佳的LLM(GPT-4),平均也只有大约12%的生成计划是无误且能达到目标的。这说明LLM可能只是做近似的规划检索,而不是真正的规划。

无法自我验证:LLM无法验证自己生成的规划,因此无法通过自我批评改进规划。尽管LLM不能一次性生成正确的解决方案,但通过迭代提示,它们可能会通过自我批评提高准确性。但研究表明,LLM在验证解决方案方面并不比生成解决方案表现更佳。

知识获取与执行规划混淆:规划任务需要的不仅仅是规划领域知识,还需要能够将这些知识组装成一个可执行的规划,考虑到目标与资源的相互作用。LLM通常在提取规划知识方面做的很好,但这并不意味着它们能够生成可执行的规划。

对自我改进的误解:LLM可以通过生成规划、自我批评规划,然后使用这些规划来自我改进(例如通过合成数据微调)。但是,由于LLM无法验证自己的解决方案,这种自我改进的方法实际上是不可行的。

LLM-Modulo

有了动机,自然要提出解决方案,LLM-Modulo就是论文提出用于解决LLM无法规划的框架。如下图2就是LLM-Modulo的模型架构。

图2 LLM-Modulo

LLM-Modulo架构就是一个“生成-测试-批评”的循环。通过让LLM生成候选规划,并利用一系列外部验证器对这些规划进行评估和反馈,确保了规划的准确性和可靠性。

语言模型生成创意和潜在解决方案方面表现出色,而外部验证器则严格检查规划是否满足所有必要的约束条件。这种结合神经网络和符号逻辑的方法,不仅提高了规划任务的准确性,还增强了框架的灵活性、扩展性,使其能够适应各种不同规划场景。

该框架另一个优势是支持人机协作。领域专家在整个过程发挥至关重要的作用,它们的知识用于指导和细化LLM生成的规划,确保规划符合实际需求和约束。

模型架构流程

  • Refined Specification:用户有大量问题规范(Promblem Specification)需要去改进提升,问题规范可能是完整/部分/抽象的。LLM接收一个问题规范或描述,这个问题规范是对所需要解决的任务的描述,可能包含目标、约束、初始状态和可能的动作等信息。

  • LLM Response:LLM根据接收到的问题规范生成一个/多个候选计划,这些计划是解决问题的潜在方案,它们可能不完全正确或可行。

  • 外部验证环节

    • Critics(外部验证器):通过Hard/Soft Critics评估LLM生成的规划、推理候选。

      • Hard Critics:基于模型的验证器。评估计划是否满足所有硬性约束。如因果正确性等。

      • Soft Critics:可能基于LLM,评估计划的其他方面,如风格,可解释性或偏好符合性等。

      • 如果所有的Critics都认可当前候选方案,那么将被认为是返回给用户的有效解决方案。如果不认可,则提供不同程度的反馈

        • No, try again

        • No, try again, here is one things wrong with the current plan

        • No, try again, here are all the things wrong with the current plan

    • Reformatter(重组器)

      • 该组件将LLM生成的候选计划转为外部验证器所需的特定语言形式。由于不同的验证器可能需要特定格式的输入,Reformatter负责将LLM的输出调整为这些特定格式,以便critics能够有效评估计划的有效性和正确性。

  • Fine-tuning & Synthetic Data

    • 一但LLM-Modulo框架解决了一个规划实例,该解决方案就可以添加到合成数据语料库中。该数据语料间歇性地用于微调LLM,以此提升模型生成规划的能力

    • 虽然微调不能保证生成的解决方案正确性,但它可能会提高LLM猜测更接近Critics审查候选时被接受的机会。

为什么不用LLM作为外部验证器?

要解释这个问题,可以引用该篇论文作者在23年发表的论文《Can Large Language Models Really Improve by Self-critiquing Their Own Plans?》进行解释。感兴趣的具体看看文章:https://arxiv.org/pdf/2310.08118。

自我批评会降低规划生成的性能,特别是与具有外部验证器和LLM验证器的系统相比。LLM会产生大量错误信息,从而损害系统的可靠性。

表1 Comparison between various plan generation methods on the Blocksworld domain

总之,这篇论文主张大型语言模型(LLMs)自身无法执行复杂的规划任务,但可以在LLM-Modulo框架内,与外部基于模型的验证器相结合,发挥辅助规划的作用,通过这种神经符号集成方法,提高规划和推理任务的灵活性和表达力。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/20913.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

ios 新安装app收不到fcm推送

🏆本文收录于「Bug调优」专栏,主要记录项目实战过程中的Bug之前因后果及提供真实有效的解决方案,希望能够助你一臂之力,帮你早日登顶实现财富自由🚀;同时,欢迎大家关注&&收藏&&…

拼图游戏完整思路(全代码演示)

主界面 小练习1: 一、三个界面的设置1:创建窗体 1、将三个主界面分开为三个类,每个类都去继承JFrame这个类,使得每个类都可以使用创建页面功能 2、对每个类进行空参构造,在空参构造里面进行窗体属性的赋值 3、创建一个…

苍穹外卖--sky-take-out(二)3-5

sky-take-out(一)1-2https://blog.csdn.net/kussm_/article/details/138614737?spm1001.2014.3001.5501 第三天 公共字段填充--利用AOP 问题提出 这些字段属于公共字段 :在新增员工或者新增菜品分类时需要设置创建时间、创建人、修改时间…

蓝桥杯软件测试-十五届模拟赛2期题目解析

十五届蓝桥杯《软件测试》模拟赛2期题目解析 PS 需要第十五界蓝桥杯模拟赛2期功能测试模板、单元测试被测代码、自动化测试被测代码请加🐧:1940787338 备注:15界蓝桥杯省赛软件测试模拟赛2期 题目1:功能测试题目 1(测试用例&…

[极速版]写个linux探测自己机器ip地址的tool(基于shell + sshpass)

适用情况:上级路由ssh or teamviewer访问下级路由的机器,但下级路由不支持查看IP 自行完成端口映射or DMZ整机映射 apt-get install sshpass#!/bin/bash mkdir log for i in $(seq 2 255) dosshpass -p tmp ssh -E err.log -o StrictHostKeyCheckingno …

【解决】Tree prefab at index 8 is missing.

开发平台:Unity 2020 版本以上   问题描述 翻译:树预制体集合中第8位预制体丢失。   解决方法:修复丢失树资产 关联 Unity Terrier 组件使用,前往 树绘制工作区,检查 “树资产” 引用是否丢失?删除或重…

双指针练习:盛水最多的容器

题目链接:11.盛水最多的容器 题目描述: 给定一个长度为 n 的整数数组 height 。有 n 条垂线,第 i 条线的两个端点是 (i, 0) 和 (i, height[i]) 。 找出其中的两条线,使得它们与 x 轴共同构成的容器可以容纳最多的水。 返回容器可…

【多模态】34、LLaVA-v1.5 | 微软开源,用极简框架来实现高效的多模态 LMM 模型

文章目录 一、背景二、方法2.1 提升点2.2 训练样本 三、效果3.1 整体效果对比3.2 模型对于 zero-shot 形式的指令的结果生成能力3.3 模型对于 zero-shot 多语言的能力3.4 限制 四、训练4.1 数据4.2 超参 五、代码 论文:Improved Baselines with Visual Instruction …

python编程:SQLite 管理图片数据库

在本博客中,我们将介绍如何使用 wxPython 和 sqlite3 模块构建一个 GUI 应用程序,该程序可以遍历指定文件夹中的所有图片,并将其信息存储到 SQLite 数据库中。 C:\pythoncode\new\InputImageOFFolderTOSqlite.py 项目简介 我们的目标是创建…

微信里的东西怎么打印出来呢

随着微信的普及,我们的日常生活和工作都离不开这个强大的社交工具。无论是重要的工作文件、孩子的作业、还是精彩的旅行照片,我们都习惯在微信里保存和分享。但是,当需要将这些微信里的内容打印出来时,很多人可能会感到困惑和麻烦…

电力能源指挥中心调度台解决方案主要关注的问题

调度台是指挥中心不可或缺的设备,随着信息化建设的不断深入,电力能源指挥中心已成为重要平台。因此,构建一套高效、智能的电力能源指挥中心调度台解决方案,需要关注以下关键问题: 一、实时监控与数据采集 电力能源指挥…

【AI 大揭秘】ChatGPT 写作绝技与必备提示词大全

利用ChatGPT撰写文章是一种极具创意的方法,它能显著提升您的写作效率,并帮助您创作出高质量的内容。通过人工智能的辅助,您可以迅速、便捷地生成精美文章,或至少为您的下一个写作项目提供灵感。 不管您是在撰写文章、剧本还是电子…

react路由参数path不再支持正则?比较v5和v6写法的差异性

文章目录 前言v5方式:直接在path参数中,写入对应正则(1)代码详细注释如下(2)页面输出如下,会出现undefined的情况 v6方式: 在路由对象中配置,但只可配动态路由,不可用正则…

TH方程学习(4)

一、背景介绍 在本节将会对TH方程打包成一个函数,通过输入目标星的轨道要素,追踪星在目标星VVLH坐标系下的相对位置和速度,以及预报的时间,得到预报时刻追踪星在VVLH坐标系下的位置和速度,以及整个状态转移矩阵。 合并…

替换所有的问号 ---- 模拟

题目链接 题目: 分析: 我们只需要遍历字符串, 将所有?进行修改即可但是需要判断, 修改的字符不能和前面后面重复同时, 有一个细节需要处理, 就是当?在最前面时, 没有前面的符号需要判断 在最后面的时候, 没有后面的字符需要判断 代码: class Solution {public String mod…

Django ORM深度游:探索多对一、一对一与多对多数据关系的奥秘与实践

系列文章目录 Django入门全攻略:从零搭建你的第一个Web项目Django ORM入门指南:从概念到实践,掌握模型创建、迁移与视图操作Django ORM实战:模型字段与元选项配置,以及链式过滤与QF查询详解Django ORM深度游&#xff…

打造智能化未来:智能运维系统架构解析与应用实践

在数字化转型的大背景下,智能运维系统成为了企业提升效率、降低成本、增强安全性的关键利器。本文将深入探讨智能运维系统的技术架构,介绍其核心要素和应用实践,帮助读者全面了解智能运维系统的概念、优势和应用价值。 ### 1. 智能运维系统的…

如何进入 -MGMTDB目录

想想这个问题,大家可能觉得很简单吧,先不看答案,你试一试如何进去 1.问题现象: 我直接进入: cd -MGMTDB 直接就报错了: [gridhost03 _mgmtdb]$ cd -MGMTDB -bash: cd: -M: invalid option cd: usage: c…

Mujoco仿真【xml文件的学习 4】

在学习Mujoco仿真的过程中,mujoco的版本要选择合适。先前我将mujoco的版本升级到了mujoco-3.1.4,在运行act的仿真代码时遇到了问题,撰写了博客: Aloha机械臂的mujoco仿真问题记录-CSDN博客 下面在进行mujoco仿真时,统…

十_信号3-可重入函数

如上图所示链表,在插入节点的时候捕获到了信号,并且该信号的自定义处理方式中也调用了插入节点的函数。 在main函数中,使用insert向链表中插入一个节点node1,在执行insert的时,刚让头节点指向node1以后(如上图序号1)&…