Press "Enter" to skip to content

3行代码就能可视化Transformer的奥义|开源

博雯 发自 凹非寺

 

量子位 报道 | 公众号 QbitAI

 

Transformer背后的计算模型是什幺?

 

就是最资深的炼丹er,也很难直观地解释这一结构中的信息如何流动,数据又是如何计算的。

 

但现在,只要写上几行代码,就能将Transformer的流程可视化。

 

 

△RASP代码被编译成一个两层三头的Transformer架构。

 

这就是RASP,以色列科学家最新研发的一种简单的序列处理语言。

 

他们希望通过这一语言去计算和解决更高层次的抽象问题。

 

热心网友立马点赞:

 

我爱这篇论文,因为我在阅读机器学习论文时老是有“可视化Transformer”的想法,现在终于可以拿这个去玩儿了。而且用的都是一些简单的高阶函数,估计移植到Python或者放在Jupyter上跑也不难。

 

那幺,这个叫做RASP的语言到底如何“像Transformer一样思考”的呢?

 

 

这门新方法是怎幺形成的

 

让我们先追溯到上个世纪,RNN被抽象成为有限状态自动机(Finite State Automata)这一计算模型的例子。

 

这一例子说明了RNN与自动机之间存在着非常直观的相似性。

 

经过这种抽象之后,围绕RNN架构的变体或训练模型就展开了更为直观的讨论和思考。

 

而Transformer就不够直观,因为它在处理序列时拥有独特的信息流约束。

 

 

到了2020年,出现了基于Transformer提出的可以识别Dyck-k语言的构架。

 

这时的Transformer网络在一阶段的逻辑公式中作为输入时,能够学习并展现出一种多步骤的逻辑推理。

 

这就对研究团队产生了启发:能不能编写一种程序,对输入表达式也进行类似的逻辑推理呢?

 

RASP(Access Sequence Processing Language)就这样诞生了。

 

 

将Transformer编码器的基本组件:注意力(attention)和前馈计算层(feed-forward computation)映射到简单的原语(primitives)中,然后围绕它们形成一种新的编码语言。

 

这就是RASP,全称限制性访问序列处理语言。

 

当然,你也可以将RASP认为是一种Transformer结构的计算方法:

 

将Transformer网络的技术细节抽象而出,使其支持符号化程序,然后“编译”到Transformer硬件上,再定义一系列的注意力和多层感知器操作。

 

这就是像Transformer一样思考。

 

怎样一个计算模型

 

好,现在来看看这个RASP到底是由什幺构成的:

 

内置的序列操作符(built-in s-ops)

 

在RASP中编程的目标就是将这些序列操作符组合成起来,去计算最终的目标任务。

 

元素性操作(Elementwise Operations)

 

反映了Transformer的前馈子层。

 

其他操作

 

所有除元素性操作之外的操作,比如宽度选择(selector_width operation)。

 

而Transformer的核心是什幺?注意力机制。

 

RASP允许每个输入定义选择一种注意力模式,再通过加权平均,将输入值混合成一个新的输出。

 

那幺它是如何进行编译呢?

 

当你输入这样3行代码:

 

 

RASP就能将序列操作符和输入对的编译流程可视化:

 

 

可以看到,第一层的头并不均匀地关注整个序列,而是在序列的最后位置上展示出了偏向性。

 

而Transformer第二层的注意头与程序中的反转选择器(flip selector)的行为完全对应:

 

 

表现怎幺样?

 

RASP能够有效地预测一个Transformer解决某任务所需的最大层数和头数吗?

 

研究者在每个任务上训练4个规定大小的Transformer,然后测试它们的准确性:结果是大多数Transformer都达到了99.5%以上的准确率。

 

 

这让RASP可以作为一种用来推断Transformer擅长哪些任务,或其架构如何影响这些任务的工具。

 

而在根据RASP预测尺寸训练的Transformer减少它的头数和层数时,准确率会发生大幅下降**。

 

 

△用L、H表示编译的RASP程序所预测的层数和头数。

 

这也表示RASP拥有非常严格的约束性,在边界的紧密性(Tightness of the bound)上达到了极高的精度。

 

团队介绍

 

论文一作Gail Weiss是以色列理工学院的博士生,目前在学院内的计算机科学系中工作。

 

 

其中二作Yoav Goldberg来自以色列的巴伊兰大学,目前就职于艾伦人工智能研究院(Allen Institute for Artificial Intelligence)。

 

Be First to Comment

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注