ChatGPT在做什么 第11章ChatGPT的训练

ChatGPT在做什么 第11章ChatGPT的训练

00:00
02:22
ChatGPT在做什么 第11章ChatGPT的训练The Training of ChatGPT


好的,我们现在已经给出了ChatGPT设置后如何工作的大纲。但它是怎么建立起来的呢?它的神经网络中的1750亿权重是如何确定的?基本上,它们是大规模训练的结果,基于人类编写的巨大文本语料库——网络、书籍等。正如我们已经说过的,即使有了所有的训练数据,神经网络能够成功地生成“类人”文本当然也不明显。而且,再一次,似乎需要详细的工程来实现这一点。但是ChatGPT最大的惊喜和发现是它是完全可能的。实际上,一个“只有”1750亿个权重的神经网络就可以为人类书写的文本建立一个“合理的模型”。在现代,有很多人类写的文本都是以数字形式出现的。公共网络至少有数十亿个人类书写的页面,总共可能有一万亿字的文本。如果包括非公开网页,这个数字可能至少要大100倍。到目前为止,已经有500多万本数字化图书可供使用(已经出版的图书约有1亿本),新增文字约1000亿字。这还不包括来自视频等演讲的文本(作为个人比较,我一生中发表的材料的总输出略低于300万字,在过去的30年里,我写了大约1500万字的电子邮件,总共输入了大约5000万字——仅在过去的几年里,我在直播上说了超过1000万字。是的,我会用所有这些来训练一个机器人。)但是,好吧,有了这些数据,如何用这些数据训练神经网络呢?基本过程与我们在上面的简单示例中讨论的非常相似。你给出了一批示例,然后你调整网络中的权重,以最小化网络在这些示例上产生的错误(“损失”)。从错误中“反向传播”代价高昂的主要事情是,每次你这样做,网络中的每个权重通常都会至少改变一点点,而且有很多权重需要处理。(实际的“反向计算”通常只比正向计算困难一个很小的常数因子。)使用现代GPU硬件,可以直接从数千个并行示例的批量中计算结果。但当涉及到真正更新神经网络中的权重时,目前的方法基本上需要一个人批量地完成。(是的,这可能是真正的大脑——结合了计算和存储元素——至少目前在架构上有优势的地方。)即使在我们前面讨论的学习数值函数的看似简单的情况下,我们发现我们经常必须使用数百万个示例才能成功地训练一个网络,至少从头开始。那么这意味着我们需要多少个例子才能训练出“类人语言”模型呢?似乎没有任何基本的“理论”方法来知道。但在实践中,ChatGPT成功地训练了数千亿字的文本。有些文本输入了好几次,有些只输入了一次。但不知何故,它从看到的文本中“得到了它所需要的”。但是考虑到要学习的文本量,需要多大的网络才能“学好”呢?同样,我们还没有一个基本的理论来解释。最终,正如我们将在下面进一步讨论的那样,人类语言和人类通常用它说什么,大概有一定的“总算法内容”。但下一个问题是,神经网络在实现基于算法内容的模型时效率如何。我们也不知道——尽管ChatGPT的成功表明它是相当有效的。最后,我们可以注意到ChatGPT使用了几千亿个权重——在数量上与给定的训练数据的总字数(或标记)相当。在某些方面,这可能令人惊讶(尽管在较小的ChatGPT类似物中也有经验观察到),似乎工作良好的“网络的大小”与“训练数据的大小”如此相似。毕竟,这并不是说“在ChatGPT中”所有来自网络和书籍的文本都是“直接存储”的。因为ChatGPT内部实际上是一堆数字——精度略小于10位——它们是所有文本的聚合结构的某种分布式编码。换句话说,我们可能会问人类语言的“有效信息内容”是什么,以及通常用它来表达什么。这是语言例子的原始语料库。然后是ChatGPT神经网络中的表示。这种表示很可能与“算法最小”表示(我们将在下面讨论)相去甚远。但这是一个很容易被神经网络使用的表示法。在这种表示中,似乎最后对训练数据的“压缩”很少;似乎平均来说,基本上只需要稍微少于一个神经网络权重来携带一个单词训练数据的“信息内容”。
当我们运行ChatGPT来生成文本时,我们基本上必须使用每个权重一次。因此,如果有n个权重,我们就有o (n)个计算步骤要做——尽管在实践中,其中许多步骤通常可以在gpu中并行完成。但是,如果我们需要大约n个单词的训练数据来设置这些权重,那么根据上面所说的,我们可以得出结论,我们需要大约n个计算步骤来进行网络的训练——这就是为什么,以目前的方法,最终需要谈论数十亿美元的训练工作。
以上内容来自专辑
用户评论

    还没有评论,快来发表第一个评论!