GPT-1至GPT-4迭代历程:版本变化与技术发展梳理

2018年6月,OpenAI发布首篇和GPT相关的论文,当时模型参数规模只有1.17亿,采用12层Transformer解码器,训练素材大约5GB书籍文本,数据集选用BooksCorpus。放到现在来看,这个模型体量很小,但它在当时开辟了一条新方向:先用海量文本让模型学习语言内在规律,之后再针对各类具体任务做微调。这套预训练搭配微调的方案,后续基本成为行业通用标准。在那个阶段,业内还在争论,到底该选择BERT这类双向编码器路线,还是GPT这种单向解码器路线,OpenAI选择后者,这个决定在之后不断体现出价值。

科技

GPT-1整体架构并不复杂,12层结构,768维隐藏层,12个注意力头,输入输出共用词表权重,位置编码采用可学习方案,没有使用正余弦编码。完成训练之后,在多项NLP任务上做微调,最终效果对比从零训练的传统模型,提升十分明显。但客观来讲,1.17亿参数的模型,到2019年之后就显得不够用了。它更多是完成概念验证,证实解码器架构搭配预训练的思路具备可行性。

时间来到2019年2月,GPT-2正式推出,参数量直接提升十倍以上,最大版本达到15亿。层数从12层增加到48层,隐藏维度上调至1600,注意力头数量增加到25个。训练数据更换为WebText,从Reddit平台抓取大约800万篇文章,总容量超过40GB,对比GPT-1的5GB扩大八倍。

不过GPT-2真正的革新并不在参数规模。OpenAI尝试了一个很大胆的想法,不再单独执行微调流程,直接依靠预训练阶段学到的内容处理各类任务。只要在输入内容里写明指令,比如把一段法语翻译成英语,模型就能够完成翻译。尽管输出质量比不上专门定向训练的模型,但证实了一个可能性:模型规模足够大的时候,不少任务不需要额外训练。这就是零样本学习,在当时听起来比较新奇,后来行业也确认这是可行的发展方向。

GPT-2架构还有一处值得留意的细节,LayerNorm从子层的后方移动到子层前方,由post-LN调整为pre-LN。改动看着不起眼,却可以稳定深层网络梯度,为后续搭建更大规模模型铺路。词表容量也同步扩大,GPT-1词表是40000个token,GPT-2提升至50257个。

GPT-2同样存在明显短板,生成文本偶尔会陷入循环重复,反复输出相近语句,碰到需要逻辑推理的任务基本很难完成。15亿参数的模型,能覆盖的能力依旧有限。

带来行业质变的,是2020年5月发布的GPT-3,参数量达到1750亿,规模是GPT-2的百倍。训练文本数据从40GB扩充到570GB以上,层数提升至96层。

GPT-3最核心的突破,并不是架构层面的创新,恰恰相反,它的架构几乎延续GPT-2,仅仅只是模型更深、体量更大。但它验证了一个现象,当参数量跨过特定阈值,模型会涌现出之前不存在的能力。输入几段任务示例,模型就能够参照示例格式处理新任务,不用重新训练、调整参数,只需要在输入加入提示内容。这种能力被叫做上下文学习,也常被称作少样本学习。

这项发现直接改变NLP领域的研究思路。过去行业习惯为每一项任务单独训练专属模型,耗时耗力。GPT-3问世之后,大家开始探索用单个通用模型搭配提示词,处理各类任务。当然GPT-3不是万能的,处理高精度推理任务依旧容易出现低级错误,生成的文字看着通顺合理,实际内容却是编造,也就是后来大家所说的“幻觉”问题。

从GPT-2到GPT-3之间,还有一处容易被忽略的变化,训练数据体量。GPT-2使用40GB文本,GPT-3提升到570GB。OpenAI在数据配比上投入大量工作,不是简单批量抓取网页内容。另外GPT-3的batch size规模极高,达到320万token级别。这类工程层面细节,论文不会完整记述,但对于实际训练至关重要。

接下来是2023年3月推出的GPT-4。OpenAI发布的技术报告没有披露太多信息,架构、参数量、训练细节全部没有公开。不过后续流出信息显示,GPT-4大概率采用混合专家架构,整体大约1.8万亿参数分布在120层,但是每次推理只会激活其中一部分,参与运算的参数约2800亿。整套模型包含16个专家子模型,单个专家约1110亿参数,每次前向计算会路由调用其中两个专家。

这套设计思路和前三代完全不同。GPT-1到GPT-3都采用密集模型方案,每次推理,全部参数都会参与运算。如果GPT-4这么庞大的体量继续沿用密集架构,推理成本过高,没办法投入商用。混合专家的思路,让不同参数模块对应不同输入场景,每次只调用相关模块,既能保证总参数量充足,又压低单次推理开销。

训练数据方面,GPT-4使用大约13万亿token,文本数据训练2个epoch,代码数据训练4个epoch。预训练阶段上下文长度为8K,后续微调推出32K版本。而且GPT-4从发布起就支持图片输入,这点和前三代纯文本模型有本质差别。

回看四代模型的迭代,能看出几条清晰的趋势。参数量从1.17亿增长至约1.8万亿,涨幅接近一万五千倍。训练数据从5GB扩充到13万亿token,量级差距更大。架构层面,GPT-1到GPT-3持续沿用同一套Transformer解码器,重大架构调整发生在GPT-4引入混合专家结构。训练范式,从预训练搭配微调,转变成预训练搭配提示。GPT-3之后微调依旧会使用,但大多用于对齐和指令跟随,不再用来教会模型全新任务。

但还有几项核心设定,四代模型一直没有改动。自回归语言建模的目标始终是预测下一个token,核心逻辑没有变化。Transformer解码器的基础框架也没有被推翻,GPT-4只是在这套框架内新增大量专家模块。还有一个有意思的特点,每一代模型的上下文窗口持续扩容,GPT-2支持1024个token,GPT-3是2048,GPT-4的32K版本能够处理数万token。上下文长度的提升,决定模型能读取文本的上限,在实际应用当中,带来的影响不亚于参数量提升。

⚠️免责提示

本文内容整理于互联网,仅供参考,不构成任何投资、决策建议。部分素材来源于公开网络,如有侵权请联系平台进行删除处理。

众多编程语言都绕不开C语言,C语言拥有独特优势的原因 返回列表
相关阅读