机器学习新论文:让Transformers变得更直观


Transformer 背后的计算模型是什么?Transformer 是非常强大的模型,但对人类来说也非常不直观,它们如何计算事物,以及信息如何流动?
循环神经网络RNN比较直观,它与有限状态机中有直接的相似性,但 Transformer 没有这种熟悉的相似直观性:允许围绕架构变体或训练模型进行清晰的讨论和思考,而 Transformer 则没有这种熟悉的相似性。
本论文旨在改变这种状况。他们以编程语言的形式为 Transformer 提出了一个计算模型:
在本文中,我们旨在改变这种情况,以编程语言的形式为变压器编码器提出一个计算模型。我们将transformer-encoder的基本组件——注意力attention 和前馈计算 feed-forward computation——映射到简单的原语中,围绕它们形成一种编程语言:受限访问序列处理语言 (RASP:Restricted Access Sequence Processing Language )。
我们展示了如何使用 RASP 为 Transformer 可以学习的任务编写解决方案,以及如何训练 Transformer 来模拟 RASP 解决方案。特别是,我们为直方图提供 RASP 程序,排序和 Dyck 语言。我们进一步使用我们的模型将它们的难度与所需层数和注意力头数联系起来:分析 RASP 程序意味着在转换器中编码任务所需的最大头数和层数。最后,我们将看到如何使用从我们的抽象中获得的见解来解释最近作品中看到的现象。
点击标题
  
论文阐明了变压器Transformer的计算模型:什么是“硬件”变压器Transformer计算工作,信息如何在系统中流动,您在每个阶段可以访问和不能访问的内容,以及编程语言。
结果,正如一位读者所指出:“Transformer像 matlab,但由撒旦设计”。是的,这不是一个对程序员非常友好的计算模型。我们不习惯这样想。但至少它是可以使用的!
我们还有一个用于这种语言的“编译器”,它将获取您的代码并将其翻译成执行计划。但这也不是一个“神经网络”,因为它仍然有部分在说:“在这里我们计算这样那样的函数。这应该由 MLP 实现”。
执行计划确实会告诉您在Transformer上实现代码需要多少个注意力attention的头和层,并显示信息流。由您来确定您在 MLP 上转储的工作对于 MLP 是否合理,这是我们可以的!
这确实有助于以更具体的术语将 Transformer 视为计算设备,并更好地理解它。这对于计算能力的证明也很有用,例如我们证明它可以识别任何k为dyck-k 语言,只需编写代码即可。