【花师小哲】当代炼金术(神经网络)前沿(7)——GPT史
今天下午刚开完会,有了自己的一些感触,虽然GPT的几篇原始论文还没看完,但基本上已经有了一个比较完整的理解了,于是加急赶一篇专栏。
就讲讲GPT史。

0.Transformer
Transformer和BERT之前讲过,这里不再展开:
之所以把Transformer放在最开始讲,是因为Transformer可能是之后整个过程中最有创造力的一篇基准了,BERT和GPT都是基于Transformer进行开发的,那么BERT和GPT做了什么呢?其实就两件事:1.拆解和运用Transformer(这下真的变形金刚了);2.砸钱

2.GPT-1
GPT-1是先于BERT出来的,当时预训练范式还是在探索当中。当时已经有了ELMo,是采用双向LSTM来做的,GPT用Transformer来做了这件事。GPT用的是单向Transformer,而之后出现的BERT使用的是双向Transformer,三者主要对比如下:

这个图大家可能觉得是有区别但又不太清楚区别在哪里,不要着急,下一节会讲。当时GPT确实是被BERT在很多地方超越了。但是GPT-1证明了“预训练-微调”范式是有用的。

3.GPT-2
相比于BERT的双向Transformer,GPT的单向Transformer似乎性能会差一些,但是也有一定的优势,正如GPT的全名(Generative Pre-Training,生成式预训练)所说,单向Transformer更适合语言生成,换句话说,预测下一个词。而BERT更关注的是上下文的结构,而不是通过不断预测下一个词来生成一段文本。
对于GPT-1来说,要处理NLP的一个子任务似乎都要专门训练一个网络,于是GPT-2的想法是,对于所有任务,我们都只使用一个模型。这个想法其实挺朴素的,相比于GPT-1,GPT-2所做的无非就是增加参数、微调网络结构、获取更好的数据集而已。
但是,GPT-2即将打开一个很恐怖的口子,即似乎我们只要有足够的语料,所有的自然语言监督任务似乎都是无监督预训练任务的一个子集,换句话说,大模型是可以做到无所不包的。

4.GPT-3
于是乎,增大参数量就是GPT-3要做的事情了,它将参数量从GPT-2的15亿直接提升到了恐怖的1750亿,没错,基本上是一种赤裸裸的炫富行为。
所以某种程度上来说,从GPT-1到GPT-3并没有什么很强的创新,只是在堆参数量而已。当然,这样的参数量确实使得预训练方式有些改变,但前提也只不过是模型真的有那么大。

5.InstructGPT
这是ChatGPT的姐妹模型或者说是ChatGPT的前身,因为它俩都用了在GPT-3的接口上使用了RLHF方法,很多人也称它们为GPT-3.5。由于ChatGPT不开源论文和代码(而且在可以预见的将来应该也不会开源),关于ChatGPT的技术我们目前似乎也只能从InstructGPT中找答案。
InstructGPT似乎是克制了很多,参数量没那么大了(因为据说对于GPT-3,OpenAI自己都烧不起第二次),作为问答系统,要解决的一个问题是:ChatGPT的生成文本中会有大量不可控的内容。于是,RLHF算法出现了:

其实这个算法没什么好讲的,要讲专业点就是关注如何求导等技术细节了。重点是我们不知道ChatGPT是如何标注的、请了多少人、砸了多少钱。
其实关键就在于第二步,即对于第一步训练好的模型,我们要去评估其生成的答案的质量究竟如何。做法很简单,对于一些问题先让模型生成一些回答,然后借助人去对这些答案进行排序,然后借助强化学习中常用的PPO算法来进行优化。
或者说的更加直白,ChatGPT就是把当初在阿尔法Go上用过的技术改造了一下,然后在语言大模型上跑了一遍。
当然,还是有些启发的,例如未来的AI是否能达成人与AI的和谐互动,AI的最终大结局是否是借由人的智能来最终完成。这些都是有可能的。

6.GPT-4
那么即将到来的号称“地表最强模型”的GPT-4到底会带来什么样的改变呢?是有更大的参数量呢还是加入了多模态呢?这个也只能慢慢等待了。