自学内容网 自学内容网

经典大语言模型解读(3):参数量更大、泛化性能更强的生成式模型GPT-2

概述

GPT-1的基础上,OpenAI提出了包含15亿参数(GPT-1参数量的10倍以上)的GPT-2模型。该模型在一个更大规模的文本数据集WebText上进行预训练。与GPT-1依赖特定任务上的有监督微调来提升性能不同,GPT-2具备更强的零样本(zero shot)学习能力,能在未专门微调的任务上表现出色。

Zero shot learning(零样本学习):模型能够在没有见过特定类别训练数据的情况下识别新类别。

GPT-2框架

训练数据

大多数先前的工作都在单一文本领域上(新闻文章、维基百科等)训练语言模型。为此,本文构建了一个更大,更多样性的数据集WebText,该数据集中包含了超过800万个文档,总数据量达到了40GB。

输入表示

GPT-2采用Byte Pair Encoding(BPE)方式来对文本进行编码,BPE 是一种常用于压缩和处理自然语言的算法,它通过反复合并最频繁出现的字符对,将词汇分割为子词单元,以生成固定大小的词汇表。这种方法使模型可以处理常见词、罕见词,甚至是未见过的词。

关于BPE,维基百科给出了一个很好的示例。假定要编码的数据为:

aaabdaaabac

其中字节对aa出现的最频繁,因此它将被数据中未使用的字节替换,例如Z。替换结果如下:

ZabdZabac
Z=aa

之后可以看出ab出现的最频繁,采用同样的方式,用Y来替换它:

ZYdZYac
Y=ab
Z=aa

剩下的唯一字节对ac仅出现一次,编码可以在此处停止。或者,可以继续进行压缩编码,即将出现多次的ZYX来替换:

XdXac
X=ZY
Y=ab
Z=aa

该数据无法通过字节对编码进一步压缩,压缩过程结束。在解压时,只需按相反顺序执行替换即可。

需要注意的是,GPT-2对BPE进行了改进。文中指出,BPE 包含了许多常见单词的不同版本,比如 dog,因为它们在很多变体中出现,如 dogdog!dog?。这导致了有限词汇槽和模型容量的次优分配。为了避免这种情况,GPT-2阻止 BPE 在任何字节序列中跨字符类别进行合并。但空格例外,这显著提高了压缩效率。

模型

GPT-2的架构仍然是基于Transformer解码器,但对Transformer进行了一些的修改:

  • Layer Normalization被移动到每个子模块的输入,并在最后的自注意块之后添加额外的Layer Normalization。
  • 在初始化时按 1 / N 1/\sqrt{N} 1/N 的比例缩放残差层的权重,其中 N N N 为残差层的数量。
  • 词汇扩展到 50 , 257 50,257 50,257
  • 上下文长度从 512 512 512增加到 1024 1024 1024,这意味着GPT-2 能够处理更长的文本片段,从而在生成和理解长文本时表现更好。
  • 使用了更大的批处理大小 512 512 512

在实验中设置了4中不同容量的模型版本,具体见下图,其中参数量最小的模型相当于GPT-1,第二小的模型相当于BERT的最大模型,参数量最大的模型被称之为GPT-2。

GPT-2-Model-Size

结语

GPT-2通过将参数数量提升一个数量级,采用字节对编码(BPE)技术进行文本编码,并在更广阔的数据集上进行预训练,同时在训练过程中将上下文长度增加了一倍。这些改进显著增强了GPT-2相对于其前身GPT-1的文本生成能力。
以上便是本文的全部内容,若是觉得不错可以支持一下博主,你们的支持是博主更新的不竭动力。若是有任何问题也敬请批评指正。


原文地址:https://blog.csdn.net/qq_42103091/article/details/142440796

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!