图 1. Transformer 模型。左侧的块为编码器,右侧的块为解码器 [1]。
上面提到的 Transformer 的两个主要组件还包含几个子组件,例如注意力模块、前瞻掩码和层规范化。在这里我假设你已经对它们有了基本的了解。
事实证明,Transformer 在语言建模方面具有令人印象深刻的性能。有趣的是,未来的研究人员发现它的编码器和解码器部分可以单独工作。这实际上是 BERT(Transformer 的双向编码器表示)和 GPT(生成式预训练 Transformer)被发明的时刻,其中 BERT 基本上只是一堆编码器,而 GPT 是一堆解码器。
更具体地说,GPT 的第一个版本 (GPT-1) 是由 OpenAI 于 2018 年发布的。随后,GPT-2 和 GPT-3 分别于 2019 年和 2020 年发布。然而,当时知道 GPT 的人并不多,因为它只能通过 API 使用。直到 2022 年,OpenAI 才发布了带有 GPT-3.5 后端的 ChatGPT,让公众可以轻松地与这个 LLM 进行交互。下图显示了 GPT 模型的演变。
图 3. GPT-1 架构(左)和原始 Transformer 架构的解码器部分。
GPT-1 预训练GPT-1 模型的训练过程分为两个步骤:预训练和微调。预训练的目标是教会模型根据前面的 token 预测序列中的下一个 token——这个过程通常被称为语言建模。这个预训练步骤使用自监督机制,即标签来自数据集本身的训练过程。通过这种方法,我们不需要进行人工标记。相反,我们可以从长文本中随机位置分块 513 个 token,将前 512 个设置为特征,最后一个设置为标签。这个 token 数量是根据GPT-1 的上下文窗口参数选择的,默认情况下设置为 512。除了 token 化机制之外,GPT-1 还使用 BPE(字节对编码)。这本质上意味着每个 token 不一定对应一个单词。相反,它也可以是一个子词,甚至是一个单独的字母。
GPT-2 预训练是使用下图 4 所示的目标函数完成的,其中uᵢ是被预测的标记,uᵢ₋ₖ,...,uᵢ₋₁是k 个前标记(上下文窗口),Θ是模型参数。这个等式本质上是在给定序列中的前一个标记的情况下计算一个标记出现的可能性。概率最高的标记将作为预测输出返回。通过迭代执行此过程,模型将继续提示中提供的文本。如果我们回到图 3,我们将看到 GPT-1 模型有两个头:文本预测和任务分类器。稍后,这个文本生成过程将使用文本预测头来完成。
图 4.预训练的目标函数
GPT-1 微调尽管默认情况下 GPT 是一个生成模型,但在微调阶段我们将其视为判别模型。这主要是因为在这个阶段,目标只是执行一个典型的分类任务。在下面的目标函数中,y表示要预测的类,而x¹, ..., xᵐ表示序列x中的m 个输入标记。我们可以简单地将这个等式想象成我们想要将文本归类到特定的类别中。这种分类机制稍后将用于执行各种下游任务,我很快就会解释。
图 7.情感分析(分类)任务的输入文本示例和相应标签
对于文本蕴涵,模型将前提和假设作为一个序列接受,并用分隔符标记分隔。在这种情况下,任务分类器头负责分类假设是否蕴涵前提。
图 7.情感分析(分类)任务的输入文本示例和相应标签
在文本相似性任务中,该模型的工作原理是接受两个文本,以两种不同的顺序进行比较:文本 1后跟文本 2,文本 2后跟文本 1。这两个序列并行输入到 GPT 模型中,然后将得到的输出相加,最终预测它们是否相似。或者,我们也可以配置输出层来执行回归任务,返回连续的相似度分数。
图 12. 如果未指定任务,ChatGPT 仅会继续输入句子
图 13. 分配特定任务如何导致模型做出不同响应的示例
以自然语言形式提供任务的想法可以通过以自监督的方式用大量文本训练模型来实现。为了进行比较,GPT-1 用于执行语言建模的数据集是 BooksCorpus 数据集,其中包含 7000 多本未出版的书籍,相当于约 5 GB 的文本。同时,用于 GPT-2 的数据集是 WebText,其大小约为 40 GB。不仅数据集,而且模型本身也更大。GPT-2 论文的作者创建了四个模型变体,每个模型都有不同的配置,如下图 14 所示。第一行中的模型与我们刚刚实现的 GPT-1 论文相同,而最后一行中被识别为 GPT-2 的模型。在这里我们可以看到,就参数数量而言,GPT-2 大约是 GPT-1 的 13 倍。基于有关数据集和模型大小的这些信息,我们绝对可以预期 GPT-2 的表现将远远优于其前身。
图 16.不同 GPT 版本的比较
结束这就是关于不同 GPT 版本(尤其是 GPT-1、GPT-2 和 GPT-3)的理论和实现的所有内容。
相关文章
猜你喜欢
成员 网址收录40386 企业收录2981 印章生成229790 电子证书1009 电子名片58 自媒体46438