数智化转型网szhzxw.cn 数字化转型网专题栏目 ChatGPT大语言模型的原理(中)

ChatGPT大语言模型的原理(中)

数字化转型网(Professionalism Achieves Leadership 专业造就领导者)人工智能专题

与全球关注人工智能的顶尖精英一起学习!数字化转型网建立了一个专门讨论人工智能技术、产业、学术的研究学习社区,与各位研习社同学一起成长!欢迎扫码加入!

我们知道了GPT1将投喂的语料,利用12层的Transformer解码器进行语义提取和上下文分析,然后进行自监督预训练和有监督微调,达到很高的文字理解和处理能力,从而奠定了大语言模型的基础。

那么这一讲我们来介绍下GPT1改进到GPT2和GPT3的技术科普。当然我们知道OpenAI最耳熟能祥的是2023年3月发布的ChatGPT4。今天我们主要看下GPT2和GPT3为ChatGPT4的发布奠定了什么样的技术基础。在下一讲中我们给大家讲解GPT4,也就是ChatGPT4的原理科普。

首先我们来看GPT2的技术,GPT2是OpenAI 在2019年2月发布的,对应的论文叫:“语言模型是无监督的多任务学习器”。那GPT2跟GPT1对比,有什么改进的地方呢?总的来说,GPT2主要做了两点:

  1. 将模型变大,获得模型更强的语义提取能力;
  2. 引入零次学习的方法提高模型的泛化性。

一、GPT2:模型变大

首先看模型变大这件事情。当GPT1发布后,Google在2018年10月,也就是4个月后,发布了自己的大语言模型BERT,对应的论文叫: 深度双向Transformer预训练提高模型语言理解能力。

BERT对比GPT1采用了Transformer的编码器的结构。因为它没有采用带掩码的自注意力机制,所以它就不是在做单词接龙。

它在做可以看到文字上下文的完形填空。所以BERT对比GPT1, 采用了一个更简单的技术路线。比如BERT面对一个语料“我想{     } 一部安卓手机”,它的自注意力机制可看到语料的全部上下文,包括“我想”以及“一部安卓手机”,那么它就很容易判断出中间空出的部分大概率是“买”或者“购买”。

这里可以看出BERT的论文为什么叫“深度双向Transformer”了。这个“双向”就是说BERT可以看到文字的前后两个方向。而GPT1只能看到文字的前向方向。

通过这样的完形填空式的自监督训练,BERT也可以获得很强的语言理解能力。相比较,GPT1选择了单词接龙,这个更难的任务,比BERT更适合做生成式AIGC任务。所以我们现在最耳熟能详的是ChatGPT, 而不是Google的BERT。但BERT有它自己的优势,它在多模态语义识别的时候,配合视觉Transformer的图片处理,显现了强大的图文对比和图文匹配能力。BERT的结构在图片标题生成,多模态上下文理解上显示了强大能力。这个以后我们在讲多模态模型的时候再讨论。那BERT除了采用Transformer的编码器做文字理解的完形填空外,还做了一件什么事情呢?它就是采用了比GPT1更大规模的模型参数,在性能上碾压了GPT1。具体来讲,BERT-Large模型,使用了24层的Transformer的编码器,比GPT1的12层的解码器提高了2倍;

同时BERT的词向量的向量长度为1024,比GPT1的768的长度长[做一个模型变大动画,12层变24层,词嵌入输入的时候的词向量蓝色的条条从768长度变成1024的长度。

所以BERT的参数量超过3亿4千万。而GPT1的参数只有1亿1千7百万,基本多了三分之二。因此BERT的性能是超过GPT1。

针对这样的情况,OpenAI的科学家想,既然BERT可以做模型放大的事情,那么我们GPT也可以做。所以GPT2的模型参数对比GPT1做了这样的调整。

我们看到,GPT2最大的模型采用了48层的Transformer解码器,词嵌入向量长度变成1600,参数总量变成15亿4千200万。所以模型对比BERT变得“更深更宽”。比较BERT的3亿4千万的参数。GPT2最大的模型比BER T大了5倍多。自此,人工智能领域的“军备竞赛”就此开始。

GPT2 拥有15亿4千200万的参数,那么训练这些参数就需要更多的文字数据语料。GPT2采用了“WebText”的数据集训练模型,其包含了4500万条网络爬虫从互联网上爬下来的网页数据。“WebText”包含了800万个文件总大小有40GB,是一个非常大的文本数据集。

OpenAI也用了Common Crawl海量网络文字数据集。

我们知道网络爬虫爬的数据是噪音是很大的,也就是说很多文本是不包含有价值的语义信息的无效文本。为了解决这样的问题,OpenAI特意去类似美国的天涯社区的网站Reddit上去爬了很多点赞很高的高价值博文的文字信息,保障了训练语料的质量。

二、GPT2:零次学习

通过以上的模型扩大以及采用更多的海量训练语料的方式,GPT1的能力得到了提升。那我们会问,GPT2对比GPT1有没有结构或者方法的创新呢?如果只是单纯提高模型规模,这样的方式太简单粗暴了。而且我们知道即使扩大模型规模,也不代表模型性能一定好。针对这个疑问,OpenAI指出,GPT2的第二个创新点就是引入零次学习(zero-shot)的方法,提升模型的泛化能力。GPT的泛化能力,我们在上一讲中也提到过,就是自然语言处理(NLP)会涉及到非常多的下游任务,比如分类,蕴含,相似性比较,翻译、文本续写,智能推荐等等。

我们希望GPT的泛化能力好,就一个模型可以都把这些自然语言处理的任务都很好的解决。那么GPT2如果用上一期讲的GPT1有监督的微调的方法实现各种多任务,以期达到泛化性要求,会有什么问题呢?

当GPT2的参数达到15亿多的时候,如果我们对不同的自然语言处理任务,都引入标注数据来微调训练,这个工作量也是非常大,甚至不可能的。即引入新的标签和标注语料做大量的下游任务的模型训练,对GPT2来说就不可行。

那么OpenAI的计算机科学家就指出,当模型变得非常大,已经用海量语料自监督的预训练以后,我们其实是不需要再进行有监督的微调了。GPT2因此放弃了GPT1提出的自监督微调的工作了。

如果放弃做下游任务的微调,GPT2又怎么知道一个自然语言任务怎么完成呢?比如怎么保障GPT2能够把“我想买一部安卓手机”翻译成“I want to buy an Andriod”类似的任务呢?这个时候就引入了零次学习(zero shot)的概念。 OpenAI的科学家指出GPT2是一个基于零次学习的无监督的多任务学习器,也即是GPT2论文的名字的由来。

为了理解零次学习,我们来看这张图:

在这个图中,我们如果让一个人工智能模型,认识一只斑马。如果我们从来没有投喂给模型任何斑马的图片数据,假设模型能够在未来识别出一张斑马的图片。那么我们管这个就叫“零次学习”。零次学习的zero-shot的意思就是一次也没有见过,但是一猜即中!这个图中,因为模型见过马跟驴子的图片资料,就学习到了马长的什么样子;模型看过老虎跟财狼,这些身上有条纹的动物图片资料,就学习到了动物的身上条纹是什么样子;模型看过企鹅和大熊猫的图片资料,就学习到了黑白色的动物是什么样子。这样如果告诉模型 “斑马长得像马,身上有条纹,并且是黑白色的”。那么模型第一次见到正在斑马的图片,它通过通过之前的图片数据的训练,就能识别出一张斑马图片了。这个就是零次学习!

这个例子是图片的例子,便于我们理解。那么放到GPT2的自然语言处理的多任务中,如果模型不做多任务的微调,它怎么能够通过零次学习完成任务呢。我们来看一个例子,假设这是一段GPT2在自监督预训练过程中被投喂的没有标注过的语料。

我们知道GPT2通过自监督的预训练,可以很好的理解这段语料的语义。那么这段文字的语义在讲什么呢?我们看看第一行“I’m not the cleverest man in the world, but like they say in Frech….”这段语料很明显提到了英文和法语对同一句话的说法。那么这段语料会给GPT2带来理解英语翻译法语的知识。包括下面每行的语料,都在讲英语和法语翻译相关的知识。另比如,GPT2学习到了这个语料。那么GPT2就有机会学习到了中文翻译成英文的知识。

这样,如果GPT2被投喂海量的跨语种之间的翻译相关知识的语料,进行无监督即自监督的学习。那么GPT2慢慢就会知道怎么把英语翻译成法语,把中文翻译成英文了,或者把英文翻译成俄文等等。那么后续我们给这样一个提词器问题:

(翻译成英文, 我想买一部安卓手机).

那么GPT2就可以把“我想买一部安卓手机”成功翻译成“I want to buy an Android”。GPT2即是没有做过翻译“我想买一部安卓手机”这句话的任务,它也可以零次的成功翻译成正确的英文。这就是无监督的零次的多任务学习!

   我们再来看问题回答的自然语言处理任务,假设我们有这样的语料投喂给GPT2,进行自监督的预训练。那么GPT2就可以学习到问题回答的自然语言处理任务了。GPT2就学习到了怎么去回答一部小说比如《红楼梦》的相关问题。

那么如果后续我们给一个提词器问题(回答问题, 水浒传中宋江到底是不是为了梁山泊好),的时候,GPT2即是从来没有学习过回答这个问题,只要原来预训练的时候,GPT2被投喂过关于《水浒传》的讨论或者问题回答的相关语料。那么GPT2可以零次的总结出,“宋江总体为了梁山泊好,但也有名利心”这样的答案出来。这样GPT2就具备问题回答这样的自然语言任务能力了。以上过程中我们发现,我们不需要引入任务有监督的标签,也不需要标注语料。

以上就是GPT2的原理。对比GPT1,GPT2主要就是进行了模型扩大,然后通过海量的语料的投喂,GPT2具备无监督的零次学习的多任务能力了。这里海量参数和数据投喂训练带来的多任务的零次学习能力,我认为就是我们常提到的大模型的涌现能力。

三、GPT3

那我们来进一步来看看GPT3, GPT3的对应论文是:语言模型是少次学习器。

GPT3对比GPT2又做了2件事:

  1. 模型进一步扩大;
  2. 对比零次学习,引入少次学习的方法。

01 GPT3:模型扩大

首先来看模型扩大。当OpenAI科学家尝到了模型参数扩大带来的精度泛化性提升的甜头后,他们就进一步用更多的数据来训练一个更大的模型。我们来看下GPT3的参数规模。

我们看到GPT3最大的模型是1750亿参数,对比GPT2的15亿4千200万的参数,参数规模翻了近116倍。我们看到1750亿参数的GPT3,采用了96层的Transformer解码器,词嵌入向量长度变成12288。另外多头注意力中用了96个128长度的注意力头。当然OpenAI的科学家也训练了不同规模的GPT3用来做消融实验。这里的GTP3-XL其实就是类似GPT2,GPT3-Small就是类似GPT1。GPT3的模型参数量已经跟GPT4一样了,包括现在我们用到的主流大模型也基本是1750亿这样的参数规模。 模型越大能力越强,是基于人工智能神经网络的Scaling law的出的结论。当然当下也有争议是不是模型越大能力越强,这个大家可以研究思考下。

伴随着这么海量的参数,GPT3使用了更大的数据集来训练,GPT3的数据集总的来说来自于5方面:清洗过的Common Crawl、Webtext2、Book1、Book2和维基百科,涵盖了网络爬的脏数据、高质量网络文本数据、图书数据和维基知识等。我们看到这5大数据集分别占了训练数据的60%、22%、8%、8%、3%。

所有的训练token加起来有近5千亿条,非常非常巨大。可以看到GPT3这样海量的参数和训练数据规模,它是非常难以训练的。可见,底座大模型的预训练是非常昂贵的一件事情。

02 GPT3:引入少次学习

类似GPT2,GPT3的创新也不仅仅是模型扩大的工程创新。在方法方面,GPT3创新性的提出了少次学习(few-shot)的方法。

在GPT2中我们提到了零次学习(zero-shot),就是在GPT做下游的自然语言处理任务,比如翻译、分类、推理、问题回答的时候,都是没有参考样本的。

所以GPT2在做任务的时候,完全基于模型自己预训练获得的知识、推理和泛化能力,在没有任务相关的现有样本参考的前提下,完成工作。然而这样对人工智能模型是太苛刻了,因为我们知道即使是人类,比如我们给一个人安排任务的时候,如果我们知道这个人之前没有做过这个任务的经验,我们会给他/她一些参考案例,便于他/她可以参考仿造去做。比如我们让一个人写一个工作总结,我们可能会把一些别人做过的工作总结怎么写的给他/她看看。

基于这个思想,GPT就考虑少次学习(few-shot)的方法。具体比如说,让GPT3做一个英语翻法语的翻译任务的时候,我们会给他几个例子,然后再问GPT3,奶酪cheese翻译成法语怎么翻?这样GPT3就可以更精准的完成任务。

另外,介于零次学习和少次学习,GPT也可以考虑一次学习(one-shot)

只给模型一个任务参考样本。这样节约样本准备的工作量。当然一次学习的精度高于零次学习,低于少次学习。

 这里需要注意的是,GPT3实现少次学习或者一次学习的时候,提供的样本或者叫样例是不用于训练GPT3的模型的。假设我们提供一个样本,就去训练,它是这样一个过程。

我们发现,如果有一个样本,我们就去通过梯度更新来调整GPT3模型的参数,这件事件是难以实现的。因为GPT3有1750亿的参数,如果每个样本都去训练模型,这个算力代价特别大。所以OpenAI通过海量数据自监督的预训练好GPT3后,就不再做任何微调方面的模型训练了。所以,我们少次学习和一次学习的样本是通过提词器提供给GPT3的。这就是我们现在经常提到的提词器工程的原理。这样做也有一定的弊端,比如模型本身不会学习到通过提词器提供的样本的知识,每次任务的时候,使用者都要重新提供少次学习或者一次学习的样本。当然这个问题可以通过上一讲提到的LoRa等PEFT的微调方法来解决。这个以后我们讲大模型应用的时候再来讲解。

以上就是GPT3的原理。总的来说,GPT3能力已经非常强了。我们现在使用的大模型的能力基本是GPT3都具备了。那问题是,为什么最后火起来的是GPT4呢?那么GPT3到GPT4还欠缺什么呢?我们回想下,我们在讲Transformer, GPT1到GPT3,一直没有关注的一个问题是什么?对了,就是安全问题。

我们发现到直到GPT3的训练,我们没有考虑任何模型安全的技术问题。我们投入给GPT的语料如果没有清洗监督,或者用一定的技术确保GPT输出内容的安全性,人工智能是非常危险的。GPT可能会给出暴力、种族歧视、宗教、伦理等内容的安全问题。GPT4就是在解决GPT的安全问题。当安全问题得到解决后,我们才迎来了我们的人工智能大模型。

声明:本文来自时代平方AI,版权归作者所有。文章内容仅代表作者独立观点,不代表数字化转型网立场,转载目的在于传递更多信息。如有侵权,请联系我们。数字化转型网www.szhzxw.cn

本文由数字化转型网(www.szhzxw.cn)转载而成,来源于时代平方AI;编辑/翻译:数字化转型网(Professionalism Achieves Leadership 专业造就领导者)默然。

免责声明: 本网站(http://www.szhzxw.cn/)内容主要来自原创、合作媒体供稿和第三方投稿,凡在本网站出现的信息,均仅供参考。本网站将尽力确保所提供信息的准确性及可靠性,但不保证有关资料的准确性及可靠性,读者在使用前请进一步核实,并对任何自主决定的行为负责。本网站对有关资料所引致的错误、不确或遗漏,概不负任何法律责任。 本网站刊载的所有内容(包括但不仅限文字、图片、LOGO、音频、视频、软件、程序等) 版权归原作者所有。任何单位或个人认为本网站中的内容可能涉嫌侵犯其知识产权或存在不实内容时,请及时通知本站,予以删除。http://www.szhzxw.cn/76833.html
联系我们

联系我们

17717556551

邮箱: editor@cxounion.org

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

关注微博
返回顶部