3行代碼就能可視化Transformer的奧義
本文經(jīng)AI新媒體量子位(公眾號(hào)ID:QbitAI)授權(quán)轉(zhuǎn)載,轉(zhuǎn)載請(qǐng)聯(lián)系出處。
Transformer背后的計(jì)算模型是什么?
就是最資深的煉丹er,也很難直觀地解釋這一結(jié)構(gòu)中的信息如何流動(dòng),數(shù)據(jù)又是如何計(jì)算的。
但現(xiàn)在,只要寫上幾行代碼,就能將Transformer的流程可視化。

△RASP代碼被編譯成一個(gè)兩層三頭的Transformer架構(gòu)。
這就是RASP,以色列科學(xué)家最新研發(fā)的一種簡(jiǎn)單的序列處理語(yǔ)言。
他們希望通過(guò)這一語(yǔ)言去計(jì)算和解決更高層次的抽象問(wèn)題。
熱心網(wǎng)友立馬點(diǎn)贊:
我愛(ài)這篇論文,因?yàn)槲以陂喿x機(jī)器學(xué)習(xí)論文時(shí)老是有“可視化Transformer”的想法,現(xiàn)在終于可以拿這個(gè)去玩兒了。而且用的都是一些簡(jiǎn)單的高階函數(shù),估計(jì)移植到Python或者放在Jupyter上跑也不難。

那么,這個(gè)叫做RASP的語(yǔ)言到底如何“像Transformer一樣思考”的呢?

這門新方法是怎么形成的
讓我們先追溯到上個(gè)世紀(jì),RNN被抽象成為有限狀態(tài)自動(dòng)機(jī)(Finite State Automata)這一計(jì)算模型的例子。
這一例子說(shuō)明了RNN與自動(dòng)機(jī)之間存在著非常直觀的相似性。
經(jīng)過(guò)這種抽象之后,圍繞RNN架構(gòu)的變體或訓(xùn)練模型就展開(kāi)了更為直觀的討論和思考。
而Transformer就不夠直觀,因?yàn)樗谔幚硇蛄袝r(shí)擁有獨(dú)特的信息流約束。

到了2020年,出現(xiàn)了基于Transformer提出的可以識(shí)別Dyck-k語(yǔ)言的構(gòu)架。
這時(shí)的Transformer網(wǎng)絡(luò)在一階段的邏輯公式中作為輸入時(shí),能夠?qū)W習(xí)并展現(xiàn)出一種多步驟的邏輯推理。
這就對(duì)研究團(tuán)隊(duì)產(chǎn)生了啟發(fā):能不能編寫一種程序,對(duì)輸入表達(dá)式也進(jìn)行類似的邏輯推理呢?
RASP(Access Sequence Processing Language)就這樣誕生了。

將Transformer編碼器的基本組件:注意力(attention)和前饋計(jì)算層(feed-forward computation)映射到簡(jiǎn)單的原語(yǔ)(primitives)中,然后圍繞它們形成一種新的編碼語(yǔ)言。
這就是RASP,全稱限制性訪問(wèn)序列處理語(yǔ)言。
當(dāng)然,你也可以將RASP認(rèn)為是一種Transformer結(jié)構(gòu)的計(jì)算方法:
將Transformer網(wǎng)絡(luò)的技術(shù)細(xì)節(jié)抽象而出,使其支持符號(hào)化程序,然后“編譯”到Transformer硬件上,再定義一系列的注意力和多層感知器操作。
這就是像Transformer一樣思考。
怎樣一個(gè)計(jì)算模型
好,現(xiàn)在來(lái)看看這個(gè)RASP到底是由什么構(gòu)成的:
- 內(nèi)置的序列操作符(built-in s-ops)
在RASP中編程的目標(biāo)就是將這些序列操作符組合成起來(lái),去計(jì)算最終的目標(biāo)任務(wù)。
- 元素性操作(Elementwise Operations)
反映了Transformer的前饋?zhàn)訉印?/p>
- 其他操作
所有除元素性操作之外的操作,比如寬度選擇(selector_width operation)。
而Transformer的核心是什么?注意力機(jī)制。
RASP允許每個(gè)輸入定義選擇一種注意力模式,再通過(guò)加權(quán)平均,將輸入值混合成一個(gè)新的輸出。
那么它是如何進(jìn)行編譯呢?
當(dāng)你輸入這樣3行代碼:

RASP就能將序列操作符和輸入對(duì)的編譯流程可視化:

可以看到,第一層的頭并不均勻地關(guān)注整個(gè)序列,而是在序列的最后位置上展示出了偏向性。
而Transformer第二層的注意頭與程序中的反轉(zhuǎn)選擇器(flip selector)的行為完全對(duì)應(yīng):

表現(xiàn)怎么樣?
RASP能夠有效地預(yù)測(cè)一個(gè)Transformer解決某任務(wù)所需的最大層數(shù)和頭數(shù)嗎?
研究者在每個(gè)任務(wù)上訓(xùn)練4個(gè)規(guī)定大小的Transformer,然后測(cè)試它們的準(zhǔn)確性:結(jié)果是大多數(shù)Transformer都達(dá)到了99.5%以上的準(zhǔn)確率。

這讓RASP可以作為一種用來(lái)推斷Transformer擅長(zhǎng)哪些任務(wù),或其架構(gòu)如何影響這些任務(wù)的工具。
而在根據(jù)RASP預(yù)測(cè)尺寸訓(xùn)練的Transformer減少它的頭數(shù)和層數(shù)時(shí),準(zhǔn)確率會(huì)發(fā)生大幅下降**。

△用L、H表示編譯的RASP程序所預(yù)測(cè)的層數(shù)和頭數(shù)。
這也表示RASP擁有非常嚴(yán)格的約束性,在邊界的緊密性(Tightness of the bound)上達(dá)到了極高的精度。
團(tuán)隊(duì)介紹
論文一作Gail Weiss是以色列理工學(xué)院的博士生,目前在學(xué)院內(nèi)的計(jì)算機(jī)科學(xué)系中工作。
其中二作Yoav Goldberg來(lái)自以色列的巴伊蘭大學(xué),目前就職于艾倫人工智能研究院(Allen Institute for Artificial Intelligence)。
論文地址:
https://arxiv.org/abs/2106.06981
下載:
https://github.com/tech-srl/RASP
參考鏈接:
https://news.ycombinator.com/item?id=27528004