基于大语言模型的复杂任务认知推理算法CogTree

近日,阿里云人工智能平台PAI与华东师范大学张伟教授团队合作在自然语言处理顶级会议EMNLP2023上发表了基于认知理论所衍生的CogTree认知树生成式语言模型。通过两个系统:直觉系统和反思系统来模仿人类产生认知的过程。直觉系统负责产生原始问题的多个分解假设,反思系统对直觉系统产生的假设进行验证,并选择更有可能的假设进行后续生成,直到达到最终结果。通过上述双系统的迭代式生成,可以提升大模型的解题准确度。

论文:

Junbing Yan, Chengyu Wang, Taolin Zhang, Xiaofeng He, Jun Huang, Wei Zhang. From Complex to Simple: Unraveling the Cognitive Tree for Reasoning with Small Language Models. EMNLP 2023 (Findings)

背景

随着深度学习在自然语言处理、机器翻译等任务上的不断发展,人们对如何将深度学习应用到自然语言处理中越来越感兴趣,由此出现了大语言模型(例如GPT-3.5),并已在文本生成、情感分析、对话系统等多个任务上取得了重大突破。大语言模型通常基于大规模文本数据进行预训练,然后通过微调在特定任务上进行优化,以生成高质量的文本输出。然而,对于语言模型而言,复杂的逻辑推理问题和数学问题的求解仍然是很困难的。并且,传统的语言模型缺乏认知能力。在处理涉及冗长的推理链或多步解决方案的问题时,对于问题及其当前回答的评估是很重要的。然而,目前的方法例如Chain-of-thought等通常缺乏对于中间过程的验证。并且大型语言模型的部署和推理成本相对较高,特别是在利用无参数更新的推理增强技术时。这些技术需要大量的上下文和多步的答案生成,进一步增加了推理成本和时间。

因此,本文研究面向轻量化大模型的复杂任务推理,使用较小规模的模型(7B),构建双系统生成推理树,大大增强模型在复杂数学问题和逻辑推理问题上的回答能力。提出了一种大模型面向复杂数学问题的求解方法。该方法基于人类的认知理论,通过两个系统:直觉系统和反思系统来模仿人类产生认知的过程。直觉系统负责产生原始问题的多个分解假设,反思系统对直觉系统产生的假设进行验证,并选择更有可能的假设进行后续生成,直到达到最终结果。通过上述双系统的迭代式生成,可以提升大模型的解题准确度。

算法概述

为了解决上述大模型对复杂任务推理准确度不高且推理成本大的问题,CogTree采用双系统的方式,用大模型分别构建两个系统:直觉系统和反思系统,使用直觉系统生成原问题分解的假设,使用反思系统验证假设的正确性,引导直觉系统后续的生成。模型框架图如下所示:

通过双系统迭代式的生成一棵推理树,增强大模型的推理能力。本方法的创新性是面向大语言模型,设计了一套新的推理框架,增强大模型在复杂数学问题上的推理能力。

直觉系统

直觉系统的生成能力是构建认知树的基础。因此,选择仅包decoder-only的模型(例如,GPT2-XL或LLaMA-7B)作为直觉系统。通过上下文方法来增强直觉系统的能力。定义查询Q为逻辑推理问题的最终目标或数学问题。在逻辑推理问题的情况下,分解D涉及将目标进一步分解为较小问题,通过对这些分解进行推理,可以实现最终目标。对于数学问题,它指的是从原始问题中导出的子问题之一,解决这个子问题有助于解决整个原始问题。分解集合表示训练集中所有示例的分解集合。从推理分解集合中检索k个示例(例如,查询:Q;分解:询:D),然后将它们用作模型输入的上下文。输出可以生成为y∼fθ​(y∣x,z1…k​)。这里,z代表从分解集合Z中检索到的k个示例,其中Z=\{z_1,\cdots, z_L\}。使用直觉系统获取当前查询的表示,并计算与集合中其他查询的表示的余弦相似度。然后,我们从集合中检索出最相似的k个查询。其中[y] \sim f_\theta(y | x, z_{1 \cdots K})是一个连续语言序列。

反思系统

反思系统在作用上与直觉系统不同。直觉系统依赖于快速直觉进行生成,而反思系统的作用是评估直觉系统的生成结果以确定其可接受性。反思系统通过采用两种方法来验证结果:中间过程的验证和整个推理链的验证。给定当前状态s(查询:Q与分解:D),使用与直觉系统相同的模型架构的反思系统来生成一个验证当前状态的分数v。这可以表示为V(f_\theta,s) \sim f_\theta(v | s)。此外,基于完整的推理链S=\{s_1,\cdots, s_i,\cdots, s_n\}。使用反思系统来产生一个整体分数o,可以表示为O(f_\theta,S) \sim f_\theta(o | S)。反思系统与直觉系统不同,其主要任务是评估和验证当前状态和整个推理链的可行性,而不是像直觉系统那样产生快速假设。这种评估过程有助于确保生成的假设和推理过程是合理的。

训练

直觉系统

Supervised Fine-tuning (SFT)已经证明了其在对其人类意图上的有效性。在我们的方法中,直觉系统通过利用上下文示例将查询 Q(即复杂问题)分解为子问题。由于我们使用生成模型作为直觉系统,因此在自回归计算期间,仅对生成的文本(不包括给定的上下文)进行损失计算。给定一个长度为N的样本,表示为X,其中X=\{x_1,\cdots, x_i,\cdots, x_n\}

。我们定义上下文示例的序列长度为M。 我们使用标准的语言建模目标来最大化以下似然函数:\mathcal{L}_{\mathcal{IS}}=\sum_{i>M}^N log \ P(x_i | x_1, \cdots, x_{i-1}; \theta)

反思系统

反思系统采取与直觉系统相同的训练方法,利用正负样本让模型从中生成分类结果。由于反思系统主要关注状态s的判断,损失函数可以定义如下 :\mathcal{L}_{\mathcal{RS}} = \log P(v | s; \theta) 。

算法精度评测

为了验证CogTree算法的有效性,我们在Entailment Bank逻辑推理数据集以及GSM8K数学问题数据集上进行了测试,效果证明CogTree对大模型复杂任务上的回答准确率提升明显:

我们也将算法与其他基于大模型微调的方法进行对比,证明了CogTree框架的有效性。

为了更好地服务开源社区,CogTree算法的源代码即将贡献在自然语言处理算法框架EasyNLP中,欢迎NLP从业人员和研究者使用。

EasyNLP开源框架:GitHub - alibaba/EasyNLP: EasyNLP: A Comprehensive and Easy-to-use NLP Toolkit

参考文献

  • Chengyu Wang, Minghui Qiu, Taolin Zhang, Tingting Liu, Lei Li, Jianing Wang, Ming Wang, Jun Huang, Wei Lin. EasyNLP: A Comprehensive and Easy-to-use Toolkit for Natural Language Processing. EMNLP 2022
  • Karl Cobbe, Vineet Kosaraju, Mohammad Bavarian, Mark Chen, Heewoo Jun, Lukasz Kaiser, Matthias Plappert, Jerry Tworek, Jacob Hilton, Reiichiro Nakano, Christopher Hesse, and John Schulman. 2021a. Training verifiers to solve math word problems. CoRR, abs/2110.14168
  • Denny Zhou, Nathanael Schärli, Le Hou, Jason Wei, Nathan Scales, Xuezhi Wang, Dale Schuurmans, Olivier Bousquet, Quoc Le, and Ed H. Chi. 2022. Least-to-most prompting enables complex reasoning in large language models. CoRR, abs/2205.10625
  • Jonathan St B. T. Evans. 1984. Heuristic and analytic processes in reasoning. British Journal of Psychology, 75(4):451–468

论文信息

论文标题:From Complex to Simple: Unraveling the Cognitive Tree for Reasoning with Small Language Models
论文作者:严俊冰、汪诚愚、张涛林、何晓丰、黄俊、张伟
论文pdf链接:https://arxiv.org/abs/2311.06754

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

react中img引入本地图片的方式

在html文件中&#xff0c;可以直接<img src./roadBook.png /> 但是在jsx文件中&#xff0c;不支持这种写法 必须这样写 在css样式中 App.css .img{background: url(./img/roadBook.png) }App.js import ./App.css;<div classNameimg></div> 1.基于es6Mod…

【面试总结】Java面试题目总结(一)

&#xff08;以下仅为个人见解&#xff0c;如果有误&#xff0c;欢迎大家批评并指出错误&#xff0c;谢谢大家&#xff09; 1.项目中的验证码功能是如何实现的&#xff1f; 第一步&#xff1a;在项目的pom.xml文件中导入 EasyCaptcha 的依赖&#xff1b; <dependency>…

联邦蒸馏中的分布式知识一致性 | TIST 2024

联邦蒸馏中的分布式知识一致性 | TIST 2024 联邦学习是一种隐私保护的分布式机器学习范式&#xff0c;服务器可以在不汇集客户端私有数据的前提下联合训练机器学习模型。通信约束和系统异构是联邦学习面临的两大严峻挑战。为同时解决上述两个问题&#xff0c;联邦蒸馏技术被提…

【开源】基于Vue+SpringBoot的教学资源共享平台

文末获取源码&#xff0c;项目编号&#xff1a; S 068 。 \color{red}{文末获取源码&#xff0c;项目编号&#xff1a;S068。} 文末获取源码&#xff0c;项目编号&#xff1a;S068。 目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块2.1 数据中心模块2.2 课程档案模块2.3 课…

Camunda 7.x 系列【60】流程分类

有道无术,术尚可求,有术无道,止于术。 本系列Spring Boot 版本 2.7.9 本系列Camunda 版本 7.19.0 源码地址:https://gitee.com/pearl-organization/camunda-study-demo 文章目录 1. 前言2. 案例演示2.1 后端2.2 前端2.3 测试1. 前言 钉钉中的OA审批分类: 企业级的业务…

AI 绘画 | Stable Diffusion 真实人物动漫二次元化

前言 如何让一张真实人物变成动漫二次元风格的图片?Stable Diffusion WebUI加上contolNet扩展插件帮你快速实现。快来使用AI绘画打开异世界的大门吧!!! 真人动漫化 选择大模型 首先选择一个二次元风格人物画风的大模型(我这里选择是SD1.5通用模型anything-v5-PrtRE.sa…

智能优化算法应用:基于人工蜂群算法3D无线传感器网络(WSN)覆盖优化 - 附代码

智能优化算法应用&#xff1a;基于人工蜂群算法3D无线传感器网络(WSN)覆盖优化 - 附代码 文章目录 智能优化算法应用&#xff1a;基于人工蜂群算法3D无线传感器网络(WSN)覆盖优化 - 附代码1.无线传感网络节点模型2.覆盖数学模型及分析3.人工蜂群算法4.实验参数设定5.算法结果6.…

Nginx的location和rewrite的使用

目录 常用的Nginx 正则表达式 location location 大致可以分为三类&#xff1a; 精准匹配&#xff1a;location / {...} 一般匹配&#xff1a;location / {...} 正则匹配&#xff1a;location ~ / {...} location 常用的匹配规则 location 优先级 location 示例说明…

Kafka生产问题总结及性能优化实践

1、消息丢失情况 消息发送端&#xff1a; &#xff08;1&#xff09;acks0&#xff1a; 表示producer不需要等待任何broker确认收到消息的回复&#xff0c;就可以继续发送下一条消息。性能最高&#xff0c;但是最容易丢消息。大数据统计报表场景&#xff0c;对性能要求很高&am…

HTML常用表单元素使用?

目录 一、常用表单元素使用的关键字二、常用表单元素使用的效果与作用&#xff08;1&#xff09;password : 保护用户的隐私(2) email: 输入邮件&#xff08;比如QQ邮件&#xff09;(3)、number : 输入框只能输入数字&#xff08;4&#xff09;、tel : 常用于输入电话号&#x…

一、微前端目标、前端架构的前生今世、微前端架构优势和劣势、软件设计原则与分层

1、目标 2、前端架构的前世今生 ① 初始&#xff1a;无架构&#xff0c;前端代码内嵌到后端应用中 ② 后端 MVC 架构&#xff1a;将视图层、数据层、控制层做分离 缺点&#xff1a;重度依赖开发环境&#xff0c;代码混淆严重&#xff08;在调试时&#xff0c;需要启动后端所有…

Flink之迟到的数据

迟到数据的处理 推迟水位线推进: WatermarkStrategy.<Event>forBoundedOutOfOrderness(Duration.ofSeconds(2))设置窗口延迟关闭&#xff1a;.allowedLateness(Time.seconds(3))使用侧流接收迟到的数据: .sideOutputLateData(lateData) public class Flink12_LateDataC…

前端框架(Front-end Framework)和库(Library)的区别

聚沙成塔每天进步一点点 ⭐ 专栏简介 前端入门之旅&#xff1a;探索Web开发的奇妙世界 欢迎来到前端入门之旅&#xff01;感兴趣的可以订阅本专栏哦&#xff01;这个专栏是为那些对Web开发感兴趣、刚刚踏入前端领域的朋友们量身打造的。无论你是完全的新手还是有一些基础的开发…

WPF实现更加灵活绑定复杂Command(使用Microsoft XAML Behaviors 库)

1、安装NuGet 2、在XAML的命名空间引入&#xff1a; xmlns:i"http://schemas.microsoft.com/xaml/behaviors" 3、使用&#xff1a; <Canvas Background"Aqua"><Rectangle Stroke"Red" Width"{Binding RectModel.RectangleWidth}…

Docker基础概念解析:镜像、容器、仓库

当谈到容器化技术时&#xff0c;Docker往往是第一个被提及的工具。Docker的基础概念涵盖了镜像、容器和仓库&#xff0c;它们是理解和使用Docker的关键要素。在这篇文章中&#xff0c;将深入探讨这些概念&#xff0c;并提供更丰富的示例代码&#xff0c;帮助大家更好地理解和应…

【AI绘图】 学习 prompt 画图,收集网站

文章目录 在线画图网站Prompt模型下载AI 工具箱 在线画图网站 【强推】搜图&#xff1f;也可以在线画图&#xff0c;质量很高&#xff01;&#xff1a;https://lexica.art/ Lexica 是一个搜索 AI 生成图片的网站&#xff0c;可以根据图片本身关联性或描述文本&#xff08;prom…

基于OpenCV+CNN+IOT+微信小程序智能果实采摘指导系统——深度学习算法应用(含python、JS工程源码)+数据集+模型(五)

目录 前言总体设计系统整体结构图系统流程图 运行环境Python环境TensorFlow 环境Jupyter Notebook环境Pycharm 环境微信开发者工具OneNET云平台 模块实现1. 数据预处理2. 创建模型并编译3. 模型训练及保存4. 上传结果5. 小程序开发1&#xff09;查询图片2&#xff09;查询识别结…

计算机网络——期末考试复习资料

什么是计算机网络 将地理位置不同的具有独立功能的多台计算机及其外部设备通过通信线路和通信设备连接起来&#xff1b;实现资源共享和数据传递的计算机的系统。 三种交换方式 报文交换&#xff1a;路由器转发报文&#xff1b; 电路交换&#xff1a;建立一对一电路 分组交换&a…

大数据驱动下的人口普查:新时代下的新变革

人口普查数据大屏&#xff0c;是指一种通过大屏幕显示人口普查数据的设备&#xff0c;可以将人口普查数据以可视化的形式呈现出来&#xff0c;为决策者提供直观、准确的人口数据。这种大屏幕的出现&#xff0c;让人口普查数据的利用变得更加高效、便捷。 如果您需要制作一张直观…

手写VUE后台管理系统10 - 封装Axios实现异常统一处理

目录 前后端交互约定安装创建Axios实例拦截器封装请求方法业务异常处理 axios 是一个易用、简洁且高效的http库 axios 中文文档&#xff1a;http://www.axios-js.com/zh-cn/docs/ 前后端交互约定 在本项目中&#xff0c;前后端交互统一使用 application/json;charsetUTF-8 的请…