Transformer两大发展方向——GPT系列及BERT(二)
前面讲解了GPT、BERT相关内容,这一篇记录剩下GPT-2、GPT-3、GPT-4。
相关资料
GPT1: Improving Language Understanding by Generative Pre-Training
GPT2: Language Models are Unsupervised Multitask Learners
GPT3: Language Models are Few-Shot Learners
GPT4: GPT-4 Technical Report
BERT: BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding
GPT,GPT-2,GPT-3 论文精读【论文精读】
GPT-4论文精读【论文精读·53】
李沫讲BERT
李宏毅ELMO、BERT、GPT
OpenAI GPT4精简
五、GPT-2
PDF: Language Models are Unsupervised Multitask Learners
5.1 背景及思想
GPT-1提出不久就被Google提出的BERT采用更大的模型更大的数据集给超过了,前面提到GPT采用的是Transformer的解码器结构,而BERT采用的是编码器结构,那在GPT的基础上,肯定不能选择换回编码器结构,不然就承认被超越了,前面也提到GPT是预测下一个词,其保证条件概率最大化,这个相比于BERT能看到前后信息而言难度更大,但相应的其天花板肯定也越高,所以最直接的一个想法就是选择一个更大的数据集,来训练一个更大的GPT模型,但直接暴力解决,创新度肯定不够,因此还强调了Zero-shot作为一个贡献点。
5.2 相关内容
大体内容上和GPT类似,这里主要不同点在于Zero-shot。
- zero-shot
前面GPT是先在一个大数据集上训练好模型,然后再在下游子任务上进行微调,这里要把子任务通过构造成句子,这就会引入一些分割符,在微调训练的过程中会认识这些符号,但如果采用Zero-shot,开始训练好的模型不一定能认识这些符号啊,那关键就在于如何处理这之间的差异。其实论文中采用的方法就是Prompt,也就是提示工程(可参考MAML),保证输入尽可能的在训练过程中都见过。如:
英语翻译成法语,那构造变成: (translate to french, english text, french text)
还有阅读理解任务,构造变成:(answer the question, document, question, answer).
- 训练数据
采用的是Reddit数据集,是一个新闻聚合网页,作者从里面挑选karma数量大于3的新闻作为训练数据,karma可以简单理解成点赞数。
- 网络结构
结构上和GPT类似,只是解码器层数增加了,训练了几个不同的版本
5.4 效果
- 和zero-shot的一些方法进行比较
采用一个这么大的模型去和原先的方法比,效果肯定要好不少。哈哈哈
- 几个版本在不同任务上的表现
估计这里想展示的是随着模型的增大,效果还在提升
六、GPT-3
PDF: Language Models are Few-Shot Learners
1 背景及思想
GPT-2追求的是Zero-shot,也就是零样本推理,但准确度上肯定没有在子任务上微调的那么好,GPT-3主要强调Few shot,即在推理时选择少量样本一起输入进去作为参考,其效果会更好,注意这里不是把样本丢进去微调,而是作为输入,不会去更改模型的权重。
下图比较了zero-shot one-shot few-shot和微调的区别,Zero-shot、one-shot和few-shot是上下文学习,不会改变权重参数。
2 相关内容
GPT-3文献是一篇技术报告,有70多页,大部分展示的是实验结果。这里主要介绍下zero-shot、one-shot和few-shot,以及训练的数据
2.1 Few-shot、One-shot、Zero-shot
这几个的主要区别在于输入时提供的样本数量,用于推理时进行上下文学习。
好处是不需要重新训练,但是没法保存一个样本上下文学习的特征,每次都要重新输入,而且如果有一个好的数据集,一次可能也输入不了那么多。
2.2 训练数据
从以下数据集按不同权重进行抽样,对于Common Crawl数据集做了一定的过滤,措施包括保留正类和去重。
-
保留正类
由于Common Crawl质量参差不齐,这里是将GPT-2的数据集Reddit作为正类,然后Common Crawl作为负类训练了一个二分类模型,对Common Crawl中预测结果偏正类的提取出来 -
去重
采用lsh算法对提取的数据进行去重,lsh常用于判断两个大型词集合之间的相似度
3 网络结构
整体结构上和GPT-2类似,只是层数和宽度上进行了调整,训练了以下几个版本,GPT-3相比于GPT-2要更加宽一些。
4 效果
-
few-shot one-shot zero-shot的效果比较
-
训练收敛次数和计算量的关系
要使得训练效果线性增加,其计算量需要成倍数增加,那要求的数据量也会更大
-
和Zero-shot SOTA比较
-
翻译应用
-
可能存在的问题
里面作者例举了一些可能会存在的一些问题,比如可能会散布假消息、由于训练数据集问题可能存在种族、性别、宗教问题,当然还有能耗比较大。
这里截取不同地区的图片,可以看出地域还是存在很大差别,其他还有很多图表可以看原文。
七、GPT-4
1 背景及思想
前面的GPT模型主要是处理文本,GPT4是一个多模态模型,输入可以是文本或者图片,还可以处理视频。当然近期还推出了GPT4o,在逻辑处理上更加强悍。
2 相关内容
GPT4论文也是一篇长达99页的技术报告,里面大多数是一些实验结果,看起来好像讲了很多,但看完好像又没啥,这里主要提以下几点
-
RLHF
预训练好的模型有时候回答会和人想要的结果相差较大,采用RLHF对模型进行了微调。RLHF的功能主要是对模型进行控制,是模型能更好地按照人的意图进行回答。
RLHF可参考:Deep reinforcement learning from human preferences -
准测预测模型训练结果
在小规模的计算成本下,可以预估成本扩大后最终训练完时Loss。
-
支持图像输入
还有更多的例子可参考:https://openai.com/index/gpt-4-research/
3 效果
-
考试
在各种考试上相比于GPT3.5提升不少,比如通过司法考试,还排名靠前10%
-
在不同语言上表现
-
分类
-
问答
八、小结
最开始是Transformer,引入自注意力机制处理文本,并提出编码器-解码器结构,GPT可以看成在其基础上跳跃了一大步,借助Transformer的解码器,在一个大数据集上训练好模型,然后再在下游任务上进行微调,但不久后被BERT采用编码器结构给超越了,因此GPT2以后就是把模型做大做强,由于GPT选择是编码器,只能用已知数据去预测,其训练难度更大,当然对应的效果肯定也会越好,GPT3到GPT4是模型进一步扩大。从GPT2开始已经变成装备竞赛了,一般人玩不起,BERT之所以用的人多可能有一个原因是凑一凑还能跑,哈哈哈
其他资料
其他大模型
MetaAI 提出toolformer 可以利用工具调用各种API:https://arxiv.org/abs/2302.04761
MetaAI LLaMA、Segment Anything
微软提出的ChatGPT、Copilot
还有:GigaGAN
文生图公司提出的Midjournery用于生成图
Google提出的PLAM