十分钟理解ChatGPT的技术逻辑及演进(前世今生)

FreeBuf.COM网络安全行业门户,每日发布专业的安全资讯、技术剖析。

FreeBuf+小程序把安全装进口袋

从头条、公众号上多个宣传来看,它既能写代码、查BUG,还能写小说、写游戏策划,包括向学校写申请书等,貌似无所不能。

最终,关于ChatGPT本次会分为两篇:

本篇会有较多技术名词,我会尽量降低其理解难度。

同时,由于非AI专业出身,如有错漏、敬请指出。

致谢:非常感谢X同学、Z同学两位大牛的审稿,尤其感谢X同学的专业性堪误

ChatGPT里面有两个词,一个是Chat,指的是可以对话聊天。另外一个词,就是GPT。

GPT的全称,是GenerativePre-TrainedTransformer(生成式预训练Transfomer模型)。

可以看到里面一共3个单词,Generative生成式、Pre-Trained预训练、和Transformer。

有读者可能会注意到,我上面没有给Transformer翻译中文。

因为Transformer是一个技术专有名词,如果硬翻译,就是变压器。但是会容易失去本意,还不如不翻译。

在下面第3章节会再讲解一下Transformer。

GPT从开始至今,其发展历程如下:

在第1小节中,我们说到Transformer是没有合适的翻译的。

但是Transfomer却是GPT(GenerativePre-TrainingTransfomer)中最重要、最基础的关键词。

(注:GPT的Transformer相比google论文原版Transformer是简化过的,只保留了Decoder部分,见本文4.3小节)

就像好人,最关键的是好,还是人?

读者们,是好吗?

一个稍稳妥的答复是:既不是好,也不是人;既是好,也是人。

唔,有点绕,那么说人话一点,展开:语义上,重点在好;基础和前提上,重点在人。

再延展一下,那"对不起,你是个好人"呢?

语义的重点,变成是对不起。但是语义的前提,还是人。

看懂了可以忽略我接下来关于Transfomer的内容,直接跳到第4章节。如果没太看懂,可以看下我的理解,对你或许有一定参考作用。

在Transformer模型出来前,RNN模型(循环神经网络)是典型的NLP模型架构,基于RNN还有其他一些变种模型(忽略其名字,Transformer出来后,已经不再重要了),但是都存在相同的问题,并没能很好解决。

RNN的基本原理是,从左到右浏览每个单词向量(比如说thisisadog),保留每个单词的数据,后面的每个单词,都依赖于前面的单词。

这样说可能大家还是不容易理解,我举一个例子(简化理解,和实际有一定出入):

在RNN循环中,Youareagoodman这句话,需要如何计算呢?

1)、You和Youareagoodman计算,得到结果集$You

2)、基于$You的基础上,再使用Are和Youareagoodman,计算得出$Are

3)、基于$You、$Are的基础,继续计算$a

4)、依此类推,计算$is、$good、$man,最终完成Youareagoodman的所有元素的完整计算

可以看到,计算过程是一个一个、顺次计算,单一流水线,后面的工序依赖前面的工序,所以非常慢

从其标题《Attentionisallyouneed》你就能知道,Transfomer其实主张是"AllinAttention"。

那么什么是Attention(注意力)呢?

在《Attentionisallyouneed》论文中,可以看到其定义如下:

自我注意(self-Attention),有时称为内部注意,是一种将单个序列的不同位置联系起来的注意力机制,以便计算序列的表示。自我注意已成功地应用于阅读理解、抽象概括、语篇包含和学习任务无关的句子表示等多种任务中

简单理解,就是单词与单词之间的关联度,通过注意力(Attention)这个向量来描述。

比如说Youareagoodman(你是个好人),AI在分析You的注意力向量时,可能是这么分析的:

从Yourareagoodman这句话中,通过注意力机制进行测算,You和You(自身)的注意力关联概率最高(0.7,70%),毕竟你(you)首先是你(you);于是You,You的注意力向量是0.7

You和man(人)的注意力关联其次(0.5,50%),你(you)是个人(man),,于是You,man的注意力向量是0.5

You和good(好)的注意力关联度再次(0.4,40%),你在人的基础上,还是一个好(good)人。于是You,good的注意力向量值是0.4

You,are向量值是0.3;You,a的向量值是0.2。

于是最终You的注意力向量列表是【0.7、0.3、0.2、0.4、0.5】(仅本文举例)。

在论文中,google对于attention和transfomer的描述,主要强调了传统模型对顺序依赖存在,Transformer模型可以替代当前的递归模型,消减对输入输出的顺序依赖。

Transformer问世后,迅速取代循环神经网络RNN的系列变种,成为主流的模型架构基础。

如果说可以并行、速度更快都是技术特征,让行外人士、普罗大众还不够直观,那么从当前ChatGPT的震憾效果就可以窥知一二。

**Transformer从根本上解决了两个关键障碍,其推出是变革性的、革命性的**。

这个关键障碍就是:过往训练我们要训练一个深度学习模型,必须使用大规模的标记好的数据集合(Dataset)来训练,这些数据集合需要人工标注,成本极高。

打个比方,就是机器学习需要大量教材,大量输入、输出的样本,让机器去学习、训练。这个教材需要量身制定,而且需求数量极大。

如下图示例:

除了人工标注之外,在3.3.1小节中提到RNN的重大缺陷,就是顺序计算,单一流水线的问题。

还是以Youareagoodman举例,可以看到,计算机有多少,Transformer就能有多快:

接下来,就到了ChatGPT的前世-GPT(1)了。

GPT模型依托于Transformer解除了顺序关联和依赖性的前提,提出一个建设性的主张。

先通过大量的无监督预训练(Unsupervisedpre-training),

注:无监督是指不需要人介入,不需要标注数据集(不需要教材和老师)的预训练。

再通过少量有监督微调(Supervisedfine-tunning),来修正其理解能力。

打个比方,就好像我们培养一个小孩,分了两个阶段:

1)、大规模自学阶段(自学1000万本书,没有老师):给AI提供充足的算力,让其基于Attention机制,自学。

2)、小规模指导阶段(教10本书):依据10本书,举一反"三"

所谓开宗明义,从开篇introduction中,也可看到GPT模型对于监督学习、手动标注数据的说明。

在机器学习里,有判别式模式(discriminativemodel)和生成式模式(Generativemodel)两种区别。

GPT(GenerativePre-Training)顾名思义,采用了生成式模型。

生成式模型相比判别式模型更适合大数据学习,后者更适合精确样本(人工标注的有效数据集)。要**更好实现预训练(Pre-Training)**,生成式模式会更合适。

注:本小节重点在于上面一句话(更适合大数据学习),如果觉得理解复杂,本小节下面可不看。

单看上面可能不容易看懂,这里补充解释下。

上面的意思是说,假设有4个样本:

那么生成式(GenerativeModel)的特征就是概率不分组(计算样本内概率,除以样本总和),以上表为例,发现x=1,y=0的总共有1个,所以会认为x=1,y=0的几率为1/4(样本总数为4)。

同样的,x=2,y=0的总共有2个,则x=2,y=0的概率为2/4.

而判别式(DiscriminativeModel)的特征则是**概率分组计算(计算组内概率,除以组内总和)**。以上表为例,x=1,y=0一共有1个,同时x=1的分组一共有2个sample,所以其概率为1/2。

同样的,x=2,y=0的总共有2个。且同时x=2的分组共有2个sample,则x=2,y=0的概率为2/2=1(即100%)。

下面是GPT的模型说明,GPT训练了一个12层仅decoder的解码器(decoder-only,没有encoder),从而使得模型更为简单。

注1:google论文《Attentionisallyouneed》原版Transformer中,包含Encoder和Decoder两部分,前者(Encoder)对应的是翻译,后者(Decoder)对应的是生成。

注2:google以Encoder为核心,构建了一个BERT(BidirectionalEncoderRepresentationsfromTransformers,双向编码生成Transformer)模型。里面的双向(Bidirectional),是指BERT是同时使用上文和下文预测单词,因此BERT更擅长处理自然语言理解任务(NLU)。

注4:从模拟人类来看,GPT的机制得更像真实人类。因为人类也是根据上文(前面说的)来推测下文(即说后面的),所谓说出去的话就像泼出去的水,人类也是没办法根据后面说的话,来调整前面说的话的,即使说错了,恶语伤人心,也只能基说出去的话(上文)进行补救、解释。

下图为Transfomer模型架构和GPT模型架构的对比(分别来自论文《Attentionisallyouneed》和《ImprovingLanguageUnderstandingbyGenerativePre-Training》)

前面提到生成式模式更有利于大数据集的Pre-Training预训练,那么GPT使用了多大规模的dataset(数据集)呢?

论文中有提到,它采用了一个名为BooksCorpus的数据集,包含了超过7000本未发表书籍。

前面提到,GPT的核心主张有Generative(生成式)、Pre-Training。同时,GPT训练有两步:

1)、大规模自学阶段(Pre-Training预训练,自学1000万本书,没有老师):给AI提供充足的算力,让其基于Attention机制,自学。

2)、小规模指导阶段(fine-tuning微调,教10本书):依据10本书,举一反"三"

GPT-2的时候,OpenAI将有监督fine-tuning微调阶段给直接去掉了,将其变成了一个无监督的模型。

同时,增加了一个关键字**多任务(multitask)**,这点从其论文名称《LanguageModelsareUnsupervisedMultitaskLearners》(语言模型应该是一个无监督多任务学习者)也可看出。

GPT-2为什么这么调整?从论文描述来看,是为了尝试解决**zero-shot(零次学习问题)**。

zero-shot(零次学习)是一个什么问题呢?简单可理解为推理能力。就是指面对未知事物时,AI也能自动认识它,即具备推理能力。

比如说,在去动物园前,我们告诉小朋友,像熊猫一样,是黑白色,并且呈黑白条纹的类马动物就是斑马,小朋友根据这个提示,能够正确找到斑马。

传统ML中,如果要训练一个模型,就需要一个专门的标注数据集,训练一个专门的AI。

比如说,要训练一个能认出狗狗图像的机器人,就需要一个标注了狗狗的100万张图片,训练后,AI就能认出狗狗。这个AI,是专用AI,也叫singletask。

而multitask多任务,就是主张不要训练专用AI,而是喂取了海量数据后,任意任务都可完成。

数据集增加到800万网页,40GB大小。

而模型自身,也达到最大15亿参数、Transfomer堆叠至48层。简单类比,就像是模拟人类15亿神经元(仅举例,不完全等同)。

论文中对于效果是这么描述的:

1、GPT-3在翻译、问题回答和完形填空中表现出强大的性能,同时能够解读单词、句子中使用新单词或执行3位数算订。

如下图:

说白了,zero-shot(零次学习)不靠谱。

并且,在训练过程中会对比Zero-shot零次学习;One-shot(单一样本学习)、Few-shot(少量样本学习),以及fine-tuning人工微调的方式。

最后在多数情况下,few-shot(少量样本)的综合表现,是在无监督模式下最优的,但稍弱于fine-tuning微调模式。

从下述论文表格、图形中,也可看出few-shot是综合表现仅弱于fine-tuning微调的。

GPT-3采用了过滤前45TB的压缩文本,并且在过滤后也仍有570GB的海量数据。

在模型参数上,从GPT-2的15亿,提升到1750亿,翻了110多倍;TransformerLayer也从48提升到96。

InstructionGPT是基于GPT-3的一轮增强优化,所以也被称为GPT-3.5。

前面提到,GPT-3主张few-shot少样本学习,同时坚持无监督学习。

但是事实上,few-shot的效果,显然是差于fine-tuning监督微调的方式的。

那么怎么办呢?走回fine-tuning监督微调?显然不是。

OpenAI给出新的答案:在GPT-3的基础上,基于人工反馈(RHLF)训练一个rewardmodel(奖励模型),再用rewardmodel(奖励模型,RM)去训练学习模型。

天啦噜,夭寿了。。要用机器(AI)来训练机器(AI)了。。

InstructionGPT一共有3步:

1)、对GPT-3进行**fine-tuning(监督微调)**。

2)、再训练一个RewardModel(奖励模型,RM)

3)、最后通过增强学习优化SFT

值得注意的是,第2步、第3步是完全可以迭代、循环多次进行的。

基础数据规模同GPT-3(见6.3小节),只是在其基础上增加了3个步骤(监督微调SFT、奖励模型训练RewardModel,增强学习优化RPO)。

而customer则是指GPT-3API的调用用户(即其他一些机器学习研究者、程序员等)。

本次ChatGPT上线后据说有百万以上的用户,我们每个人都是其customer,所以可以预见,未来GPT-4发布时,其customer规模至少是百万起。

2022年11月30日,OpenAI推出ChatGPT模型,并提供试用,全网火爆。

ChatGPT和InstructionGPT本质上是同一代际的,仅仅是在InstructionGPT的基础上,增加了Chat功能,同时开放到公众测试训练,以便产生更多有效标注数据。

可参考台大教授李宏毅的视频《ChatGPT是怎么炼成的?GPT社会化过程》,讲得很好。

GPT是单向生成,即根据上文生成下文。

比如说有一句话:

向GPT模型给出输入你好,下面一个字是接你好吗?你好帅?你好高?你好美?等等,GPT会计算出一个概率,给出最高的那个概率作为回答。

依此类推,如果给出一个指令(或称为Prompt),ChatGPT也会依据上文(prompt)进行推算下文(回答),同时选择一个最大概率的上文进行回答。

总结:

1)、2017年,谷歌发布论文《Attentionisallyouneed》,提出Transformer模型,为GPT铺就了前提。

2)、2018年6月,OpenAI发布了GPT生成式预训练模型,通过BooksCorpus大数据集(7000本书)进行训练,并主张通过大规模、无监督预训练(pre-training)+有监督微调(fine-tuning)进行模型构建。

3)、2019年2月,OpenAI发布GPT-2模型,进一步扩大了训练规模(使用了40GB数据集,最大15亿参数(parameters))。同时在思路上,去掉了fine-tuning微调过程,强调zero-shot(零次学习)和multitask(多任务)。但是最终zero-shot效果显著比不上fine-tuning微调。

4)、2020年5月,OpenAI发布GPT-3模型,进一步扩大了**训练规模(使用了570GB数据集,和1750亿参数)**。同时采取了few-shot(少量样本)学习的模式,取得了优异效果。当然,在实验中同步对比了fine-tuning,比fine-tuning效果略差。

5)、2022年2月,OpenAI发布InstructionGPT模型,此次主要是在GPT-3的基础上,增加了监督微调(SupervisedFine-tuning)环节,并且基于此,进一步加入了RewardModel奖励模型,通过RM训练模型来对学习模型进行RPO增强学习优化。

6)、2022年11月30日,OpenAI发布ChatGPT模型,可以理解为一个多轮迭代训练后的InstructionGPT,并在此基础上增加了Chat对话聊天功能。

从种种迹象来看,GPT-4或许将于2023年亮相?它会有多强大呢?

同时ChatGPT的效果,牵引了业界众多目光,想必接下来更多基于GPT的训练模型及其应用,会更加百花齐放。

未来将来,拭目以待。

ai.googleblog.com/2017/08/transformer-novel-neural-network.html

THE END
1.轻松理解ChatGPT原理详解:大白话解析,一文搞定!ChatGPT是怎么学习的? 先说说ChatGPT的核心部分:GPT(全称是Generative Pre-trained Transformer,里面的P和T我们一会儿会讲到),这是一个由OpenAI开发的大语言模型(LLM)。 接下来,理解ChatGPT的原理得先了解它的核心架构。ChatGPT的核心架构是Transformer(也就是ChatGPT中的T),一种神经网络架构。好比人类大脑的工作方式https://blog.csdn.net/2401_84204413/article/details/145262121
2.如何使用ChatGPT原理学会一切东西?(这就是ChatGPT)书评加上前面推荐了wolfram 大神的神书《这就是 ChatGPT》,于是觉得有必要写点类似读书笔记或书评的东西。李沐的文章写于ChatGPT 之前,是结合随机梯度下降来讲人生道理的,我这篇准备从ChatGPT 原理出发,聊一聊 GPT对人类学习、构建个人知识体系的启发。以此文致敬两位大神。李沐的文章微言大义,只用了 1100 字。我https://book.douban.com/review/15907823/
3.速围观ChatGPT原理是什么?技术小白就能看懂的ChatGPT原理介绍它是基于GPT模型改进优化而来的,主要应用于对话场景。它本身也是一个大型语言模型,可以生成各种文本类型,但是ChatGPT特别专注于对话的生成。 通过上下文的理解,ChatGPT能够像人类一样自动生成文本对话。下面这张图是OpenAI官方介绍的ChatGPT原理图,接下来我会按照这几步为大家解释。 https://mdnice.com/writing/e87d75a17b584402a4f84151a68162b4
4.ChatGPT原理理解和结构解读〖前言〗问了200+个问题后,终于完全搭建起来对Chat@GPT本身的原理理解和结构了解,形成的理解文件90%的内容都是他生成的。但是结构化这篇文章以及深入时刻,是自己完成的。今后的学习和工作可能都需要和他来共同完成了。 1 从概率角度理解生成式模型原理 https://www.jianshu.com/p/0628b1bd2c48
5.科学网—ChatGPT技术原理【6】科学网—深度学习基本原理 - 徐明昆的博文 (sciencenet.cn) 【7】Chat GPT原理_GarsonW的博客-CSDN博客 [8]详解AIGC人工智能生成内容的原理 (baidu.com) 【9】低成本复制 ChatGPT 训练流程 【10】ChatGPT实现原理-电子发烧友网 (elecfans.com)https://blog.sciencenet.cn/blog-537101-1377332.html
6.五分钟带你了解ChatGPT的基本原理五分钟带你了解ChatGPT的基本原理 简介: What is LLM? LLM是大型语言模型Large Language Model的缩写,跟LLM相关的另外一个概念是NLP(Natural Language Processing自然语言处理技术的一种 )。 Nautual Language: 指的是自然形成的语言,诸如Chinese, English, etchttps://developer.aliyun.com/article/1191601
7.人人都懂的ChatGPT指南:原理价值应用理解原理是有效应用的第一步。ChatGPT是基于GPT模型的AI聊天产品,后文均简称为GPT。 从技术上看,GPT是一种基于Transformer架构的大语言模型(LLM)。GPT这个名字,实际上是'Generative Pre-trained Transformer'的缩写,中文意为“生成式预训练变换器”。 1.大模型和传统AI的区别是什么? http://www.360doc.com/content/23/0730/08/37102638_1090546201.shtml
8.万字干货:ChatGPT的工作原理(2023).pdf万字干货:ChatGPT的工作原理(2023).pdf 107页VIP 内容提供方:Seeker研报 大小:4.93 MB 字数:约2.86万字 发布时间:2023-05-05发布于北京 浏览人气:10 下载次数:仅上传者可见 收藏次数:0 需要金币:*** 金币(10金币=人民币1元) 万字干货:ChatGPT的工作原理(2023).pdfhttps://m.book118.com/html/2023/0501/5211344112010201.shtm
9.ChatGPT的工作原理是什么?使用ChatGPT可以帮助我们更快地生成文本、提取信息、回答问题等,提高工作效率和质量。在使用ChatGPT工作时,您需要了解相关技术和知识,选择合适的方式,并不断学习和探索新的方法和技术。 以上就是【ChatGPT的工作原理是什么?】的全部解答,如果你想要学习更多【AI新职业技能】方面的知识,欢迎前往了解 >>AI直播公开课!https://www.gaodun.com/xinzhiye/1433291.html
10.ChatGPT原理详解+实操(1)SFT(GPT模型精调)ChatGPT原理详解+实操(1)---SFT(GPT模型精调) 前言 ChatGPT已近火了快大半年了,从去年刚出来的时候小编就关注了一下,也具体的使用过,然后就惊为天人,再然后就没有然后了,因为小编那段时间沉迷于AIGC了。ChatGPT今年开年后更是火的一塌糊涂,无论是行业内还是行业外的人,都在对这个东西进行炒作。那么,玩也https://blog.51cto.com/u_11908275/6941411
11.国内还没有搞明白chatGPT的架构原理。目前开源的只是GPT1.0和GPT2.0国内还没有搞明白chatGPT的架构原理。目前开源的只是GPT1.0和GPT2.0,而最新的GPT3.0和3.5根本没有开源。所以国内企业是拿不到GPT3.0的源代码的,根据美国对中国采取封锁的方针,中国没法使用GPT3.0和3.5源代码是必然的,也就是国内企业根本不懂GPT3.5的算法原理是什么。拿https://xueqiu.com/1354417741/241860639
12.ChatGPT的工作原理2023(万字干货)中文PDF版电子书下载☉ 如果遇到什么问题,请评论留言,我们定会解决问题,谢谢大家支持! ☉ 本站提供的一些商业软件是供学习研究之用,如用于商业用途,请购买正版。 ☉ 本站提供的ChatGPT的工作原理2023(万字干货) 中文PDF版资源来源互联网,版权归该下载资源的合法拥有者所有。https://www.jb51.net/books/885988.html
13.ChatGPT是什么?全面为你讲解ChatGPT!ChatGPT它能够快速地处理大量的文本数据,并且可以生成高质量的自然语言文本。ChatGPT的工作原理是利用深度学习技术来学习人类语言的模式,并将这些模式用于生成文本。通过训练ChatGPT,模型可以掌握丰富的语言知识和规则,并且可以生成与人类语言相似度较高的自然语言文本。 https://www.yutu.cn/news_51983.html