Transformer模型是當下的研究焦點。最近 Google Yi Tay發布了關于Transformers最新論文,提供這類模型的最新進展的全面概述。
Transformer模型架構最近引起了極大的興趣,因為它們在語言、視覺和強化學習等領域的有效性。例如,在自然語言處理領域,Transformer已經成為現代深度學習堆棧中不可缺少的主要部分。最近,提出的令人眼花繚亂的X-former模型如Linformer, Performer, Longformer等這些都改進了原始Transformer架構的X-former模型,其中許多改進了計算和內存效率。為了幫助熱心的研究人員在這一混亂中給予指導,本文描述了大量經過深思熟慮的最新高效X-former模型的選擇,提供了一個跨多個領域的現有工作和模型的有組織和全面的概述。
關鍵詞:深度學習,自然語言處理,Transformer模型,注意力模型
//www.zhuanzhi.ai/paper/39a97bd373cc6f37c6b2e9026f3422e8
Transformer是現代深度學習領域中一股強大的力量。Transformer無處不在,在語言理解、圖像處理等許多領域都產生了巨大的影響。因此,在過去的幾年里,大量的研究致力于對該模型進行根本性的改進,這是很自然的。這種巨大的興趣也刺激了對該模式更高效變體的研究 ((Kitaev et al., 2020; Roy et al., 2020; Beltagy et al., 2020; Katharopoulos et al., 2020; Tay et al., 2020b; Wang et al., 2020c; Rae et al., 2020; Choromanski et al., 2020b; Dai et al., 2020; Correia et al., 2019; Sukhbaatar et al., 2019a; Vyas et al., 2020)。
最近出現了大量的Transformer模型變體,研究人員和實踐者可能會發現跟上創新的速度很有挑戰性。在撰寫本文時,僅在過去6個月里就提出了近12種新的以效率為中心的模式。因此,對現有文獻進行綜述,既有利于社區,又十分及時。
自注意力機制是確定Transformer模型的一個關鍵特性。該機制可以看作是一種類似圖的歸納偏差,它通過基于關聯的池化操作將序列中的所有標記連接起來。一個眾所周知的自注意力問題是二次時間和記憶復雜性,這可能阻礙模型在許多設置的可伸縮性。最近,為了解決這個問題,出現了大量的模型變體。以下我們將這類型號命名為“高效Transformers”。
根據上下文,可以對模型的效率進行不同的解釋。它可能指的是模型的內存占用情況,當模型運行的加速器的內存有限時,這一點非常重要。效率也可能指計算成本,例如,在訓練和推理期間的失敗次數。特別是對于設備上的應用,模型應該能夠在有限的計算預算下運行。在這篇綜述中,我們提到了Transformer在內存和計算方面的效率,當它們被用于建模大型輸入時。
有效的自注意力模型在建模長序列的應用中是至關重要的。例如,文檔、圖像和視頻通常都由相對大量的像素或標記組成。因此,處理長序列的效率對于Transformer的廣泛采用至關重要。 本篇綜述旨在提供這類模型的最新進展的全面概述。我們主要關注的是通過解決自注意力機制的二次復雜性問題來提高Transformer效率的建模進展和架構創新,我們還將在后面的章節簡要討論一般改進和其他效率改進。
本文提出了一種高效Transformer模型的分類方法,并通過技術創新和主要用例對其進行了表征。特別地,我們回顧了在語言和視覺領域都有應用的Transformer模型,試圖對各個領域的文獻進行分析。我們還提供了許多這些模型的詳細介紹,并繪制了它們之間的聯系。
本節概述了高效Transformer模型的一般分類,以其核心技術和主要用例為特征。盡管這些模型的主要目標是提高自注意機制的內存復雜度,但我們還包括了提高Transformer體系結構的一般效率的方法。
固定模式(FP)——對自注意最早的修改是通過將視野限制在固定的、預定義的模式(如局部窗口和固定步距的塊模式)來簡化注意力矩陣。
組合模式(CP)——組合方法的關鍵思想是通過組合兩個或多個不同的訪問模式來提高覆蓋率。例如,Sparse Transformer (Child et al., 2019)通過將一半的頭部分配給每個模式,將跨步注意力和局部注意力結合起來。類似地,軸向Transformer (Ho et al., 2019)運用了一系列以高維張量作為輸入的自注意計算,每個計算都沿著輸入張量的單個軸。從本質上說,模式的組合以與固定模式相同的方式降低了內存復雜度。但是,不同之處在于,多個模式的聚合和組合提高了自注意機制的整體覆蓋率。
可學習的模式(LP)-固定的,預先確定的模式的擴展是可學習的模式。不出所料,使用可學習模式的模型旨在以數據驅動的方式學習訪問模式。學習模式的一個關鍵特征是確定令牌相關性的概念,然后將令牌分配到桶或集群(Vyas et al., 2020; Wang et al., 2020b)。值得注意的是,Reformer (Kitaev et al., 2020)引入了一種基于哈希的相似性度量,以有效地將令牌聚為塊。類似地,路由Transformer (Roy et al., 2020)對令牌使用在線k-means聚類。同時,Sinkhorn排序網絡(Tay et al., 2020b)通過學習對輸入序列的塊進行排序,暴露了注意權值的稀疏性。在所有這些模型中,相似函數與網絡的其他部分一起端到端訓練。可學習模式的關鍵思想仍然是利用固定模式(塊狀模式)。然而,這類方法學會了對輸入標記進行排序/聚類——在保持固定模式方法的效率優勢的同時,實現了序列的更優全局視圖。
神經記憶——另一個突出的方法是利用可學習的側記憶模塊,它可以一次訪問多個令牌。一種常見的形式是全局神經存儲器,它能夠訪問整個序列。全局標記充當一種模型內存的形式,它學習從輸入序列標記中收集數據。這是在Set transformer (Lee et al., 2019)中首次引入的誘導點方法。這些參數通常被解釋為“內存”,用作將來處理的臨時上下文的一種形式。這可以被認為是參數關注的一種形式(Sukhbaatar et al., 2019b)。ETC (Ainslie et al., 2020)和Longformer (Beltagy et al., 2020)也使用了全局記憶令牌。在有限的神經記憶(或誘導點)中,我們能夠對輸入序列執行一個初步的類似于池的操作來壓縮輸入序列——在設計高效的自注意模塊時,這是一個可以隨意使用的巧妙技巧。
低秩方法——另一種新興的技術是通過利用自注意矩陣的低秩近似來提高效率。
內核——另一個最近流行的提高transformer效率的方法是通過內核化來查看注意力機制。
遞歸-塊方法的一個自然擴展是通過遞歸連接這些塊。
下采樣-另一種降低計算成本的常用方法是降低序列的分辨率,從而以相應的系數降低計算成本。
稀疏模型和條件計算——雖然不是專門針對注意力模塊,稀疏模型稀疏地激活一個參數子集,這通常提高了參數與FLOPs的比率。
由于其在語言、視覺和強化學習等領域的有效性,Transformer模型架構最近獲得了巨大的興趣。例如,在自然語言處理領域,Transformer 已經成為現代深度學習堆棧中不可或缺的重要組成部分。最近,出現了令人眼花繚亂的“X-former”模型——Reformer、Linformer、Performer、Longformer等等——它們改進了原始Transformer架構,其中許多都圍繞計算和內存效率進行了改進。為了幫助熱心的研究人員在這一熱潮中導航,本文列舉了大量深思熟慮的近期高效的“X-former”模型,為跨多個領域的現有工作和模型提供了一個有組織的、全面的概述。
摘要
Transformers 在自然語言處理、計算機視覺和音頻處理等許多人工智能領域都取得了巨大的成功。因此,自然會引起學術界和工業界研究人員的極大興趣。到目前為止,各種各樣的Transformer變種(即X-formers)已經被提出,但是,關于這些Transformer器變種的系統和全面的文獻綜述仍然缺乏。在這項綜述中,我們提供了一個全面的Transformer綜述。我們首先簡單介紹了普通的Transformer,然后提出了一個x-former的新分類。接下來,我們將從三個方面介紹不同的x -former架構修改,預訓練和應用。最后,展望了未來的研究方向。
//www.zhuanzhi.ai/paper/f03a47eb6ddb5d23c07f51662f3220a0
引言
Transformer[136]是一種出色的深度學習模型,被廣泛應用于自然語言處理(NLP)、計算機視覺(CV)和語音處理等各個領域。Transformer最初是作為一種用于機器翻譯的序列到序列模型提出的[129]。后來的工作表明,基于Transformer的預訓練模型(PTMs)[100]可以在各種任務上實現最先進的性能。因此,Transformer已經成為NLP的首選架構,特別是對于PTMs。除了語言相關的應用,Transformer也被應用于CV[13, 33, 94],音頻處理[15,31,41],甚至其他學科,如化學[113]和生命科學[109]。
由于成功,各種各樣的Transformer 變種(即x -former)在過去幾年里被提出。這些X-formers從不同的角度改進了vanilla Transformer。
(1) 模型的效率。應用Transformer的一個關鍵挑戰是它在處理長序列時效率低下,這主要是由于自注意力模塊的計算和存儲復雜性。改進方法包括輕量級注意力(例如稀疏注意變體)和分治法(例如循環和分層機制)。
(2) 模型泛化。由于Transformer是一種靈活的體系結構,并且很少對輸入數據的結構偏差進行假設,因此很難對小規模數據進行訓練。改進方法包括引入結構偏差或正則化、對大規模無標記數據進行預處理等。
(3) 模型的適應。該工作旨在使Transformer適應特定的下游任務和應用程序。
在這個綜述中,我們的目的是提供一個Transformer及其變體的全面綜述。雖然我們可以根據上面提到的觀點來組織x-former,但許多現有的x前輩可能會解決一個或幾個問題。例如,稀疏注意變量不僅降低了計算復雜度,而且在輸入數據上引入了結構先驗,緩解了小數據集上的過擬合問題。因此,將現有的各種X-formers進行分類,并根據它們改進Transformer的方式提出新的分類方法會更有條理: 架構修改、預訓練和應用。考慮到本次綜述的受眾可能來自不同的領域,我們主要關注于一般的架構變體,而只是簡單地討論了預訓練和應用的具體變體。
到目前為止,基于普通Transformer的各種模型已經從三個角度被提出:架構修改的類型、預訓練的方法和應用。圖2給出了Transformer變種的分類說明。
盡管“x-formers”已經證明了他們在各種任務上的能力,但挑戰仍然存在。除了目前關注的問題(如效率和泛化),Transformer的進一步改進可能在以下幾個方向:
(1) 理論分析。Transformer的體系結構已被證明能夠支持具有足夠參數的大規模訓練數據集。許多工作表明,Transformer比CNN和RNN有更大的容量,因此有能力處理大量的訓練數據。當Transformer在足夠的數據上進行訓練時,它通常比CNN或RNN有更好的性能。一個直觀的解釋是,Transformer對數據結構沒有什么預先假設,因此比CNN和RNN更靈活。然而,理論原因尚不明確,我們需要對Transformer能力進行一些理論分析。
(2) 注意力機制之外的全局交互機制更加完善。Transformer的一個主要優點是使用注意力機制來建模輸入數據中節點之間的全局依賴關系。然而,許多研究表明,對大多數節點來說,完全注意力是不必要的。在某種程度上,不可區分地計算所有節點的注意力是低效的。因此,在有效地建模全局交互方面仍有很大的改進空間。一方面,自注意力模塊可以看作是一個具有動態連接權的全連接神經網絡,通過動態路由聚合非局部信息; 因此,其他動態路由機制是值得探索的替代方法。另一方面,全局交互也可以通過其他類型的神經網絡來建模,比如記憶增強模型。
(3) 多模態數據統一框架。在許多應用場景中,集成多模態數據對于提高任務性能是非常有用和必要的。此外,一般的人工智能還需要能夠捕獲跨不同模式的語義關系。由于Transformer在文本、圖像、視頻和音頻方面取得了巨大的成功,我們有機會建立一個統一的框架,更好地捕捉多模態數據之間的內在聯系。但是,在設計中對模式內和模式間的注意還有待改進。
摘要
Transformer模型架構最近引起了極大的興趣,因為它們在語言、視覺和強化學習等領域的有效性。例如,在自然語言處理領域,Transformer已經成為現代深度學習堆棧中不可缺少的主要部分。最近,提出的令人眼花繚亂的X-former模型如Linformer, Performer, Longformer等這些都改進了原始Transformer架構的X-former模型,其中許多改進了計算和內存效率。為了幫助熱心的研究人員在這一混亂中給予指導,本文描述了大量經過深思熟慮的最新高效X-former模型的選擇,提供了一個跨多個領域的現有工作和模型的有組織和全面的概述。
關鍵詞:深度學習,自然語言處理,Transformer模型,注意力模型
介紹
Transformer是現代深度學習領域中一股強大的力量。Transformer無處不在,在語言理解、圖像處理等許多領域都產生了巨大的影響。因此,在過去的幾年里,大量的研究致力于對該模型進行根本性的改進,這是很自然的。這種巨大的興趣也刺激了對該模式更高效變體的研究。
最近出現了大量的Transformer模型變體,研究人員和實踐者可能會發現跟上創新的速度很有挑戰性。在撰寫本文時,僅在過去6個月里就提出了近12種新的以效率為中心的模式。因此,對現有文獻進行綜述,既有利于社區,又十分及時。
自注意力機制是確定Transformer模型的一個關鍵特性。該機制可以看作是一種類似圖的歸納偏差,它通過基于關聯的池化操作將序列中的所有標記連接起來。一個眾所周知的自注意力問題是二次時間和記憶復雜性,這可能阻礙模型在許多設置的可伸縮性。最近,為了解決這個問題,出現了大量的模型變體。以下我們將這類型號命名為“高效Transformers”。
根據上下文,可以對模型的效率進行不同的解釋。它可能指的是模型的內存占用情況,當模型運行的加速器的內存有限時,這一點非常重要。效率也可能指計算成本,例如,在訓練和推理期間的失敗次數。特別是對于設備上的應用,模型應該能夠在有限的計算預算下運行。在這篇綜述中,我們提到了Transformer在內存和計算方面的效率,當它們被用于建模大型輸入時。
有效的自我注意力模型在建模長序列的應用中是至關重要的。例如,文檔、圖像和視頻通常都由相對大量的像素或標記組成。因此,處理長序列的效率對于Transformer的廣泛采用至關重要。
本篇綜述旨在提供這類模型的最新進展的全面概述。我們主要關注的是通過解決自我注意力機制的二次復雜性問題來提高Transformer效率的建模進展和架構創新,我們還將在后面的章節簡要討論一般改進和其他效率改進。
本文提出了一種高效Transformer模型的分類方法,并通過技術創新和主要用例對其進行了表征。特別地,我們回顧了在語言和視覺領域都有應用的Transformer模型,試圖對各個領域的文獻進行分析。我們還提供了許多這些模型的詳細介紹,并繪制了它們之間的聯系。
由于硬件資源有限,深度學習模型的訓練目標通常是在訓練和推理的時間和內存限制下最大化準確性。在這種情況下,我們研究了模型大小的影響,關注于計算受限的NLP任務的Transformer模型:自監督的預訓練和高資源機器翻譯。我們首先展示了,盡管較小的Transformer模型在每次迭代中執行得更快,但更廣、更深入的模型在顯著更少的步驟中收斂。此外,這種收斂速度通常超過了使用更大模型的額外計算開銷。因此,計算效率最高的訓練策略是反直覺地訓練非常大的模型,但在少量迭代后停止。
這導致了大型Transformer 模型的訓練效率和小型Transformer 模型的推理效率之間的明顯權衡。然而,我們表明大模型比小模型在壓縮技術(如量化和剪枝)方面更健壯。因此,一個人可以得到最好的兩個好處: 重壓縮,大模型比輕壓縮,小模型獲得更高的準確度。
//www.zhuanzhi.ai/paper/4d7bcea8653fcc448137766511ec7d8a
概述:
在當前的深度學習范式中,使用更多的計算(例如,增加模型大小、數據集大小或訓練步驟)通常會導致更高的模型準確度(brock2018large;raffel2019exploring)。最近自監督預訓練的成功進一步論證了這種趨勢經模型。因此,計算資源日益成為提高模型準確度的關鍵制約因素。這個約束導致模型訓練的(通常是隱含的)目標是最大化計算效率:如何在固定的硬件和訓練時間下達到最高的模型準確度。
最大化計算效率需要重新考慮關于模型訓練的常見假設。特別是,有一個典型的隱式假設,即模型必須經過訓練直到收斂,這使得較大的模型在有限的計算預算下顯得不太可行。我們通過展示以收斂為代價來增加模型大小的機會來挑戰這一假設。具體地說,我們表明,訓練Transformer 模型的最快方法(vaswani2017attention)是大幅度增加模型大小,但很早停止訓練。
在我們的實驗中,我們改變了Transformer模型的寬度和深度,并在自監督的預訓練(RoBERTa (liu2019roberta)在Wikipedia和BookCorpus上訓練)和機器翻譯(WMT14英語→法語)上評估了它們的訓練時間和準確性。對于這些任務,我們首先展示了更大的模型比更小的模型在更少的梯度更新中收斂到更低的驗證錯誤(第3節)。此外,這種收斂速度的增加超過了使用更大模型所帶來的額外計算開銷——計算效率最高的模型是非常大的,并且遠遠不能收斂(例如,圖2,左)。我們還表明,收斂的加速主要是參數計數的函數,只有模型寬度、深度和批大小的微弱影響。
雖然較大的模型訓練速度更快,但它們也增加了推理的計算和內存需求。這種增加的成本在現實應用中尤其成問題,推理成本占訓練成本的主要比例(jouppi2017datacenter;crankshaw2017clipper;metz2017tpu)。然而,對于RoBERTa來說,這種明顯的權衡可以與壓縮相協調:與小型模型相比,大型模型在壓縮方面更加健壯(第4節)。因此,使用可比較的推理成本,大型重壓縮的模型優于小型輕壓縮的模型(例如,圖2,右)。