出处: https://youtu.be/YDiSFS-yHwk?si=6jeZEkCWyYwZzqZr
欢迎回来。上次我们介绍了神经网络,并展示了如何使用它们来近似任何函数。现在我们将把它们应用到语言建模中,这涉及拟合这种类型的函数。
给定一些像这样的文本,我们想要预测最后一个词,我们将使用某种神经网络。
首先,我们需要将单词转换为数字,以便神经网络可以理解它们。你可以按字母顺序为每个单词编号,但这样同义词如“apex”和“zenith”会有非常不同的数字。更好的方法是将语义相似的单词映射到数字或向量上,在这种情况下,这些向量是相似的。执行这种方法的技术称为词嵌入(word embeddings),并且它们在网上很容易获取。
好的,现在我们准备设计我们的大型语言神经网络,可能像这样的结构,你可以添加更多的层、神经元和权重以增加容量,但它仍然不会工作得很好。问题太难了。我们需要给网络更多的帮助。
让我们回到我们最喜欢的例子。假设我漏掉了最后一个词,你能猜到它吗?我打赌你能。事实上,我打赌你只用这四个词就能做到。一种与“bed”押韵的头发类型。
这是一个关键的洞察。你只需要关注一部分单词即可。如果我们能训练一个神经网络来解决这个注意力问题会怎样?我们将通过一个注意力网络来实现这一点,该网络接受输入单词并分配介于0和1之间的注意力权重。我们将把这些权重乘以单词本身,并将结果输入到下一个单词预测网络中。
那么如何训练这个注意力网络呢?虽然你可以雇佣人来标注大量文本中的押韵和其他单词关联,并将其作为训练数据,但这听起来很麻烦。
事实证明有更好的方法。让我们同时训练这两个网络。在这里,预测网络告诉注意力网络它需要学习什么,以便更好地预测下一个单词。例如,假设网络预测的是“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代码运行完美,令人惊叹。
当然,我们可以生成新的歌曲,风格类似于《纠缠于蓝》。我建议暂停这段视频来阅读这些歌词。它们真的很棒。我希望你喜欢这个关于大型语言模型的视频。