天天看点

GPT 有关的技术原理

作者:咖啡茶说人工智能

因为在最近的这半年里面,这个 ChatGPT 可以说引爆了我们的舆论圈,得到了社会各界的广泛关注。今天就大概从三个方面来做对 GPT 有关的一些这个技术和未来的发展趋势、工作的原理做一些介绍。

首先讨论一下这个 GPT 给我们带来什么,这个 GPT 的整个发展过程,首先从这个 2012 年CNN 网络就是卷积神经网络谈起。我们知道2012 年以来,这个深度学习或者叫深度神经网络成为了人工智能里面乃至整个的这个计算机科学软件工程领域非常重要的一个研究方向,在 17 年以前,实际上对视觉的这个神经网络的主要的方法都是各种各样的卷积神经网络,我们简称叫CNN,从最早的这个 Alex net,包括后面的 rest net,就包括我们中国人自己提的 dance net 等等都属于卷积神经网络类型。重点的是对这个图像,当然也能涵盖一部分视频的数据进行,包括像目标检测、目标识别、语义分割等等这样的视觉的这个任务。

还有一类实际上就是面向语言的语言类型,主要是以 LSTM 和 RNN 这种偏序列型的网络,那个可以支持像语言的一些文本的分析翻译,包括像情感的分析等等这些任务,那么最早这个这两支实际上是独立发展的。对于视觉和语言,那在 17 年以来,谷歌提出了一个新的架构,这个架构我们叫做 Transformer 架构,那么这个架构的提出重点是引入了所谓的注意力机制,这注意力机制其实也说白了是一个很简单的机制,就是说我们人类在认识这个世界的时候,他对所有的数据不是同等对待的,我们往往对世界的这个联系和认识它是有一定的焦点。

这种焦点实际上就是所谓的注意力,就是抓重点,在一个很大的问题上我们就抓重点,所以这个 transformer 里面就把这个注意力这个东西写到了它的模型架构里,这样的话对自然语言处理,甚至对视觉都产生了非常重要的影响,当然最突出的影响是对自然语言,那在自然语言领域里面就基于 Transformer 就冒出了很多新的模型。其中两个最具有代表性的技术路线,一个就是谷歌的 Bert,这个 Bert 这个名字其实可能大家觉得不知道它什么含义,实际上它是这个卡通片里面的一个人物形象。这个系统具有这个双向的这个自注意力能力,能够抓住上下文之间的相互关系,更适合于对于文字语言的理解任务。

OpenAI 基于传送状架构提出了一种GPT 系列,待会讲到会比 bert相对简单一些,因为它只有单向的注意力,更适合文字的生成,但是在从 17 年到这个目前来说已经过去了接近五六年的时间,Bert的架构也好, GPT 架构也好,实际上在竞争当中这个 GPT 的架构明显取得了一定的优势。特别是从 GPT 3,我们知道 GPT 3 这个系统是在 2020 年提出的,然后到了 GPT 3. 5,也就是大家现在熟知的 ChatGPT 了,以及后面的 GPT 4,一下子这个能力就比谷歌的这个性能明显有比较大的提升,所以呈现出一种独领风骚的一个态势。

同时大家也要注意到在视觉领域,因为视觉原来一直是这个卷积神经网络的视觉领域,也在利用 Transformer 来对视觉领域的这个模型进行重新的设计和构造。在前几天大家还看到的新闻上有这个新的对于语义分割的这样的 Transformer 的架构提出,其实我们国内也有一些类似的系统。

好,那我们回过头来重点看一下 GPT 系列在这五年里面,它的大概的一个发展的路线。从 GPT 1是在 18 年发布的,后面在 19 年发布了 GPT 2,在 2020 年发布了 GPT 3 这三个版本。实际上这个无论是模型还是参数还是训练数据相对是公开的,当然并不是说能开源下载,但是起码大家对它的内部结构和采用的训练方法大概是已知的。最早的 GPT1 是1亿左右的参数,到 GPT 2 是15亿参数,到了 GPT 3 的 1500亿参数,训练数据也从5 个 GB 到 45 个TB,涵盖了相当多的自然语言的语料,到了ChatGPT3.5以及前不久的 GPT4,那么模型参数、训练量都已经不再对外公开了,大家看到的都是他的经验的能力。

这些模型发展的特点,其实就是我们经常说的智能时代的这个技术发展的一个范式,就是大算力,加大数据,加大模型这样的一个综合体,谁能把这三项事情有机的综合到一起,很好的能够驾驭它的里面的这种高度的技术的工程的复杂性,谁就能最终取得胜利。

按照这个边界表提炼,也就是说大家可以看到,虽然 Transformer 是 2018 年提出来的,实际上这个在 2020 年之前,大家都在叫做大练模型。什么叫大练模型?就是不管是单位的大小,大家都根据自己的业务需要,是吧?找一个合适的网络架构,不管是 CNN 的、 RNN 的 或者Transformer 的神经网络的,都是根据自己的业务,根据自己的数据标注,然后来训练模型,呈现出一个非常丰富的一个模型生态。

但是到了 2020 年以来,实际上已经从大练模型变成了练大模型,就是以大模型为突出的。当然我们待会具体解释一下这个大模型给我们带来的在训练上面一些新的技术问题,所以这个 OpenAI 有 GPT 3,谷歌有switch, Transformer 等等。然后从 2021 年以来,特别是这个 ChatGPT 以来,那么已经从这个练大模型变成大练大模型,什么意思?这个模型的是大模型的,几乎人人都在搞,人人都在练,到底谁家能胜出?这个就是一个很有趣的话题了。那么我们国内实际上是从大概从 2020 年开始就在做准备,比如说那个时候像这个百度就有这个文心一言,那么包括后面的智源,实际上是清华的这个悟道系列,还有这个华为和深圳鹏程实验室综合打造的盘古系列,以及这个阿里的达摩院弄了 M6 系列,这个还有自动化所的多模态的模型,稍微规模小一点,紫东太初系列,甚至连浪潮都退出了自己的模型,所以真的叫做大练大模型。

在这样的大练大模型的时代里面,其实 Transformer 的这个架构虽然能力很强,但是你要驾驭它还是很不容易的,因为它的架构是一个堆叠式的架构,里面既有这个前向的神经网络,又有非常灵活的这个自注意指引头的这样的连接关系。所以它本质上在训练的时候,无论是对算力还是对数据量,特别是对内存的需求量都是巨大的。因为它这个注意力,是一个矩阵关系,所以形成了一个量级的增长,实际上是一种平方式的那增长,所以在进行大模型训练的时候,往往靠单卡单击很难搞定,因为大模型本身大家都知道起码都是百亿以上、千亿甚至万亿以上的参数,所以它往往要动用很多卡同时来训练。

因此怎么样把一个非常复杂的,因为这个这些神经网络最终都会编译成一个很大的计算图,这个计算图是这种有向无环图的一个方式,等于是要把这个图分割到不同的卡上,让每个卡负责不同的这个图的不同的面,然后在这个训练过程是一个迭代的过程,一方面这个卡上要进行很密集的训练,有的时候这个 GPU 弄得不好会烧掉的,它这个训练的热度很高,如果算法设计不好,有时候会把 GPU 超过安全的范围。另一方面它有非常强的通讯的需求,因为卡与卡之间进行非常密集频繁的通讯,因为它是把一个整个大大的这个图切分成若干个子图来在这儿做训练,所以必须要做数据传输。

说完这个总体的背景,我们可能要回顾一下这个制造出 GPT 这一个大模型的这个公司的 OpenAI 的这个特点,因为这个公司的发展史其实是比较短的,并不是一个很长的发展历史的一个公司,本质上说它还是一个科技初创企业。我们都知道这个它的创始人主要就是萨姆奥特曼,这是这个人不是一个纯粹的技术专家,而是跟像马斯克一样,是一个技术风险投资人,既懂技术,同时他很会去拉投资,做做这个企业的初创。

当年成立这个 OpenAI 的主要目的,是因为谷歌发展的很快,我们知道在 16 年的时候,谷歌跟 deepmind就推出了 Alpha-g 系列,当时在世界围棋上取得了很突出的成绩,所以这一切这个对于这个硅谷的一些投资人和硅谷的其他一些企业,就觉得受到了谷歌的一些威胁,他不愿意谷歌在这个人工智能正在蓬勃兴起的这个企业里面占据完全主导性的地位,所以就必须要成立一个跟可以跟谷歌抗衡的这么一个科技企业,把它叫做OpenAI。

这里头一开始的时候,马斯克是创始人之一,也有投资的使命,据说要投资 10 亿美金,结果 18 年的时候,他们都觉得这个搞了半天,跟谷歌相比,竞争优势不明显。所以这个马斯克就跟奥特曼和其他董事会说,以后这个公司就由我来管,我肯定能管好,但实际上这些人对他的管理风格其实不买账的,大家可以看到关于他的很多新闻,所以等于在这个董事会内部就产生了纷争,然后马斯克就被从董事会里踢出去了,踢出去以后他只投资了 1 亿美金,剩下的那个投资的缺口就没了,就不再投钱了。

这个时候这个微软正好看到了一个良机,因为我们知道 OpenAI 本来就是跟谷歌竞争的,微软就注资 10 亿美金,那当然这个 10 亿美金不是纯粹都是钱,其中有一半全是那个azure的云计算资源,等于巨量的计算资源的支撑,对于后面这个 GPT 系列的成功起到了至关重要作用。据说像 ChatGPT这样的模型的训练用到了这个 a 轮上面1万张的这个 GPU 卡,所以没有这样的巨量算力,是很难想象能取得向的成功的。

我们也可以看一下,这几年以来,谷歌和 OpenAI 在包括像强化学习,语言模型,包括像图像,还有这个代码自动生成这些方面,其实他们都在是一个展开的是一个竞争的态势。当然强化学习因为这个就是从AlphaGo系列以来,包括后面可以做这个蛋白质折叠预测的,像 alphafold two,包括像这个多人打游戏的 Alphastar 等等,这个谷歌始终占据了先机,这个公司能力在这个领域的积累实在是太强大了。所以 OpenAI 虽然也做了寂寞,像OpenAI Five 在学术界有一定的影响力,但是无法撼动谷歌在这个领域的技术优势的。

然后在下面两个领域就不一样了,特别是在语言模型方面,这个 OpenAI 这个从刚才讲的从 GPT 1 到 2 到 3. 5,这一下子,特别是 3. 5 一下超出了谷歌一个身段。谷歌其实做的也不错,包括前面讲的这个 Bert5 等等一系列,都取得了不错的这个业绩,但是谷歌公司在推进大模型的真正的落地应用,特别是让更多的用户来参与,通过形成一个用户输入这个不断改进的所谓叫数据飞轮的这样的模式上来说,谷歌显得有点保守了。

当然它这个保守也不是没有道理的,因为作为一个这么大的企业,要把这个这么一个涌现的甚至会产生幻觉的东西,快速的比如说来用在它的搜索业务上面,其实是风险极高的,即使到今天 GPT 4 都产生了,今天这个 GPT 系列的这个模型,仍然会输出很多错误的、不正确的内容,所以这对谷歌来说是无法承受的一个风险,我们都知道在新闻里面那个 LaMDA曾经因为有他的员工认为跟 LaMDA之间对话,这个LaMDA 是有知觉的,在新闻上冒出新闻来就被解雇的例子,所以可以想见谷歌对这个语言模型的发展其实是采取了一种相对审慎和保守的态度,但是也就是这一点,使得他在跟 OpenAI 的竞争当中失去了先机,然后现在就处于一个相对不利的地位。

在这个视觉影像方面,特别是最近这个 diffusion 的出现,使得 OpenAI 的这个dalle 这些系列又比谷歌又强出了一些,而且 AIGC 和这个 ChatGPT 的结合,使得在这个领域这个 OpenAI 明显具备了强的能力。最后一个领域在编码,就实际上就是自动编码,自动生成代码方面, OpenAI 因为和微软结成了联盟,而微软又掌握了我们世界上最大的开源的资源,也就是GitHub,所以生出的这个 Codex 和 Git Hub 上的 Copilot 都比谷歌的 Alphacode 在应用和稳定性方面要做得更好。

所以从全面的角度看,实际上 OpenAI 在很多方面目前都要超过谷歌了,所以这是一个非常有意思现象。想象一下谷歌是一个几万人的公司, OpenAI 其实总共也就是核心的开发人员是 100 来号人而已。那么这个GPT 系列大家可能在新闻上或者是在网上都有一些自己的体会,那它的功能是全方位的。比如参考鲁迅的文笔,写一段疫情期间的这个感想,那他就能写出来,比如说让他根据你的需求,写一段能够实现压缩文件的代码,他也能顺畅的写出来。然后比如说在我们部门里面,可能这个经常会碰到各种这个填表格,生成表格,你只要告诉他怎么做,他也能帮你生成填表格的事情。甚至比如说让你让他告诉他你写一个押韵的英文诗,或者有人故意难为他,你要写一个不押韵的诗,管他押韵不押韵他也能写出来,所以他的语言能力是非常强的。

然后对于一些我们在学术和产业领域里面,对于自然语言的一些典型任务,包括像文字摘要,就是说给一段文字输出一个对这个文字的摘要说明,包括对这段文字的情感的分析,包括对文字的分词,就是把里头一个词提出来,还要把这个里头的词的这个具体的实体概念实体给它列出来,包括像中英文翻译这些它都是很轻松的能予以完成。所以事实上 GPT 的这样的一个多面手的有点给人感觉无所不能的这么一个能力,使得它已经成为了下一个通用人工智能的信息系统的入口,这个是一个非常重大的历史性的变革,因为在过去,比如说无论是这个 PC 机时代还是移动互联网时代,我们信息的主要入口要么过去是像 Windows 这样的操作系统平台,要么就是像移动互联网时代,就是安卓或者苹果手机上面的各种APP,那么这里头的核心其实是操作系统和网络操作系统,它成为了系统的主要入口。

但是 AI 领域实际上一直是分散的,没有这样统一入口的态势,不存在说 AI 领域的一个真正的像Windows、安卓、 iOS 这样的 AI 操作系统,其实是不存在的。虽然有人标榜说我做了一个 AI 操作系统,那个都不是真的。那么目前以这个 ChatGPT 为代表的这类的,我们叫做 foundation model,具有很强能力的基础性模型,它确实为智能时代的信息呈现了一个统一的接口,也就是说当你把海量的数据,这些数据可能并不是这个标注的,大量的数据其实是它是自监督学习的,它是不需要标注的,自我标注然后给他用输到这个大语言模型里面,让语言模型完全记住他们里头的概念、模式这些东西。然后在这上面它就会产生非常丰富的能力,这是我刚才提的这些,然后在这个能力上就可以加入各种各样的应用,所以它实实在在的就是我们在 AI 时代里面的新型的一个操作系统,或者叫做系统的接口。关于这个专门有一个论文叫做 language models a general purpose interfaces,国外已经很鲜明的提出来了,这个就是一个信息入口的作用。另外 ChatGPT 的产业生态已经在迅速的发展中,这个 ChatGPT系列是英特网以来最具有所谓叫做现象级的,这个互联网产品在过去能达到1亿规模,网民只有两个月能完成,是前所未有的,从来没有看到这种情况,那目前围绕着 ChatGPT的这个 plugin 就是它的插件应用,正在非常丰富的迅猛的发展中。

大家关于它可以做各种各样的东西,这个代码助手,语音陪伴语音的助手,这个机器翻译, AI 客服等等。事实上 ChatGPT 的产业生态,因为它作为一个万能的人机交互接口正在形成中,而且正在形成一种颠覆式的服务模式,就未来可以想象一下,大家在对这个信息接口来说就不再需要,比如说我们掏出个手机来 APP 上输东西,敲字,在菜单上选来选去的,你可能对着手机说话就行了,完全通过自然语言交流表达你的意图,输出你的相应信息,然后系统就能够理解你,然后按照你的需求在后台去根据各种各样的插件,然后去调用相应的功能完成你所需要的服务。

所以我们可以认为我们正在走让一个全新的这个智能时代服务的一个这个关口上面,所以所有这些都标志着一个通用人工智能时代的到来。因为 ChatGPT 已经涌现了一定程度的类人语言智能和认知智能。另外这个 chat GPT 和 GPT 4的能力是多方面的,通用型的,它已经生成了一个强大的人工智能的基座,那么正在开启这个通用人工智能新时代,当然这个时代里面还会有更多的更先进的产品技术出现,大家只需要拭目以待。

下面介绍一下这个大语言模型的一些基本原理,因为前面是比较宏观的讲了一些它的能力,它的发展趋势这些问题,这里头从原理就必须要讲到这个 Transformer 的架构,这个就有点偏技术了,实际上 Transformer 架构您可以把它理解成一个编码解码器,实际上它是由编码和解码器的这两个阶段组成的。那么所谓编码实际上就是把我们的语言图像都给它通过一种向量化的表示,给它输到系统里面,所谓向量化就是有点像我们人一样,对事情要做一个编目,当然它是个非常高维的一个编码,那么在这个编码过程当中会经历过主要的是像一些全连接层,我们知道在神经网络里面,这个前向的这叫 feed forward network,这种全向的全连接层具有很强的这个函数逼近能力,它基本上可以拟合所有的函数,所以用它来记概念、记这些东西是最合适的。同时就是交织的进行这种所谓的自监自注意力机制。

自注意机制很好的可以把各种概念有机的给它关联在一起,实际上就是 encoder 的作用,那在 decode 一方就是把你编码的这些信息怎么解码还原出来,能够变成输出成你需要的内容。简单的说,所以 transfer 架构它是一个堆叠式形成的一个架构。在这样的一个统一的 Transformer 的架构的定义下,就会演化出很多不同的类别来。比较典型的就是首先以编码器为主的,叫 encoders 为主的,这里头刚才讲的Bert,还有其他的一些类型,这个都是属于偏编码的,它能够编码的话就能够进行双向关联,双向关联非常适合做这个文本的各种语义的分析地和理解。那么 GPT 系列就是decoder, decoder 是单向的,也把它叫做自回归语言模型,非常适合生成就是文字接龙这个任务,当然也有把这个做全的了,把 encoder 和 decoder 两部分都结合在一起的,也有一些这个代表性的模型。那么重点我们可以看一下这个 GPT2,就是 15 个亿参数,和这个bert做一个简单的对比。

GPT2全是decode的,一层一层垒起来的;而Bert是一个卡通人物形象,它是编码层encoder,一层一层堆叠在一起了,实际上就是通过不断的堆叠,能够让这些模型能够吸收更多的信息内容。当然通过每堆叠一层,那么它的参数就会增加很多,所以这里头有一个简单的这个示例,来看一下这个 GPT 2,它的这个文字接龙是怎么完成的。比如说你在这个下面这行输入相应的这个文字, recite the first law,然后你就要机器说,你来帮我预测一下一个最可能的词是什么?这个是 GPT 系列最擅长的一个任务,然后实际上他在处理的时候就是把这些序列,就刚才这个序列里面出现的这些词,通过编码输送到这个由 decoder 组成的一层一层的内容里面,然后每一层实际上它会组合一个非常复杂的模式,分辨和这个词代选词出现的概率的预判,每一层同时形成一个合力,所以最后来共同投票决定这个实际上会输出的下一个词是什么。

比如在这个例子里面前面写的是 Robert must Obey,那你问下一个词是最大的可能是什么呢?可能是orders,这样他就猜出来了。那么在这个过程当中要训练这样的能力,实际上主要就是靠这个所谓的自监督机制,就是其实就是完形填空,就是把这个你要猜的下一个词给他蒙住,然后把真的结果告诉他以后,大量的语料告诉他以后他来反向的训练这个每一层的这个 transformer 的这些参数,通过这样的这个完形填空的方式,让他能够更加能从这个语料的这个词嵌入当中,能精准的预测下一个输出的概率是什么。

你看到这可能太小了,这个词那就是可能预测出来这些每一个词的可能的概率,然后有一堆词的概率,它可能挑最大的那个来进行输出,那么 GPT 家族的基本的工作方式就是这样,但是不同的是从 GPT2到 GPT 4 这个首先层堆叠的层有大大增加,当然我们知道那个 ChatGPT 和 GPT4已经不公布它的那个架构参数了,所以大家无从知道,可以认为它肯定在 GPT3之上应该是增加了更多的层。

那么大家可以看一下, GPT1是有 12 层堆叠在一起的, GPT2已经到了 48 层, GPT 3 到了 96 层,接近 100 层了,所以这个不同的层数,然后每一层对应的这个注意头就是那个 attention 的那个头也不一样,数据也有增加,所以堆叠的层越多能力就越强。这是第一个。

第二个就是这个 GPT 能预测每这个下一个词的上下文的这个篇幅也急剧增加了。在 GPT 2 也它可以对 1600 个词的上下文进行分析,那么 GPT 3 已经到了 12800 多个词了,那么我们现在看到 ChatGPT和 GPT 4,它对上下文肯定是更扩大了这个窗口,所以基于这样的能力,实际上 ChatGPT 里面有三个非常重要的技术对他的这个能力的保障,特别是涌现这个认知的能力有非常重要的作用。

一个叫做 prompt tuning,叫做提示调整。第二个叫做 instruction tuning,指令调整,就是思维链。第三个是基于人类反馈的强化学习,英文就是 reinforcement learning for human feedback,这个我们可以逐个的来看一下,把一些最基本的概念说稍微说一下。

比如说机器学习,其实就是有原来就主要分成三类,一类就是监督学习。简单的说,比如说你要训练一个机器学习模型来认这两种花,怎么认?也就是把这两种不同的花在不同的光照下不同的拍摄角度,把它这个标签给它打上,这个是向日葵,那个是菊花,然后生成这个有标签的训练数据,然后拿这个数据去训练模型,这个模型实际上就是一个分类器,它可以把不同的数据分成两类,这个叫监督学习 supervise learning。

还有一类就是说我没有标签,我就把数据给你,你根据数据本身的特征去学习,这个叫做非监督,或者叫做无监督学习,英文就是 unsupervised learning。还有一种就是强化学习,就是他不给标签,但也不是说什么都没有,给你一个游戏的环境,让你这个游戏的个体在那环境里去试错,通过试错来训练自己。这个就是 Alphago 类型,像下围棋,实际上到最后其实他不是跟人下,他是靠自己跟自己这个类似周博通左右手互搏来练的,所以他已经练的可以很高,水平很高,实际本质上就是自己帮助自己。

所以对于大语言模型来说,人们提出来一个 self supervise learning,就是自监督学习。为什么不能直接采用监督学习?因为监督学习的标注的成本实在是太高了。你想象一下,如果把世界这个好几千亿的语料都拿来,每一个按照不同任务都来进行标注,这得花多少钱,花多少人工和时间,其实是不现实的。那么实际上自监督学习就是类似的机理,就是这样,比如说打个比方,以一个图像的例子,比如说你要训练这个机器试认这个字,这个手写体,然后呢实际上是把这个部分给它蒙上那贴住,然后让机器只看到这个蒙住以后留下的部分去猜这个蒙的部分,这个就是所谓的自监督学习。也就是说通过在这个数据上面引入掩码的方式来生成标签。

比如说下面这个例子也是这样,你要预测下一个词,你把下一个词给它,给它贴上,然后这个贴出来答案就是标签,然后你就送到这个语言模型里头,实际上后面例子后面有一长串的相应的相应的词,这就是自见度,这样的好处很明显,因为不需要找人标注了,按照一定的规则它就可以做掩码来生成标注数据,然后拿这些数据来训练,这样的话就大大的减少了训练的成本,你只需要生成这个 self superlearning 的数据就行,那么训练这样的原模型,实际上它原来其实在 bert之前这些模型也都有了,但是它实际上是作为一个这个基础的条件存在的,它不能直接拿来做下游任务。

也就是说当你拿到这些原始的语料,通过刚才讲的自监督方式训练模型以后,你要做各种下游的任务,比如说就相当于刚才写诗,做这个情感分析,做这些任务的时候,做分类的任务的时候,你还需要我们叫做 fine tuning,就是做微调的操作,那微调的操作实际上就是才能够真正的让那个下游的模型能够得到能力提升。

比如说这里有一个例子,你要问这个美国国旗诞生在什么地方,其实就是训练的时候就是把这个蒙上来训练,然后你在真正下游任务的时候,需要所谓的这个 fine tuning 来完成。比如说在这里写了一个例子,在 bert 和 T5 上面做方案 tune 的时候,就是生成了这个预训练模型的时候,还需要再找一部分数据,这部分数据是自己要打标签的,就跟那监督学习一样。然后对于下游任务的这些监督数据,在对语言模型的一部分地方进行监督训练,这样叫做微调,能够达到比较好的能力。

但是进入到超大语言,特别是这个 ChatGPT 以来,实际上这个微调的工作变得大为简单了,也就是说它并不需要去专门再找一批数据再做标注,而是直接写提示就行,也就是说原来是要再找一些数据标注了再训练,等到他这个 prompt 出来以后,他只需要在预训练的模型下写提示,然后他就通过提示的学习就自动的学会提示,这个时候就不是那种标签数据了。

提示其实就是一些语言的例子,它实际上是通过一种例子来学习.

等到那个 instruction 部分就更厉害了,例子都不用学了,直接发指令,也就是说你跟一个人一样,你只要给他发指令,甚至对于没见过的任务自动具备这样的能力。你原来训练的任务是能做的,任务是b、c、d,然后自动的它就会做a,所以这是三种不同的这个微调方式。再举一个更具体的例子,比如说在这是一个 bot 模型了,这个 bot 实际上就这个形象的。然后比如说这是 this is very cool 这句话,然后你要看哪些通过掩码的方式能够替代这个 very 这个词,比如说可以有pretty、really, super 都是可以的,实际上就是通过这样的方式来进行掩码来训练的。然后在训练的时候,如果刚才讲的这个prompt,那模型原来做要做这个就 tuning 的时候,是要对每一个任务再有新参数,新的这个数据进来,然后才能对每一个任务 task a, task b, task c 做这个 fine tuning 微调才能出结果。

后面就不用了,直接比如说对 a 任务你就写一个 prompt 例子,这 b 任务写一个 prompt 例子, c 任务写,写完了以后直接发给他,不用训练了,直接就出结果,直接具备这个能力。这里头也举一些这个简单的例子,比如说这个就是讲一个电影,这个电影是怎么样的,然后这里头有这个great非常棒的一个电影,一个 terrible 的电影,然后说这个电影看起来是这个 painful 的,还是artistic painful 等等。所以在训练的时候先拿这个掩码给他掩住,然后让他来练,然后再写。

就是具体的这个提示的时候,我只要把相应的这个信息发给他,比如说给他一个例子,就像这样,那么这个 instruction 就是告诉他你要把这个影评分类成好的, great 就是 positive 的和 terrible分类成 negative 的。把这例子告诉他以后这模型自动的就具备这样的能力,就不需要再训练了。

那么在这个 instruction 就比这个刚才讲的那个 prompt 还要更灵活,就相当于这样,比如说这个,这是一个训练推理的例子,也开始给一个instruction,比如说怎么样在夏天睡一个好觉这么个目标。然后这里头有两个选择,一个是把这个东西放在冰箱里,一个是把东西放在微波炉里,然后让你选哪个是对的方式,当然是冰箱里更合适,是吧?你夏天要睡觉不可能越搞越热。然后这个例子右边这个也是一个instruction,是让这个让他能够做翻译的一个例子,然后你还可以给他很多其他的 instruction 例子,下一次你让他干一个活,完全不是这里都覆盖的了。还可以让它做一个这个自然语言类似的一个逻辑推理的任务,这样的任务在前面显然都没有训练过,但是通过前面的 instruction 这个系统很快的就会掌握这样的能力,简单的总结一下,其实这个 prompt 本身它是在具有大模型的情况下去激发,进一步的激发这种模型的补全能力,本质上还属于这个语言模型任务,本身这 instruction 就比它更高了一个级别,它等于是激发了语言的理解能力,通过不同的任务的例子,然后让他掌握新的例子。

语言还有一个能力就是泛化能力,做 AI 最追求的一个东西,这里头就涉及到大家经常在看到文档里面的所谓的思维链,就是 China thought,其实就是把刚才讲的这个 prom instruction 再给它按照逻辑推理整一遍。比如说这里举个例子,简单的这个小学的这样的数学题,这个 Roger 有 5 个 tennis ball,然后他买了两罐,每一罐里头都有三个那个球,这个 tennis ball,然后问现在有多少个经典的方式就是告诉他答案就完了,然后你下一个问题就是问你这个换了一个场景了,这袋里头有 23 个苹果,然后这个苹果这个买进买出,你最后还剩几个苹果。

这样的问题实际上是咱们经常教孩子做数学题的一个方式,给他一个例子,然后让他告诉他根据题意怎么理解,然后再举一个,那么在这个思维链里面是要把这个解题的这个步骤分步骤的告诉这个机器。比如说在这个例子里面,前面这个例子是直接给了个答案,右面这个就会说我怎么算的。这个人一开始是 5 个球,然后这两个罐子里头每个罐子有 3 个,所以是 6 个球, 5 + 6 = 11,所以答案是11。

然后用这样的一个思维链的方式来更好的训练它,结果研究表明这个其实也好理解,如果只告诉答案,它只能根据一个一些表面的东西去猜下一次做的题,他就是错的。但是如果你把推理过程告诉他,他实际上是可以模仿这个思维的过程去做推理,所以他就可以得出正确的答案,那么也就是说思维链实际上是在这个 prompt 这个格式上的一个更进一步,他把原来的输入输出的模式变成输入推理过程加输出的模式,因为它这个模板这个提示模板一般就是 question 和answer,它在 question answer 之间把这个解题步骤比较细的一步一步都列出来了。这样的话就实际上帮助这个,让这个模型能更好的理解这个推理过程,能够模仿这个方式来做推理。

实际上就是把推理任务分解成这个具体步骤,这样的话用少量的例子,而不需要重新训练,所以他非常适合做那些刚才咱们见到这个数学题、小学数学题,或者是一些这个常识性的推理、逻辑推理等等研究表明,思维链对于这个大模型的认知涌现具有非常重要的作用。

另外一个很重要的技术实际上就是人类反馈的强化学习。这个人类反馈强化学习其实很有意思的是,也不是 OpenAI 提出来的,这是 17 年那个谷歌 DeepMind 提出来的,因为在这个刚才讲的类似 Alphago 这样的这个问题里面,它需要对这个 agent 这个智能体做长时间的训练,但是让智能体自己在那摸索的时候就发现那个智能体有的时候试了半天,会卡在一些局部最优的那个圈子里出不来,达不到最佳的效果。

所以在这个时候需要人在边上再加一些反馈,比如说我打个比方,比如说你训练一个智能地走迷宫,可能走着走着某一步智能你就学不出来了,这时候就需要人你试着往左走,或者说你走的这个方向不对,提示他一下就是feedback。这样的话他就在关键点上能够避免出现陷入到局部最优的情况,可以走出那个局部最优点来,最后达到一个相对好的结果。

那么 ChatGPT 实际上是把这样的方式用在了对自然语言模型的这样的训练上面,也就是说让人把这个 GPT 的输出做一个排序,通过这样的排序生成这个奖励函数。因为我们知道强化学习最重要的是要奖励函数,而且这个奖励函数其实在做强化学习时候,一般都把它认为是一种art,不是science,那需要非常精巧的去根据任务去调,越复杂的问题,那个奖励函数越复杂,所以往往这个时候就需要人来标记。但而且这个很有意思是其实人是给不出定量的 reward 来的,这就给不出一个定量的奖励。但是人非常善于排序,比如说这个东西好坏,它可以排个序,实际上是通过这个排序里面的数据来生成训练一个奖励的神经网络,然后能够更好地帮助这个GPT,能够让它的输出能符合人的需要。这就是为什么他现在说话能跟人差不多一个重要的原因。

这里头就举个例子,比如说你这有一个问题是这个什么是香蕉,让 GPT 给出一段话来解释一下香蕉这概念,那么原来这个 GPT 在训练当中这个版本,那么它会训练出很多版本,那个不同的版本的输出是不一样的,所以 openai雇了一些人,然后把他们相应的这个不同版本的这个输出的结果做一个,让这些人做一个评价。

这个评价的方式就是我刚才说的好的排前面,差的排后面,然后把这个答案按照顺序排一排,然后综合了这些排序的结果以后,我来设计一个奖励函数,然后后面我就可以拿这奖励函数去训练这个模型,本身这个训练就是不停的练,就跟这个游戏一样,自我互搏是一样。然后他让他自己去调参数,一直能练到他输出的结果,奖励函数最大、最吓人的那个评判的结果,所以这就是所谓人类反馈的强化学习。

可以说 ChatGPT 其实是把很多人工智能的方法,就当前人工智能方法做了一个大的综合。一直有人批评说这个,其实 ChatGPT 这些东西不是原创,理论上也没啥创新,没啥新鲜的,都见过了,是都见过了,但是他把这三件东西在这么大的数据规模情况下,这么复杂的模型下,把它有机的玩在一起玩到极致,确实是有相当难度的。不能低估这种集成创新的重要性。它目前已知的情况是它已经用到了这个 45 TB 的数据,这个近万亿的单词相当于这个 1351 万本牛津字典的单词量,这个数是很惊人的,以及数十亿行的源代码,有一种估计可能不精确,就是全球就是这些产生的文本,高质量的文本也就是5万亿个TOKEN,5万亿就是那 ChatGPT 这个系列已经用了1万亿就用了 1/ 5 了。所以有一个断言认为可能在两三年内,可能世界上能看到的那个语料全部都被训到大模型里面,这个就是一个真的是一个全新的时代了。

然后当然模型本身这个参数规模还有训练,刚才我讲了一万张的 V100 的这个卡,投资是 10 亿人民币 1 亿美金,但是同时要训练还花钱,这花电费很厉害,不是说光有卡就行了, GPU 还是很耗电的,所以算力的开销是一天是 63640 个 Pad Flops,大家可以算他电费得花多少钱?训练这个 ChatGPT 起码是几十亿美金起,所以是个非常昂贵的东西。好,我们现在就可以把这个 ChatGPT 的一些基本的就特征稍微总结一下。

第一条就是大道至简。为什么是这么说?因为过去从这个大练模型,CNN, RNSTMGN 这些,那么目前看起来起码在语言甚至未来在视觉上面都有可能不见得汇聚到 Transformer 架构,就是万宗皈依了是吧?只有这个最灵,为什么原因?其实它是有理论原因的,已经有人理论上证明 Transformer 架构是图灵完备的。什么叫图灵完备?也就是说世界上的这些可解的问题,这个通用的机器就是图灵完备的,因为图灵我们知道是英国的一位计算机创始时代的科学家,专门有图灵奖,它定义了什么叫图灵完备,这个是问题的可计算性,也就是说 Transformer 是一种非常通用的计算机器,所以大道至简就这个概念。

第二,暴力美学,这个大家都经常在新闻里看到,对吧?实际上最后就是靠大量的算力、海量的数据以及非常强大的驾驭这种复杂的模型工程的能力到了极致,才能使得这个模型具有极强的这个信息的获取和学习能力。第三个就是认知涌现,所谓的量变到质变,就是人们原来认为这个智能的形成可能是一个很漫长很难的过程,现在发现通过暴力美学到了模型到了一定规模,他的能力就跃迁了,是吧?超过了一定的临界点,引爆了,相变了,就完全跟原来的面目不一样了,所以这个就是所谓的涌现问题,突然一下子他就这个高级的各种认知能力都能看得到了。

最后一点就是价值对齐,其实这个也是目前 GPT 系列里面内在的,它的缺陷就是这种涌现其实是一个很非常复杂的现象,目前在首先 GPT 也没开放,然后其实对涌现的约束人肯定要比他复杂的多,但是模型是比较简单粗暴的,他就是拿了信息预测下个值,所以它既没有价值观也没有事实的各种检查。

所以大家会看到最早各种关公战秦琼这个跟你乱编造事实的东西,看确实像这么回事,但你一查事实是错的。另外就是缺乏价值观的引导,可以乱说话,说很多冒犯的话,说很多错误的话,所以这些都把它叫做illusion ,就是所谓的认知错觉。那么要想防止这些,让那个机器能够更好的遵守我们人类的道德观、伦理道德就必须要进行价值对齐,这价值对齐主要就是靠刚才讲的人类反馈的强化学习来完成。

最后介绍一下大语言模型这个认知智能的涌现到底是怎么产生的?为什么会产生这样涌现?当然这里头可能里头会涉及到的技术比较多一点。首先一个在大语言模型里面有很多,因为大语言模型目前的评测其实有非常丰富的Benchmark,有几十项之多,涉及到了很多不同能力。这里面就举了几个典型的,比如说像三位数的加减法,比如说一些翻译性的任务,比如说从打乱的词里面恢复单词,比如说像波斯语的开放语的问答,这都是一些不同的这个Benchmark。然后大家都发现这个参数就是刚才讲的这个思维链,这些能力怎么才能发挥作用呢?一般来说就要在 100 亿规模以上的参数才行,所以看到这个曲线的模式都是一样的,就在这些点上都在 100 亿左右,它的能力一下子就能上去,否则一开始感觉好像没什么进展,这个就是所谓的涌现问题。

那么当然这个涌现的时候要一定要把思维链用上,就是说如果你没有思维链的话,即使参数到了一定程度,涌现出来的能力也不太行,一旦用上思维链了,很多的能力就会比如说像这个数学题,做数学题这个一下子又会提升很多。所以这里头不明让我们要问了,就是说第一,什么是涌现对吧?涌现这个词可能词义大家都知道,但是从科学含义上到底指的是什么?第二就是这类系统的涌现的机理大概什么?这其实是目前还没有完全很好解决的一个科学问题。涌现,简单的说就是多者一眼, 量变到质变,当这个参数逐渐扩大的时候,它的能力一下子很多能力就会冒出来。当然这个很多高阶的能力其实冒出来的这个目前的情形来说还有提高的空间,因为毕竟这个大语言模型,在因果这些方面还有很大的这个未知的地方,并不是说它能够知其然,而且知其所以然的,所以这里头就有这个所谓的还原论和这个系统论的这样的科学思辨。过去的研究很多物理学包括化学都强调的是还原论,就是把复杂的世界的问题还原成它的部分的来解决。比如说这个世界的物理学是不是都归结到了这个原子分子的规律就能解,全部都能解释了,那这样。但实际上还原假说是是有缺陷的。很多复杂的问题其实是会有涌现现象,也就是说它的整体性会比部分的简单叠加要复杂很多,会产生很多新的性质。那么涌现的问题在自然界就是我们这个宏观世界上是普遍存在的,大家看到这个鸟一块飞,这个鱼群一块游,包括像这个蜂群、蚁群,大家一块行动觅食,这些都是在宏观世界上能看到涌现,包括我们人每天的交通各种大型的活动,其实这都是涌现,也就是都是从一个原来相对无序的状态,它变成一个有序的状态的一个突变相变。

那么这个其实在更微观情况下,比如说你去看这个病毒或者是这个细菌,它也是涌现,它都是按成群出现的,里头也有非常有趣的涌现现象。所以涌现实际上是一种从这个有机到无机,从这个微观到宏观,可以说是一个普适性的问题。在哲学上很多科学上面都有相当多的研究,所以可以简单的说涌现可以对它的这个类型做一个基本的分类,这是一个非常粗的一个分类。比如说这个没有反馈的,这就简单涌现,就是把系统简单的拼在一起,有反馈的就是有一定难度的涌现了,但这个涌现还属于稍微弱的涌现,而人类的科学对弱有限研究比较多,比如刚才讲的这些这个社会的蚂蚁的这些行为,包括我们互联网上这些行为。

那么还有就比较难的,比如说股票,我们知道股票是没法预测的,所以股票市场上面存在着非常复杂的反馈,所以它的涌现就变成了一个比刚才讲的那个容易预测的那个涌现要难得多的涌现了。最难的就是咱们这些跟宇宙生命、大脑这些本源性的问题,这些一般都是列在 SARS 每年年度问题多少个里面的,这些问题目前太多的未知答案,所以这种都是属于叫做强涌现,就目前科学都难以解释,那么涌现在我们的这个人工智能里面,特别是群体智能里面具有非常重要的地位。

在2017 年的国家规划里面,当时我们列了四个在群体智能领域里面,其中有一条就是激励与涌现,专门写在 17 年国家新一代人工智能的这个战略规划里面,作为国务院的文件我要发布的。那么这里头实际上本质上就是说世界上这些智能系统,它是一种动态的这个认知的复杂网络,那么实际上这个网络的这些上面,用这些行为模式的特点强弱就是一种涌现。好,那其实和大语言模型最相关的涌现还是大脑的涌现,那这里头我们也可以借鉴对大脑的这个涌现的一些研究,来看一看我们怎样看待这个神经网络这种大语言模型的涌现问题。对这样的涌现现象一般要从这个跨池子角度,从这个宏观界观、微观三个层面来看,我们知道微观这个人的大脑是由上千个神经元,人工就是自然的神经元和这个上万亿个那连接神经元的轴突这些东西组成的。那不管是人脑,你就是拿一个昆虫,比如说像果蝇,果蝇这个是物种是已经把这个神经元的结构关系研究的比较透的,它就是大概 7000 个神经元,然后里头的这个神经元连接的这个关系都已经能画出这个所谓的神经图谱来。

那么在这样的网络里面,它的微观就是单个的神经元的运行模式,那现在已经对这个单个神经元的运行模式,人类有很多的观测和分析方法,数值模拟也很清楚,那么在界观层面,也就是说你通过成千上万个这样的神经炎组成的神经的这个功能柱,是吧?还有这样神经环路,这样的研究实际上是现在人类蹲在这个如火如荼进展的,但是这类研究实际上缺乏的这个神秘环节太多,因为很简单,这个观测很难。

目前来说一种方法,就是说当你有的人得了这个脑部疾病的时候,在这个脑内部植入电极,这个电极可以对脑区内部的神经的这个邻居的团体,就是成千上万的神经元的这个脉冲细胞的一个汇总进行研究。但是这样的研数量样本很少,而且也不能实时的来弄,现在人们都在想做这种更厉害的这种显微镜的方式,非侵入的方式能够有研究,这个探索路还是很长的。

那么宏观层面,人们对脑区的这个宏观研究,这个做得很好,现在大家这个都有那个叫核磁共振, FMRI 这些设备,这个在厘米和毫米级对于这个不同的脑区的相互的,因为他是看这个脑区的血液流量来进行解码的,所以对脑区的这个协同作用关系已经有相当多的进展。所以其实涌现就是从微观的单个神经元组成神经的功能的区域或者环路,然后再组成更大规模的脑区相互作用产生的。那么其实语言能力只是一部分,脑区那像 Transformer 这样架构已经具有了千亿的这个参数了,所以它的神经元从某种意义上说和人类的这个大脑的规模也有所接近,因此也需要从宏观界观和微观来研究。

那么宏观层面就大家看到它已经具有这种能力了,是不是各种各样的能力?所以你可以拿各种各样的这个 Benchmark 来测,它能做题,能编代码,甚至能够回答一些复杂的逻辑问题。微观层面,实际上这涉及到对神经网络的这个人工神经网络的训练和这个迭代。这些问题研究有很多,目前最缺乏的是对 Transformer 语言模型的界观层面,也就是说刚才讲了它是一个堆叠式的,对吧?有按照很多层来堆叠在一起,那么每一层到底代表什么样的含义?实际上目前的科学研究也还在进展当中。

基本的一个认识是每一层负责的功能可能侧重点不一样,一般来说最较低的层负责那个偏,比如说词法,更高的就是语法语义,还有语境越来越复杂的这样的层面,所以需要研究像这个可解释性的方法,还有类似像这个就像那个神经网电极一样,对吧?我们要需要有这种探评技术,能够把这个 Transformer 内部的脑区的这些,这内部的神经元、人工神经元的一些参数规律给它有机的解读出来。

那么目前已经有一些相关的研究在做,特别是把这个人类大脑的语言处理能力和 GPT 系列的这个能力做一些类比分析,就是那么人的大脑,就是我刚才说的利用那个有一些人里面脑部植入了电极,利用这个电极里的这个信号的模式来进行解码分析,然后给人脑和这个 GPT 模型都示意同样的任务,比如说这种文字接龙的任务。

那么研究表明,实际上在起码在这个语言的这个接龙这种任务上面,他们具有类似的一些这个计算原理,比如说都可以具备在连续上下文的情况下对下一个单词进行很好的预测。另外当他发现预测和实际情况不匹配的时候,会产生预测误差,然后这个预测误差能够刺激人脑或者刺激神经这个人工神经网络进行相应的调整,都具有这个通过上下文来表示单词的能力,所以起码从目前的一些研究进展表明,这个 GPT 系列的模型在语言能力上具有了一定的类似人的计算的模式。

第二个就是说因为 GPT 4和 ChatGPT 都没公布参数,这还是对 GPT 3 里面的这个 1750 亿参数的构成可以做一个分析。首先这个参数里头有 1% 的参数是用来表达单词的,就是把这个单词通过刻画成了 12001220080 维的一个向量,比如说这个你把一个学校,比如浙大或者是北航,或者咱们这个某公司这个词作为一个向量输进去,实际上这个跟这个词相关的就有很多信息,对不对?这些信息都可以编到这个这1万多维的这个信息里面。所以在 GPT 系列里面首先它具备这样的能力,这样的话它可以把这个词跟词的相应的一些含义建立起联系好。再就是是关联,这就是那个注意力机制,就是在 1750 亿参数里头,有 30% 的参数是用来做注意力的,而且有 96 种机制来做各种注意力的分析。因为注意力实际上什么意思?就是把这个概念跟概念之间给连接在一起,所以有了这样的这个极致的这样的关联挖掘,它就能够触类旁通,能够涌现能力。所以这是第二个 30% 参数。还有最重要的最多的一份参数占据了60%。就是我刚才说的那个 feed forward 全连接层的这样的网络是用来专门记概念的,它可以把这个语法里面,这个词,这个文字里面各种各样形态的多态性的概念,多种层次的概念模式都给记住,所以说是叫细水长流般的思考,通过这样结合这三个方面的要素参数要素,它才能涌现认知能力。

那么已经有这个一些更理论的研究表明,其实人工神经网络其实是它是在一种做叫做几何流行式的表示学习,因为世界上这些数据,因为它是通过数据驱动的,数据里面其实有非常的复杂的维度信息,那么这些维度信息通过神经网络它会把它映射到一个低维的流行上,这低维流行其实对应的就是这些概念,就是相当于数据实际上是这个纷繁复杂世界的一个表征,他需要把这个世界上的各种信息给它综合在一个更低维的,可以更好地理解的这个世界上,所以就越复杂的网络,实际上它的能力的强在于它能够理解更大的世界,能够掌握更多的信息量,然后能够记住的这样的流行的容量更大。所以为什么要一定的规模的模型?就是在这个道理,因为你技术的容量不够多,那你对这个世界的理解认识就是不够深或者不够全的,那么这是一个疑点。

第二点就是这个 Transformer 网络里面这个在这个前链接层就是 FF 层,对这些概念的理解其实是比我们人说的那个概念要丰富多,它的概念很细致,比如说这边都是从那个模型里面提取的一些东西,比如在第一个例子里面是具有相同连字符的年龄,在第二个例子里面是具有相同后缀的单词。第三个例子里面是具有所有德国的一些底名。第四个是带有百分比的十进制数,第五个是代表金额的十进制数,第六个是 1819 世纪的年代,当然有数字表示的,有英文单词表示的,还有一些其他的,那就不赘述了。那么这些实际上各种各样的这种概念模式,实际上都是在语言里面这种多样性的表现。

总的研究表明,实际上是底层的话,把这个词法句法更好的记录起来,然后在堆叠上面越高往高的地方走,就把这个情境语义相应的模式给记录起来,所以它的权重是不一样的。另外就是说它实际上实现了一个叫做 key value 的子库,那个 key 就是我们刚才讲的那些概念,各种各样多种形态的概念。这个 value 是什么呢?因为我们回到刚才我们最早讲的这个模型的最强最主要的功能就是做文字接龙,就是在一个上下文情况下预测下一个词是什么。所以在预测的时候,其实这里头举了几个例子。

在预测的时候,实际上它不是一层预测的,它每一层都会出力,而每一层都会去首先去识辨出这个上下文里面它能记忆的那些概念,就是那个key,那个模式,然后从那个模式里面找到对应的这个值,这个值把若干个层的值都汇聚到一起来,形成对那个概率的判断,然后找到那个最接近的词本质上就是这个意思。

所以这里头也可以举一些例子,比如说在这是在这个第一层的第 449 号的这个 key 编码的,那实际上他记得都是什么呢?都是这个单词是以这个 substu 结尾的这些句子,看到没有?这句子全部都是以 substu 结尾的。然后在第六层这个 2546 个,这个他记得是一些和military,就是和军队有关的基地的这些词。实际上到了第六层已经出现了一些比较浅层的语义了。

到了第十层就一个更抽象的语义,就是 part of,就这个部分的这个关系,可以想见这个,这里头大家可以翻翻这个例子,其实里头它都是一些,它们里头甚至没有出现 part of 这个词对不对?但实际上它的含义都是部分的含义,那到后面就会记更多这样的东西,所以这是key,然后 value 实际上就是这些是 value 的例子,是记住了说在这样的例子底下,对这个词的这个预测的时候,它会输出什么样的值?所以也就是说它实际上是让不同的层次的这个神经网络有transformer,然后根据你输入的上下文,然后共同判断一下大家下一个那个词会是啥。但是这个判断不是一个人决定的,不是一层决定的,而是让这 100 多层甚至更高的层同时来决定。所以具有这样的能力就使得它具有非常强的精准预测一个词的能力。

但是光有这个还不够,跟我们刚才讲的那个instruction,还有思维链这些东西联系起来,这个就要涉及到一个叫做情境学习的概念,因为在情境学习里实际上是通过举一些例子,让模型快速的生成某一方面的能力。比如说这里面有一个例子,我们让他首先学习一些名人的这个生平事迹,比如说这是一个爱因斯坦的一个简介,爱因斯坦是一个德国的什么理论物理学家,他做过什么什么伟大的工作,所以通过这个他记住了一个概念,爱因斯坦跟这堆词是有关系的。然后比如说同时他也记住了甘地、居里夫人等等这些相应的词。然后这时候你来教他,比如说爱因斯坦是德国人,甘地是圣雄,甘地是印度人,然后下一个就让他回答居里夫人是谁,他就通过这个例子他就能判断出来。

为什么呢?因为前面的语言模型我们知道它具有很强的预测能力,它可以把这个通过概念上下文进行匹配,然后实际上通过例子来说,就是把这些概念更进一步的连接起来,使得它能够根据某种特定的任务,然后去选取那些跟这个任务最有关的那些概念,然后来做小样本。的推理。我们这个叫做,在我们的学术语里面把它叫做贝叶斯的网络,因为贝叶斯网络对数据要求很低,但是过去我们训练一个贝叶斯网络是要人设计的,但是在大语言模型里面它是可以动态生成的,通过这个它很强的这个文字的刚才讲的这几种能力来根据不同的任务来动态的组件自己的这个贝斯网络。

讲到这我们可以把这些信息技术点糅合在一起来,给这个涌现机顶做一个大概的分析。

首先第一个通过海量的语料,这个语言模型在各个层面上都得到了足够多的概念模式。第二个通过概念模式它可以实现文字接龙,这跟人的对话方式是一样。第三个就是刚才讲的通过这种 instruction 的这个情景学习,他把这些概念组建成了一个动态的网络,根据所需要的任务能够激活这些网络,然后达到人所期望的能力,就是一个非常强的泛化能力。当然为什么现在可能要到百亿级别才能涌现出来?主要的原因就是这里都存在一个信息瓶颈问题,就是你要想让他根据这样的任务,你只给少量的信息,就是例子,它能够组建,你首先要把足够多的概念给记住,对吧?这概念模式要足够多,如果不够多没有超过那个阈值,那么你在即使给施少量的这个instruction,它也是没办法完成刚才讲的这个逻辑推理过程的。所以为什么?这也就是为什么要训练这么大的网络的原因。

将来这里头有一个很有意思的问题,就是这样庞大的网络如果用在比如说我们的A部门,用到B部门,对吧?或者用到其他的C部门里面,是不是需要记住这些全量的概念信息,或者说换而言之,我怎么样从一个大的网络里面将来给它缩小、蒸馏出一个面向业务的这个信息,而不丢失所需要的这些概念网络?这个就是一个现在很多人正在研究的问题,可能需要通过更高超的这个模型的,像蒸馏、压缩、剪枝的技术,然后再根据业务场景去识别出哪些概念模式是不可缺的,然后要保留这部分概念,而让这个模型逐渐忘掉那些可能无关的,因为他记的东西太多了,实际上有一部分肯定是没用的。

怎么样忘掉这些,然后就把那忘掉部分给它删掉,这样来压缩模型的规模,使得我们最后这样的一个,比如说中小尺度的规模的模型能够适用于我们业务的需求,那么实际上大语言模型咱们前面讲了它很多经验的地方,但是它还存在幻觉,这个幻觉的原因是什么啊?那这里头也举了一些例子,比如说这大,这都是大语言模型里面出现一些典型的例子,比如说单复数不一致,比如说这地方主语是个kiss,这是个复数,本来应该用are,还用那个is,还有这个数算错了。

这个大家都常见,在很多那个新闻报道里都有,比如说这个地方这个概念错误,他说这个奖杯放不到这我的一皮箱里面,因为这奖杯太小了,这显然是一个自我矛盾的陈述。那还有这个指代错误,比如说本来是一个女的she,上面写的是 she sister,下面却出现了 he指代的,发现了这个变化不一致,所以这些其实都是相当于模型里面经常犯的。那么在 ChatGPT 发表以后,其实在 GPT 4 对这些问题做了进一步的改进,有所改观,但是仍然不能完全避免。这个原因其实是也很好理解,因为这个现在的语言模型重点是实现了这个语言方面的人脑语言方面的功能,那么它的认知能力是因为我们大量的认知的载体是在语言上,所以通过外溢的效应使得它也具备了一定的认知分析推理能力。但是从根本上说这部分还是语言功能,而人脑内部除了语言只占脑区的一部分,只是一个脑区,它还有很多其他部分的东西,包括像逻辑推理、记录世界知识这个情境意图这些地方,在脑神经研究表明它不在那个语言脑区里面,所以那么我们目前的语言能力对吧?虽然已经很强了,但是并不能覆盖人的所有能力,因此出现这样那样的不足也是很容易理解的。那这里头可以举一个也是这个研究的一些很有趣的例子。

大家可以看到在逻辑推理方面,在这个这是 GPT 3 它表现出来的一些很有意思的不足。比如说有一个很荒谬的场景,就是让告诉语言模型说你怎么把这个你的沙发搬到你们家房顶上,那开始问 GPT 3 GPT3 就是说我怎么办?我要找一个很好的梯子,是吧?再找一个力气很大的朋友帮我一块搬,如果是人的话就这个人反正是就可以,就说我租一个力量很大的精灵,然后帮我搬好。这是第一个,这个看来人跟机器说的差不多,那看第二个就是说限制这些条件,就是你要搬这个你沙发到房顶,但是不让你用滑轮。那这时候 GPT 3 就是说提供的一个概念,就是我把这个沙发用绳子捆上,然后连到我车上,所以这时候他答的就不太好了。那人怎么回答?就是说我要搞个大调车,然后通过大调车调到房顶上去,所以人明显比他答的要好。如果你再施加这个逻辑的一些限制条件,不能用各种工具的话,吊车也不让用,梯子也不让用,那这个 GPT 3 你看就乱说了,他说就要把沙发给它 p 成好几块,然后把那个沙发底从窗户里塞进去,就是胡乱编造一些东西,那人就是还可以想出别的招来。所以你可以看出来,这个实际上当你设计例子的时候,你要区别人跟机器还是比较容易的,就是你把这个推理的要求条件越变难的时候,你会发现他就想不出来了,他就开始乱造了。

所以这种幻觉实际上是大语言模型就是很难避免的,而且语言模型还会发现它其实对这个模式统计模式非常依赖。比如说我们在研究表明里头,你可以插入一些特定的模式,比如说标点符号或者是数字系列,可以彻底把它搞乱,把它脑子给搅糊,因为它这个这些模式进去以后,它可能会产生一些你意想不到的结果,根本就弄不对的结果。所以这也就引发了一个新的学问,叫做提示攻击,就是怎么样写一个,写些提示,把这个语言的一些后门、一些弱点给它揭露出来,这变成了一个新的研究方向。另外刚才讲的这个它的推理能力、事实性错误还是广泛存在的。而且作为一个这个语言模型,实际上你可以想到人其实在学习语言的时候,并不像他一样要把世界上所有的东西都收集齐了来学,人其实从小学习人都是少量的数据,逐步的我们就可以学习,因此在语言模型方面还有相当多的可以进一步改进的地方,那改进的方法就是要进入模块化的设计,那现在已经有很多研究工作在这么做了,把这个逻辑推理、世界知识、情境这些变成不同的模块和语言的模块进行一个结合,同时对于更为丰富的认知的这样的能力。因为它本身现在已经具有了一定的类似人的能力,就需要建设计更精巧的评测的方法和评测的数据集。所以这也是能够对目前我们国内正在不断涌现的大炼大模型的生态进行一个更好的引导。

因为在没有一个非常客观的、全面的,就像对于人策智商的这样的 Benchmark 情况下,那每个商家都可以造一个模型,然后举几个好例子,就是说我已经具备了这样的能力,但实际上可能拿出来就不是这么回事,所以这将来这些对这个语言模型的评测是要标准化的。

其实在我们国家甚至在国际上都有现在的标准化的工作在做。这个标准的评测就比过去的那个模型、机器学习模型,包括一般的深度学习模型就更难一些,因为它实际上已经具备了一定的认知的能力以后,所以对这个 Benchmark 的设计就要从语料核心和认知结合语料语言学和这个认知心理学的很多方法,设计相应的一些这个评测任务。

另外就是语言模型的方法,它的内在的不足使得我们还需要用借鉴人工智能的一些其他方面的技术来进行进一步的补偿和增强,最可以互补的就是符号主义里面的知识图谱,还有逻辑推理、认知这方面的东西。实际上这个对于语言模型来说,它只是在认知模型里面的语言功能。那么刚才讲的,比如说逻辑分析是吧?对于经验的反省,对于这个事实的验证,对于输出的纠错,这些都可以设计不同的模块和这个大语言模型连通的进行工作,使得它能够更好的符合人类的需要。那事实上已经有这样的工作在做,比如说这是一个比较去年的一个论文,也是国内做的,把这个我们前面讲到了在 Transformer 的全连接 FF 层,实际上是有这些 key value,记录了好多和事实有关的内容,所以当你有一个比较可靠的知识图谱的情况下,你可以把知识图谱的信息的结果输到这样的语言模型里面,对语言模型内部存在的这些 key 进行检查,然后去发现那些错误的地方。

比如说这里头就举了例子问这个某一个,比如说斯里兰卡的首都,对吧?发现它是错误输出的,这时候就要根据语言模型内部的这个工作机理,找到这些错误的地方,然后去修正那一层这个它的权重,这样的话可以进一步的减少将来出现一些事情错误的可能。所以要全面的解决这个问题,实际上是需要根据我们的业务的需要,比如说我们在某部门的内部系统下,我们本身在不同的领域已经有很好的数据积累,要把这些大的这个知识给更好的集合起来,然后和未来的语言模型形成一个有机的互动关系。一方面可以利用语言模型的方,帮助让我们去自动的提取知识,包括实体关系的抽取,然后纳入到我们的这个动态的这些知识库里面。同时需要用知识图谱的让实时检查推理,对它起码进行检查,进行分析判断,进行纠错,以保证它的输出能够符合我们业务的需求。很多部门肯定好有很多问题需要咨询,这咨询通常现在的系统是现场的或者是有客服的,那么 GPT 系统具有这样的语言对话能力以后,他对这个征大的互动咨询问答将来的自动化是非常有帮助的。但是他的问题还是刚才说的他有这个幻觉的问题,所以他有的时候会输出一些错误的回答或者是不正确的事实。要保证我们的系统也能够是有权威的答案,因此刚才讲的怎样利用知识的方法能够对这种语言模型生成内容的准确性进行校验,进行一个把关,这个就变成一个非常重要的技术问题和实践当中要探索和摸索的地方。

报表的分析生成,我相信这个这种语言模型也是比较擅长的,也是能做的。那么当然这个需要更多的这个和专业知识进行结合,要把知识给它变成这个instruction,设计成一个 prompt 的集合。现在大家知道做这个 promp 已经有可能变成一个新职业了,叫做这个提示工程师,本质上就是说要学会怎么样跟这种大语言模型打交道,能够更好地诱导它产生相应的结果,并不是说你简单的说话就可以达到自己喜欢的效果的,专业的领域需要有专门的人来设计相应的提示,而且对这个提示要进行专门的维护和管理。未来这个对提示可以说不亚于咱们对于像信息系统的管理一样。同时因为这样的语言模型配合知识图谱,它的认知分析、判断能力、决策能力也会显著增强,因此将来也可能辅助我们的对于这个的合规审查、风险分析判断做一些更好的注意。

那么我们知道大量的文件其实它都是自然语言的,在司法部门,比如说在智能司法领域里面,对于司法案中的归档,还有这些司法案件的快速的判决等等,已经在用人工智能在一些做一些辅助的手段,因为它本身具有了自然语言的很强的处理能力以后,甚至它具有这个常识推断能力,你只要把这你的这个裁决、判决这个逻辑写出来,写成这个思维链,他可能就能够像真的像法官一样做一些简单的判断。有相应的规范流程经验在里面,如果你给以相应的示例,把这个思维链写清楚,可能他就能部分的甚至相当一部分像法官,审核人员一样做这个审核。另外这各种行为可以用系统更好的自动的来分析和识辨,以便更早的发现各种风险,提高监管水平。这个 AI 的发展已经在迅速改变我们的生活,当时我们觉得是天际线冒出几个点,就像那个太阳出生一样,可能现在太阳已经出了一半,等它整个这个红日当头的时候,我们会彻底感受到我们这个世界正经真正进入到了智能化的时代。