还提出配套模型压缩方法
萧箫 发自 凹非寺
非常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