论文阅读_CogTree_推理的认知树

英文名称: From Complex to Simple: Unraveling the Cognitive Tree for Reasoning with Small Language Models
中文名称: 从复杂到简单:揭示小型语言模型推理的认知树
链接: http://arxiv.org/abs/2311.06754v1
代码: https://github.com/alibaba/EasyNLP
作者: Junbing Yan, Chengyu Wang, Taolin Zhang, Xiaofeng He, Jun Huang, Wei Zhang
机构: 华东师范大学计算机科学与技术学院, 阿里巴巴集团, 上海人工智能教育研究院期刊: EMNLP 2023日期: 2023-11-12

1 读后感

大语言模型的功能主要包括知识能力和思维能力;现在我们越来越多发现模型训练再好也不可能容纳世界知识,幻觉问题再所难免。研究也更多转向模型的思维和解决问题的能力。小模型因其可以本地部署速度快,便于精调,方便验证,成本低而更受关注。这篇论文主要研究如何提升小模型的推理能力。

文中提出了反思树 CogTree,希望通过对小模型的微调和一些附加技巧,替代大模型的推理能力。推理树的根节点表示初始查询,而叶节点则由可以直接回答的简单问题组成。通过两个系统迭代实现:直觉系统负责产生原始问题的多个分解假设,反思系统对直觉系统产生的假设进行验证,并选择更有可能的假设进行后续生成。通过上述双系统的迭代式生成,提升模型准确度。正文 9 页左右。

文中最喜欢的一句话,来自 1957 年,利昂•费斯廷格的《认知失调理论》

In cognitive theory, human decision-making behavior arises from the comparative analysis of various options (Festinger, 1957) 在认知理论中,人类的决策行为源于对各种选项的比较分析。

2 摘要

目标:提升轻量化大语言模型的认知推理能力。

方法:使用迭代方法构建认知树(CogTree),包括直觉系统回答问题和反思系统验证评价;分别利用轻量级大模型精调了两个系统。

结论:实验结果表明,使用比 GPT-3.5 小得多的 7B 语言模型,可以达到与 GPT-3.5 175B 相当的性能水平。

2.1 引言

在认知科学中,埃文斯提出双过程理论:大脑最初采用一种隐含的、无意识的、直观的过程,称为直觉系统,它检索相关信息;接下来用一个明确的、有意识的和可控的推理过程,称为反思系统进行判断;两者迭代进行思考过程。

论文面向轻量化大模型的复杂任务推理,使用较小规模的模型(7B),构建双系统生成推理树。基于人类的认知理论,通过两个系统来模仿人类产生认知的过程。直觉系统(Generation)利用上下文将复杂的问题分解为子问题,并生成对查询的响应。反思系统(Scores)评估直觉系统产生的结果,并选择最有可能的解决方案,为下一轮提供指导。

图 1:CogTree 框架示意图论文的主要贡献包含:

  • 提出了问题分解范式,CogTree 框架
  • 提升了模型的推理能力
  • 证明了方法的有效性

图 2:直观系统和反思系统逐步产生数学推理问题的图示

3 认知树框架

数学和逻辑推理设置中,认知树 T 中的每个节点 n 代表逻辑集中的理论,或数学问题中子问题的解决方案。树的边 e 对应于对当前节点状态 s 的评估,可以是置信度分数或分类结果。

反思系统的辨别能力在提高模型的整体功效方面起着关键作用。文中利用交叉检查技术不仅验证中间结果的精确性,而且在完成推理过程后验证整个推理过程的准确性。为了增强模型评估能力,使用了比较强化方法。引入一个新的训练目标,最大化正确/错误/模棱两可的决策的表示之间的向量空间差异。

4 实现

4.1 直觉系统

直觉系统的生成能力是构建认知树的基础。选择仅包含 decoder-only 的模型(例如,GPT2-XL 或 LLaMA-7B)作为直觉系统。通过上下文方法来增强直觉系统的能力。

在逻辑推理问题的情况下,定义查询 Q,分解 D 将目标进一步分解为较小问题,分解集 Z 表示分解集合,最终采样 k 个可选项。

(下面两个图非常重要,一定要看一看)

图 -3 逻辑推理的查询和分解示例

图 -4 数学问题的查询和分解示例

4.2 反思系统

反思系统用于评估直觉系统的生成结果,确定其可接受性。反思系统采用两种方法来验证结果:中间过程的验证和整个推理链的验证。

当前状态分数:

总分数:

具体实现是:采用基于提示的方法并将其视为分类问题,模型输出三个类别之一:确定、不可能或可能,请参考图 2。

4.3 训练

4.3.1 直觉系统

直觉系统的目标是生成答案,使用监督微调 SFT 精调模型,直觉系统通过利用上下文示例将查询(即复杂问题)分解为子问题。在自回归期间,只对生成的文本计算损失。最大化似然函数:

4.3.2 反思系统

反思系统的目标是打分。由于人类的决策行为源于对各种选择的比较分析,因此采用对比学习方法来增强模型区分不同状态的能力,即最大化正样本和负样本在样本空间中的距离来学习正样本和负样本的表示。对比学习中负采样也非常重要,需要生成更具挑战的负样本。

对比学习的损失函数如下:

反思系统的全损耗函数:

5 算法精度评测

在 Entailment Bank 逻辑推理数据集以及 GSM8K 数学问题数据集上进行了测试。

将文中算法与其他基于大模型微调的方法进行对比:

表 3:测试集在准确性和相对改进方面的整体性能。

结果表明,利用上下文训练的 GPT2-XL(1.5B,仅 ChatGPT 1%)优于 GPT-3.5(175B)。通过结合 CoT 和 ToT 增强方法,GPT-3.5 的准确率大幅提升,达到 92-93%。文中方法与反射系统相结合进行结果验证时,可以实现更高的性能(LLaMA-7B 为 94%),超过了 GPT-3.5 精调效果。

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

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

相关文章

Unity学习-逐帧图集动画制作

首先在文件部分创建一个Sprite Library Asset 然后点击创建出来的文件 点下面的加号添加对应的图 添加完成之后点一下Apply 然后新建一个物体 添加这三个组件 其中SpriteLibrary里面 把你刚刚创建的图集文件拉过来 Sprite Resolver选择对应的动作和图片 然后开始制作动画 An…

Jupyter-Notebook无法创建ipynb文件

文章目录 概述排查问题恢复方法参考资料 概述 用户反馈在 Notebook 上无法创建 ipynb 文件,并且会返回以下的错误。 报错的信息是: Unexpected error while saving file: Untitled5.ipynb attempt to write a readonly database 排查问题 这个是一个比较新的问…

项目解决方案:某城区(区县)社会面视频监控资源接入汇聚解决方案

目 录 一、概述 二、建设目标及需求 1.建设目标 2.需求分析 2.1 总体需求 2.2 需求细化 三、方案设计 1.设计依据 2.设计原则 3.设计方案 3.1.方案描述 3.2.组网说明 四、产品介绍 1.视频监控综合资源管理平台介绍 2.视频录像服务器和存储 2.1…

Python语法进阶——类

Python中的数据类型都属于类。int、str、list都是Python定义好的数据类型类。 print(type(list))#<class type> print(type(list()))#<class list> 一、自定义数据类型 一、语法 class 类名():pass #类名 要求首字母大写 #()可写可省略。 #pass在这里只是用来保证…

代码随想录算法训练营第三天 | 链表理论基础 203.移除链表元素 707.设计链表 206.反转链表

链表理论基础 链表是一种通过指针串连在一起的线性结构&#xff0c;每一个节点由两部分组成&#xff0c;一个是数据域&#xff0c;一个是指针域&#xff08;存放指向下一个节点的指针&#xff09;。最后一个节点的指针指向 null。链表的存储方式&#xff1a;数组在内存中是连续…

【C++干货基地】namespace超越C语言的独特魅力(文末送书)

&#x1f3ac; 鸽芷咕&#xff1a;个人主页 &#x1f525; 个人专栏: 《C干货基地》《粉丝福利》 ⛺️生活的理想&#xff0c;就是为了理想的生活! 引入 哈喽各位铁汁们好啊&#xff0c;我是博主鸽芷咕《C干货基地》是由我的襄阳家乡零食基地有感而发&#xff0c;不知道各位的…

PDshell16逆向PostgreSQL 工程显示字段comment备注

现状&#xff1a;当刚逆向成功的表结构是没有原来表结构中的&#xff0c;comment备注如下 然后pd逆向工程的sql已经返回了这个备注的含义 解决方案&#xff1a; 1、设置显示注释列 tools——Display Preferences…如下 勾选-按照下面得方式勾选这三个 复制这里的VBS脚本&a…

Java 基础面试题 String(二)

Java 基础面试题 String&#xff08;二&#xff09; 文章目录 Java 基础面试题 String&#xff08;二&#xff09;String#equals() 和 Object#equals() 有何区别&#xff1f;字符串常量池的作用了解吗&#xff1f;String s1 new String("abc");这句话创建了几个字符…

医学图像的图像处理、分割、分类和定位-1

一、说明 本报告全面探讨了应用于医学图像的图像处理和分类技术。开展了四项不同的任务来展示这些方法的多功能性和有效性。任务 1 涉及读取、写入和显示 PNG、JPG 和 DICOM 图像。任务 2 涉及基于定向变化的多类图像分类。此外&#xff0c;我们在任务 3 中包括了胸部 X 光图像…

响应式Web开发项目教程(HTML5+CSS3+Bootstrap)第2版 例4-7 datalist

代码 <!doctype html> <html> <head> <meta charset"utf-8"> <title>datalist</title> </head><body> <input id"address" list"addressList"> <datalist id"addressList"…

Kafka-多线程消费及分区设置

目录 一、Kafka是什么&#xff1f;消息系统&#xff1a;Publish/subscribe&#xff08;发布/订阅者&#xff09;模式相关术语 二、初步使用1.yml文件配置2.生产者类3.消费者类4.发送消息 三、减少分区数量1.停止业务服务进程2.停止kafka服务进程3.重新启动kafka服务4.重新启动业…

第十七期长江沙龙:“大海遗子”——秦岭细鳞鲑

洄游是生命延续的本能&#xff0c;有这样一种鱼&#xff0c;本该是大海孕育的孩子&#xff0c;却从海洋中洄游到淡水中&#xff0c;它们充分利用其惊人的跳跃能力&#xff0c;逐渐演变成为了山溪中的“精灵”&#xff0c;向世界充分展示了它们奋勇向上的拼搏精神。 1月20日&am…

【数据结构与算法】归并排序详解:归并排序算法,归并排序非递归实现

一、归并排序 归并排序是一种经典的排序算法&#xff0c;它使用了分治法的思想。下面是归并排序的算法思想&#xff1a; 递归地将数组划分成较小的子数组&#xff0c;直到每个子数组的长度为1或者0。将相邻的子数组合并&#xff0c;形成更大的已排序的数组&#xff0c;直到最…

2024年回炉计划之排序算法(一)

算法是计算机科学和信息技术中的重要领域&#xff0c;涉及到问题求解和数据处理的方法。要学习算法&#xff0c;你可能需要掌握以下一些基本知识&#xff1a; 基本数据结构&#xff1a; 了解和熟练使用各种数据结构&#xff0c;如数组、链表、栈、队列、树和图等。数据结构是算…

ESP32-TCP服务端(Arduino)

将ESP32设置为TCP服务器 介绍 TCP&#xff08;Transmission Control Protocol&#xff09;传输控制协议&#xff0c;是一种面向连接的&#xff08;一个客户端对应一个服务端&#xff09;、可靠的传输层协议。在TCP的工作原理中&#xff0c;它会将消息或文件分解为更小的片段&a…

[小程序]页面事件

一、下拉刷新 1.开启和配置 小程序中开启下拉刷新的方式有两种&#xff1a; ①全局开启下来刷新 在app.json的window节点中&#xff0c;设置enablePullDownRefresh设为ture。 ②局部开启下来刷新 在页面对应的json文件的的window节点中&#xff0c;设置enablePullDownRefresh设…

[Unity] Tilemap瓦片左右翻转(上下翻转)

Tile&#xff08;瓦片&#xff09;左右翻转感觉是很常用的一个功能啊&#xff01;看了一些教程都没有提及&#xff0c;心想难道要把每张Sprite再做一张对称的、再做成瓦片吗&#xff1f; 图片量x2 、瓦片量x2、不现实&#xff01;一定有方法&#xff01; 搜索了了半天没找到方…

Windows WSL2 占用磁盘空间清理释放

目前工作中时常用到WSL2&#xff08;Ubuntu20.04&#xff09;&#xff0c;在使用一段时间后会发现WSL2所占用磁盘空间越来越多&#xff0c;体现在WSL2之上安装Linux分发对应的vhdx虚拟磁盘文件体积越来越大&#xff0c;会占用Windows自身空间&#xff0c;即使手动清理了Linux分…

【JavaEE】文件操作与IO

作者主页&#xff1a;paper jie_博客 本文作者&#xff1a;大家好&#xff0c;我是paper jie&#xff0c;感谢你阅读本文&#xff0c;欢迎一建三连哦。 本文于《JavaEE》专栏&#xff0c;本专栏是针对于大学生&#xff0c;编程小白精心打造的。笔者用重金(时间和精力)打造&…

【QT+QGIS跨平台编译】之三:【OpenSSL+Qt跨平台编译】(一套代码、一套框架,跨平台编译)

文章目录 一、OpenSSL介绍二、OpenSSL配置三、Window环境下配置四、Linux环境下配置五、Mac环境下配置 一、OpenSSL介绍 OpenSSL是一个开放源代码的软件库包&#xff0c;应用程序可以使用这个包来进行安全通信&#xff0c;避免窃听&#xff0c;同时确认另一端连接者的身份。这…