DeepMind“反向”搭建Transformer方法火了:由可解釋程序設(shè)計AI,項目已開源
本文經(jīng)AI新媒體量子位(公眾號ID:QbitAI)授權(quán)轉(zhuǎn)載,轉(zhuǎn)載請聯(lián)系出處。
先搭個模型,效果好就試著解釋它,是我們常見的AI設(shè)計套路。
但,有人已經(jīng)受夠了這樣“莫名其妙”的流程——
既然人類總是試圖解釋AI模型,那為什么不能反過來,直接用看得懂的程序來設(shè)計AI模型權(quán)重呢?
這樣做出來的模型,既提升了它的可解釋性,又降低了設(shè)計架構(gòu)的復(fù)雜度。
這是DeepMind針對Transformer模型設(shè)計的最新工具,被po到網(wǎng)上后爆火:
有網(wǎng)友驚訝表示:
這真有意思。它或許是第一個能將代碼(軟件1.0)變模型(軟件2.0)的系統(tǒng)。
所以它究竟是如何實現(xiàn)的?
將可讀代碼轉(zhuǎn)變成AI權(quán)重的“編譯器”
這個將可讀性較高的代碼“翻譯”成Transformer模型的工具,名叫Tracr。
具體來說,它有點像是一個“編譯器”,懂得將一種名叫RASP(Restricted Access Sequence Processing Language)的編程語言轉(zhuǎn)換成Transformer模型權(quán)重。
RASP,是此前在ICLR 2021一篇論文中提出的“編程語言”,專門根據(jù)Transformer架構(gòu)(編解碼器-注意力機制等)設(shè)計。
Tracr則在此基礎(chǔ)上更進一步,不僅簡單優(yōu)化了原有的RASP語言,而且能將基于RASP編寫的程序很好地轉(zhuǎn)換為Transformer模型的權(quán)重。
具體來說,Tracr會先將“編程語言”RASP轉(zhuǎn)換成“匯編語言”craft,后者表示向量空間以及其間的對應(yīng)操作,再進一步地,將craft轉(zhuǎn)變成“機器碼”模型權(quán)重。
具體實現(xiàn)過程如下,一共分為5步:
基于它,作者們創(chuàng)建了一系列人工編寫程序的基準(zhǔn)Transformer,包括計算token頻率、排序以及Dyck-n括號識別等。
據(jù)一作介紹,Tracr最大的亮點在于,可以“從0開始搭建你自己的Transformer模型”。
還提出了配套壓縮方法
不過,基于Tracr打造的模型可能效率很低,因此作者們又提出了一種配套的“壓縮”方法。
基于案例來看,這種方法不僅能讓Tracr模型更高效,而且允許將D維特征壓縮到小于D維的特征空間中。
例如這是基于RASP語言編寫的程序示例:
在對模型進行壓縮后,同樣能很好地完成原來的任務(wù),且效果相差不大:
同時作者們還觀察到,在對模型進行壓縮后,它甚至保留了更重要的特征,學(xué)會自動篩掉一些不重要的特征:
與此同時也能保證一個不錯的精度:
目前對應(yīng)的Tracr模型已經(jīng)開源,感興趣的小伙伴們可以去查看一波~
作者介紹
論文作者們分別來自DeepMind和蘇黎世聯(lián)邦理工學(xué)院。
一作David Lindner,蘇黎世聯(lián)邦理工學(xué)院在讀博士生,這份工作是他在DeepMind實習(xí)期間完成,目前感興趣的研究方向是AI魯棒性、強化學(xué)習(xí)等。
你想好用它設(shè)計一個怎樣的Transformer模型了嗎?
論文地址:https://arxiv.org/abs/2301.05062
項目地址:
??https://github.com/deepmind/tracr??