DeepMind“反向”搭建Transformer方法火了:由可解释程序设计AI

  萧箫发自凹非寺

  量子位公众号 QbitAI

  先搭个模型,效果好就试着解释它,是我们常见的 AI 设计套路。

  但,有人已经受够了这样“莫名其妙”的流程——

  既然人类总是试图解释 AI 模型,那为什么不能反过来,直接用看得懂的程序来设计 AI 模型权重呢?

  这样做出来的模型,既提升了它的可解释性,又降低了设计架构的复杂度。

  这是 DeepMind 针对 Transformer 模型设计的最新工具,被 po 到网上后爆火:

  有网友惊讶表示:

这真有意思。它或许是第一个能将代码(软件 1.0)变模型(软件 2.0)的系统。

  所以它究竟是如何实现的?

  将可读代码转变成 AI 权重的“编译器”

  这个将可读性较高的代码“翻译”成 Transformer 模型的工具,名叫Tracr

  具体来说,它有点像是一个“编译器”,懂得将一种名叫 RASP(Restricted Access Sequence Processing Language)的编程语言转换成 Transformer 模型权重。

  RASP,是此前在 ICLR 2021 一篇论文中提出的“编程语言”,专门根据 Transformer 架构(编解码器-注意力机制等)设计。

  Tracr 则在此基础上更进一步,不仅简单优化了原有的 RASP 语言,而且能将基于 RASP 编写的程序很好地转换为 Transformer 模型的权重。

  具体来说,Tracr 会先将“编程语言”RASP 转换成“汇编语言”craft,后者表示向量空间以及其间的对应操作,再进一步地,将 craft 转变成“机器码”模型权重。

  具体实现过程如下,一共分为 5 步:

  基于它,作者们创建了一系列人工编写程序的基准 Transformer,包括计算 token 频率、排序以及 Dyck-n 括号识别等。

  据一作介绍,Tracr 最大的亮点在于,可以“从 0 开始搭建你自己的 Transformer 模型”。

  还提出了配套压缩方法

  不过,基于 Tracr 打造的模型可能效率很低,因此作者们又提出了一种配套的“压缩”方法。

  基于案例来看,这种方法不仅能让 Tracr 模型更高效,而且允许将D维特征压缩到小于D维的特征空间中。

  例如这是基于 RASP 语言编写的程序示例:

  在对模型进行压缩后,同样能很好地完成原来的任务,且效果相差不大:

  同时作者们还观察到,在对模型进行压缩后,它甚至保留了更重要的特征,学会自动筛掉一些不重要的特征:

  与此同时也能保证一个不错的精度:

  目前对应的 Tracr 模型已经开源,感兴趣的小伙伴们可以去查看一波~

  作者介绍

  论文作者们分别来自 DeepMind 和苏黎世联邦理工学院。

  一作 David Lindner,苏黎世联邦理工学院在读博士生,这份工作是他在 DeepMind 实习期间完成,目前感兴趣的研究方向是 AI 鲁棒性、强化学习等。

  你想好用它设计一个怎样的 Transformer 模型了吗?

  论文地址:

  https://arxiv.org/abs/2301.05062

  项目地址:

  https://github.com/deepmind/tracr