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