圆咕噜咕噜 发表于 2024-9-8 07:40:42

知识分享系列五:大模型与AIGC

大模型(LLM,Large Language Mode)是指通过在海量数据上依托强大算力资源举行训练后能完成大量不同卑鄙任务的深度学习模型。大模型主要用于举行自然语言相关任务,给模型一些文本输入,它能返回相应的输出,完成的具体任务包括生成、分类、总结、改写等。
2023年以来,ChatGPT引爆全球大模型市场,国内众多大模型先后公测,众多互联网领军者投身大模型事业,使得大模型市场进入“百团大战”阶段,2023年成为公认的“大模型元年”。
企业用户方面,大模型的应用速度之快超乎想象。2023年初,企业管理层对大模型的话题还停顿在大模型是什么,是不是概念炒作,现如今,大模型早已经从饭后谈资走向落地应用。大企业管理层们盼望了解到大模型能为企业发展带来哪些厘革,大模型的应用路径是什么,如何提升大模型的投资回报率,以及应该为拥抱大模型做哪些准备。而且,大模型吸引的人群也愈发广泛,不仅吸引CIO、CTO等技术管理者的关注,CEO、CMO 等非技术类管理者同样期待大模型在业务中发挥代价。这些变化表明,大模型的厘革之力正日益得到产业界的承认。
根据“爱分析”的数据表现,2023年中国大模型市场规模约为50亿元(人民币,下同)。2023年,企业在大模型方面的采购特点是论证多、采购少,但各企业纷纷计划在2024年开始大量释放大模型预算,因此市场规模将大幅增长,预计达到120亿元。
盼望这篇文章帮助各人对生成式AI大语言模型等建立了更多认知,了解了ChatGPT等火爆应用下的技术根基,在他人为层出不穷眼花缭乱的新应用焦虑时,能看清此中的本质。
目次
一、基本概念
1.1 AI
1.2 机器学习
1.3 监督学习
1.4 无监督学习
1.5 强化学习
1.6 深度学习
1.7 生成式AI
1.8 大语言模型
二、大语言模型
2.1 特点介绍
2.2 Transformer
2.2.1 主要技术
2.2.2 基本原理
2.3 炼成GPT
2.3.1 无监督学习预训练
2.3.2 监督微调
2.3.3 强化学习
2.4 调教GPT
2.4.1 小样本提示
2.4.2 思维链
2.5 武装GPT
2.5.1 索引增强生成
2.5.2 程序辅助语言模型
2.5.3 推理行动结合
参考文献
一、基本概念

在AI技术不停演进的过程中,出现了许多名词,包括机器学习、监督学习、深度学习、生成式AI、无监督学习、强化学习、大语言模型等等,本节来捋一捋它们的关系。先上一张来自于良心B站up主(GenJi是真想教会你)的关系图。
https://img-blog.csdnimg.cn/direct/ceaa5f65448f4852a9bd60abf00eccc5.png
图1 AI相关热门词汇关系图
1.1 AI

AI也叫人工智能,是盘算机科学下的一个学科,AI是一个非常大的概念,旨在让盘算机系统去模拟人类的智能,从而办理题目和完成任务。早在1956年,AI就被确立为了一个学科范畴,在以后数十年间履历过多轮低谷与繁荣。

1.2 机器学习

机器学习是AI的一个子集,它的焦点在于不必要人类做“显式编程”,而是让盘算机通过算法,自行学习和改进,去辨认模式、做出预测和决策。比如如果我们通过代码告诉电脑,图片里有赤色的是玫瑰,有橙色的是向日葵,那程序对花种类的判定就是通过人类直接明确编写逻辑达成的,不属于机器学习;但如果我们给电脑大量玫瑰和向日葵的图片,让电脑自行辨认模式,总结规律,从而能对没见过的图片举行预测和判定,这种就是机器学习。机器学习范畴下有多个分支,包括监督学习、无监督学习、强化学习。
https://img-blog.csdnimg.cn/direct/ee3d3a9bba944b9e8f60d70926061834.pnghttps://img-blog.csdnimg.cn/direct/4ade8a5db47e478aa55fe8ac746c3d7d.png (1)显式编程
(2)机器学习
图2 显式编程与机器学习的区别

1.3 监督学习

在监督学习里,机器学习算法会接受有标签的训练,数据标签就是盼望的输出值,以是每个训练数据点都既包括输入特征,也包括盼望的输出值。算法的目标是学习输入和输出之间的映射关系,从而在给定新的输入特征后,可以或许准确预测出相应的输出值。
经典的监督学习任务包括分类(把数据划分为不同的类别)、回归(对数值举行预测)。
分类:难以对猫狗的照片和照片对应的猫狗标签举行训练,然后让模型根据没见过的照片预测是猫还是狗;
回归:拿一些房子特征的数据,比如面积、卧室树是否带阳台等和相应的房价作为标签举行训练,然后让模型根据没见过的房子的特征预测房价。

1.4 无监督学习

和监督学习不同的是,无监督学习的数据是没有标签的,以是算法的任务是自主发现数据里的模式和规律。
经典的无监督学习任务包括聚类(把数据举行分组,比如来一堆消息文章,让模型根据主题或内容的特征自动把相似文章举行组织)。

1.5 强化学习

强化学习则是让模型在情况里采取行动,得到效果反馈,从反馈里学习,从而能在给定情况下采取最佳行动来最大化奖励或是最小化丧失。
强化学习跟训小狗类似,刚开始的时候小狗会为所欲为做出许多动作,但随着与训犬师的互动,小狗会发现某些动作可以或许得到零食,某些动作没有临时,某些动作乃至会遭受处罚。通过观察动作和奖惩之间的联系,小狗的行为会逐渐接近训犬师的盼望。
强化学习可以应用在许多任务上,比如说让模型下围棋,得到不同行动导致的奖励或丧失反馈,从而不停在游戏里优化策略,学习如何采取行动达到高分。

1.6 深度学习

深度学习也是机器学习的子集,但不属于监督学习、无监督学习和强化学习的任何一类。深度学习是机器学习的一个方法,焦点在于使用人工神经网络模仿人脑处理信息的方式,通过条理化的方法提取和表示数据的特征。神经网络是由许多基本的盘算和储存单元构成,这些单元被称为神经元,这些神经元通过层层毗连来处理数据,并且深度学习模型通常有许多层,因此称为深度。
比如要让盘算机辨认小猫的照片,在深度学习中,数据首先被通报到一个输入层,就像人类的眼睛看到图片一样;然后数据通过多个隐蔽层,每一层都会对数据举行一些复杂的数学运算,来帮助盘算机理解图片中的特征,比方小猫的耳朵、眼睛等等;最后盘算时机输出一个答案,表明这是否是一张小猫的图片。
神经网络可以用于监督学习、无监督学习、强化学习,以是深度学习不属于它们的子集。
https://img-blog.csdnimg.cn/direct/de688c060f364594b4bd80b661527ffe.png
图3 深度学习示意图

1.7 生成式AI

生成式AI是深度学习的一种应用,它利用神经网络来辨认现有内容的模式和结构,学习生成新的内容,内容形式可以是文本、图片、音频、视频等。

1.8 大语言模型

大语言模型也叫LLM(Large Language Model),也是深度学习的一种应用,专门用于举行自然语言处理任务。大语言模型里面的大字说明模型的参数目非常大,大概有数十亿乃至到万亿个,而且训练过程中也必要海量文本数据集,以是能更好的理解自然语言以及生成高质量的文本。
大语言模型的例子有非常多,比如国外的GPT、LLaMA,国内的ERNIE、ChatGLM等,可以举行文本的理解和生成。以GPT3这个模型为例子,它会根据输入提示以及前面生成过的词,通过概率盘算,逐步生成下一个词或token来输出文本序列。
但不是所有的生成式AI都是大语言模型,而所有的大语言模型是否都是生成式AI这也存在些许争议。前半句很好理解,生成图像的扩散模型就不是大语言模型,它并不输出文本。
同时有些人以为不是所有大语言模型都是生成式AI。这是因为有些大语言模型由于其架构特点不得当举行文本生成,比如,谷歌的BERT模型。BERT模型的参数目和训练数据很大,属于大语言模型。在应用方面,BERT理解上下文的本领很强,因此被谷歌用在搜索上,用来提高搜索排名和信息择要的准确性;它也被用于情感分析、文天职类等任务;但同时BERT不擅长文本生成,特别是连贯的长文本生成,以是有些人以为此类模型不属于生成式AI的范畴。

二、大语言模型

2.1 特点介绍

大语言模型首先必要通过大量文本举行无监督学习,借助海量文本数据,模型能更多了解单词与上下文之间的关系,从而更好地理解文本的含义,并生成更准确的预测。
大语言模型的“大”,不止是指训练数据量的巨大,也是指参数(模型内部变量,可以理解为是模型在训练过程中学到的知识,参数决定了模型如何对输入数据做出反应,从而决定模型的行为)的巨大。在过去的语言模型研究中发现,用更多的数据和算力来训练具有更多参数的模型,许多时候能带来更好的模型表现,特别是当参数大于一定的规模后,模型就能举一反三,具备许多预料之外的本领。以OpenAI的大模型GPT1为例,它有1.17亿个参数;到了GPT2参数有15亿个,而GPT3的参数又增长到了1750亿个。这让大模型不像小模型那样范围于单项或某几项任务,而是具有更加广泛的本领,比如在这之前我们大概要训练单独的模型,分别去做总结、分类、提取等等任务,但现在一个大模型就可以搞定这一切,像ChatGPT、文心一言、通义千问等AI谈天助手,都是基于大语言模型的应用。
如果说2022年年底,ChatGPT的惊艳表态是大语言模型公众认知被显著提升的里程碑,那它技术发展的里程碑其实要回溯到2017年。2017年6月,谷歌团队发表论文《Attention is all you need》,提出了Transformer架构,自此自然语言处理的发展方向被改变了,随后出现了一系列基于Transformer架构的模型。以是大语言模型的发展早就如火如荼了,并不是像许多人以为的到了2022年才有所突破。但因为ChatGPT直接向公众开放,而且能让用户在网页上用对话的方式举行交互,体验很流畅丝滑,大众的眼光才被吸引过去。

2.2 Transformer

2.2.1 主要技术

ChatGPT背后的模型GPT,首字母分别表示Generative Pre-trained Transformer,即生成式预训练Transformer,也表明Transformer是此中的关键。
在Transformer架构被提出之前,语言模型的主流架构主要是循环神经网络,简称RNN,Recurrent Neural Network。RNN有两个较大的毛病:
(1)无法并行盘算,训练服从低:RNN按顺序逐字处理,每一步的输出取决于先前的隐蔽状态和当前的输入,要等上一个步骤完成后才能举行当前的盘算;
https://img-blog.csdnimg.cn/direct/fbeae600a34b46fcbaefa83a10a3e338.png
图4 RNN按顺序逐字处理
(2)RNN不擅优点理长序列,也就是长文本:由于RNN的架构特点,词之间间隔越远,前面对后面的影响越弱,以是它难以有用捕获到长间隔的语义关系,但在人类自然语言中,依赖信息之间的间隔较远是很常见的情况。
https://img-blog.csdnimg.cn/direct/c7a42392f8bf42c88d09fb07e285dca7.png
图5 RNN无法很好关联较远信息间的依赖
为了捕获长间隔依赖性,后来也出现了RNN的改良版本——LSTM长短期记忆网络。但是这也并没有办理传统RNN的无法并行算的题目,而且在处理非常长的序列时也依然受到限制。
https://img-blog.csdnimg.cn/direct/a88c9a9fa72846d198df43deefe471ff.png
图6 RNN与LSTM
后来,Transformer踏着七彩祥云出现了,它有本领学习输入序列里所有词的相关性和上下文,不会受到短时记忆的影响。能做到这一点的关键在于Transformer的自留意力机制。
(1)主要技术一:自留意力机制
简朴来说,Transformer在处理每个词的时候,不仅会留意这个词本身以及它附近的词,还会去留意输入序列里所有其他的词,然后别的每个词不一样的留意力权重。权重是模型在训练过程中通过大量文本逐渐习得的,因此Transformer有本领知道当前这个词和其他词之间的相关性有多强,然后去专注于文本里真正重要的部门。纵然两个词的位置隔得很远,Transformer依然可以捕获到他们之间的依赖关系。比如这个例子,单从语法上来讲,it可以指的是离得更近的street,也可以是离得更远的animal。这里,自留意力机制捕获到了it和animal之间更强的关系,因此更集中在animal上。
https://img-blog.csdnimg.cn/direct/d21b4dba15d14d449b207b7a3c908a3f.png
图 7 自留意力机制说明
(2)主要技术二:位置编码
除了自留意力机制,Transform的另一项关键创新是位置编码。在语言里,顺序很重要,纵然句子里包罗的字都是一样的,顺序不一样也能导致意思大相径庭,这是为什么自然语言处理范畴会用序列这个词,因为它表示一系列按照特定顺序排序的元素。前面提到RNN和人类阅读文本一样,对输入序列同样是按顺序依次处理,这就造成了训练速度的瓶颈,因为只能串行,没办法并行,也就是没法同时去学习所有信息。
Transforming再把词输入给神经网络前,除了会先对词举行嵌入转换成向量,也就是把词各用一串数字表示,还会把每个词在句子中的位置也各用一串数字表示,添加到输入序列的表示中,然后把这个效果给神经网络大模型,既可以理解每个词的意义,又可以或许捕获词在句子中的位置,从而理解不同词之间的顺序关系。借助位置编码,词可以不按顺序输入给Transformer,模型可以同时处理输入序列里的所有位置,而不必要像RNN那样依次处理。那么在盘算时,每个输出都可以独立的盘算,不必要等候其他位置的盘算效果,这大大提高了训练速度,训练速度一快,训练出巨大的模型也不是那么难了。
https://img-blog.csdnimg.cn/direct/5fe6dcf6fd1e4fc6b4a7169fe0a87da1.png
图8 位置向量与词向量
自《Attention is All You Need》发表之后,Transformer以及它的变体已经被广泛运用在大型数据集上来训练大语言模型。以是Transformer架构对我们当下能拥有那么多牛叉的大语言模型功不可没。

2.2.2 基本原理

在《Attention is All You Need》的论文里,Transformer可以被看作由两个焦点部门构成,编码器encoder以及解码器decoder。
https://img-blog.csdnimg.cn/direct/f358f2c2d29a4529add47efa05e025b1.png
图9 Transformer主要结构
假如我们要这个Transformer做英语翻译法语的任务,给编码器输入一句英语,解码器返回对应的法语。这个过程中发生了什么呢?
(1)编码器部门
① token化
我们先看编码器部门,输入的文本首先会被token化,也就是先把输入拆分成各个token。Token可以被理解为是文本的一个基本单位,短单词大概每个词是一个token,长单词大概被拆成多个token,取决于不同的token化方法。每个token会被用一个整数数字表示,这个数字被叫做token ID,这样做是因为盘算机内部是无法储存文字的,任何字符最终都得用数字来表示。
https://img-blog.csdnimg.cn/direct/e5ac849c8abd46048f091d2a49480940.png
图10 token化过程
② 向量嵌入
有了数字表示的输入文本后,再把它传入嵌入层。嵌入层的作用是让每个token都用向量表示,向量可以被简朴的看为一串数字。为了方便示意,这里把向量长度简化为三,但实际中向量长度可以非常长。
https://img-blog.csdnimg.cn/direct/6021fd548b514ba38a483024b1cedb46.png
图11 向量嵌入过程
题目来了,之前明明已经有单个整数表示各个token了,怎么现在又要用一串数字表示各个token?此中一个缘故原由是,一串数字能表达的含义是大于一个数字的,能包罗更多语法、语义、信息等等。这就好比男人和女人这两个词,他们都在描述人类,但性别又是完全相反的。如果只用一个数字表示,这两个数字大小之间应该间隔很大,还是应该间隔很小的;但如果有多个数字,我们就可以举行更多维度的表示,就比如说第一个数字可以表示性别,第二个表示年龄大的程度,第三个表示社会阶级高的程度。以是,嵌入层的向量不是任意搞出来的,里面包罗了词汇之间,语法语义等关系。相似的词所对应的嵌入向量,在向量空间里间隔也更近,而一些没啥关系的词之间的间隔就更远。这有助于模型通过盘算向量空间里的间隔,去捕获不同词在语义和语法等方面的相似性。而且,男人与国王的差别,和女人与女王的差别可以被看作是相似的,这也可以在多维向量空间里显现。因此词向量不仅可以帮模型理解词的语义,也可以捕获词与词之间的复杂关系。我们这里为了直观是用三维向量空间表示的,把向量长度相应简化成了3,而提出Transformer的论文里向量长度是512,GPT3是12288,以是可以想象能包罗多少信息。
https://img-blog.csdnimg.cn/direct/4382f758fdcb4a6b88c02ca7cff5801b.png
图12 向量空间示意图
通过编码器的嵌入层得到此向量后,下一步是对向量举行位置编码。位置编码就是把表示各个词在文本里顺序的向量和上一步得到的词向量相加,然后把得到的效果传给编码器。这样做的意义是模型既可以理解每个词的意义,又可以或许捕获词在句子中的位置,从而理解不同词之间的顺序关系。
③ 位置编码
https://img-blog.csdnimg.cn/direct/e8a6edede1034084a1bbd0c7c4b46a4a.png
图13 位置编码过程
④ 编码器
接下来就到了编码器这个焦点部门,它的主要任务是把输入转换成一种更抽象的表示形式,这个表示形式也是向量,即一串数字,里面既保存了输入文本的词汇信息温顺序关系,也捕获了语法语义上的关键特征。
https://img-blog.csdnimg.cn/direct/d868e9f00b1743aca7cb47cf3448afa5.png
图14 编码器编码过程
捕获关键特征的焦点是编码器的自留意力机制。模型在处理每个词的时候,不仅会关注这个词本身和它附近的词,还会关注输入序列中所有其他词。自留意力机制通过盘算每对词之间的相关性来决定留意力权重。如果两个词之间的相关性更强,他们之间的留意力权重就会更高。比如这个例子,单从语法上来讲,it可以指animal,也可以指street,而自留意力机制发现it与animal更强的关联,以是给animal的权重会更大一些。
https://img-blog.csdnimg.cn/direct/4bc2cf15415a4c8697b9c0f9fdee15df.png
图15 自留意力机制示意图
由于自留意力机制对上下文的全面关注,在输出的表示效果里不仅包罗这个词本身的信息,还融合了上下文中的相关信息,上下文在语言里很重要,也能揭破相同词的不同含义。以是在解码器输出的效果里,表示各个词的向量会根据上下文信息举行调整,同一个词根据上下文有不同的抽象表示。
https://img-blog.csdnimg.cn/direct/5615db7e01f94c34998606cc0ab9a208.png
图16 词本身的信息和上下文信息融合
自留意力机制涉及到许多盘算步骤,这里主要是做个简朴的科普,更多细节可以在论文原文里了解。而且Transformer实际上使用了多头自留意力,也就是编码器不只有一个自留意力模块,而是有多个,每个头都有它本身的留意力权重,用来关注文本里不同特征或方面,比如有的关注动词,有的关注修饰词,有的关注情感,有的关注命名实体等等。而且他们之间可以做并行运算,也就是盘算进展上互不影响。每个字留意力头的权重都是模型在之前的训练过程中,从大量文本里逐渐学习和调整的。在多头自留意力后面还有一个前馈神经网络,它会对自留意力模块的输出举行进一步的处理,增强模型的表达本领。
https://img-blog.csdnimg.cn/direct/98a95addbc3941c2b6cf9e8288a9e902.png
图17 前馈神经网络
编码器在Transform里不止有一个,实际上是有多个堆叠到一起,每个编码器内部结构一样,但不共享权重。这样模型能更深入的理解数据处理更复杂的文本语言内容。
https://img-blog.csdnimg.cn/direct/2861b752a5e7413db502188209932eb1.png
图18 编码器堆叠
(2)解码器部门
解码器是大语言模型生成一个个词的关键。通过前面的编码器,我们有了输入序列里各个token的抽象表示,可以把它传给解码器。解码器还会先吸取一个特殊值,这个值表示输出序列的开头。这样做的缘故原由是解码器不仅会把来自编码器的输入序列的抽象表示作为输入,还会把之前已经生成的文本也作为输入,来保持输出的连贯性和上下文相关性。刚开始的这轮还没有任何已生成的文本,以是把表示开头的特殊值先作为输入。
https://img-blog.csdnimg.cn/direct/61d53b6cd3e549a2a11736a917f18052.png
图19 解码器示意图
具体的生成过程仍旧是要经过多个步骤。
① 带掩码的多头自留意力
首先,和编码器一样,文本要经过我们已经了解过的嵌入层和位置编码,然后被输入进多头自留意力层。但它和编码器里的自留意力层有点不一样。当编码器在处理各个词的时候,它会关注输入序列里所有其他词,但解码器中自助力只会关注这个词和它前面的其他词,后面的词要被遮住不去关注。这样做是为了确保解码器生成文本时遵循正确的时间顺序,不能给他偷看到后面。在预测下一个词时,只使用前面的词作为上下文,这种类型的多头自留意力被叫做带掩码的多头自留意力。
https://img-blog.csdnimg.cn/direct/177fa020ed8f404bac944c565cf9a1fa.png
图20 带掩码的多头自留意力机制
② 另一个多头自留意力层
带掩码的多头自留意力是针对已生成的输出序列的,解码器还有个多头自留意力层,这里就是前面编码器所输出的输入序列的抽象表示所派上用场的地方。留意力会捕获编码器的输出和解码器即将生成的输出之间的对应关系,从而将原始输入序列的信息融合到输出序列的生成过程中。
https://img-blog.csdnimg.cn/direct/494c86b7526b4bfab33f1d33ebaa48c0.png
图21 解码器的两个多头自留意力层
③ 前馈神经网络、线性层和Softmax层
解码器里的前馈神经网络(Feed Forward)作用和编码器里的类似,也是通过额外的盘算来增强模型的表达本领。而且和编码器一样,解码器同样是多个堆叠到一起的这可以增长模型的性能,有助于处理复杂的输入输出关系。
解码器的最后阶段包罗一个线性层和一个Softmax层,他们俩加一块儿的作用是把解码器的输出表示转换为词汇表的概率分布。
https://img-blog.csdnimg.cn/direct/94c5636c77b34f4d832b4633272cf209.png
图 22 线性层和Softmax层
词汇表的概率分布代表下一个被生成token概率,那么有些token的概率就会比其他的高。在大多数情况下,模型会选择概率最高的token作为下一个输出。那现在我们知道了解码器本质上是在猜下一个最大概的输出,至于输出是否符合客观事实,模型无从得知。以是我们能常常看到模型一本端庄的胡说八道,这种现象也被叫做幻觉。
https://img-blog.csdnimg.cn/direct/7a4cead848bb4bcbb514b4924e1aabe7.png
图23 词汇表的概率分布
解码器的一整个流程会重复多次,新的token会持续生成,直到生成的是一个用来表示输出序列结束的特殊token,那现在我们就拥有了来自解码器的完备输出序列。
(3)各类Transformer架构
以上描述的是《Attention is all you need》里的原始Transformer,编码器用来理解和表示输入序列,解码器用来生成输出序列。实际上在原始架构的基础上,后续出现了一些变种,主要有三个类别:仅编码器、仅解码器以及编码器解码器。
https://img-blog.csdnimg.cn/direct/db28177608d340a787e2b988f1132375.png
图24 Transformer主要架构
① 仅编码器模型
仅编码器模型也叫自编码器模型,只保存了原始架构里的编码器,BERT就是这种模型的一个例子。此类模型实用于理解语言的任务,比如掩码语言建模,也就是让模型猜文本里被遮住的词是什么。情感分析,让模型判定文本情感是积极还是消极等等。
② 仅解码器模型
仅解码器模型也叫自回归模型,只保存了原始架构里的解码器,GPT系列都是这种模型的例子。这类模型非常擅长通过预测下一个词来实现文本生成。我们已经在ChatGPT身上见识过了。
(3)编码器解码器模型
编码器解码器模型也叫序列到序列模型,同时保存了原始架构里的编码器和解码器,T5、BART都是这种模型的例子。此类模型实用于把一个序列转换成另一个序列的任务,比如翻译总结等等。

2.3 炼成GPT

要得到一个ChatGPT拢共分几步,必要四步。
(1)第一步:通过大量的文本举行无监督学习预训练,得到一个能举行文本生成的基座模型。
(2)第二步:通过一些人类撰写的高质量对话数据对基座模型举行监督微调,得到一个微调后的模型,此时的模型除了续写文本之外,也会具备更好的对话本领。
(3)第三步:用题目和多个对应答复的数据,让人类标注员对答复举行质量排序,然后基于这些数据训练出一个能对答复举行评分预测的奖励模型。
(4)第四步:接下来让第二步得到的模型对题目生成答复,用奖励模型给答复举行评分,利用评分作为反馈举行强化学习训练。
2.3.1 无监督学习预训练

在第一步的预训练中,首先必要海量文本作为质料,让模型从中学习。比如GPT3这个基座模型的训练数据有多个互联网文本语料库,覆盖册本、消息文章、科学论文、维基百科、外交媒体、帖子等等,训练数据的整体规模是3000亿的token。此中,短的英文单词大概一个词是一个token,而长的词大概被分为多个token。而中文的话所占的token数目会相对更多,有些字要用一个乃至更多token表示。
https://img-blog.csdnimg.cn/direct/d0884c417db4437b9bc41b6022e4cf7c.png
图25 GPT3的训练数据
有了大量可用于训练的文本后,要采用无监督学习的方式训练模型。和无监督学习相对的是,监督学习模型会接受有标签的训练数据,标签就是盼望的输出值,以是每个训练数据点都既包括输入特征,也包括盼望输出值。而无监督学习则是让模型在没有标签的数据上举行训练,以是模型要本身找出数据中的结构和模式。以GPT3为例,训练过程中它会利用海量文本自行学习人类语言的语法语义,了解表达结构和模式。具体来说,模型会先看到一部门文本,基于上下文尝试预测下一个token,然后通过比较正确答案和它的预测,模型会更新权重,从而逐渐能根据上文来生成合理的下文。并且随着见过的文本越来越多,它生成的本领也会越来越好。但预训练并不是一个容易的过程,也是这四个步骤里最耗时费力烧钱的。以GPT3为例,虽然官方还没有公布准确数据,但大体估计他经过了数月的训练,用了成千上百个V100 GPU烧了几百万美元。

2.3.2 监督微调

预训练的效果是得到一个基座模型,基座模型并不等同于ChatGPT背后的对话模型。因为此时模型有预测下一个偷看的本领,会根据上文补充文本,但并不擅长对话。比如,你给它一个题目,它大概模仿上文帮你继续生成更多的题目,但不答复你的题目。为了办理这点,我们必要举行第二步,对基座模型举行微调。
微调就是在已有模型上做进一步的训练,会改变模型的内部参数,让模型更加适应特定任务。换句话说,为了训练出一个擅长对话的AI助手,必要给基座模型看更多的对话数据,但微调的成本相比预训练低许多,因为必要的训练数据规模更小,训练时长更短。
https://img-blog.csdnimg.cn/direct/942416b4d32347e7877ed215020dad39.png
图26 监督微调示意图
在监督微调过程中,模型不必要从海量文本学习了,而是从一些人类写的专业且高质量的对话里学习。这相称于既给了模型题目,也给了模型我们人类中意的答复,属于监督学习,以是这一过程被叫做监督微调,Supervised Fine-Tuning,简称SFT,完成后会得到一个SFT模型,它与步骤一里的基座模型相比,更加擅长对题目做出答复。

2.3.3 强化学习

为了让模型的实力继续被提升,还可以举行第三步和第四步,让SFT模型举行强化学习。强化学习是让模型在情况里采取行动,得到效果反馈,从反馈里学习,从而能在给定情况下采取最佳行动来最大化奖励或最小化丧失。
https://img-blog.csdnimg.cn/direct/9dac1143a5894425b24175ee2abcfeff.png
图27 强化学习示意图
强化学习的过程跟训小狗类似,随着和训犬师的互动,小狗会发现某些动作能得到零食,某些动作没有零食,某些动作乃至会遭受处罚,通过观察动作和奖惩之间的联系,小狗的行为会逐渐接近训练时的盼望,要让ChatGPT的模型乖乖当一个乐于助人的AI助手也是一样的原理。我们可以让ChatGPT对题目做出答复,然后让人类评估员去给答复打分,打分主要是基于3H原则(Helpful有用性、Honest真实性、Harmless无害性)。如果打分高的话,模型能学习到要不屈不挠;如果打分低的话,模型就学习到要予以改正。
但是靠人类给答复一个个打分,成本极高服从极低,以是在强化学习前必要训练一个奖励模型,它是从答复以及答复对应的评分里学习得到的,得到评分数据的方式是让微调后的GPT模型,也就是第二步里得到的SFT模型,对每个题目生成多个答复,然后让人类标注员对答复质量举行排序。虽然还是免不了要借助标注员的劳动,但一旦有了充足的排序数据,就可以把数据用在训练奖励模型上,让奖励模型学习预测答复的评分。
https://img-blog.csdnimg.cn/direct/102a210863d04a429037c41038ad77ec.png
图28 ChatGPT强化训练过程
强化学习里,ChatGPT模型的最初参数来自之前得到的SFT模型,但会随着训练被更新;奖励模型的参数则不再见被更新,它的任务就是对模型生成的内容打分。在经过一轮又一轮迭代后,模型会不停优化策略,答复的质量会进一步提升,强大的ChatGPT就在不停学习中炼成了。
2.4 调教GPT

ChatGPT等AI谈天助手偶尔候像个博览群书又善解人意的天才,偶尔候像个喝了二两酒后前言不搭后语的傻子。针对这种现象,越来越多人开始研究怎么调教出一个聪明的AI谈天助手。提示工程就是研究如何提高和AI的沟通质量及服从的,焦点关注提示的开发和优化。
https://img-blog.csdnimg.cn/direct/7115af9351444602a2b6b7a3ce53e703.png
图 29 ChatGPT的胡说八道现象
提示就是我们给AI谈天助手输入的题目或指令,AI会根据提示内容给予回应。在进入提示工程之前,我们先要了解ChatGPT的谈天助手存在的范围性。他们背后的大语言模型是用海量文本训练出来的,因此擅长模仿人类语言表达,也从那些内容里学到了不少知识。他们的回应都是根据提示以及前面已生成的内容,通过持续预测下一个token的概率来实现的。但同时对于他们不了解的范畴,他们并不知道自你缺乏那方面的知识,简朴来说就是使劲猜后面应该说什么,加上生成过程中也没有反思本领,以是会常常看到胡说八道的同时还布满着自大。
https://img-blog.csdnimg.cn/direct/6e433e675106441a8a666b14cd278f86.png
图30 提示与答复

2.4.1 小样本提示

为了调教AI给出想要的答复,第一个办法是用小样本提示。我们许多时候都是直接丢题目或指令给AI这种属于零样本提示,就是没有给AI任何示范,不一定和我们想要的效果相符。但如果我们让AI答复前给他几个对话作为示例,用样本对他举行引导,AI模型就会利用上下文学习本领,一方面记忆那些内容作为知识,另一方面像示范那样模仿着举行回应。有了小样本提示后,再问AI类似的题目,他就能给出和提示示范相似的答复了。小样本提示的另一个好处是,由于AI回应的内容风格会大概率遵循我们给的示范,我们也就不消多费口舌给AI提要求,可以让它自行从前面的示范答复里意会。
https://img-blog.csdnimg.cn/direct/b240666e69bd4a53bd0fc617604b68f8.png
图31 小样本提示

2.4.2 思维链

小样本提示偶尔也起不到很大的作用,比如AI非常不擅长做数学相关题目,纵然我们用样本示范一些正确的效果,到它做的时候依然掉链子,比如下面的例子里面,所有奇数相加后的效果是四十一不是三十七,但题目在于AI生成每个token所用的时长是差不多的,不会因为某个词必要涉及更多的思考而耗费更多时间生成那个token,以是盘算效果就被他糊弄过去了,前面有正确的示范答案也没有什么帮助,这时候可以借助思维链。
https://img-blog.csdnimg.cn/direct/d8ab8e8c0a8b4ee48f0c1915d7123bd3.png
图32 AI盘算数学题
思维链最早是谷歌在2022年1篇论文里提出的,作者发现思维链可以显著提升大语言模型举行复杂推理的本领,特别是在算术知识和符号推理等任务上。运用思维链的方法是我们给AI的小样本提示里不仅包罗正确的效果,也展示中央的推理步骤,AI在生成答复时也会模仿着去生成一些中央步骤,把过程举行分解,这样做的好处是肚子小点不容易因为步子太大而扯着,就像被老师点名答复题目时,站起来刹时就给出正确答案的难度系数很高,但如果说多说些废话,把思考步骤也讲出来,一方面可以拖时间,有更多思考时机,另一方面也有助于我们分步骤想,更偶尔机得到正确答案。
https://img-blog.csdnimg.cn/direct/b2010a70fbda4aa895c90e94df02ba19.png
图33 思维链示意
思维链也可以用在数学盘算之外的许多方面,借助思维链,AI可以在每一步里把留意力集中在当前思考步骤上,减少上下文的过多干扰,因此针对复杂的任务有更大概率得到准确的效果。在思维链的相关论文里,作者还提到,纵然我们不消小样本提示,只是在题目后面加一句let’s think step by step,让我们来分步骤思考,也能提升AI得到正确答案的概率。这是一种成本非常低的方法,只必要加上简朴一句话,AI就会自行生成中央步骤举行推理。

2.5 武装GPT

ChatGPT之类的AI大语言模型虽然博览群书,但在某些方面也始终存在短板,比如编造事实、盘算不准确、数据过时等等。为了应对这些题目,可以借助一些外部工具或数据把AI武装起来。实现这一思绪的框架包括RAG(索引增强生成)、PAL(程序辅助语言模型)、ReAct(推理行动结合)。
2.5.1 索引增强生成

AI大语言模型所拥有的知识受到训练数据的影响,如果训练数据里对某个范畴的文本覆盖不多,AI学到的也不多,就没法很好的帮我们答复相关题目,因此在小众细分范畴上,AI的表现有大概不尽人意。而且像公司内部数据,个人私密文件等,也都不大概作为公开大语言模型的训练数据,我们没法指望ChatGPT能帮我们答复相关题目。一个应对方法就是我们可以提供外部文档,让模型访问外部知识库,得到及时且正确的数据,生成更可靠和准确的答复。这种架构叫做检索增强生成Retrieval Augmented Generation(RAG)。
具体来说,外部知识文档要先被切分成一个个段落,因为大语言模型一次性能吸取的文本长度有限,然后每个段落会被转换成一系列向量。向量可以被看作是一串固定长度的数字,然后储存进向量数据库里。当我们提出题目的时候,输入的提示也会被转换为向量,然后查找向量数据库里和用户的查询向量最为接近的段落向量。找到以后,段落信息会和原本的用户查扣题目组合到一起,一块传给AI,这样AI就能把外部文档的段落作为上下文,别的里面的信息给出更严谨的答复。因此你可以对外部文档里任何内容举行疑问,纵然AI模型从来没有受到过那些内容的训练。
https://img-blog.csdnimg.cn/direct/eb39591e10604fd689db402f7cecfa31.png
图34 向量数据库生成过程
https://img-blog.csdnimg.cn/direct/07f762d994c14aa5bc00694d9f7d107b.png
图35 查找向量数据库
RAG有利于搭建企业知识库或个人知识库,ChatGPT的一些插件就是基于RAG架构的,官方也推出了上传PDF后,对PDF提问的功能,如果你会使用GPT的API,还可以用代码实现本身的增强索引生成。

2.5.2 程序辅助语言模型

大语言模型还有一个题目是我们没法把它用作盘算器。当我们问他一个数学盘算后,他没有真正帮助做盘算,只是在猜下一个最大概出现的token来生成答复。如果我们想让AI充当网店客服,他虽能巧舌如簧的介绍产物,却也会告诉客户错误的订单总额,这很伤害。但是如果我们不要他做盘算,而是把盘算后的效果告诉他?
Program-Aided Language Models(程序辅助语言模型),简称PAL,可以帮助我们应对此类题目,它最早在2022年1篇论文里被提出。PAL的焦点在于我们不让AI直接生成盘算效果,而是借助其他善于做盘算的工具,比如Python,我们给AI的要求变成了在计划盘算步骤时生成得到盘算效果所需的代码。
https://img-blog.csdnimg.cn/direct/ea4909e29e7048d8a947197cf9645e38.png
图36 PAL应用
具体来说,首先为了让AI遵循我们的要求,可以借助思维链。首先在提示里通过小样本提示给模型示范如何分步骤思考,写出办理题目所需的变量赋值、数学运算等等代码,让模型照猫画虎。
https://img-blog.csdnimg.cn/direct/5418cc2433a14150a21b2c8ce9cf832e.png
图37 借助思维链提取变量等
在用户提问后,把用户的题目和我们已有的提示模板举行拼接,一并给到AI,让AI生成代码。接下来把AI返回的答复给到Python解释器,让Python解释器执行,并返回盘算的效果。这个效果可以再给回到AI,让AI带着盘算答案对用户的题目举行妥善回复。那相称于我们借用了大语言模型接受题目的耳朵、思考的脑子、说话的嘴,以及代码解释器做运算的手。
https://img-blog.csdnimg.cn/direct/6aff086a4a4a40ff95e6b70c1af63a45.png
图38 Pyhton解释器生成效果
ChatGPT的Advanced Data Analysis功能可以被当作PAL的一个示例。借助内置的python解释器,ChatGPT能用编程逻辑和代码执行更准确的解答题目。如果会写代码的话,结合GPT的API自行实现程序辅助也是比较容易的。
https://img-blog.csdnimg.cn/direct/c74ac0f1a2b8495a823653f0dfaedb3c.png
图39 ChatGPT的Advanced Data Analysis功能

2.5.3 推理行动结合

AI大语言模型还有一个范围性,那就是它所了解的知识自然受到训练数据日期的影响,比如说模型是客岁训练完成的,训练数据里一定不包罗今年的消息,但模型也无从得知训练完成后发生的事情,这被称为知识截断。当我们问模型最近发生的事及时,模型要么会回复已经过时的信息,要么会胡编乱造一通,但重新训练模型的成本又是相称高的,也无法彻底办理数据过时的题目。
如果AI能对不了解的知识上网搜索,把找到的答案告诉我们就好了。但它怎么知道要去浏览什么网站,浏览时应该关注什么关键词,去找相关信息呢?2022年,一篇标题为《ReAct:在语言模型中协同推理与行动》的论文提出了ReAct框架,它不是热门前端框架那个react,而是Reason和Action,推理与行动结合的意思。React的焦点在于让模型举行动态推理,并采取行动与外界情况互动,它同样可以和思维链结合。
我们会用小样本提示展示给模型一个推理与行动结合的框架,也就是针对题目把步骤举行拆分,每个步骤要经过推理、行动观察。推理是针对题目或上一步观察的思考,行动是基于推理与外界情况的一些交互,比如用搜索引擎对关键字举行搜索,观察是对行动得到的效果举行查看。
举个例子,如果问一个知识阶段在2022年1月的AI约莫模型,2022年欧冠的冠军是哪个球队?他是无法答复上来的,但如果把搜索引擎作为AI可交互的工具,结合ReAct框架,他得到答案的过程大概会是这样:
(1)首先针对题目他会思考,要答复这个题目必要去查找赛果信息。这个AI能借助Bing,以是他的后续行动是搜索。
(2)接下来他开始观察行动带来的效果,也就是得到了一系列包罗欧冠信息的网页。针对上一步行动的效果,他开始了新一轮推理,某个消息网站的链接标题提到了决赛,以是大概包罗必要的信息,因此对应这一步的行动就是点进那个链接。
(3)进入网页后,他观察到有一段话提到了夺冠球队,并且有决赛对手和比分信息。于是针对这些信息,他继续思考下一步应该举行引用,给用户提供答案。因此最后一步行动就是把查到的信息举行总结,告知用户最终答案。
https://img-blog.csdnimg.cn/direct/9c0912b36df543f0b5860d860f00f675.png
图40 ReAct解题过程
通过ReAct可以看到模型一步步接近答案的任务办理轨迹与人类很相似了。通太过布推理的思维链,模型不仅可以得到更准确的答案,而且我们也可以通过这些轨迹举行验证。观察和行动步骤增长了与外界情况的交互,可以或许帮助模型突破一些固有限制,比如在搜索引擎输入关键字,查看网页上的信息等等,可以减少知识阶段带来的影响。将ChatGPT的Web Browsing功能,就是增长了与Bing搜索举行交互的本领,从而可以或许答复及时信息。这有利于用户对信息来源的可靠性和真实性举行验证。
而且ReAct框架的action行动不专指搜索和浏览网页,而是AI大语言模型所支持的任何行动。比如如果模型可以和代码解释器交互,那运行代码可以被作为行动选项;如果模型可以访问外部文档,那从文档里查找关键字可以被作为行动选项;如果模型可以调用某个应用的API,那和那个应用交互也可以被作为行动选项。要把不同外部数据和工具为模型所用,用代码实现的话,可以借助langchain等框架,帮助简化构建大语言模型应用程序的流程。

参考文献

1. 2023大模型厂商全景报告——爱分析
2. 【包教包会】一条视频速通AI大模型原理——GenJi是真想教会你——https://www.bilibili.com/video/BV17t4218761?p=1&vd_source=b5a8d779f9baa477c71fc9faad3e2e0c
3. ChatGPT调研报告——哈工大

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
页: [1]
查看完整版本: 知识分享系列五:大模型与AIGC