GPT3的工作原理
原文地址:https://jalammar.github.io/how-gpt3-works-visualizations-animations/
科技界对 GPT3 的炒作热闹非凡。大规模语言模型(如 GPT3)的能力开始让我们感到惊讶。虽然对于大多数企业来说,向客户展示的这些模型还不是完全可靠,但它们正在展现出聪明的火花,必将加速自动化的进程和智能计算机系统的可能性。让我们揭开 GPT3 的神秘面纱,了解它的训练方式和工作原理。
经过训练的语言模型会生成文本。
我们可以选择向其传递一些文本作为输入,这会影响其输出。
输出是根据模型在训练期间扫描大量文本时“学到”的内容生成的。

训练是将模型暴露于大量文本的过程。该过程已经完成。您现在看到的所有实验都来自那个经过训练的模型。预计需要 355 个 GPU 年和 460 万美元。

包含 3000 亿个文本标记的数据集用于生成模型的训练示例。例如,这些是从顶部的一个句子生成的三个训练示例。
您可以了解如何在所有文本上滑动窗口并制作大量示例。

该模型通过一个例子进行了介绍。我们只向它展示特征并要求它预测下一个单词。
模型的预测将会是错误的。我们计算其预测中的误差并更新模型,以便下次做出更好的预测。
重复数百万次

现在让我们更详细地看看这些相同的步骤。
GPT3 实际上一次生成一个 token 的输出(现在我们假设 token 是一个单词)。

请注意:这是对 GPT-3 工作原理的描述,而不是对其新颖之处的讨论(主要是规模大得离谱)。该架构是基于这篇论文的Transformer解码器模型https://arxiv.org/pdf/1801.10198.pdf
GPT3 规模庞大。它将训练中学到的内容编码为 1750 亿个数字(称为参数)。这些数字用于计算每次运行时生成的Token。
未经训练的 模型以随机参数开始。训练发现可以带来更好预测的值。

这些数字是模型内数百个矩阵的一部分。预测主要是大量的矩阵乘法。
在YouTube 上的《AI 简介》中,我展示了一个带有一个参数的简单 ML 模型。这是解开这个 175B 怪物的良好开端。
为了阐明这些参数的分布和使用方式,我们需要打开模型并查看内部。
GPT3 的宽度为 2048 个Token。这就是它的“上下文窗口”。这意味着它有 2048 个处理Token的轨道。

让我们沿着紫色的轨道走吧。系统如何处理“机器人”一词并产生“A”?
高级步骤:
- 将单词转换为表示该单词的向量(数字列表)
- 计算预测
- 将结果向量转换为单词

GPT3 的重要计算发生在其 96 个 Transformer 解码器层的堆栈内部。
看到所有这些层了吗?这就是“深度学习”中的“深度”。
每一层都有自己的 1.8B 参数来进行计算。这就是“魔法”发生的地方。这是该过程的高级视图:

您可以在我的博客文章The Illustrated GPT2中查看解码器内部所有内容的详细说明。
与 GPT3 的区别在于密集和稀疏自注意力层的交替。
这是 GPT3 中输入和响应(“好吧,人类”)的 X 光图。注意每个标记如何流经整个层堆栈。我们不关心第一个单词的输出。当输入完成后,我们就开始关心输出。我们将每个单词反馈到模型中。

我相信,在React 代码生成示例中,描述将是输入提示(绿色),此外还有几个描述=>代码的示例。反应代码将像这里的粉红色Token一样生成一个又一个Token。
我的假设是启动示例和描述作为输入附加,并用特定标记分隔示例和结果。然后输入模型。

令人印象深刻的是它的工作方式如此。因为您只需等待 GPT3 的微调推出即可。可能性将更加惊人。
微调实际上是更新模型的权重,以使模型更好地完成特定任务。

写于 2020 年 7 月 27 日