1.6 对 GPT 架构的更深入了解
GPT 最初由 OpenAI 的 Radford 等人在论文《通过生成式预训练提高语言理解能力》 中提出。GPT-3 是该模型的扩展版本,具有更多的参数,并且使用了更大的数据集进行训练。此外,ChatGPT 中提供的原始模型是通过在大型指令数据集上微调 GPT-3 创建的,所使用的方法来自 OpenAI 的 InstructGPT 论文。如图 1.6 所示,这些模型属于文字补全模型,也可以执行其他任务,如拼写纠正、分类或语言翻译。尽管 GPT 模型只是在相对简单的下一个词预测任务上进行了预训练,但这实际上是非常引人注目的。
预测下一个词,这是一种自我监督学习的形式,也是一种自我标记的形式。意味着我们不需要明确地为训练数据收集标签,而是可以利用数据本身的结构:可以使用句子或文档中的下一个词作为模型应该预测的标签。由于这种下一个词预测任务允许我们“即时”创建标签,因此可以使用大量的未标注文本数据集来训练大型语言模型(LLMs)。
与原始 Transformer 架构相比,通用的 GPT 架构相对简单。实际上,它只是没有编码器部分的解码器(如图 1.8)。像 GPT 这样的基于解码器风格的模型通过一次预测一个词来生成文本,因此被视为一种自回归模型。自回归模型将它们之前的输出纳入未来预测的输入中。因此,在 GPT 中,每个新词的选择都是基于其前面的序列,这提高了生成文本的一致性。
像 GPT-3 这样的架构也比最初的 Transformer 模型要大得多。例如,原始的 Transformer 模型重复了六次编码器和解码器块。而 GPT-3 总共有 96 层 Transformer 层和 1750 亿个参数。
图 1.8 GPT架构仅采用了原始Transformer的解码器部分,用于单向的从左到右处理,使其非常适合于文本生成和下一个词预测任务,能够以迭代方式一次生成一个词。
GPT-3 在 2020 年被推出,按照深度学习和大型语言模型发展的标准来看,这被认为是很长一段时间以前了。然而,更近一些的架构,如Meta 的 Llama 模型,依然基于相同的基本概念,只做了少量修改。因此,理解 GPT 依旧是非常相关的,所以重点在于实现 GPT 背后的显著架构,同时提供指向其他 LLM 所采用的具体调整的指引。
尽管由编码器和解码器块组成的原始 Transformer 模型曾是为语言翻译而设计,但 GPT 模型——尽管其更大但更简单的仅包含解码器的架构旨在进行下一个词预测——也能够执行翻译任务。这种能力最初是研究人员未曾预料到的,因为它源自一个主要训练于下一个词预测任务的模型,而这个任务并未专门针对翻译。
模型执行未明确训练的任务的能力被称为涌现行为(emergent behavior)。这种能力在训练过程中并没有被明确教授,而是作为模型暴露于大量多语言数据中各种上下文的自然结果出现的。GPT 模型能够“学习”语言间的翻译模式并执行翻译任务,即使它们并未专门为此训练,这一点展示了这些大规模生成式语言模型的优势和能力。我们可以执行多样化的任务,而无需为每个任务使用不同的模型。
原文:Sebastian Raschka. Build a Large Language Model(From Scratch),此处为原文的中文翻译,为了阅读方便,有适当修改。