大模型“涌现”的思维链,究竟是一种什么能力?

news2024/11/27 20:35:34

2bdb6b66dec2b3ad412aa5509e58930d.jpeg

听说最近AI大厂的开发人员和高校的NLP研究人员,都在琢磨,怎么让大模型“涌现”。那画面莫名就让我想到了程序员给服务器上香来保佑不宕机,都有种求诸于天的玄学。

所谓“涌现”,在大模型领域指的是当模型突破某个规模时,性能显著提升,表现出让人惊艳、意想不到的能力。比如语言理解能力、生成能力、逻辑推理能力等。一般来说,模型在100亿到1000亿参数区间,可能产生能力涌现。

但老话说得好“氪不救非,玄不改命”。靠砸钱和运气,只一味把模型做的大大大,也未必能让AI“显灵”。

强大的逻辑推理是大语言模型“智能涌现”出的核心能力之一,好像AI有了人的意识一样。而推理能力的关键,在于一个技术——思维链(Chain of Thought,CoT)。

大家如果看过类GPT应用的翻车问题,会发现大多都是数学算术题、逻辑思考题等,这类需要精确推理的问题,而这正是思维链能够重点解决的。现在训练大语言模型的企业和机构很多,但能够训练出思维链并应用的很少。

换句话说,只有解锁了思维链技术,大语言模型才有可能“涌现”,才能在“大炼模型”的竞争中具备能力优势。

思维链的故事,我们从一个奇男子说起。

一个神奇的男子

5c3d62f79856084a523f4f37240ee638.png

思维链,在人工智能领域,是一个非常非常新的概念。

2022年1月,它的相关论文才被放到arxiv上,成果也特别惊艳,谷歌在当年五月的年度开发者大会Google I/O 2022,也对思维链这一研究成果进行了宣传。当时同台宣传的还有大模型PaLM和Pixel系列手机等。

你可能发现了华点,怎么让思维链闻名世界的,却变成了OpenAI的ChatGPT呢?

这就要提到一个奇男子——思维链的提出者Jason Wei。

之所以神奇,一是本人能力卓绝。

这位华人科学家,2020年本科毕业成为谷歌大脑的高级研究员,在任职期间,提出了思维链的概念,发现思维链可以在大语言模型中增强推理能力。

1e7a2bf8443bc9ece20d811bc3108d38.png

(Jason Wei的个人博客www.jasonwei.net)

二是他的个人际遇,对AI影响很大,2022年2月他离开谷歌,加入了OpenAI,进入ChatGPT团队,这也是思维链在OpenAI发扬光大,让ChatGPT拔得头筹的原因之一。

那这位奇男子和同事的工作,究竟干了什么呢?

b36c6800488ef66231cd1571132cf3d0.png

谷歌之前在大模型下了很大功夫,GPT生成式预训练模型中的“T”,也就是Transformer,就是谷歌大脑搞出来的。但是,预训练+精调的大模型搞了几年,仍然没办法很好地完成多步骤推理任务,比如数学问题和常识推理。

所以Jason Wei等人提出了思维链提示的方法,真的一下子就让大模型的逻辑推理能力不一样了。

具体来说,有三个不一样:

1.常识推理能力赶超人类。以前的语言模型,在很多挑战性任务上都达不到人类水平,而采用思维链提示的大语言模型,在Bench Hard(BBH)评测基准的23个任务中,有17个任务的表现都优于人类基线。

比如常识推理中会包括对身体和互动的理解,而在运动理解sports understanding方面,思维链的表现就超过了运动爱好者(95% vs 84%)。

1f285d0fce994ccaa3aa567bfdf102a6.png

(思想链被高亮显示)

2.数学逻辑推理大幅提升。

一般来说,语言模型在算术推理任务上的表现不太好,而应用了思维链之后,大语言模型的逻辑推理能力突飞猛进。

MultiArith和GSM8K这两个数据集,测试的是语言模型解决数学问题的能力,而通过思维链提示,PaLM这个大语言模型比传统提示学习的性能提高了300%!

在MultiArith和GSM8K上的表现提升巨大,甚至超过了有监督学习的最优表现。 

这意味着,大语言模型也可以解决那些需要精确的、分步骤计算的复杂数学问题了。

7654db0443e45c7f18549074d79e9069.png

3.大语言模型更具可解释性,更加可信。

我们知道超大规模的无监督深度学习,打造出来的大模型是一个黑盒,推理决策链不可知,这就会让模型结果变得不够可信。

而思维链将一个逻辑推理问题,分解成了多个步骤,来一步步进行,这样生成的结果就有着更加清晰的逻辑链路,提供了一定的可解释性,让人知道答案是怎么来的。

Jason Wei这位奇男子提出的思维链,可以说是大语言模型惊艳世界的必要条件。

4615e00b58bf9a4a4e6c4846e2427355.png

一句神奇的咒语

花式调戏大语言模型,有一句非常神奇的咒语,能让LLM的回答结果大不一样,那就是——“Let’s think step by step”

此前很多用户就发现,一旦在问题中加上“Let’s think step by step”,ChatGPT就好像被施了魔法,原本做错的数学题,突然就会做了;原本的胡说八道,突然就有理有据了。

这就是思维链的魔力。

597d232fbd5698a50787313e752f88e2.png

思维链(Chain-of-thought,CoT),指的是一系列有逻辑关系的思考步骤,形成一个完整的思考过程。

人在日常生活中,随时随地都会用思维链来解决问题,比如工作、读书经常用到的思维导图,就是为了尽可能全面拆解步骤,不忽略重要细节,从而充分地考虑问题。

这种步骤分解的方式用在提示学习中,就被称为思维链提示,将大语言模型的推理过程,分解成一个个步骤,直观地展现出来,这样开发人员可以在LLM推理出现错误时,就及时地修复。

相当于让AI做分析题,而不是“填空题”,要把推理过程详细说清楚,按步骤得分,最后给出答案。

Jason Wei等在2022年的论文中,展示了标准提示学习和思维链提示的不同之处:

7586b1ac3f20af212c21f29f30b88d27.png

可以看到,类似的算术题,思维链提示会在给出答案之前,还会自动给出推理步骤:

“罗杰先有5个球,2罐3个网球等于6个,5 + 6 = 11”

“食堂原来有23个苹果,用20个做午餐,23-20=3;又买了6个苹果,3+6=9”。

思维链提示给出了正确答案,而直接报答案的传统提示学习,给出的答案就是错的,连小学程度的加减法都做不好。

简单来说,语言模型很难将所有的语义直接转化为一个方程,因为这是一个更加复杂的思考过程,但可以通过中间步骤,来更好地推理问题的每个部分。

思维链提示,就是把一个多步骤推理问题,分解成很多个中间步骤,分配给更多的计算量,生成更多的token,再把这些答案拼接在一起进行求解。

a5030d2e1d46de1dc20307829a5167ad.png

再举个例子,大家都特别希望有一个全能家政机器人,但目前的机器人看起来都挺傻的,只能执行一些很简单的开关灯指令。如果用户问:“我把可乐洒在桌子上了,你能把它扔掉,然后拿点东西来帮我清理吗?”

机器人该怎么办呢?

这时候有思维链的语言模型,会分析问题:用户把可乐洒在桌子上了。我会把它扔掉,然后给用户一块海绵。

拆解步骤:找(可乐),拣(可乐),找(垃圾),扔(可乐),找(海绵),拣(海绵),找(桌子),放(海绵)。

总的来说,思维链就相当于让大语言模型做“因式分解”,把一个复杂的推理问题进行拆解,逐步解决,自然也就更容易得到高质量的答案了。

一个打破僵局的灵

9fc86c6b0fcb205a2bad9771830b2d35.png

你可能会问,大语言模型“智能涌现”,思维链是必须的吗?目前阶段,确实。

因为,预训练的大语言模型参数规模巨大,很容易被不相关的上下文分散注意力,影响性能表现,相当于学生上课走神了,被老师叫起来回答问题只能胡言乱语。这时候就需要提示学习(Prompt Learning)来进行微调,相当于旁边有人给提了个醒,更好地完成下游任务。

a1fb38da419fcc02f620071a7ba82225.png

但离散式的硬提示(Discrete Prompt),需要人为设计提示词prompt,而人类觉得不错的提示词,语言模型却不一定觉得好,最后还是回答的一塌糊涂,而且,离散的token作为提示词,优化难度也特别大。

所以,连续化的软提示(Continuous Prompt),限制了模型参数不被调整,直接优化低维向量,这样就可以用较小的微调来提升模型性能。这个方法省事儿,效果也不错,但一直走这条路还是没办法让语言模型搞懂逻辑推理。

思维链的提出,用的是离散式的token,又能自动构建问题、推理步骤和样例,这就解决了离散提示人工设计难的问题,而且还能让语言模型拥有可解释性。

所以说,思维链promoting,可以算是打破了大语言模型能力僵局的神来之笔。有时候技术的突破靠的就是一个灵感,而造就这个灵感的人才机制、创新环境、组织模式等,却需要漫长的时间去培育。

e79d7c76f4dd572e35f8ef0ad1a7ade6.png

一些待解的问题

说了这么多,是不是有了思维链,大语言模型就所向披靡了呢?照这么发展下去,真能媲美人类的能力了?

大可不必担心,思维链本身还是有很多局限的,而它的局限也是大语言模型的局限。

首先,思维链必须在模型规模足够大时才能涌现。

在Jason Wei等的研究中,PaLM在扩展到540B参数时,与思维链提示结合,才表现出了先进的性能。一些小规模模型,思维链并没有太大的影响,能力提升也不会很大。

谷歌大脑的研究人员认为,策略问题需要大量的世界知识,而小型模型没有足够的参数来记忆这些世界知识,所以也不太可能产生正确的推理步骤。

但问题是,能落地到产业的模型,规模必然不会太大,思维链拆解了更多的步骤、用到更多的计算资源,相当于更加耗费脑力,很多研究机构和企业是负担不起175B参数以上的大模型。

所以思维链必须要探索,如何在较小的模型中进行推理,降低实际应用的成本。

7c85e4812e292bac5dcb26801e6a35d3.png

(62B比540B的语言模型更容易出错)

其次,思维链的应用领域是有限的。

目前,思维链只是在一些有限的领域,比如数学问题,五个常识推理基准(CommonsenseQA,StrategyQA,Date Understanding和Sports Understanding以及SayCan)上显现出作用,其他类型的任务,像是机器翻译,性能提升效果还有待评估。

而且,相关研究用到的模型(GPT-3 API)或数据集,都是半公开或不公开的,这就使其难以被复现和验证。严谨来看,思维链的效果还需要被进一步探索,才能下定论。

6dc4ecb46c72422dc9705e28fd394955.png

此外,即使有思维链提示,大语言模型依然不能解决小学水平的数学问题。

没有思维链,数学推理是指定不行。但有了思维链,大语言模型也可能出现错误推理,尤其是非常简单的计算错误。Jason Wei等的论文中,曾展示过在GSM8K的一个子集中,大语言模型出现了8%的计算错误,比如6 * 13 = 68(正确答案是78)。

这说明,即使有了思维链,大语言模型还是没有真正理解数学逻辑,不知道加减乘除的真实意义,只是通过更精细的叠加来“照葫芦画瓢”,所以,对于有精确要求的任务,还要进一步探索新的技术。

思维链确实增强了大语言模型的能力,但逻辑推理仍然是大语言模型的弱项,等待着更多突破。

One more thing

ada0e79ddd946c4605de39691f15ba5e.png

通过思维链,我们可以看到大语言模型为什么强,也为什么弱。

它强在,模型规模的提高,让语义理解、符号映射、连贯文本生成等能力跃升,从而让多步骤推理的思维链成为可能,带来“智能涌现”。

它弱在,即使大语言模型表现出了前所未有的能力,但思维链暴露了它,依然是鹦鹉学舌,而非真的产生了意识。

认知心理学教授斯坦尼斯拉斯·迪昂(Stanislas Dehaene)在《精准学习》中提出,缓慢地、理智地、符号化地运作,是人脑的特权。它可以在任何可能的时候,提取具有普遍性、逻辑性的、明确的原则。

五六岁的儿童学会了较小数字的加法,就可以理解其含义,用到更大的数字的加法中,而目前最强大的大语言模型,还连“加法”这个简单的抽象定律都理解不了。

4efe4dbabbc93437ae153dbe565965ae.png

这么说,并不是让大家小看AI的能力,而是想说明,人脑和AI,各有所长。

大语言模型,正如科幻作家特德·姜所说,是网上所有文本的模糊图像,一张有损压缩的JPEG,但它可以用远超人脑的算力和数据,极其高产地做好文本生成、图像生成这样的模糊任务。而人脑更擅长精确的、逻辑性的任务,就像特德·姜说的:“当你还有原始图片的时候,一张模糊的JPEG到底有多大用处呢?”

智能时代的生存策略,就是不要以己之短,硬碰AI之长。而是用AI之长,让自己的长板变得更长;用人脑的精确,让AI生成的模糊答案变得更高质量;用好思维链提示,让LLM生成时事半功倍。

《哈利波特》电影中,有一个“有求必应屋”,里面全是人所需要的东西,海伦娜形容它:

If you have to ask, you'll never know. If you know, you need only ask.

如果你还需要问,就永远不会明白;如果你明白,你只需要开口问。

有问必答的AI时代,是智者的天堂,也是愚者的地狱。永远不要让AI代替你思考。

754d0d6064c2ac7796e0a8801ab46db0.gif

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

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

相关文章

商城管理系统的数据表从属关系+navicat建表操作+数据库文件转储并入代码操作

1&#xff0c;商城管理系统的数据表从属关系 在商城管理系统中&#xff0c;我们会面临属性分组的问题&#xff0c;商品表与分类表需要建立链接&#xff1b; 在控制类中我们将分类表中属性类传过来&#xff0c;与商品值params建立链接 public R list(RequestParam Map<Strin…

基于matlab使用波束成形对点对点 MIMO-OFDM 系统进行建模

一、前言 此示例展示了如何使用波束成形对点对点 MIMO-OFDM 系统进行建模。最近的无线标准&#xff08;如 802.11x 系列&#xff09;采用了多输入多输出 &#xff08;MIMO&#xff09; 和正交频分复用 &#xff08;OFDM&#xff09; 技术的组合&#xff0c;以提供更高的数据速率…

万字长文 - Nature 综述系列 - 给生物学家的机器学习指南 2 (传统机器学习方法如何选择)...

万字长文 - Nature 综述系列 - 给生物学家的机器学习指南 1 传统的机器学习 我们现在讨论几种关键的机器学习方法的优势和劣势。表1显示了不同机器学习方法的比较。我们首先讨论不基于神经网络的方法&#xff0c;有时被称为“传统机器学习”。 图3显示了一些传统的机器学习方法…

【算法基础】常见排序算法(持续更新中)

&#x1f466;个人主页&#xff1a;Weraphael ✍&#x1f3fb;作者简介&#xff1a;目前正在学习c和算法 ✈️专栏&#xff1a;【C/C】算法 &#x1f40b; 希望大家多多支持&#xff0c;咱一起进步&#xff01;&#x1f601; 如果文章有啥瑕疵 希望大佬指点一二 如果文章对你有…

【KVM虚拟化】· 图形化KVM安装linux

目录 &#x1f341;虚拟化技术 &#x1f342;KVM的整体结构 &#x1f342;KVM 的功能列表 &#x1f342;KVM 工具集合 &#x1f341;安装kvm虚拟化功能 &#x1f341;创建虚拟机 &#x1f990;博客主页&#xff1a;大虾好吃吗的博客 &#x1f990;专栏地址&#xff1a;KVM虚拟化…

FreeRTOS 信号量(二) ------ 计数型信号量

文章目录 一、计数型信号量1. 计数型信号量简介2. 创建计数型信号量①函数 xSemaphoreCreateCounting()②函数 xSemaphoreCreateCountingStatic() 3. 计数型信号量创建过程分析4. 释放和获取计数信号量 二、计数型信号量操作实验 一、计数型信号量 1. 计数型信号量简介 有些资…

数据结构与算法(小议递归)

文章目录 前言一、递归是什么&#xff1f;二、在什么时候适用递归1.测试一下 总结 前言 递归是一种常用的算法设计&#xff0c;递归就是一种循环推理。简单来说就是调用原算法本身的算法。 这里主要探讨递归的使用&#xff0c; 一、递归是什么&#xff1f; 用一个简单的例子来…

嵌入式代码查看分析利器---Understand

平时在开发嵌入式程序的时候大多数使用的都是keil软件&#xff0c;一般小的工程使用keil没感觉到有什么问题&#xff0c;但是当工程比较大的时候&#xff0c;比如移植了FreeRTOS系统或者LWIP网络系统时&#xff0c;代码全部编译一次就要花费很长世间&#xff0c;特别是开启了点…

CIKM论文解读 | 淘宝内容化推荐场景下对多场景全域表征的思考与应用

我们结合逛逛推荐场景中的具体问题&#xff0c;从多场景全域表征的视角进行了一系列的探索与内容推荐场景的应用&#xff0c;从全域表征的范围、信息迁移方式以及模型框架的应用等维度展开我们的优化工作&#xff0c;取得了阶段性的优化经验和业务效果。 背景介绍 淘宝逛逛自20…

鸿蒙混合打包。在现有安卓应用的基础上扩展鸿蒙的特性,以最快的速度布局鸿蒙生态!

鸿蒙混合打包 介绍 鸿蒙混合打包。在现有安卓应用的基础上扩展鸿蒙的特性&#xff0c;以最快的速度布局鸿蒙生态&#xff01; 参考&#xff1a;京东APP鸿蒙版上架实践。本项目只是这篇文章的一个验证&#xff0c;让更多的兄弟们可以少走弯路。 我尽可能把每一步的改动作为一…

【HarmonyOS】【JS】Tabs如何设置区分TabBar和TabContent的分割线不显示

【关键字】 Tabs&#xff0c;分割线 【问题描述】 使用JS开发HarmonyOS应用时&#xff0c;使用Tabs组件&#xff0c;默认自带TabBar和TabContent的蓝色分割线&#xff0c;由于蓝色分割线样式不可设置&#xff0c;若不想要此蓝色分割线&#xff0c;如何去除蓝色分割线&#xf…

搭建外网minecraft服务器方案

很多minecraft服务器主都想自己搭建一个外网可以访问的minecraft服务器&#xff0c;在没有外网IP的情况下&#xff0c;一般都是使用Logmein Hamachi方案。这种方案有它的弊端&#xff0c;需要客户机安装Hamachi&#xff0c;十分不方便。另外&#xff0c;免费版只支持5人&#x…

C++三大特性—继承 “基类与派生类之间的类型转换与赋值转换”

理解基类与派生类之间的类型转换是理解C语言面向对象编程的关键所在 继承 通过继承联系在一起的类构成一种层次关系&#xff0c;层次关系的根部有一个基类&#xff0c;其他直接或间接从基类继承而来&#xff0c;称为派生类。    继承(inheritance)机制是面向对象程序设计使代…

Spring RabbitMQ 实现消息队列延迟

1.概述 要实现RabbitMQ的消息队列延迟功能&#xff0c;一般采用官方提供的 rabbitmq_delayed_message_exchange插件。但RabbitMQ版本必须是3.5.8以上才支持该插件&#xff0c;否则得用其死信队列功能。 2.安装RabbitMQ延迟插件 检查插件 使用rabbitmq-plugins list命令用于查看…

C++引用进阶篇:让你的程序更加高效、安全、简洁

文章目录 前言1. 引用和临时数据&#x1f351; 什么样的临时数据会放到寄存器中&#x1f351; 关于常量表达式&#x1f351; 引用也不能指代临时数据&#x1f351; 引用作为函数参数 2. 为const引用创建临时变量3. const引用与转换类型&#x1f351; 引用类型的函数形参请尽可能…

SPFA 算法:实现原理及其应用

文章目录 一、前言二、SPFA 算法1、SPFA算法的基本流程2、代码详解 三、SPFA 算法已死 &#xff1f; 一、前言 SPFA算法&#xff0c;全称为Shortest Path Faster Algorithm&#xff0c;是求解单源最短路径问题的一种常用算法&#xff0c;它可以处理有向图或者无向图&#xff0…

PySide2 QWebEngine与Web js交互

文章目录 单向交互双向传值案例 单向交互 QWebEngineView加载web页面&#xff0c;web页面中点击按钮&#xff0c;执行js代码&#xff0c;js的返回值传给QWebEnginePage&#xff0c;使用python进行保存结果。 单向&#xff0c;js向python(PySide2)端传输数据。 前端实现 <…

前端web3入门脚本三:一键完成与dex的交互,羊毛党必备

前言 该脚本用途&#xff1a;一键可以完成与dex的所有交互&#xff0c;包括2次swap&#xff0c;添加/移除流动性&#xff0c;以及farm和提取LP。一次运行可以有6条交易记录。 无论是个人单刷还是羊毛党批量地址刷交互都完美适配。当然反女巫方案不在这次文章的讨论范围内。 一、…

javascript中find(), filter(), some(), every(), map()等方法介绍

1、find() find() 用于找出第一个符合条件的数组成员。它的参数是一个回调函数&#xff0c;所有数组成员依次执行该回调函数&#xff0c;直到找出第一个返回值为true的成员&#xff0c;然后返回该成员。如果没有符合条件的成员&#xff0c;则返回undefined。 find()方法的回调…

利用Matab进行覆盖计算----战术计算

在 contour函数中添加如下代码 %------- 计算畅通区面积和占比例 --------% Spi*maxrange*maxrange/1e6; S0 nnz(isInRange)*reslons*reslats/1e6;isnn ~isnan(cdata); cdata0 cdata(isnn); S1numel(cdata0)*reslons*reslats/1e6;AS1/S0; % 畅通区所占比例; fprintf("…