这篇论文的语言真的很有趣,很多地方我翻译的不是很好大家谅解,可以尽量欣赏原文!
Abstract
语言建模的主要方法都是痴迷于我年轻时的电视节目——变形金刚和芝麻街。我们选择了老办法和经过验证的技术,并使用了一个新奇的、受密码启发的缩写:单头注意力Single Headed Attention RNN (SHA-RNN)。作者的唯一目标是表明,如果我们沉迷于一个略有不同的缩略词和略有不同的结果,整个领域可能会朝着不同的方向发展。我们采取了一个以前强大的语言模型,只基于无聊的LSTMs,并得到它在enwik8上的最新字节级语言模型的结果。这项工作没有经过密集的超参数优化,完全生活在一台普通的台式电脑上,这让作者的小单间公寓在旧金山的夏天太暖和了。由于作者缺乏耐心,最终的结果可以在正负24小时内完成。注意机制也很容易扩展到大的上下文,只需要很少的计算。就拿芝麻街(Sesame Street)来说吧。
1. Introduction
语言一直是人类的眼中钉,因为我们进化出了一个足够复杂的音频和图形处理单元,可以发出声音,更不用说编写加密货币白皮书或意见专栏了。语言一直是人类历史上每一次冲突的核心,从第二次世界大战到你和你吵闹的邻居之间的Great Border Skirmish (2008)。许多人认为语言有可取之处。他们声称(缺乏证据),语言可以包含有用的知识,我们通常能从中看到这些知识远远不止是表面下的废墟和五颜六色的侮辱,就像生活可能在木星的卫星欧罗巴冰的深处理论上被发现。许多人通过分裂和征服来对抗语言的同质化,就像他们在《通天塔》中所做的那样(参见:Javascript框架)。不管你对语言的感觉如何,一个赌徒都希望语言至少再存在几年,因此这是一个值得研究的领域。(博主注:这篇文章作者真的很有趣,虽然有的话可以在博客中省略,但是还算想翻译出来给大家欣赏)
1.1 Language is humanity’s longest running program
也许自然语言处理和语言建模最令人惊讶的发现是,我们写的标准文本、我们说的话以及我们交流的方式中蕴含了丰富的知识。不管我们是否打算捕捉,历史、智慧和计算都被记录在最乏味的细节中。
认识到语言不仅仅是人类的语言也是很重要的。语言跨越了各种编码形式:符号、视觉或声音。世界上的许多复杂性和过程都可以被重写成一种语言,无论是人工生成的源(通过Van Eck phreaking解码CRT监视器的图像)还是自然生成的,正如您可能期望的这篇文本。
自然语言的概念远远超出了我们在过去几个世纪中可能提出的界限。我们从试图预测这些模式中学到的往往是丰富的知识来源,有意或无意。
1.2 Direct motivation
语言建模是自然语言处理的基础工作之一。该任务涉及在给定前n个tokens的序列中预测第(n + 1)个token。
在自然的情况下,这是一个尴尬的情况,他们拼命地想把你的句子说完,向你展示他们有多聪明——即使他们猜错了每一个地方。
在算法设置中,它会自动建议给你建议,如果你提到ducking,你的侮辱会变得更伤人。
为什么语言和语言模型是如此丰富的知识来源?神经网络,加上或减去几个数以百万计的参数,理论上能够实现普遍的函数逼近。当你要求一个足够复杂的神经网络去近似语言时,你是在要求它去近似文本的所有错综复杂之处,而其中的大部分你可能甚至都没有意识到
至少就目前的情况来看,语言模型并不智能——但它们确实在向我们反射智能。那些创建了定义、描述和扩展我们世界的庞大数据集的人正在从事智力工作。传递足够多的文本的语言模型仅仅是将缓存的人工计算的片段进行显示和连接。
假定语言是人类运行时间最长的程序,我们现在注意到人类从来没有造就出最好的程序员。虽然Whilst spaghetti coding是用于无结构和难以维护的代码,我们也有spaghetti语言。大量的机会留给了我们,因为我们不知道如何组织自己。由于调用堆栈返回地址为空,未被发现和继续的伟大作品。知识被隐藏起来,直到收垃圾的人毫不留情地来之前,我们都再也不会被提及。这就是我希望语言模型能够解决的问题。
在这里,我们通常会讨论什么是token。token是你想要的任何东西。语言模型已经被证明可以处理像素、音频、字符、单词等等。基于文本的语言建模传统上侧重于单词、子单词和字符。
然而,值得注意的一点是,通过定义单词或子单词,我们定义了语言模型的计算和结构的主要部分。从过去几年机器学习的进步中可以观察到:人类在僵化地定义机器学习模型上投入的工作越多,我们就越有可能无意中阻碍了它。
2. Motivation
2.1. Alternate history and the genre of research fiction
想象一下,如果我们生活在一个时间轴上,注意力就是你所需要的一切“Attention Is All You Need”(Vaswani et al., 2017)成为了一首热门流行歌曲的标题,而最初的作者决定不出版他们的作品。接下来是什么?我们是否期望研究进展会停滞不前,直到最终在一个秘密地下掩体中重建multi-head attention?这个秘密掩体是为了保护最后幸存下来的几个有明亮眼睛的研究人员,使他们免受评论者的无中生有的攻击。这似乎不可能。进展可能会在一个不同的研究领域,我们将看到周围的研究领域蓬勃发展,就像一座桥梁建立在以前无法通行的河流上。
我在脑海里把这个场景演了出来,与“放弃LSTM”的各种呼声作斗争(Hochreiter & Schmidhuber, 1997),它是一种过时的技术,就像汽车电话,或者你女朋友的”iPod,或者…这是我从我的许多研究朋友那里听到的,本文中描述的模型就是结果。
澄清一下,如果这个模型失败了,我很高兴,但为什么要立即排除这种可能性呢?为什么要像飞蛾成群结队地爬上灯泡一样,只朝一个方向前进呢?
2.2. Fighting the direction of research
到目前为止,我有一个信念,那就是一个集群一年完成的计算,下一年就会变成一台消费机器。这并不是因为科技在过去几年里有什么神奇的进步,而是因为一旦我们知道某件事是有可能做到的,通常就会有更有效的方法去实现它。
与替代性历史相似,与摩尔定律的长期趋势相关,我们不能确定效率最终会实现。没有确定的最终状态——相反,这是一个由社区设定的隐含目标。
如果围绕难以复制的大型计算模型的培训和研究聚集在一起,那么只有难以复制的大型计算模型才能从我们这个领域持续的研究改进中受益。如果微型计算机在20世纪晚期衰落了,而大型计算机取得了胜利,那么我们很可能在谈论小型独立机器这一不可避免的死胡同。
2.3. A lone GPU
虽然看起来很不理智,但我并不想使用云中的某个集群,在我做各种实验时,看着美元从我的银行账户中流出。因此,这里的所有工作都是在一个单独的GPU上完成的。次要的评估和模型的背壳实验是使用辅助GPU完成的,同时在第一个GPU上继续训练。
我并不反对使用很多gpu,我觉得我可以有效地使用它们,但是我还没有找到一种经济有效的方法。朋友们主要建议在云服务上使用免费积分——但这似乎是不可持续的。作为一个独立的研究人员,我担心会失去计算能力,担心自己会从陡峭的悬崖上摔下来,担心自己脚下的魔毯会被扯下来,担心自己的马车会变成南瓜,还有其他相关的夜惊。也许我是不理智的,我应该抓住我可以得到的计算,而我可以得到它-但我知道,如果我失去这样的计算,它将影响我的士气和战斗精神。我也不相信我不能做得更好的少,这意味着我一定会做得更糟,更多。
如果我真的相信“某一年需要集群来计算的东西,下一年就需要一台消费机器”,那么我也应该愿意接受它——至少在某种程度上是这样。无论如何,我所有最好的作品似乎都来自于相对较低的资源和创造力。这恰好也是保持长远和开放心态的正确策略。如果我得到一种可能性的种子,这种种子运行良好,并且随着更多的计算而蓬勃发展,那么计算就会在那里等着我。
可持续计算是我所追求的。不仅对我自己,而且因为我真诚地相信,机器学习应该遵循迷你计算机的历史,它们首先为我们每个人提供了自己的设备。适当的伙伴关系,而不是零星的免费信贷,与实体从完成的工作中获得价值。这些伙伴关系可以是个人或公司——更多的是关于一致的价值观。我们需要一个机器学习的摩尔定律,它鼓励一个微型计算机的未来,而不是大型机的未来。
3. Model architecture
模型架构是Merity等人(2018a) AWD-LSTM的升级。代码有点可怕。我承认这一点。我很了解代码库,cruft不会让我慢下来。就像《千年隼》里的汉一样,它是一堆垃圾,但它是一堆我知道怎么飞的垃圾
在这篇论文之后,我计划从头开始重建代码库,既作为他人的教育工具,也作为学术界和工业界未来工作的强大平台。
该模型由可训练的嵌入层、一层或多层叠加的单头注意递归神经网络(SHA-RNN)和软最大分类器组成。利用系权值进行嵌入和softmax分类器(Inanet al., 2016; Press & Wolf, 2016)。
该模型使用一个单一的注意力头,它更接近于连续缓存(Grave et al., 2016)或指Pointer Sentinel(Merity et al., 2017),以及一个类似于变压器的修正前馈层,我在内部将其称为臂架层。我也可以建议它是一个繁荣层给你太多的乐趣,我说过。为什么繁荣?我们取一个从小(1024)到大(4096)到小(1024)的向量。这其实并不难想象——如果需要的话,你可以一边喊“boooOOOOmmm”一边用手比划比划。
(博主注:Pointer Sentinel和AWD-LSTM都是Merity引用量很高的paper)
3.1. A simplified attention mechanism
许多受Transformer启发的架构中使用的注意机制在构建中没有顺序性,并且有许多复杂的注意头——每层有几十个。人们可能会对此提出异议,因为简单总比复杂好。
这项工作中的注意机制被简化有两个原因。首先,有人知道我们需要多少注意力吗(Shazeer, 2019)?第二,为什么我们把这么多工作放在注意力层?我们能肯定这群注意力所带来的好处吗?
只有一个single attention,我的记忆才不会被耗尽。通过将内存写入一次而不进行修改(即每一步不进行大的矩阵乘法),类似于连续缓存和指针标记模型,我们避免了大量的计算。生活更简单了,玫瑰更香了,财富更好地在社会上分配了,你可以用最少的开销无限地延长你的记忆窗口。
3.2. Boom layer
Boom layer在Transformers和其他结构中的大型前馈层有很强的相关性。不管出于什么疯狂的原因,我决定重新整理一下。该层采用v2 RH形式的向量,并使用与GeLU激活的矩阵乘法生成一个向量u2rn×H。然后我们把u分解成N个向量并把它们加起来,得到w2rh。与传统的下投影层相比,这减少了计算量并删除了整个参数矩阵。
4. Experiments
我们的工作主要是在字节级的enwik8数据集上进行的,尽管它引用了单词级的数据WikiText-103数据集,用于讨论标记化。
作为WikiText-103的作者,现在可能需要用新的数据集替换它。这个数据集将再次以Wikipedia为基础,但将作为一个常青的WikiText (EWT),包括它捕获的实际内容和数据本身的构造。如果你想在任何层面上帮助Evergreen WikiText项目,无论是一个有语言技能的人,还是一个对我现有的tokenization 心怀仇恨的研究人员,一个有+ve目的的公司,还是一个善良的AGI, dx d实验室都会接受你的帮助。
4.1. Hutter Wikipedia Prize (enwik8)
Hutter Prize Wikipedia数据集(Hutter, 2018),也称为enwik8,是一个字节级的数据集,包含Wikipedia XML转储的前1亿个字节。对于我们的实验,我们遵循一个标准设置,其中训练集、验证集和测试集分别由前90M、5M和5M字符组成。
虽然我认为这个数据集需要更新,从2006年的数据,它有许多积极的。首先,以纯文本形式出现在排行榜上的传统压缩的详细历史令人振奋。其次,缺少预处理,因此包含Wikipedia标记具有一些有趣的语言优势。想知道汽车的名字是怎么缩短的吗?嗯,它提到了[[宝马M1|M1]]超级跑车。Cobol是什么?嗯,[[COBOL]]或[[APL编程语言|APL]]。Ordo-vikki什么?[[奥陶纪-志留纪灭绝事件|结束奥陶纪]]。你怎样把化学物质变成动词?乙烯可以[[氯化氯化氯|]]生产…这样的例子丰富了标记。
4.2. WikiText
Merity等人(2017)引入的WikiText-2 (WT2)和WikiText-103 (WT103)数据集包含了经过轻度预处理的维基百科文章,词汇表是封闭的。词汇表是通过分隔空格和标点符号来构建的,标点符号丢弃所有计数低于3的单词。WT2和WT103数据集在训练集中分别包含200万和1.03亿单词。两者都有由相同文本组成的20万个验证和测试集。由于Wikipedia的文章相对较长,并且集中于一个主题,因此捕获和利用长期依赖关系是模型获得良好性能的关键。
4.2.1. WORDPIECE WIKITEXT-103
由该数据集的愚蠢创建者发布的WikiText数据集有一个封闭的词汇表。这曾经是一个合理的想法——只有机器翻译才使用单词。
Wordpieces允许更小的模型,更好地利用model s参数,以及更好地实现语言本身的组合性。模型参数的利用是一个重要的概念。词汇量越大,选择一个给定的单词就越困难(例如,用近似的softmaxes和softmaxes混合处理的问题),在给定上下文中访问给定标记的参数的可能性就越小。
由于语言分布的Zipfian性质,大多数单词不会出现在大多数上下文中。这意味着,通过扩展,稀有单词的参数在大多数情况下对模型没用。这种罕见的参数也为过度拟合提供了一个容易的机会。因此,这些token不仅占用大量空间,而且很少被使用,而且在使用它们时可能会产生问题。
WikiText-103数据集已从267,735个标记的封闭词汇表转换为使用YouTokenToMe9 8000。
5. Results and analysis
5.1. SHA-RNN on enwik8
在对代码库进行切割之后生成以上结果令人满意。遗憾的是,我并没有达到最先进的结果,至少现在是这样,只进行了很少的超参数探索。然而,与早期论文中许多仍在发展的Transformer模型相比,这些结果可能是最先进的。更具体地说,我认为它们很好地证明了,我们在任务中使用的模型类型仍然存在竞争和多样性——特别是在许多人使用的语言建模现在构成了预训练的基础领域的NLP任务。
对于给定的参数计数,SHA-RNN模型的性能非常好。LSTMs被迫主要通过递归来表达其隐藏状态,从而限制了它们的表达能力。注意机制以及后来的SHA-LSTM层使用的键、值和位置信息也必须编码到模型在每一层生成的h = 1024维向量中
在提交论文的前一天晚上,我决定再做一个实验——它是一个单头的注意力RNN,还是一个单头的注意力RNN,在每个RNN层都有注意力?为什么不是两个?
原来我开了个模棱两可的玩笑。一个人的注意力几乎可以获得四层注意力的全部收益。单头SHA-LSTM的另一个优势是,每个epoch几乎花费1800 1秒(30分钟),而4头SHA-LSTM花费4020秒(67分钟)。由于内存使用量较低,该模型能够使用16而不是8的批处理大小。训练使用了25个epoch,后两个占用一半的学习率。
这就是我所说的另类研究历史。如果我们在两年前做这个单头注意力实验呢?如果我们在快速层标准化块稀疏LSTMs上花费了我们的工程努力和实验令牌呢?我在这里不是要讨论哪一种方法是正确的或者错误的,但简单地说,作为一个社区,我们已经走了一个特定的方向,不管有意还是无意。
6. Discussion
6.1. Tokenization attacks may break perplexity
作者注:本文首先给出了一个带有不同记号的WikiText-103字组的结果。然而,实验公式没有正确地考虑归一化常数,单词词汇的构造方式也没有考虑到适当的比较10。未来的材料将致力于提供一个有约束的实验来证明变化的标记化的影响。
当比较在数据集上训练的具有不同标记的语言模型时,通常使用转换过程。一些论文使用可逆的字块标记器重新标记了字级数据集,如WikiText-103。然后根据每个测试数据集中的令牌数量对产生的perplexity进行重新规整(Mikolov et al., 2012;黄,唱,2017)。
例如,有一个公式可以将每个字符的比特(BPC)模型转换为字级复杂度
这样的公式假定构成标记之间的熵相等,并且不考虑在语言建模过程中引入的信息。
熵在特征上的分布是不均匀的。传统的实验表明,在字符级模型中,熵主要集中在传统分词的前几个字符上(Elman, 1990)。
可逆字元标记化的目的是平滑地将熵分布到令牌上,进一步放大了与字元级模型的熵分布差异。
例如,几乎所有的单词标记化都会将前缀和后缀从不同的单词中分离出来,从而使单词片段的构成更加平衡。再加上在训练和考试中都存在的教师强迫,这可能会产生相当深远的影响。
这种不均匀性被现代组件加剧,如注意机制,它可以有效地复制之前未知序列的发生,当正确的上下文切换(al - rfou et al., 2019)。这奖励了那些允许早期上下文切换(即标记的第一个字符)并将高熵标记分解为低熵标记序列的模型。
举一个极端的例子,假设您正在尝试猜测我的笔记本电脑(lolcats)的密码。如果你试图在我的笔记本电脑上输入它,你只能在提交整个短语时得到反馈,而不是在单个字符上。
在密码学中,定时攻击是一种边信道攻击,在这种攻击中,定时信号(用我们的话说,就是对操作的时间序列进行标记化)泄漏信息。由于我们已经在使用SHA-RNN了,并且与密码术中的定时攻击有粗略的比较,我们将其称为标记化攻击。如果我们一次检查一个字符,当字符不匹配时停止,我们知道我们的候选密码有多少是正确的,并且可以在其余的可能性中进行搜索。由于教师告诉攻击者正确的令牌实际上是什么(密码以L开头,而不是T),并且每个令牌揭示的信息要多得多,所以令牌化的情况更糟。
如前所述,自然语言的熵分布是不均匀的,而精心设计的密码应该始终保持接近恒定的熵。需要注意的是,这些标记化攻击是我们的语言模型访问和依赖侧通道信息的自然结果,而研究人员可能没有意识到他们正在提供这些侧通道信息。深度学习是最终的意大利面条代码。你的模型会找出最糟糕的技巧,找到并利用每一个边缘情况,把它弄得一团糟,然后欺骗你,让你认为它是有效的。符号化攻击只是一个例子。
6.1.1. EXAMPLES OF TOKENIZATION ATTACKS
任何时候,你需要在专门化和专门化之间进行猜测,分别在训练数据中出现1091次和430次,对于一个词级模型来说,你将会得到一个比你的词级模型将它们分解成专门化或类似的更大的困惑。在注意力机制的强烈帮助下,复制单词和命名实体时也是如此。如果我们回答谁被杀了?邓布利多还是甘道夫?对于单词级模型,我们只有一个猜测。一个单词模型有一个巨大的优势,然而,熵可能主要加载在第一个标记(Dumbledore)上。
6.2. Improvements: easy in theory, hard in practice
虽然我们处在深度学习框架的黄金时代,但我们仍然有一些基本的限制需要我们去考虑。
定制的高性能组件仍然很难编写。例如,如果不担心在出血的边缘上切开动脉,仍然很难编写快速的LSTM内核。在层规范化、块稀疏权值等方面,还没有经过调优并得到广泛支持的实现。NVIDIA还没有在他们的cuDNN包中为许多SotA发布LSTM的新变种。
混合精度(即fp16)仍然是一个噩梦,即使有一个相对可爱的库或框架来处理许多问题。NVIDIA Apex图书馆值得我手写一张感谢信,但它仍然是一层薄薄的装饰,上面是一桶冒泡的酸。由于这些原因,以及主要作者是懒惰又无效两者兼而有之,SHA-RNN的实现在低级别和高级别上的效率可能更高。
虽然这在本文中只是一个小悲剧,但更广泛的悲剧与之前的历史交替讨论有关。成功的方法在学术改进和实践中都得到了优先考虑。这在多大程度上决定了我们这个领域的进展?我们怎样才能使野外实验更容易得到我们这个领域的知识和实践工具的支持?
如果我使用一层标准化的LSTM12,它已经被证明在字节级别上比压缩设置中的转换器工作得更好(Bellard, 2019),我们会看到更大的跳跃吗?这是一个很重要甚至是很重要的问题,但如果你敢于提出这个问题,你就不仅是在与研究的趋势作斗争,也是在与工程的趋势作斗争。一个方向的战斗已经够累人了,更不用说两个方向了。
6.3. Minimum Trust LAMB
为了提高收敛性,我们使用LAMB优化器(You et al., 2019)。LAMB优化器主要用于残余层标准化网络(如Transformer体系结构),但当层不是残余时,它似乎无法收敛于模型(如SHA-RNN)。为了处理这个问题,我们向LAMB优化器引入了最小信任,以确保在每个pass13上取得的进展最少。对于所有实验,我们将最小信任比设置为0:25。
6.4. Over-paramaterizing static learned vectors
在开发过程中我犯了错误。许多错误。错误太多了。我发现更让我担心的是,在我作为一名职业神经网络推手的历史中,我犯过无数的错误,而这些错误最终帮助了我。在这一节中,我将首先描述错误,然后把它写得好像我一直都打算用我的直觉来做它为什么会有帮助。如果你打算向会议提交学术论文,最后一部分尤为重要。
对于注意力的传递,我想让模型有机会忽略向量空间的某些部分。这将是很重要的,因为向量的一部分可能会被保留为LSTM(本地信息),而向量的其他部分可能会被保留为长期关注(全局信息)。最简单的方法是将给定的向量o乘以一个sigmoid(即从0到1)掩模m。o·m.看起来很简单。嗯,我犯了个错误,不小心让m通过了QRNN——如果你没有跟上我在Salesforce时代的研究,它基本上是LSTM的一个快速版本。这种情况持续了很长一段时间。
好消息是它本质上应该是一个空操作!一个疯狂的大矩阵乘法的m,然后是tanh激活,其中只有部分结果是公开感谢另一个大矩阵乘法后,一个乙状结肠!最后,这只是一个无聊的向量作为输出-因此,如果你简单地设置m = QRNN(m),那么你会得到完全相同的结果。
几乎是这样,因为这适用于静态模型,但如果我尝试训练它没有这个奇怪的QRNN初始化结果更糟。自慰吗?的确是我的敏锐的读者。我有理论,但我从来没有真正量化所有的理论,只有猜测。然而,在宏大的学术传统中,让我们假设我一直打算这么做。
在许多复杂的深度学习系统中,存在v2 RH形式的静态学习向量,其中H为模型s维。这些静态学习向量在训练过程中会发生移位,但在生产过程中是固定的。它们通过在初始隐藏状态、门控机制等方面的使用与数百万或数十亿动态生成的向量交互,以优化特定的目标。这导致了一个复杂的优化景观,低维和无历史的15向量是无法处理的。
如果我们有固定的输入(也就是说,我们可以固定与这些向量交互的动态生成的向量),那么通过优化整个数据集就可以获得最佳的静态向量。在小批量的情况下,我们期望静态学习向量的值在训练过程中可能会发生巨大的偏差,在整个数据集中收敛到一个最优的稳定值之前,需要许多时间和一个衰减的学习率。
然而,在复杂的深度学习系统中,我们没有固定的输入。在训练过程中,我们学习的向量与动态生成的向量相互作用,改变整个系统的优化轨迹的静态学习向量没有历史方面的任何先前的优化会立即丢失,放大在训练中看到的潜在的野生偏差,并阻止稳定的训练。
通过对静态学习向量进行参数化,我们可以为这些低维度实体提供历史的一个方面。与破坏性地修改值不同,模型现在可以选择通过改变模型、初始向量或sigmoid门中的权重来更改最终值。
一个简单的例子想象有两个最优值在最优训练——零矢量z和面具m。如果我们只是学习正确的乙状结肠盖茨g这样的输出是m·g模型可以跳(每个模型重量更新)输出零向量和输出面具向量之间无需从头开始重新学习的价值。历史被存储在m中,并由只改变g的模型保护。
这对于复杂的模型来说是一个巨大的过度简化,
6.5. So you’re saying Transformers are useless?
等待,真的吗?我可没说过类似的话!在很多情况下,拥有18个百万注意力头可能是最好的选择。任何涉及最小或不确定顺序的情况都突然严重地倾向于多头注意力方法。然而,我们确定要朝着这个方向努力吗?有没有可能我们开始支付一项从未明确的复杂性税?
如果说我的方法有什么不同的话,那就是它只是表明,有许多不同的途径,都是可行的,可以解决我们面临的任务。没有一种单一的架构可能会无限期地接管世界,或成为解决我们所有问题的最佳方案。对于语言建模的任务,我提交了SHA-RNN作为对重复的和过度的Transformer暴露的解决方案。也许我们太急于抛弃过去的模式时代,只是因为一个新的进展。
也许我们太专注于现有的垫脚石而无法回头,反而发现自己被困在一条既定的道路上。
不管我们是否有意识地提出这些问题,作为一个社区,我们仍然在积极地做出这些决定。我们所做的每一个决定,以及我们所抛弃和建立偏见的每一个简单的解决方案,都可能决定我们的道路。
7. Conclusion
单头注意神经网络(SHA-RNN)几乎不需要超参数调整就能获得很好的效果。即使这个架构没有流行起来,它仍然显示出模型性能和注意力头之间的交互作用并不像我们所猜测的那样清晰。我们希望LSTMs还没有死。这种说法是否仍然正确,既是一个研究问题,也是一个工程问题。
如果SHA-RNN真的流行起来,它可能会成为模型蒸馏技术的基础,或者在不久的将来被训练成一个可怕的战场,战场上有疯狂的布偶和变形汽车。我们也介绍了一个记号攻击的概念,并说明了为什么不同的记号攻击方案在考虑教师强迫时可能会阻止模型之间的直接比较。
Acknowledge
这项工作几乎完全运行在一个孤独的泰坦V GPU由英伟达捐赠给我的前一段时间。乍一看,泰坦5似乎比《我的世界》中随机生成的世界所包含的黄金更多。我还想赞扬Adaptive Transformer (Sukhbaatar et al., 2019),因为它是少数几个基于Transformer的架构之一,可以在一个GPU上在几小时内获得强大的结果。感谢Bryan McCann、Yaroslav Bulatov、Otavio Good和其他人进行了长时间的讨论,讨论了在改变记号化时困惑分数的重整化。作者还搬到了旧金山的一套一居室公寓,远离了充满可疑气味和令人讨厌的噪音的小巷。