当前位置: 首页 > article >正文

【Preference Learning】Reasoning with Language Model is Planning with World Model

arxiv: https://arxiv.org/abs/2305.14992

问题背景:当前LLM推理受到几个关键因素的限制:

(1)LLM缺乏世界模型(一种人类就有的对环境的心理表征,可以模拟行动以及活动对外部世界状态的影响)去预测世界状态和模拟执行动作产生的长期结果影响,从而导致规划能力和执行动作能力不足。

(2)缺乏奖励机制来评估和引导推理走向理想状态。

(3)无法平衡探索(未访问过的节点)与利用(访问过的节点),从而无法有效地探索广阔的推理空间。

本文方法概述:提出RAP(Resoning via Planning)框架,让LLM能够以接近人类意识规划的方式进行推理。RAP通过世界模型增强LLM,并通过有指导准则的规划进行推理,让后续产生有高奖励值的推理路径。

本文方法框架:

语言模型作为世界模型

  • 用自然语言在prompt中定义状态和动作。
  • 根据定义的状态和动作,将推理过程描述为马尔可夫过程(MDP)。

奖励设计

  • 动作的log概率作为奖励。
  • 采样多次世界模型的答案,使用生成最多的答案比例作为置信度。根据当前状态下得到的置信度会作为奖励。
  • 让LLM自己去评估结果。(LLM识别推理错误,要比避免在生成中产生错误更容易)
  • 根据特定任务可以启发式的插入就爱你老公i函数。

采用蒙特卡洛树搜索进行规划

  • MCTS迭代式的构建了一颗搜索树,节点代表状态,边代表活动和在当前状态下应用动作生成下一个状态的过渡。
  • 选择
    使用上限置信界限(UCT)去选择节点,来平衡探索(未访问的节点)和利用(访问过的高价值的节点)
    在这里插入图片描述

其中N(s)是节点s在之前的迭代中被访问的次数,c(s,a)是状态s下进行动作a的子节点。之前访问的子节点越少(即该子节点的不确定性越高),方程中第二项就越高。权重w控制着探索和里用的平衡。当w为0时,退化为贪心搜索方式。当w不为0时,若某一条路径经常被选择, 会逐渐减小未来会产生的收益增益,让LLM对探索较少的路径进行探索。

  • 扩展
    当节点不为终端节点的时候,将根据叶结点的状态,使用LLM对d个可能的动作进行采样,然后使用LLM预测各自的下一个状态,从而产生新的子节点,直至达到叶子结点为止。
  • 反向传播
    当达到叶结点时候进行反向传播。
  • 构架完成进行推理
    达到预订MCTS的迭代次数,则终止算法并从构建的树中选择最终的推理轨迹进行评估。选择方式有两种;1)从根节点开始,每次选择Q值最高的动作,直到达到终端叶子结点。2)从生成高奖励的迭代中选择路径,或者选择访问次数最多的叶结点。本文在实践中发现方法二效果更好。
  • 路径融合
    RAP可以从不同的MCTS迭代中产生多个轨迹和答案,这些轨迹和答案将聚合形成最终的答案。但是,像规划生成、逻辑推理的问题需要完整的推理轨迹作为输出,这一类不会被使用路径融合。

实验情况

  • 实验场景:规划生成、数学推理问题、逻辑推理
  • 实验设置:基座模型Llama-33B、temperature=0.8
  • 基线方法:COT、Least-to-Most、Self-Consistency(SC)
  • 实验效果:
    • 规划生成

      • 采用Blocksworld数据集,该数据集主要用于让Agent移动不同颜色的方块,达到目标要求。
        在这里插入图片描述
        在这里插入图片描述
    • 数学推理

      • 采用GSM8K数据集
        在这里插入图片描述
    • 逻辑推理

      • 采用PrOntoQA数据集,提供一组事实和逻辑规则,模型需要基于事实应用逻辑规则,来验证事实的真假。

在这里插入图片描述


http://www.kler.cn/news/327942.html

相关文章:

  • mysql学习教程,从入门到精通,SQL 表、列别名(Aliases)(30)
  • Spring Boot框架在甘肃非遗文化网站设计中的运用
  • ubuntu配置python环境
  • 深度学习基础及技巧
  • Linux性能调优技巧
  • 汽车零部件开发流程关键阶段
  • PowerShell无法执行yarn命令
  • Qt_线程介绍与使用
  • Wpf Image 展示方式 图片处理 显示
  • 828华为云征文|华为云 Flexus X 实例初体验
  • 选择更轻松:山海鲸可视化与PowerBI的深度对比
  • MATLAB在无线通信标准与协议支持中的作用
  • 打造未来社交:区块链社交DAO的颠覆性开发之路
  • 2.1 HuggingFists系统架构(一)
  • Go 项目开发常用设计模式
  • OpenCV图像文件读写(1)检查 OpenCV 是否支持某种图像格式的读取功能函数haveImageReader()的使用
  • Python FFmpeg 安装使用教程
  • SQL第10课挑战题
  • C# 泛型使用案例_C# 泛型使用整理
  • vue 项目打包更新后,界面未刷新时js与css资源加载404,监听资源文件404后自动重新加载页面。
  • 解决 Macos下 Orbstack docker网络问题
  • 【工具-VMware Workstation-ubuntu】
  • UDP通信
  • Linux 如何检测一个程序的最大内存使用值?
  • 普通人未来还有哪些赚钱机会?
  • JAVA JVM常见面试题
  • OJ在线评测系统 后端 判题机模块预开发 架构分析 使用工厂模式搭建
  • CSS点击事件穿透
  • 中心节点服务,远程集中管理,降低边缘设备管理成本的智慧园区开源了。
  • 【10000字pandas数据可视化超全笔记整理】Numpy Pandas | 常用API介绍 | 缺失值处理 matplotlib数据可视化介绍