GPT3的工作原理-可视化和动画

2020-07-28 03:50:31

(实时帖子,将在未来几天内更新新的视觉效果和润色)。

输出是根据模型在其训练期间扫描大量文本期间“学到”的内容生成的。

训练是让模型接触到大量文本的过程。它已经完成了一次,而且是完整的。你现在看到的所有实验都来自那个训练有素的模型。据估计,它耗资355年的GPU,耗资460万美元。

使用3000亿个文本标记的数据集来生成模型的训练示例。例如,这是从顶部的一句话生成的三个训练示例。

您可以看到如何在所有文本之间滑动窗口并创建许多示例。

并结合实例给出了该模型。我们只向它展示特征,并让它预测下一个单词。

模型的预测将是错误的。我们计算了它的预测误差,并对模型进行了更新,以便下一次它做出更好的预测。

GPT3实际上一次生成一个令牌的输出(现在假设一个令牌是一个单词)。

请注意:这是对GPT-3如何工作的描述,而不是关于它的新奇之处的讨论(主要是可笑的大规模)。该体系结构是一种基于本文https://arxiv.org/pdf/1801.10198.pdf的变压器解码器模型。

GPT3是巨大的。它将从训练中学到的东西编码成1750亿个数字(称为参数)。这些数字用于计算在每次运行时生成哪个令牌。

未训练的模型从随机参数开始。培训可以找到能够带来更好预测的值。

这些数字是模型内数百个矩阵的一部分。预测大多是大量的矩阵乘法。

在我在YouTube上的AI简介中,我展示了一个只有一个参数的简单ML模型。拆开这个175B的庞然大物是一个很好的开始。

为了阐明这些参数是如何分布和使用的,我们需要打开模型并查看内部。

GPT3是2048个令牌宽。这就是它的“上下文窗口”。这意味着它有2048个轨道,沿着这些轨道处理令牌。

让我们沿着紫色的轨道走。一个系统是如何处理“机器人”这个词并产生“A”的呢?

GPT3的重要计算发生在其96个变压器解码器层的堆栈中。

看到这些层了吗?这就是“深度学习”中的“深度”。

您可以在我的博客文章Illustrated GPT2中看到解码器内部所有内容的详细说明。

这是GPT3中输入和响应(“好的人”)的X光片。请注意每个令牌是如何流经整个层堆栈的。我们不在乎第一个词的输出。当输入完成后,我们开始关心输出。我们把每一个字都反馈到模型中。

我相信,在Reaction代码生成示例(https://twitter.com/sharifshameem/status/1284421499915403264),中,除了几个Description=>;code示例之外,描述应该是输入提示符(绿色)。反应代码将会像这里的粉色令牌一样一个接一个地生成。

我的假设是附加启动示例和描述作为输入,使用特定的符号分隔示例和结果。然后输入到模型中。

这是令人印象深刻的,它是这样工作的。因为您只需等待GPT3的微调推出即可。可能性将会更加惊人。

微调实际上会更新模型的权重,以使模型在特定任务中表现得更好。