高效Transformer層出不窮,谷歌團隊綜述文章一網(wǎng)打盡
自 2017 年誕生以來,Transformer 模型在自然語言處理、計算機視覺等多個領域得到廣泛應用,并出現(xiàn)了大量變體。近期涌現(xiàn)的大量 Transformer 變體朝著更高效的方向演化,谷歌研究者對這類高效 Transformer 架構(gòu)進行了綜述。
Transformer 是現(xiàn)代深度學習領域一股令人敬畏的力量,它廣泛應用于語言理解、圖像處理等多個領域,并產(chǎn)生了極大的影響。過去幾年,大量研究基于 Transformer 模型做出基礎性改進。人們對此的巨大興趣也激發(fā)了對更高效 Transformer 變體的研究。
近期涌現(xiàn)了大量 Transformer 模型變體,研究者和從業(yè)者可能難以跟上創(chuàng)新的節(jié)奏。在該論文寫作時(2020 年 8 月),之前的半年出現(xiàn)了十多個新的高效 Transformer 模型。因此,對已有文獻進行綜述對于社區(qū)而言是有益和及時的。
自注意力機制是 Transformer 模型的核心典型特征。該機制可被看作是一種類似圖的歸納偏置,將序列中的所有 token 與基于相關性的池化操作連接起來。對于自注意力的一個擔憂是其時空復雜度都是平方級的,這妨礙模型在多種環(huán)境下的可擴展性。最近出現(xiàn)了大量試圖解決該問題的 Transformer 模型變體,本文將這類模型稱作「高效 Transformer」(efficient Transformer)。
基于此,模型的效率有了不同的詮釋。效率可能指模型的內(nèi)存占用,當模型運行的加速器內(nèi)存有限時這尤為重要;效率也可能指訓練和推斷過程中的計算成本,如 FLOPs 數(shù)。尤其對于設備端應用而言,模型應在有限的計算預算下運行。該綜述論文從內(nèi)存和計算兩個角度來考慮 Transformer 的效率。
高效自注意力模型對于建模長序列的應用很關鍵,如通常包括較多像素或 token 的文檔、圖像和視頻。因此,廣泛采用 Transformer 優(yōu)先考慮的是處理長序列的效率。
該論文旨在對這類模型的近期發(fā)展進行綜述,主要聚焦于通過解決自注意力機制的平方級復雜度來提升 Transformer 效率的建模發(fā)展和架構(gòu)創(chuàng)新,同時該論文還簡要探討了通用改進和其他效率改進。
該論文提出了一種針對高效 Transformer 模型的分類法,按照技術(shù)創(chuàng)新和主要用途進行分類。具體而言,該論文綜述了在語言和視覺領域均有應用的 Transformer 模型,并為其中的部分模型提供了詳細的解讀。
論文鏈接:https://arxiv.org/pdf/2009.06732.pdf
關于 Transformer
Transformer 是將 Transformer 塊一個個堆疊而成的多層架構(gòu),標準 Transformer 的架構(gòu)如下圖所示:
Transformer 塊的特征是多頭自注意力機制、position-wise 前饋網(wǎng)絡、層歸一化模塊和殘差連接。Transformer 模型的輸入通常是形狀為 R^B × R^N 的張量,B 表示批大小,N 表示序列長度。
輸入首先經(jīng)過嵌入層,嵌入層將每個 one-hot token 表示轉(zhuǎn)換為 d 維嵌入,即 R^B × R^N × R^D 。然后將這個新的張量與位置編碼(positional encoding)相加,并輸入到多頭自注意力模塊中。位置編碼可以采用正弦輸入的形式,或者可訓練嵌入。
多頭自注意力模塊的輸入和輸出由殘差連接和層歸一化層來連接。將多頭自注意力模塊的輸出傳送至兩層前饋網(wǎng)絡,其輸入 / 輸出通過殘差和層歸一化來連接。子層殘差連接與層歸一化可表示為:
其中 F_S 是子層模塊,它要么是多頭自注意力,要么是 position-wise 前饋層。
高效 Transformer 模型綜述
這部分對高效 Transformer 模型進行了綜述。首先我們來看不同模型的特點,表 1 列出了目前發(fā)布的高效 Transformer 模型,圖 2 展示了多種重要高效 Transformer 模型的圖示。
圖 2:高效 Transformer 模型的分類,分類標準是模型的核心技術(shù)和主要應用場景。
表 1:按發(fā)布時間順序整理的高效 Transformer 模型
此外,這部分還詳細介紹了多個重要的高效 Transformer 模型,并分析了它們的優(yōu)缺點和獨特之處。這些模型包括:Memory Compressed Transformer、Image Transformer、Set Transformers、Sparse Transformers、Axial Transformers、Longformer、ETC、BigBird、Routing Transformers、Reformer、Sinkhorn Transformers、Linformer、Synthesizers、Performer、Linear Transformers、Transformer-XL 和 Compressive Transformers。
具體細節(jié)此處不再贅述,詳情參見原論文第三章。
論文最后討論了這些模型的評估情況和設計趨勢,并簡要概述了可以提高 Transformer 效率的其他方法,如權(quán)重共享、量化 / 混合精度、知識蒸餾、神經(jīng)架構(gòu)搜索(NAS)和 Task Adapter。
*博客內(nèi)容為網(wǎng)友個人發(fā)布,僅代表博主個人觀點,如有侵權(quán)請聯(lián)系工作人員刪除。