当前位置: 首页 > 科技观察

不到两层的变形金刚,只有注意力块,GPT-3:你还怕你没有做点什么吗?

时间:2023-03-13 22:28:27 科技观察

近两年,基于Transformer架构开发的大规模语言模型在性能(如语言流畅度)方面取得了惊人的成绩。但是Transformer对文字做了什么?学术界目前还没有确定的答案。一般的理解是,transformer模型以某种方式能够同时处理多个单词以进行即时“全局”分析。但它究竟是如何工作的,或者这是否真的是变压器模型的处理方式,仍然难以捉摸。换句话说,我们知道这道菜的成分,但不知道食谱。针对这个问题,一家名为AnthropicAI的公司的研究人员进行了两项研究,希望从根本上弄清楚transformer在处理和生成文本时做了什么。他们发现少于两层且只有attentionblocks的transformer在某些方面也能达到复杂transformer的效果,有助于理解其背后的工作机制。1.少于两层的变形金刚在去年12月发表的第一篇论文(下图)中,AnthropicAI的研究人员研究了变形金刚的简化版本,并充分解释了它们的功能。这项工作得到了以色列理工学院的YonatanBelinkov的高度评价:“这篇论文很好地描述了transformer架构在非常简单的情况下是如何工作的。”“我很看好这部作品,它既有趣又有前途,又有些独特和新颖。”论文地址:https://transformer-circuits.pub/2021/framework/index.html根据论文内容,他们研究的transformer的简化版是先学习基本的语言模型,然后获得语言处理一般能力。哈佛大学MartinWattenberg教授评价说,他们的研究大大提高了变压器的竞争力,同时揭示了变压器背后的工作原理。在3月8日发表的第二篇论文中,研究人员发现他们提出的变压器简化版本的功能也适用于最复杂的变压器模型。他们在简单模型中的发现可以应用于更大的模型。虽然这些简化模型背后的数学原理仍然难以捉摸,但结果为加深对变压器的理解提供了一条新途径。论文地址:https://transformer-circuits.pub/2022/in-context-learning-and-induction-heads/index.html理解transformer的难点在于抽象。传统程序遵循合理的过程,例如每当他们看到“green”这个词时,他们就会输出“grass”这个词,一个转换器将“green”这个词转换成一个数字,然后将它们乘以某个值。这些值(也称为参数)决定了下一个单词是什么。在训练期间对参数进行微调,模型学习如何生成最佳输出,但不清楚模型在学习什么。大多数机器学习程序将它们的数学部分封装到称为“神经元”的模块化元素中。Transformer增加了另一个元素,叫做注意力头(attentionhead),它们是分层排列的,就像神经元一样。但是头部执行的操作与神经元不同。一般认为head可以让程序记住输入的多个单词,但这只是一知半解。为了更好地理解转换器的工作原理,AnthropicAI的研究人员简化了转换器的结构,移除了所有神经元层和除一两个注意力头部层之外的所有层。这使他们发现了变压器和他们已经完全理解的更简单模型之间的联系。我们可以看看最简单的语言模型——二元模型,它再现了基本的语言模式。例如,当对大量文本进行训练时,二元模型会注意到“绿色”一词之后出现频率最高的词(例如“草”)并记住它。然后,在生成文本时,它会再现相同的模式。它可以通过为每个输入词记住一个相关的后续词来获得非常基本的语言知识。研究人员表明,带有一层注意力头的Transformer模型也有同样的作用:它再现了记忆中的内容。假设给你一个特定的输入,比如“DoctorSmithwenttothestorebecauseDoctorX...”(Dr.SmithwenttothestorebecauseDr.X)这个输入被称为提示或上下文。很明显,下一个词X指向“Smith”。在训练好的单层模型中,attentionhead可以分两步进行预测。首先,它查看上下文中的最后一个词(Doctor),并在上下文中搜索它已经(在训练期间)学到的与最后一个词相关联的特定词。然后,对于它找到的任何单词,它会从中查找另一个单词,该单词已学会与它找到的单词相关联,该单词可以与二元模型中的单词相同。然后使用这个关联词作为模型的输出。在上面的例子中,研究人员表明,根据最后一个词“医生”,大脑被训练知道如何搜索一个常见的名字。在句子的前面找到名字“Smith”后,大脑会查看它已经学会与“Smith”相关联的内容,并将该词作为输出。在这种情况下,模型已经学会将相同的单词“Smith”与找到的单词“Smith”相关联。整个过程的最终效果是模型将单词“Smith”从上下文复制到输出。图片说明:ChrisOlah、CatherineOlsson和NelsonElhage从左到右然而,到目前为止,记忆只能采用一种模式。想想当史密斯的名字变成像“Gigamuru”这样的虚构名字时会发生什么。对我们来说,预测下一个词是微不足道的,但模型在训练过程中无法识别一个虚构的词,因此不可能记住它与其他词之间的任何关系,也无法生成它。2.引入感应头Anthropic团队还发现,当他们研究更复杂的模型时,例如具有两层注意力头的模型时,出现了一种解决方案。它依赖于注意力头独有的能力:不仅将信息移动到输出,还移动到上下文中的其他位置。这种能力使第一层的头部能够学习使用来自先前单词的信息在上下文中注释每个单词。第二个head然后可以搜索“Doctor”(在本例中为“Gigamuru”)之前的词,并且像单层模型中的head一样,将它们移动到输出。研究人员将后一层与前一层协同作用的注意力头称为感应头(inductionhead)。它的功能不仅仅是记忆。根据NelsonElhage的说法,它还可以做一些看起来更像是抽象推理或算法实现的工作。感应头可以让二层模型发挥更大的作用,但它们与全尺寸变压器的相关性还不清楚,因为全尺寸变压器有数百个注意力头一起工作。在他们的第二篇论文中,研究人员表示这些发现仍在继续:感应头似乎在一些最复杂的多层结构的行为中发挥着关键作用。在这些行为中,算术能力脱颖而出,因为模型只接受了完成文本的训练。例如,如果给出重复的提示:“问:什么是48+76?答案:124,问:什么是48+76?答案:”全尺寸模型会得到正确答案。”。给定足够多的非重复示例,它将能够正确回答它以前从未见过的算术问题。这种从上下文中学习新能力的现象称为上下文学习。这很令人费解,因为从上下文中学习是不可能的。这是因为决定模型性能的参数只在训练时调整,而不是在模型处理输入上下文时调整。感应头至少解决了一部分难题。他们解释了如何让上下文学习简单和重复的形式是可能并提供所需的功能:复制模型尚未训练的新词的能力(例如“Gigamuru”或“124”)。Anthropic的另一位合著者CatherineOlsson说:“感应头更多可能会执行任何模式,即使它有点奇特或新颖。“研究人员进一步确定了多层次模型中的归纳头,并表明他们参与了更新颖的情境学习形式,例如学习语言之间的翻译。”“这并不是为了解释整个机制,”说OpenAI的雅各布·希尔顿。”似乎只涉及感应头。“这些结果让我们在理解transformer模型方面有了立足点。他们不仅仅是在获取知识,他们还在学习如何处理他们根本没有学过的东西。或许通过了解它们的工作原理,我们可以更多地了解‘出色的’变形金刚。”少了惊喜和感叹。本文转载自雷锋网。如需转载,请在雷锋网官网申请授权。