每天给你送来NLP技术干货!


作者:Mordechai Rorvig 转自机器之心
这家由 OpenAI 前核心员工组成的 AI 创业公司,正在努力打开 Transformer 的黑箱。
在过去的两年里,人工智能在自然语言处理领域的突破达到了惊人的水平。很多重要的突破都是基于谷歌在 2017 年提出的 Transformer 架构。
但在模型之下,我们仍然不知道 Transformer 对其处理的单词做了什么。从普遍的理解来看,它们能够以某种方式关注多个单词,从而可以立即进行「全局」分析。但这究竟是如何做到的,或者这种说法是否是理解 Transformer 的正确方式,都还不清楚。我们知道「成分」,但却不了解「配方」。
现在,Anthropic 公司的研究人员进行的两项研究试图从根本上探究 Transformer 在处理和生成文本时会做什么。Anthropic 公司成立于 2021 年 5 月,团队主要由一批前 OpenAI 核心员工组成,致力于提高 AI 的安全性及可解释性。
第一篇论文发表于 2021 年的 12 月,作者着眼于架构的简化版本,并充分解释了它们的功能。以色列理工学院的 Yonatan Belinkov 表示:「这些简化架构很好地描述了 Transformer 在非常简单的情况下是如何工作的。我对这项工作非常感兴趣。它很有趣,同时很有前途,也比较独特和新颖。」
论文链接:https://transformer-circuits.pub/2021/framework/index.html
作者还表明,简单的 Transformer 具备从学习基本语言模式到语言处理的一般能力。「你会看到能力的飞跃」,哈佛大学的 Martin Wattenberg 说道。研究团队已经开始破解 Transformer 的「配方」了。
在 2022 年发表的第二篇论文中,研究者表明,负责这种能力的相同组件在最复杂的 Transformer 中也能发挥作用。虽然这些模型背后的数学原理在很大程度上仍然难以理解,但该研究的结果提供了一种理解途径。「他们在简化版模型中发现的东西可以迁移到更大的模型中」,Conjecture 公司和研究小组 EleutherAI 的 Connor Leahy 说道。
论文链接:https://transformer-circuits.pub/2022/in-context-learning-and-induction-heads/index.html
理解 Transformer 的难点在于它们的抽象。传统程序遵循可理解的过程,例如每当看到「green」一词时,就输出「grass」一词,而 Transformer 将「green」一词转换为数字,然后将它们与某些值相乘。这些值(也称为参数)决定下一个单词是什么。Transformer 在训练的过程中得到微调,模型能够学会产生最佳输出,但目前尚不清楚模型学习的是什么。
大多数机器学习程序将数学打包为模块化的神经元。Transformer 则加入了一种额外的成分,称为注意力头(attention head),这些头分层排列(就像神经元一样)。但是头的运算方式与神经元不同。头的作用通常被理解为「允许程序记住输入的多个单词」,但这种解释并不确切。
「注意力机制显然是有效的。它取得了很好的效果,」Wattenberg 说。「但问题是它在做什么?我的猜测是它正在做很多我们不知道的事情。」
为了更好地理解 Transformer 的工作原理,Anthropic 的研究人员简化了架构,去掉了所有的神经元层和除了一层或两层注意力头之外的所有层。这让他们发现了 Transformer 和简化模型之间的联系。
理解 Transformer
先假设一种最简单的语言模型,称为「二元模型」,它再现了基本的语言模式。例如在大型文本上训练时,二元模型会记下单词「green」之后最常出现的单词(例如「grass」)并记住它。然后,在生成文本时,它会重现相同的模式。通过为每个输入单词记住一个相关的后续单词,它可以获得非常基本的语言知识。
研究人员表明,具有一层注意力头的 Transformer 模型做了类似的事情:它再现了所记忆的内容。假设你给它一个特定的输入,比如「Doctor Smith went to the store because Doctor …」这个输入被称为 prompt 或上下文。对我们来说,下一个词是显而易见的 ——Smith。
在训练好的单层模型中,注意力头可以分两步进行此预测。首先,它查看上下文中的最后一个词(Doctor),并在它(训练期间)已经学习的上下文中搜索一个特定的词以与最后一个词相关联。然后,对于找出的单词,查找另一个它已知相关联的单词,就像二元模型一样。最后将这个关联的词移动到模型的输出中。
对于这个例子,研究人员表示,根据最后一个词「Doctor」,注意力头从训练中知道:要搜索一个通用名称的词。在句子前面找到名字「Smith」时,注意力头会查看它学到的与「Smith」相关联的内容,并将该词移动到输出。(在这种情况下,模型已经学会将同一个词「Smith」与找到的词「Smith」相关联。)整个过程的净效果是模型将「Smith」这个词从上下文复制到输出。
研究作者:Chris Olah(左)、Catherine Olsson(中)和 Nelson Elhage(右)
「在这里,我们实际上可以理解注意力的作用,」研究的共同作者之一 Chris Olah 说。
但这种「记忆」只能帮模型到这里了。思考一下,当史密斯的名字变成一个虚构的名字时会发生什么,比如「Gigamuru」。对我们来说,句子如何完成仍然很简单 ——Gigamuru,但模型在训练期间不会看到虚构的词。因此,它不可能记住它与其他词之间的任何关系,也不会生成它。
当研究一个更复杂的模型 —— 一个有两层注意力头的模型时,Anthropic 团队找到了一种解决方案。该方案依赖于注意力头独有的能力:它们不仅可以将信息移动到输出上,还可以移动到上下文中的其他地方。
借助这种能力,第一层的头部学习利用前驱词的信息来注释上下文中的每个词。然后,第二个头可以搜索以单词 “Doctor”(在本例中为 “Gigamuru”)之前的单词,并像单层模型中的头一样,将其移动到输出上。研究人员将与前一层中头协作的后一层中的注意力头称为感应头(induction head)。感性头不仅有记忆的功能,而且可以做一些类似于抽象推理或实现算法的事情。
感应头能让两层模型做到更多的事情,但它们与全尺寸 Transformer 的相关性尚不清楚,它们有数百个注意力头协同工作。在第二篇论文中,研究人员发现这些结果得到了延续:感应头似乎对一些最复杂多层架构的显著行为做出了重大贡献。
在这些行为中,算术的能力得到彰显,因为模型只被训练来完成文本。例如,如果给出重复 prompt:「问:48 加 76 等于多少?答:124;问:48 加 76 等于多少?A:___」一个完整的模型会得到正确的答案,并且在获得足够多的非重复 promp 后,它就能正确回答它从未见过的算术问题。这种从上下文中明显学习新能力的现象称为「上下文学习」。
这种现象令人费解,因为从上下文中学习是不可能的。这是因为决定模型性能的参数仅在训练期间进行调整,而没有在模型处理输入上下文时进行调整。
感应头至少解决了部分难题。它们解释了上下文学习的简单、重复形式的可能性,同时提供了所需要的 —— 复制模型未经训练使用的新词(如「Gigamuru」或「124」)的能力。
论文作者之一、Anthropic 团队成员 Catherine Olsson 表示:「感应头更可能适应各种模式,即使它有些许奇怪或新奇。」
该研究进一步在多层模型中应用感应头,表明感性头能够参与更新颖的上下文学习形式,例如学会翻译语言。
该研究为理解 transformer 提供了一个新的视角。它们不仅在获取知识,而且还在学习处理根本没有学过的东西。这或许可以解释 transformer 现在的「霸主」地位。
原文链接:https://www.quantamagazine.org/researchers-glimpse-how-ai-gets-so-good-at-language-processing-20220414/

最近文章

下载一:中文版!学习TensorFlow、PyTorch、机器学习、深度学习和数据结构五件套!后台回复【五件套
下载二:南大模式识别PPT后台回复南大模式识别
整理不易,还望给个在看!
继续阅读
阅读原文