1.什么是GPT
ChatGPT里面有两个词,一个是Chat,指的是可以对话聊天。另外一个词,就是GPT。
GPT的全称,是Generative Pre-Trained Transformer(生成式预训练。模型)。
可以看到里面一共3个单词,Generative生成式、Pre-Trained预训练、和Transformer。
简单来说,GPT是一个自回归的语言模型,可以不断基于前文生成下一个词的续写模型(用前K个单词预测第K+1个单词)。
2.GPT之技术演进时间线
- 2017年6月,Google发布论文《Attention is all you need》,首次提出Transformer模型,成为GPT发展的基础。论文地址:https://arxiv.org/abs/1706.03762
- 2018年6月,OpenAI 发布论文《Improving Language Understanding by Generative Pre-Training》(通过生成式预训练提升语言理解能力),首次提出GPT模型(Generative Pre-Training)。论文地址:https://paperswithcode.com/method/gpt 。
- 2019年2月,OpenAI 发布论文《Language Models are Unsupervised Multitask Learners》(语言模型应该是一个无监督多任务学习者),提出GPT-2模型。论文地址: https://paperswithcode.com/method/gpt-2
- 2020年5月,OpenAI 发布论文《Language Models are Few-Shot Learners》(语言模型应该是一个少量样本(few-shot)学习者,提出GPT-3模型。论文地址:https://paperswithcode.com/method/gpt-3
- 2022年2月底,OpenAI 发布论文《Training language models to follow instructions with human feedback》(使用人类反馈指令流来训练语言模型),公布 Instruction GPT模型。论文地址:https://arxiv.org/abs/2203.02155
3.GPT之T-Transformer(2017)
3.1、上一代RNN模型的重大缺陷
在Transformer模型出来前,RNN模型(循环神经网络)是典型的NLP模型架构。
RNN的基本原理是,从左到右浏览每个单词向量(比如说this is a dog),保留每个单词的数据,后面的每个单词,都依赖于前面的单词。
RNN的关键问题:前后需要顺序、依次计算。可以想象一下,一本书、一篇文章,里面是有大量单词的,而又因为顺序依赖性,不能并行,所以效率很低。
3.2、Transformer之All in Attention
简单理解,就是单词与单词之间的关联度,通过注意力(Attention) 这个向量来描述。
比如说 You are a good man(你是个好人),AI在分析 You的注意力向量时,可能是这么分析的:
从Your are a good man这句话中,通过注意力机制进行测算,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】。
3.3、论文中对attention和Transfomer的价值描述
在论文中,google对于attention和transfomer的描述,主要强调了传统模型对顺序依赖存在,Transformer模型可以替代当前的递归模型,消减对输入输出的顺序依赖。
3.4、Transformer机制的深远意义
Transformer问世后,迅速取代循环神经网络RNN的系列变种,成为主流的模型架构基础。
如果说可以并行、速度更快都是技术特征,让行外人士、普罗大众还不够直观,那么从当前ChatGPT的震憾效果就可以窥知一二。
Transformer从根本上解决了两个关键障碍,其推出是变革性的、革命性的、开创性的。
3.4.1、摆脱了人工标注数据集(大幅降低人工数量 )
第一个关键障碍就是:过往训练我们要训练一个深度学习模型,必须使用大规模的标记好的数据集合(Data set)来训练,这些数据集合需要人工标注,成本极高。
打个比方,就是机器学习需要大量教材,大量输入、输出的样本,让机器去学习、训练。这个教材需要量身制定,而且需求数量极大。好比 以前要10000、10万名老师编写教材,现在只需要10人,降低成千上万倍。
那么这块是怎么解决的呢?简单描述一下,就是通过Mask机制,遮挡已有文章中的句段,让AI去填空。
好比是一篇已有的文章、诗句,挡住其中一句,让机器根据学习到的模型,依据上一句,去填补下一句。
这样,很多现成的文章、wiki、论文等,就是天然的标注数据集了。
3.4.2、化顺序计算为并行计算,巨幅降低训练时间
除了人工标注之外,顺序计算,单一流水线的问题。这是另一个关键障碍。
Self-Attention机制,结合mask机制和算法优化,使得 一篇文章、一句话、一段话 能够并行计算。
(注意力向量)
4、GPT(Generative Pre-Training)(2018年6月)
4.1、GPT模型的核心主张1-预训练(pre-training)
GPT模型依托于Transformer解除了顺序关联和依赖性的前提,提出一个建设性的主张。
先通过大量无监督预训练(Unsupervised pre-training),
注:无监督是指不需要人介入,不需要标注数据集(不需要教材和老师)的预训练。
再通过少量有监督微调(Supervised fine-tunning),来修正其理解能力。
打个比方,就好像我们培养一个小孩,分了两个阶段:
1)、大规模自学阶段(自学1000万本书,没有老师):给AI提供充足的算力,让其基于Attention机制,自学。
2)、小规模指导阶段(教10本书):依据10本书,举一反”三”
4.2、GPT模型的核心主张2-生成式(Generative)
在机器学习里,有判别式模式(discriminative model)和生成式模式(Generative model)两种区别。
GPT(Generative Pre-Training)顾名思义,采用了生成式模型。
简单来说,生成式模型相比判别式模型更适合大数据学习 ,后者更适合精确样本(人工标注的有效数据集)。要更好实现预训练(Pre-Training),生成式模式会更合适。
生成式模式: https://en.wikipedia.org/wiki/Generative_model
4.3、GPT vs Transfomer的模型改进
GPT训练了一个12层仅decoder的解码器(decoder-only,没有encoder),从而使得模型更为简单。
5、GPT-2(2019年2月)
5.1、GPT-2模型相比GPT-1的核心变化
前面提到,GPT的核心主张有Generative(生成式)、Pre-Training(预训练)同时,GPT训练有两步:
1)、大规模自学阶段(Pre-Training预训练,自学1000万本书,没有老师):给AI提供充足的算力,让其基于Attention机制,自学。
2)、小规模指导阶段(fine-tuning微调,教10本书):依据10本书,举一反”三”
GPT-2的时候,OpenAI将有监督fine-tuning微调阶段给直接去掉了,将其变成了一个无监督的模型(不要人工、不要老师)。
同时,增加了一个关键字多任务(multitask)。
5.2、为什么这么调整?试图解决zero-shot问题
GPT-2为什么这么调整?从论文描述来看,是为了尝试解决zero-shot(零次学习问题)。
zero-shot(零次学习) 是一个什么问题呢?简单可理解为推理能力。就是指面对未知事物时,AI也能自动认识它,即具备推理能力。
比如说,在去动物园前,我们告诉小朋友,像熊猫一样,是黑白色,并且呈黑白条纹的类马动物就是斑马,小朋友根据这个提示,能够正确找到斑马。小朋友没有见过斑马,但是却能一眼认出斑马(推理)。
5.3、multitask多任务如何理解?
传统ML中,如果要训练一个模型,就需要一个专门的标注数据集,训练一个专门的AI。
比如说,要训练一个能认出狗狗图像的机器人,就需要一个标注了狗狗的100万张图片,训练后,AI就能认出狗狗。这个AI,是专用AI,也叫single task。显然从宏观层面上,single task会更贵更浪费,因为能认识狗的专用AI,极大概率不认识什么是猫、什么是人。
而multitask多任务,就是主张不要训练专用AI,而是喂取了海量数据后,任意任务都可完成。显然,multitask更能训练通用的AI。
5.4、GPT-2的数据和训练规模
数据集增加到800万网页,40GB大小。
而模型自身,也达到最大15亿参数、Transfomer堆叠至48层。就像是模拟人类15亿神经元。
6、GPT-3(2020年5月)
6.1、GPT-3的突破式效果进展
1、GPT-3在翻译 、问题回答和完形填空中表现出强大的性能,同时能够解读单词、句子中使用新单词或执行3位数算术。
2、GPT-3可以生成新闻文章的样本,人类已然区分不出来。
6.2、GPT-3相比GPT-2的核心变化
前面提到GPT-2在追求无监督、zero-shot(零次学习),但是其实在GPT-2论文中,OpenAI也提出结果不达预期。这显然是需要调整的,于是GPT-3就进行了相关调整。从标题《Language Models are Few-Shot Learners》(语言模型应该是一个少量样本(few-shot)学习者)也可看出。
并且,在训练过程中,OpenAI是同时开展了4种模式(Zero-shot、One-shot、Few-shot、Fine-tuning), 会对比Zero-shot(零次学习) 、One-shot(单一样本学习)、Few-shot(少量样本学习),以及fine-tuning(人工微调)的方式。
最后在多数情况下,few-shot(少量样本)的综合表现,是在无监督模式下最优的,但稍弱于fine-tuning微调模式。
6.3、GPT-3的训练规模
GPT-3采用了过滤前45TB的压缩文本,并且在过滤后(after filtering)也仍有570GB的海量数据。
在模型参数上,从GPT-2的15亿,提升到1750亿,翻了110多倍。
7、Instruction GPT(2022年2月)
7.1、Instruction GPT相比GPT-3的核心变化
Instruction GPT是基于GPT-3的一轮增强优化,所以也被称为GPT-3.5。
前面提到,GPT-3主张few-shot少样本学习,同时坚持无监督学习。
但是事实上,few-shot的效果,显然是差于fine-tuning监督微调的方式的。
那么怎么办呢?走回fine-tuning监督微调?显然不是。
OpenAI给出新的答案:强化学习–在GPT-3的基础上,基于人工反馈(RHLF)训练一个reward model(奖励模型),再用reward model(奖励模型,RM)去训练学习模型。
简单来说就是用机器(AI)来训练机器(AI)
7.2、Insctruction GPT的核心训练步骤
reinforcement learning from human feedback(RLHF)利用人类反馈的强化学习
- 第一步:监督微调-supervised fine-tuning (SFT)
训练数据集:为人工撰写的提示和通过OpenAI API搜集的用户提示,人工标注出那些满意的回复。
采用监督学习的方法fintune GPT-3模型
- 第二步:奖励模型-reward model (RM) training
训练数据集:人工对模型生成的多种回复进行排序(打分)。
利用排序信息训练一个reward model (RM),这个RM训练好以后就可以为任意回复进行打分。
- 第三步:reinforcement learning via Proximal Policy Optimization (PPO)
通过PPO算法对第一步得到的模型进一步进行强化学习。不断优化模型使得reward model (RM)的打分更高。
第2步、第3步是完全可以迭代、循环多次进行的。
7.3、Instruction GPT的训练规模
基础数据规模同GPT-3,只是在其基础上增加了3个步骤(监督微调SFT、奖励模型训练Reward Model,增强学习优化PPO)。
多了OpenAI雇佣或有相关关系的标注人员(labler)和GPT-3 API的调用用户(customer)
8、ChatGPT(2022年11月)
8.1、ChatGPT和Instruction GPT
ChatGPT和InstructionGPT本质上是同一代际的,仅仅是在InstructionGPT的基础上,增加了Chat功能(强大的上下文学习能力),以及将InstructionGPT发布后上述训练步骤的第二步、第三步循环迭代了多轮,同时开放到公众测试训练,以便产生更多有效标注数据。
8.2、ChatGPT可以用来做什么
参考资料与拓展阅读:
https://arxiv.org/abs/1706.03762
https://paperswithcode.com/method/gpt
https://paperswithcode.com/method/gpt-2
https://paperswithcode.com/method/gpt-3
https://arxiv.org/abs/2203.02155
https://zhuanlan.zhihu.com/p/464520503
https://zhuanlan.zhihu.com/p/82312421
https://cloud.tencent.com/developer/article/1656975
https://cloud.tencent.com/developer/article/1848106
https://zhuanlan.zhihu.com/p/353423931
https://zhuanlan.zhihu.com/p/353350370
https://juejin.cn/post/6969394206414471175
https://zhuanlan.zhihu.com/p/266202548
https://en.wikipedia.org/wiki/Generative_model
https://zhuanlan.zhihu.com/p/67119176
https://zhuanlan.zhihu.com/p/365554706
https://cloud.tencent.com/developer/article/1877406
https://zhuanlan.zhihu.com/p/34656727
https://zhuanlan.zhihu.com/p/590311003
https://zhuanlan.zhihu.com/p/590311003
https://zhuanlan.zhihu.com/p/446293526
https://zhuanlan.zhihu.com/p/264749298
https://zhuanlan.zhihu.com/p/112998607