2024年1月18日Arxiv最热NLP大模型论文:Large Language Models Are Neurosymbolic Reasoners
大语言模型化身符号逻辑大师,AAAI 2024见证文本游戏新纪元
引言:文本游戏中的符号推理挑战
在人工智能的众多应用场景中,符号推理能力的重要性不言而喻。符号推理涉及对符号和逻辑规则的理解与应用,这对于处理现实世界中的符号性质问题至关重要。本文探讨了大型语言模型(LLMs)在符号推理中的潜在应用,特别是在文本游戏这一具有挑战性的领域。文本游戏是测试自然语言能力的重要基准,尤其是在数学、地图阅读、排序以及应用常识等符号任务中。我们提出了一种设计用于应对符号挑战并实现游戏目标的LLM代理。通过初始化LLM代理并告知其角色,代理接收来自文本游戏的观察结果和一组有效动作,以及特定的符号模块。有了这些输入,LLM代理选择一个动作并与游戏环境互动。我们的实验结果表明,我们的方法显著提高了LLM作为自动化符号推理代理的能力,在涉及符号任务的文本游戏中,我们的LLM代理的平均表现达到了88%。
声明:本期论文解读非人类撰写,全文由赛博马良「AI论文解读达人」智能体自主完成,经人工审核后发布。
智能体传送门:赛博马良-AI论文解读达人
神奇口令: 小瑶读者 (前100位有效)
论文标题、机构、论文链接
论文标题:
Large Language Models Are Neurosymbolic Reasoners
机构:
University of Liverpool, United Kingdom; Eindhoven University of Technology, Netherlands; University of Technology Sydney, Australia; University College London, United Kingdom
论文链接:
https://arxiv.org/pdf/2401.09334.pdf
大语言模型(LLMs)作为符号推理器的潜力探索
1. 文本游戏作为自然语言能力的重要基准
文本游戏已成为评估自然语言处理能力的重要基准,尤其是在需要数学、地图阅读、排序和应用常识等符号任务的文本世界中。这些游戏要求代理(agent)使用语言来解释各种情境并做出决策。文本游戏的复杂性源于对语言理解、常识、管理具有组合复杂性的动作空间以及长期记忆和规划的重要性。例如,代理可能需要解决数学问题的同时收集特定数量的水果,所需数量即为数学问题的答案。
2. 符号模块在文本游戏中的关键作用
在复杂的文本游戏中,使用符号模块或外部工具进行算术、导航、排序和知识库查找对于语言代理尤为关键。这些符号模块在游戏中的作用不可或缺,例如,当代理面对数学问题时,可以利用计算器这样的外部工具来解决问题。符号模块在其功能上非常熟练,使用这些工具本身就被视为一个动作。
LLM智能体的设计与初始化
1. 角色初始化与任务描述
我们提出了一个LLM代理,它被设计为在零样本(zero-shot)方式下,通过外部符号模块来执行文本游戏中的符号任务。在游戏开始时,我们通过初始化提示来告知LLM代理其角色,并提供任务描述和一系列有效动作。这些动作对于与文本游戏环境互动或调用符号模块是必要的。代理被指示从有效动作集中选择动作,例如阅读地图、获取特定位置的路径和回忆任务。此外,代理被建议利用外部符号模块,并在任务执行过程中避免不必要的动作。
2. 有效动作集的构建与提示机制
在每个时间步骤,我们通过当前观察、库存状态、有效动作集和问题提示LLM代理。库存状态描述了代理在环境中获得的物品,例如在数学任务中可能包括一个数学问题,在MapReader任务中可能包括一张地图。LLM代理的任务是从有效动作集中选择一个动作以继续任务。值得注意的是,LLM代理不允许拒绝或提供任何超出规定响应的文本。我们还限制了符号模块提供的有效动作数量。
此外,开发适当的提示以根据表3中提供的信息有效限制代理的动作至关重要。代理无法仅通过与环境的互动来获取知识并推断出规则。在所有任务中,通常有一个特定的事件顺序,即首先获取对象,然后将其放置在指定位置。这种策略是为了防止在获取对象之前就将其放置的情况发生,这在给定的上下文中将被视为不可接受。
符号模块的应用与作用
1. 计算模块、排序模块、知识库模块和导航模块
在文本游戏中,符号模块是提升大型语言模型(LLMs)推理能力的关键工具。这些模块包括计算模块、排序模块、知识库模块和导航模块,它们各自针对特定的符号任务而设计。例如,计算模块能够执行基本的数学运算,排序模块能够根据数量对物品进行排序,知识库模块能够查询与常识相关的信息,而导航模块则能够提供地理位置信息和路径规划。
在一个具体的游戏场景中,LLM智能体可能需要解决一个数学问题,并根据答案收集特定数量的水果。在这种情况下,智能体可以利用计算模块来解决数学问题,并据此决定接下来的动作。这些符号模块不仅提供了游戏状态的当前观察结果,还允许智能体通过选择适当的动作与游戏环境或符号模块进行交互。
2. 符号模块与LLM智能体的交互流程
LLM智能体与符号模块的交互流程涉及多个阶段。首先,智能体通过角色初始化提示得知其角色和任务描述,并了解可采取的动作及其限制。在接收到来自文本游戏环境的观察结果后,智能体需要利用其符号推理能力从有效动作列表中选择一个动作。如果所选动作涉及符号模块,则该模块将提供下一个观察结果;否则,文本游戏环境将提供后续的观察结果。
智能体在每个时间步骤都会收到当前的游戏状态信息,包括玩家的观察结果、库存状态、有效动作集合以及奖励。智能体必须从有效动作集合中选择一个动作来继续任务,并且不允许拒绝或提供超出预定响应的文本。此外,通过限制智能体的动作,可以有效地引导其根据提供的信息进行合理的动作选择。
实验设置与评估框架
1. 文本游戏环境与任务描述
实验中使用的文本游戏环境可以被形式化为部分可观察的马尔可夫决策过程(POMDPs)。游戏包括四种不同的符号任务:算术、地图阅读、排序和文本世界常识(TWC)。每个任务都配备了相应的符号模块,以帮助智能体成功完成任务。
2. 使用GPT-3.5-turbo的LLM智能体
在实验中,我们使用了GPT-3.5-turbo作为LLM智能体,它可以与游戏环境和符号模块进行交互。智能体的任务描述和符号模块的调用示例在文中提供。评估包括四种涉及符号任务的文本游戏,每个任务都分为“训练”、“开发”和“测试”集合。所有评估都在“测试”集上进行。
评估指标基于两个因素:游戏结束时获得的平均分数,以及单个游戏中所采取的平均步骤数。实验结果表明,LLM智能体在执行符号推理任务方面表现出色,平均性能达到88%。此外,与其他基线模型相比,LLM智能体在使用符号模块时表现出更好的平均准确率。
实验结果与分析
1. LLM智能体与基线模型的性能比较
在我们的实验中,LLM智能体与两个基线模型——深度强化相关网络(DRRN)和基于T5的行为克隆变换器(Behavior Cloned Transformer)进行了比较。DRRN模型基于Q学习的概念,选择预期Q值最高的候选动作作为下一步动作,而行为克隆变换器采用模仿学习方法,将强化学习视为序列到序列的问题,预测基于一系列先前观察到的动作序列的后续动作。
实验结果显示,当LLM智能体结合符号模块使用时,其平均性能优于其他基线方法。尽管与具有符号模块的行为克隆变换器相比,LLM智能体的性能略低,但它在与游戏环境交互方面表现出了相似的能力。此外,与行为克隆变换器模型不同,LLM智能体不需要大量专家数据的广泛训练,因此节省了大量的训练资源。
2. 约束提示对性能的影响
我们进一步探讨了约束提示对LLM智能体性能的影响。通过对比使用和不使用约束提示的模型性能,我们发现当LLM智能体使用表3中概述的约束提示时,其在所有任务中的性能都有所提高。此外,与游戏环境交互所需的平均步数也有所减少。这表明我们的约束提示在这些任务中是有效的。实验结果还显示,使用GPT-4的LLM智能体在“测试”集上的表现也得到了验证。
讨论:LLM智能体的推理能力与外部模块的整合
我们的研究结果表明,通过整合外部符号模块,LLM智能体能够提高平均准确率,并超越其他基线。这种能力是通过利用训练数据中存在的底层模式来实现的。与依赖符号思维或显式规则不同,这种方法通过识别模式和关联来获取知识,这些模式和关联来自于它在训练阶段接触的大量文本语料库,如GPT-3.5和GPT-4所示。尽管LLM智能体能够连接到特定任务的符号模块,但它仍然存在不确定性,并且容易犯错。
我们的研究证明了LLM在复杂的基于文本的游戏中涉及符号任务的有效应用。通过使用提示方法,我们指导LLM智能体在这些游戏中有效地与符号模块交互。我们的方法利用LLM显示出比其他基准更优越的性能,突出了LLM在提高基于文本游戏训练程序方面的潜力。因此,可以认为大型语言模型可以被视为具有执行符号推理的重要潜力的神经符号推理器。
未来的工作需要将模型的应用扩展到更复杂的领域,超越简单的基于文本的游戏。为了应对多样化场景的复杂性,整合更复杂的符号模块将是必要的,从而促进更有效的问题解决方法。
结论与未来展望
1. LLM在文本游戏中的应用与挑战
在本文中,我们探讨了大型语言模型(LLM)在文本游戏中作为符号推理者的潜力。通过实验,我们的LLM代理在执行包含符号任务的文本游戏中表现出色,平均性能达到了88%。这些游戏被形式化定义为部分可观察的马尔可夫决策过程(POMDPs),其中代理必须处理符号模块生成的有效动作集,以及游戏环境本身的动作集。LLM代理通过提示机制,结合外部符号模块,有效地选择并执行动作,展现了其作为神经符号推理者的潜力。
尽管LLM在文本游戏中的应用取得了一定的成功,但仍存在挑战。例如,LLM代理在与符号模块的交互中仍然表现出不确定性,并可能犯错。此外,代理在理解游戏环境的底层规则方面也存在困难,需要通过精心设计的提示来引导其行动。这些挑战表明,尽管LLM在符号推理任务中具有潜力,但要实现更高的准确性和可靠性,仍需进一步的研究和开发。
2. 提高LLM智能体性能的可能途径
为了提高LLM智能体在文本游戏中的性能,我们可以探索以下几个可能的途径:
- 增强提示策略:通过进一步优化提示策略,可以更有效地引导LLM代理进行符号推理。例如,在排序任务中,提前提供关键信息可以帮助代理更准确地执行任务。
- 改进符号模块:集成更复杂的符号模块可以帮助LLM代理处理更多样化的场景,从而提高其解决问题的能力。
- 扩展应用领域:将LLM代理的应用扩展到更复杂的领域,如超越简单的文本游戏,可以推动模型在更广泛的任务中的应用。
- 自我反馈与迭代改进:允许LLM代理通过自我反馈和迭代改进来细化其生成的文本,可能会提高其决策质量。
- 利用更先进的LLM版本:随着LLM技术的不断进步,使用更新版本的LLM(如GPT-4)可能会带来性能上的提升。
未来的研究应当考虑这些途径,以克服当前的限制,并进一步提高LLM在文本游戏中的性能。通过这些努力,我们可以期待LLM在符号推理任务中发挥更大的作用,为人工智能领域带来更多的可能性。
声明:本期论文解读非人类撰写,全文由赛博马良「AI论文解读达人」智能体自主完成,经人工审核后发布。
智能体传送门:赛博马良-AI论文解读达人
神奇口令: 小瑶读者 (前100位有效)
相关文章:
2024年1月18日Arxiv最热NLP大模型论文:Large Language Models Are Neurosymbolic Reasoners
大语言模型化身符号逻辑大师,AAAI 2024见证文本游戏新纪元 引言:文本游戏中的符号推理挑战 在人工智能的众多应用场景中,符号推理能力的重要性不言而喻。符号推理涉及对符号和逻辑规则的理解与应用,这对于处理现实世界中的符号性…...
服务限流实现方案
服务限流怎么做 限流算法 计数器 每个单位时间能通过的请求数固定,超过阈值直接拒绝。 通过维护一个单位时间内的计数器,每次请求计数器加1,当单位时间内计数器累加到大于设定的阈值,则之后的请求都被绝,直到单位时…...
【RTOS】快速体验FreeRTOS所有常用API(1)工程创建
目录 一、工程创建1.1 新建工程1.2 配置RCC1.3 配置SYS1.4 配置外设1)配置 LED PC132)配置 串口 UART13)配置 OLED I2C1 1.5 配置FreeRTOS1.6 工程设置1.7 生成代码1.8 keil设置下载&复位1.9 添加用户代码 快速体验FreeRTOS所有常用API&a…...
Red Hat Enterprise Linux 8.9 安装图解
风险告知 本人及本篇博文不为任何人及任何行为的任何风险承担责任,图解仅供参考,请悉知!本次安装图解是在一个全新的演示环境下进行的,演示环境中没有任何有价值的数据,但这并不代表摆在你面前的环境也是如此。生产环境…...
vcruntime140.dll文件修复的几种常见解决办法,vcruntime140.dll丢失的原因
vcruntime140.dll文件是Windows操作系统中的一个重要动态链接库(DLL)文件,它是Microsoft Visual C Redistributable的一部分。当出现vcruntime140.dll文件丢失的情况时,可能会导致一些程序无法正常运行或出现错误提示。为了电脑能…...
SpringCloud Alibaba 深入源码 - Nacos 分级存储模型、支撑百万服务注册压力、解决并发读写问题(CopyOnWrite)
目录 一、SpringCloudAlibaba 源码分析 1.1、SpringCloud & SpringCloudAlibaba 常用组件 1.2、Nacos的服务注册表结构是怎样的? 1.2.1、Nacos的分级存储模型(理论层) 1.2.2、Nacos 源码启动(准备工作) 1.2.…...
算法训练营Day45
#Java #动态规划 Feeling and experiences: 最长公共子序列:力扣题目链接 给定两个字符串 text1 和 text2,返回这两个字符串的最长 公共子序列 的长度。如果不存在 公共子序列 ,返回 0 。 一个字符串的 子序列 是指这样一个新…...
【Redis漏洞利用总结】
前言 redis是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。Redis默认使用 6379 端口。 一、redis未授权访问漏洞 0x01 漏洞描述 描述: Redis是一套开源的使用ANSI C编写、支持网络、可基于内存…...
SPI 动态服务发现机制
SPI(Service Provier Interface)是一种服务发现机制,通过ClassPath下的META—INF/services文件查找文件,自动加载文件中定义的类,再调用forName加载; spi可以很灵活的让接口和实现分离, 让API提…...
【C++进阶07】哈希表and哈希桶
一、哈希概念 顺序结构以及平衡树中 元素关键码与存储位置没有对应关系 因此查找一个元素 必须经过关键码的多次比较 顺序查找时间复杂度为O(N) 平衡树中为树的高度,即O( l o g 2 N log_2 N log2N) 搜索效率 搜索过程中元素的比较次数 理想的搜索方法:…...
Go 语言实现冒泡排序算法的简单示例
以下是使用 Go 语言实现冒泡排序算法的简单示例: package mainimport "fmt"func bubbleSort(arr []int) {n : len(arr)for i : 0; i < n-1; i {for j : 0; j < n-i-1; j {if arr[j] > arr[j1] {// 交换元素arr[j], arr[j1] arr[j1], arr[j]}}}…...
JAVA 学习 面试(五)IO篇
BIO是阻塞I/O,NIO是非阻塞I/O,AIO是异步I/O。BIO每个连接对应一个线程,NIO多个连接共享少量线程,AIO允许应用程序异步地处理多个操作。NIO,通过Selector,只需要一个线程便可以管理多个客户端连接࿰…...
vue3相比vue2的效率提升
1、静态提升 2、预字符串化 3、缓存事件处理函数 4、Block Tree 5、PatchFlag 一、静态提升 在vue3中的app.vue文件如下: 在服务器中,template中的内容会变异成render渲染函数。 最终编译后的文件: 1.静态节点优化 那么这里为什么是两部分…...
web terminal - 如何在mac os上运行gotty
gotty可以让你使用web terminal的方式与环境进行交互,实现终端效果 假设你已经配置好了go环境,首先使用go get github.com/yudai/gotty命令获取可执行文件,默认会安装在$GOPATH/bin这个目录下,注意如果你的go版本比较高ÿ…...
机械设计-哈工大课程学习-螺纹连接
圆柱螺纹主要几何参数螺纹参数 ①外径(大径),与外螺纹牙顶或内螺纹牙底相重合的假想圆柱体直径。螺纹的公称直径即大径。 ②内径(小径),与外螺纹牙底或内螺纹牙顶相重合的假想圆柱体直径。 ③中径ÿ…...
ai绘画|stable diffusion的发展史!简短易懂!!!
手把手教你入门绘图超强的AI绘画,用户只需要输入一段图片的文字描述,即可生成精美的绘画。给大家带来了全新保姆级教程资料包 (文末可获取) 一、stable diffusion的发展史 本文目标:学习交流 对于熟悉SD的同学&#x…...
水塘抽样算法
水塘抽样算法 1、问题描述 最近经常能看到面经中出现在大数据流中的随机抽样问题 即:当内存无法加载全部数据时,如何从包含未知大小的数据流中随机选取k个数据,并且要保证每个数据被抽取到的概率相等。 假设数据流含有N个数,我…...
easyui渲染隐藏域<input type=“hidden“ />为textbox可作为分割条使用
最近在修改前端代码的时候,偶然发现使用javascript代码渲染的方式将<input type"hidden" />渲染为textbox时,会显示一个神奇的效果,这个textbox输入框并不会隐藏,而是显示未一个细条,博主发现非常适合…...
100天精通Python(实用脚本篇)——第113天:基于Tesseract-OCR实现OCR图片文字识别实战
文章目录 专栏导读1. OCR技术介绍2. 模块介绍3. 模块安装4. 代码实战4.1 英文图片测试4.2 数字图片测试4.3 中文图片识别 书籍分享 专栏导读 🔥🔥本文已收录于《100天精通Python从入门到就业》:本专栏专门针对零基础和需要进阶提升的同学所准…...
Go七天实现RPC
0.前言 本文是学习自7天用Go从零实现RPC框架GeeRPC | 极客兔兔 在此基础上,加入自己的学习过程与理解。 1.RPC 框架 RPC(Remote Procedure Call,远程过程调用)是一种计算机通信协议,允许调用不同进程空间的程序。RPC 的客户端和服务器可以…...
【Python】 -- 趣味代码 - 小恐龙游戏
文章目录 文章目录 00 小恐龙游戏程序设计框架代码结构和功能游戏流程总结01 小恐龙游戏程序设计02 百度网盘地址00 小恐龙游戏程序设计框架 这段代码是一个基于 Pygame 的简易跑酷游戏的完整实现,玩家控制一个角色(龙)躲避障碍物(仙人掌和乌鸦)。以下是代码的详细介绍:…...
云计算——弹性云计算器(ECS)
弹性云服务器:ECS 概述 云计算重构了ICT系统,云计算平台厂商推出使得厂家能够主要关注应用管理而非平台管理的云平台,包含如下主要概念。 ECS(Elastic Cloud Server):即弹性云服务器,是云计算…...
盘古信息PCB行业解决方案:以全域场景重构,激活智造新未来
一、破局:PCB行业的时代之问 在数字经济蓬勃发展的浪潮中,PCB(印制电路板)作为 “电子产品之母”,其重要性愈发凸显。随着 5G、人工智能等新兴技术的加速渗透,PCB行业面临着前所未有的挑战与机遇。产品迭代…...
阿里云ACP云计算备考笔记 (5)——弹性伸缩
目录 第一章 概述 第二章 弹性伸缩简介 1、弹性伸缩 2、垂直伸缩 3、优势 4、应用场景 ① 无规律的业务量波动 ② 有规律的业务量波动 ③ 无明显业务量波动 ④ 混合型业务 ⑤ 消息通知 ⑥ 生命周期挂钩 ⑦ 自定义方式 ⑧ 滚的升级 5、使用限制 第三章 主要定义 …...
【解密LSTM、GRU如何解决传统RNN梯度消失问题】
解密LSTM与GRU:如何让RNN变得更聪明? 在深度学习的世界里,循环神经网络(RNN)以其卓越的序列数据处理能力广泛应用于自然语言处理、时间序列预测等领域。然而,传统RNN存在的一个严重问题——梯度消失&#…...
反射获取方法和属性
Java反射获取方法 在Java中,反射(Reflection)是一种强大的机制,允许程序在运行时访问和操作类的内部属性和方法。通过反射,可以动态地创建对象、调用方法、改变属性值,这在很多Java框架中如Spring和Hiberna…...
Go 语言并发编程基础:无缓冲与有缓冲通道
在上一章节中,我们了解了 Channel 的基本用法。本章将重点分析 Go 中通道的两种类型 —— 无缓冲通道与有缓冲通道,它们在并发编程中各具特点和应用场景。 一、通道的基本分类 类型定义形式特点无缓冲通道make(chan T)发送和接收都必须准备好࿰…...
处理vxe-table 表尾数据是单独一个接口,表格tableData数据更新后,需要点击两下,表尾才是正确的
修改bug思路: 分别把 tabledata 和 表尾相关数据 console.log() 发现 更新数据先后顺序不对 settimeout延迟查询表格接口 ——测试可行 升级↑:async await 等接口返回后再开始下一个接口查询 ________________________________________________________…...
【笔记】WSL 中 Rust 安装与测试完整记录
#工作记录 WSL 中 Rust 安装与测试完整记录 1. 运行环境 系统:Ubuntu 24.04 LTS (WSL2)架构:x86_64 (GNU/Linux)Rust 版本:rustc 1.87.0 (2025-05-09)Cargo 版本:cargo 1.87.0 (2025-05-06) 2. 安装 Rust 2.1 使用 Rust 官方安…...
计算机基础知识解析:从应用到架构的全面拆解
目录 前言 1、 计算机的应用领域:无处不在的数字助手 2、 计算机的进化史:从算盘到量子计算 3、计算机的分类:不止 “台式机和笔记本” 4、计算机的组件:硬件与软件的协同 4.1 硬件:五大核心部件 4.2 软件&#…...
