首页
CtrlK
Mleon的头像

从零开始学大语言模型-part2

大语言模型
2
大语言模型
原理
原理
效果
效果
语言函数
语言函数
预测单词
预测单词
向量化
向量化
简化问题
简化问题
仅需四词
仅需四词
部分单词
部分单词
Transformer
Transformer
注意力网络
注意力网络
文本生成
文本生成
总统信息
总统信息
多层网络
多层网络
巨量训练
巨量训练
并行减时
并行减时
问答
问答
写诗
写诗
翻译
翻译
偏见
偏见
食谱
食谱
代码
代码
歌曲
歌曲
单集封面
单集封面

从零开始学大语言模型-part2

03-02
13 次观看
Mleon的头像
Mleon
粉丝:156
主题:3
描述:8
例子:9
其他:3
字数:2347

从零开始学大语言模型-part2

Large Language Models: Part 2

03-02
13 次观看
Mleon的头像
Mleon
粉丝:156
Mleon的头像
Mleon
粉丝:156
主题:3
描述:8
例子:9
其他:3
字数:2347
出处: https://youtu.be/YDiSFS-yHwk?si=6jeZEkCWyYwZzqZr

大语言模型

原理

主题 语言函数

出处: https://youtu.be/YDiSFS-yHwk?si=6jeZEkCWyYwZzqZr

欢迎回来。上次我们介绍了神经网络,并展示了如何使用它们来近似任何函数。现在我们将把它们应用到语言建模中,这涉及拟合这种类型的函数。

目标 预测单词

给定一些像这样的文本,我们想要预测最后一个词,我们将使用某种神经网络。

向量化

首先,我们需要将单词转换为数字,以便神经网络可以理解它们。你可以按字母顺序为每个单词编号,但这样同义词如“apex”和“zenith”会有非常不同的数字。更好的方法是将语义相似的单词映射到数字或向量上,在这种情况下,这些向量是相似的。执行这种方法的技术称为词嵌入(word embeddings),并且它们在网上很容易获取。

需求 简化问题

好的,现在我们准备设计我们的大型语言神经网络,可能像这样的结构,你可以添加更多的层、神经元和权重以增加容量,但它仍然不会工作得很好。问题太难了。我们需要给网络更多的帮助。

仅需四词

让我们回到我们最喜欢的例子。假设我漏掉了最后一个词,你能猜到它吗?我打赌你能。事实上,我打赌你只用这四个词就能做到。一种与“bed”押韵的头发类型。

部分单词

这是一个关键的洞察。你只需要关注一部分单词即可。如果我们能训练一个神经网络来解决这个注意力问题会怎样?我们将通过一个注意力网络来实现这一点,该网络接受输入单词并分配介于0和1之间的注意力权重。我们将把这些权重乘以单词本身,并将结果输入到下一个单词预测网络中。

Transformer

那么如何训练这个注意力网络呢?虽然你可以雇佣人来标注大量文本中的押韵和其他单词关联,并将其作为训练数据,但这听起来很麻烦。

事实证明有更好的方法。让我们同时训练这两个网络。在这里,预测网络告诉注意力网络它需要学习什么,以便更好地预测下一个单词。例如,假设网络预测的是“brown”而不是“red”。“brown”不与“bed”押韵,因此反向传播算法可能会尝试增加对“bed”的注意力,并减少导致选择“brown”的权重。这确实非常有效。这种组合网络被称为Transformer。尽管完整的架构相当复杂,我会带你了解基础知识。

注意力网络

注意力网络的实现与我刚才描述的略有不同。它逐个单词操作。让我们从单词“still”开始。网络估计其他每个单词与“still”的相关性,并将这些注意力得分编码为介于0和1之间的值。然后它会对这些单词进行加权求和,并将其编码为上下文向量 C。其他单词以相同的方式处理。例如,单词“changed”有不同的依赖模式,从而生成其自己的上下文因子。最终,注意力网络为每个单词生成一个上下文向量。然后这些上下文因子与原始单词一起输入到预测网络中。

文本生成

那么我们如何使用这个来生成文本呢?让我们选择一个单词来开始我们的句子。它是“its”,并将它输入网络。它预测“a”作为下一个单词。实际上,你会得到多个具有不同概率的建议,你可以随机选择其中一个最佳选项。但假设我们选择了“a”,我们现在将单词“a”作为下一个输入,并将其输入网络以生成第三个单词“lot”,依此类推。

总统信息

好的,让我们尝试一个更难的例子。第十六任总统是亚伯拉罕·林肯。所以下一个单词应该是“Abraham”。但等一下,我们刚刚讨论的是单词注意力模式。网络如何知道有关总统的信息?如果我们能够回答类似这样的问题,那么它需要记住所有可能的事实。这是一项艰巨的任务。

多层网络

为了做到这一点,我们需要给我们的网络更多容量。我们可以通过堆叠许多这些预测注意力层来实现这一点。多少层?嗯,GPT-3有96层。GPT-3是OpenAI的一个流行模型,而谷歌的Palm模型也有类似的层数。这些模型拥有数百亿个参数。这足以完成一些非常令人印象深刻的事情。堆叠这些注意力模型允许更高层次的推理,而较低层则专注于单词关系和语法。较高层可以编码更复杂的语义关系。

巨量训练

好吧,我们准备好训练我们的网络了。我们需要一些文本来进行训练,需要多少?嗯,基本上所有的文本。今天,大型语言模型已经阅读了大部分互联网和公开可用的书籍。那是五千亿个单词。

并行减时

你可能猜到训练大型语言模型需要很长时间。在单个GPU或计算机上训练GPT-3需要355年。但Transformer被设计为高度可并行化的,因此你可以用几千个GPU在大约一个月内完成训练。

效果

问答

让我们从问答开始。在每种情况下,我指定了蓝色德克萨斯州的输入,它正确回答了大多数这些事实。它难以分解这个极大的数字,人均收入数据也有点偏差。

写诗

它写诗写得不错。这是我的提示,这是GPT-3的结果。我有点喜欢这一首,尽管它技术上不是完全符合俳句规则。

翻译

你可以要求它翻译语言。我不知道这些翻译中有多少是正确的,但它们看起来很接近。

偏见

这些语言模型并不完美。它们常常在基本算术和空间关系方面遇到困难。它们也可能受到偏见和刻板印象的影响。因此,这个领域仍然有许多重要的研究需要进行。

食谱

但如果你需要烹饪灵感,大型语言模型可以提供帮助。这里我要求GPT-3创建一个新的食谱,某个可能在互联网上不存在的东西。我喜欢它展示了两种不同类型的巧克力,可可粉和巧克力豆,它们以不同的方式融入食谱中。它知道鳄梨酱是由牛油果制成的。

代码

为了记住这个我们训练的神经网络,虽然GPT-3编写了我刚才描述的代码,但我想要的网络和我想要拟合的函数都是英文的。GPT-3自动生成了程序,在我第一次运行时,代码有一个错误,但第三次产生的Python代码运行完美,令人惊叹。

歌曲

当然,我们可以生成新的歌曲,风格类似于《纠缠于蓝》。我建议暂停这段视频来阅读这些歌词。它们真的很棒。我希望你喜欢这个关于大型语言模型的视频。

讨论
随记