Transformer是一種主要基于自注意力機制的深度神經網絡,最初應用于自然語言處理領域。受Transformer強大的表征能力的啟發,研究人員提出將Transformer擴展到計算機視覺任務中。與卷積網絡和循環網絡等其他網絡類型相比,基于Transformer的模型在各種視覺基準上都具有競爭力,甚至表現出了更好的性能。在本文中,作者對這些視覺變換器模型進行了文獻綜述,將它們按照不同的任務進行分類,并分析了這些方法的優缺點。具體來說,主要包括基礎圖像分類(basic image classification)、高級視覺(high-level vision)、低級視覺(low-level vision)和視頻處理(video processing)。由于自注意力(self-attention)是變換器中的基礎部件,作者簡要重新審視了自注意力在計算機視覺中的位置。為變換器推向實際應用,本文包含了高效的變換器方法。最后,作者給出了視覺變換器的未來研究方向。
深度神經網絡已成為現代人工智能系統的基礎設施。針對不同的任務,已經提出了不同的網絡類型。多層感知(Multi-layer perception, MLP)或稱全連接(full - connected, FC)網絡是由多個線性層和非線性激活疊加而成的經典神經網絡[104,105]。卷積神經網絡(CNNs)引入了卷積層和池化層,用于處理圖像等位移不變數據[68,65]。循環神經網絡(RNNs)利用循環細胞來處理順序數據或時間序列數據[106,49]。Transformer是一種新提出的神經網絡,主要利用自注意力機制[5,90]來提取內在特征[123]。其中轉換器網絡是新近發明的一種神經網絡,在人工智能方面具有廣泛的應用潛力。
Transformer最初應用于自然語言處理(natural language processing, NLP)任務,并帶來了顯著的改進[123,29,10]。例如,Vaswani等人[123]首先提出了完全基于注意力機制的轉換器,用于機器翻譯和英語分析任務。Devlin等人[29]引入了一種新的語言表示模型,稱為BERT,該模型通過聯合調節左右上下文,從未標記的文本中預訓練一個Transformer。BERT在當時的十一個NLP任務中獲得了最先進的結果。Brown等人[10]在45TB壓縮純文本數據上預訓練了一個具有1750億參數的基于巨型Transformer的GPT-3模型,在不進行微調的情況下,在不同類型的下游自然語言任務上實現了強大的性能。這些基于Transformer的模型顯示了較強的表示能力,并在自然語言處理領域取得了突破。
受自然語言處理中transformer 功能的啟發,近年來研究人員將transformer 擴展到計算機視覺任務中。CNN曾經是視覺應用的基礎組件[47,103],但transformer作為CNN的替代品正在表現出它的能力。Chen等人[18]訓練序列轉換器進行自回歸預測像素,實現與CNN在圖像分類任務上的相匹配結果。ViT是Dosovitskiy等人[31]最近提出的一種視覺transformer 模型,它將純transformer 直接應用于圖像貼片序列,在多個圖像識別基準上獲得了最先進的性能。除了基本的圖像分類,transformer還被用于解決更多的計算機視覺問題,如目標檢測[14,155]、語義分割、圖像處理和視頻理解。由于其優異的性能,越來越多的基于transformer的模型被提出用于改進各種視覺任務。
基于transformer的視覺模型如雨后春筍般涌現,這讓我們很難跟上新發展的步伐。因此,對現有工作的調研是有益的,對社區是有益的。在本文中,我們對視覺transformer的最新進展進行了全面的概述,并討論了進一步改進的潛在方向。為了獲得更好的存檔并方便不同主題的研究人員,我們按應用場景對transformer模型進行分類,如表1所示。具體來說,主要內容包括基本圖像分類、高級視覺、低級視覺和視頻處理。高級視覺處理圖像中看到的東西的解釋和使用[121],如對象檢測、分割和車道檢測。已經有許多transformer模型解決這些高級視覺任務,如DETR[14],用于目標檢測的變形DETR[155]和用于分割的Max-DeepLab[126]。低級別圖像處理主要涉及從圖像(通常表示為圖像本身)[35]中提取描述,其典型應用包括超分辨率、圖像去噪和樣式轉換。很少有研究[17,92]在低級視覺中使用transformer,需要更多的研究。除了基于圖像的任務外,視頻處理也是計算機視覺的一個重要部分。由于視頻的時序性,transformer自然可以應用于視頻中[154,144]。與傳統的CNN或RNNs相比,Transformer在這些任務上開始表現出具有競爭力的性能。本文對基于Transformer的可視化模型的研究工作進行了綜述,以跟上這一領域的發展步伐。視覺Transformer的開發時間表如圖所示,我們相信會有越來越多的優秀作品被鐫刻在里程碑上。
本文的其余部分組織如下。第二節首先制定了自注意力機制和標準transformer。我們在第三節中描述了在自然語言處理中transformer的方法,因為研究經驗可能有助于視覺任務。接下來,第四部分是本文的主要部分,總結了圖像分類、高級視覺、低級視覺和視頻任務上的視覺變形模型。我們還簡要回顧了CV的自注意力機制和高效Transformer方法,因為它們與我們的主題密切相關。最后,對全文進行了總結,并對今后的研究方向和面臨的挑戰進行了討論。
與卷積神經網絡相比,Transformer 以其優異的性能和巨大的潛力成為計算機視覺領域的研究熱點。為了發現和利用Transformer的效用,正如在調研中總結的那樣,近年來已經提出了一些解決方案。這些方法在基礎圖像分類、高級視覺、低級視覺和視頻處理等視覺任務中表現出優異的性能。然而,計算機視覺Transformer的潛力還沒有被充分發掘,還有一些挑戰有待解決。
雖然研究者們已經提出了許多基于Transformer的模型來處理計算機視覺任務,但這些工作只是初步的解決方案,還有很大的改進空間。例如,ViT[31]的transformer 架構遵循NLP的標準transformer [123]。針對CV的改進版本還有待探索。除此之外,transformer 還需要應用在更多的任務上。
此外,現有的視覺transformer 模型大多是針對單一任務而設計的。許多NLP模型,如GPT-3[10],都顯示了transformer在一個模型中處理多個任務的能力。在CV區域的IPT[17]還能夠處理多個低分辨率的視覺任務,如超分辨率、圖像去噪和去噪。我們認為,只有一種模式可以涉及更多的任務。最后,開發高效的CV轉換器模型也是一個有待解決的問題。transformer 模型通常是巨大的和計算昂貴的,例如,基本的ViT模型[31]需要180億次浮點運算來處理一個圖像。相比之下,輕量級的CNN模型GhostNet[44,45]只需約6億次FLOPs就能達到類似的性能。雖然有幾種壓縮transformer 的方法,但它們的復雜性仍然很大。而這些最初為自然語言處理設計的方法可能并不適用于CV。
Ronghang Hu (胡戎航)
胡戎航(Ronghang Hu)是Facebook人工智能研究(FAIR)的研究科學家。他的研究興趣包括視覺和語言推理和視覺感知。他于2020年在Trevor Darrell教授和Kate Saenko教授的指導下獲得UC Berkeley的計算機科學博士學位。2019年夏天和2017年夏天,他在FAIR做研究實習生,分別與Marcus Rohrbach博士和Ross Girshick博士一起工作。2015年獲得清華大學學士學位。2014年,他在中國科學院計算技術研究所進行研究實習,得到了山時光教授和王瑞平教授的指導。
視覺與語言推理的結構化模型
視覺和語言任務(例如回答一個關于圖像的問題,為參考表達做基礎,或遵循自然語言指令在視覺環境中導航)需要對圖像和文本的兩種模式共同建模和推理。我們已經見證了視覺和語言推理的顯著進展,通常是通過在更大的數據集和更多計算資源的幫助下訓練的神經方法。然而,解決這些視覺和語言的任務就像用更多的參數建立模型,并在更多的數據上訓練它們一樣簡單嗎?如果不能,我們怎樣才能建立數據效率高、易于推廣的更好的推理模型呢?
這篇論文用視覺和語言推理的結構化模型為上述問題提供了答案——這些模型的架構考慮了人類語言、視覺場景和代理技能中的模式和規律。我們從表達式的基礎開始,我們在第二章中展示了通過考慮這些表達式中的組合結構,我們提出的組合模塊網絡(CMNs)可以實現更好的準確性和泛化。在第三章中,我們使用基于與問題推理步驟一致的動態組合模塊的端到端模塊網絡(N2NMNs)進一步解決了可視化的問題回答任務。在第四章中,我們擴展了模塊化推理的研究,提出了基于可解釋推理步驟的堆棧神經模塊網絡(SNMNs)。模塊化推理之外,我們也提出構建環境敏感的視覺表征與Language-Conditioned場景圖網絡(LCGNs)。第五章對于關系推理和解決問題的閱讀文本圖像的問答迭代pointer-augmented多通道變形金剛。在第六章,我們說明了嵌入任務也需要結構化模型,并在第7章中提出了說話者-跟隨者模型,其中說話者模型和跟隨者模型互為補充。在所有這些場景中,我們表明,通過考慮任務中的結構和輸入模式,我們的模型的執行和泛化明顯優于非結構化對應模型。
摘要
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模型,試圖對各個領域的文獻進行分析。我們還提供了許多這些模型的詳細介紹,并繪制了它們之間的聯系。
隨著web技術的發展,多模態或多視圖數據已經成為大數據的主要流,每個模態/視圖編碼數據對象的單個屬性。不同的模態往往是相輔相成的。這就引起了人們對融合多模態特征空間來綜合表征數據對象的研究。大多數現有的先進技術集中于如何融合來自多模態空間的能量或信息,以提供比單一模態的同行更優越的性能。最近,深度神經網絡展示了一種強大的架構,可以很好地捕捉高維多媒體數據的非線性分布,對多模態數據自然也是如此。大量的實證研究證明了深多模態方法的優勢,從本質上深化了多模態深特征空間的融合。在這篇文章中,我們提供了從淺到深空間的多模態數據分析領域的現有狀態的實質性概述。在整個調查過程中,我們進一步指出,該領域的關鍵要素是多模式空間的協作、對抗性競爭和融合。最后,我們就這一領域未來的一些方向分享我們的觀點。
【導讀】知識蒸餾是一種典型的模型壓縮和加速方法,在很多應用場景對此有需求。來自悉尼大學的學者發布了《知識蒸餾》的綜述論文,值的關注。
近年來,深度神經網絡在工業和學術界取得了巨大的成功,特別是在視覺識別和神經語言處理方面的應用。深度學習的巨大成功,主要歸功于其巨大的可擴展性,既有大規模的數據樣本,也有數十億的模型參數。然而,在資源有限的設備如移動電話和嵌入式設備上部署這些笨重的深模型也帶來了巨大的挑戰,不僅因為計算量大,而且存儲空間大。為此,開發了各種模型壓縮和加速技術,如剪枝、量化和神經結構搜索。知識蒸餾是一種典型的模型壓縮和加速方法,旨在從大教師模型中學習小學生模型,越來越受到社會的關注。本文從知識分類、訓練方案、知識提取算法以及應用等方面對知識提取進行了綜述。此外,我們簡要回顧了知識提煉的挑戰,并對未來的研究課題提供了一些見解。
概述
在過去的幾年里,深度學習在人工智能領域取得了巨大的成功,包括計算機視覺(Krizhevsky et al., 2012)、強化學習(Silver et al., 2016)和神經語言處理(Devlin et al., 2018)的各種應用。借助最近許多技術,包括殘差連接(He et al., 2016)和批處理歸一化(Ioffe and Szegedy, 2015),我們可以輕松地在強大的GPU或TPU集群上訓練具有數千層的深度模型。例如,只需不到10分鐘就可以在數百萬張圖像的數據集上訓練ResNet模型(Deng et al. , 2009 ; Sun et al. , 2019); 訓練一個強大的BERT模型進行語言理解只需要不到一個半小時 (Devlin et al., 2018; You et al., 2019).。雖然大規模的深度模型帶來了令人難以置信的性能,但其龐大的計算復雜度和海量的存儲需求給實時應用的部署帶來了巨大的挑戰,特別是對于那些資源有限的設備,比如嵌入式人臉識別系統和自動駕駛汽車。
為了開發高效的深度模型,最近的工作通常集中在1)基于深度可分離卷積的高效基本塊,如MobileNets (Howard et al. , 2017 ; Sandler et al. , 2018) 和ShuffleNets (Zhang et al. , 2018a ; Ma et al. , 2018); (2)模型壓縮和加速技術,主要包括以下類別(Cheng et al., 2018)。
參數修剪和共享: 這些方法主要是去除深層神經網絡中不重要的參數,去除的參數對性能影響不大。該類別又分為模型量化(Wu et al., 2016)和二值化(Courbariaux et al., 2015)、參數共享(Han et al., 2015)和結構矩陣(Sindhwani et al., 2015)。
低秩分解: 這些方法通過矩陣/張量分解來探索深度神經網絡參數的冗余性(Denton et al., 2014)。
傳輸/壓縮卷積濾波器: 這些方法通過傳輸/壓縮卷積濾波器來減少不必要的參數(Zhai et al., 2016)。
知識蒸餾(KD): 這些方法通常將知識從一個較大的深度神經網絡提取到一個較小的網絡中(Hinton et al., 2015)。
對模型壓縮和加速的全面回顧超出了本文涵蓋的范圍,而我們關注的是知識蒸餾,這已經得到越來越多的研究社區關注。在實踐中,大型深度模型往往會取得非常好的性能,因為過參數化提高了泛化性能 (Brutzkus and Globerson, 2019; Allen-Zhu et al., 2019; Arora et al., 2018)。知識蒸餾通過在大教師模型的監督下學習小學生模型,從而探究深度模型中參數的冗余性,用于推理(Bucilua et al., 2006; Ba and Caruana, 2014; Hinton et al., 2015; Urban et al., 2016),而知識蒸餾的關鍵問題是如何將知識從大教師模型轉移到小學生模型。一般情況下,知識蒸餾的師生框架如圖1所示。雖然在實踐中取得了巨大的成功,但在理論或經驗上理解知識提煉方法的工作并不多(Cheng et al., 2020; Phuong and Lampert, 2019; Cho and Hariharan, 2019)。具體來說,為了理解知識蒸餾的工作機制,Phuong和Lampert在深度線性分類器的情況下,從理論上證明了學習精餾學生網絡快速收斂的泛化邊界(Phuong和Lampert, 2019)。這一解釋理論上回答了學生學習的內容和速度,并揭示了決定蒸餾成功的因素。蒸餾的成功依賴于數據幾何、蒸餾目標的優化偏差和學生分類器的強單調性。Cheng等人量化了來自深度神經網絡中間層的視覺概念知識,以解釋知識蒸餾(Cheng et al., 2020)。Cho和Hariharan對知識蒸餾的有效性進行了詳細的實證分析(Cho和Hariharan, 2019)。實證分析發現,由于模型容量的差距,較大的模型不一定是更好的老師(Mirzadeh et al., 2019),而精餾會對學生的學習產生不利影響。據我們所知,(Cho and Hariharan, 2019)忽略了對教師和學生之間不同知識、不同蒸餾和相互感情的經驗評價。此外,通過實證分析,從標簽平滑、教師和先驗對最優輸出層幾何形狀的預測置信度等角度探討了對知識蒸餾的理解(Tang et al., 2020)。
模型壓縮的知識蒸餾思想與人類的學習方案非常相似。為此,近年來的知識蒸餾方法不僅擴展到了師生學習(Hinton et al., 2015),還擴展到了相互學習(Zhang et al., 2018b)、自學(Yuan et al., 2019)、輔助教學(Mirzadeh et al., 2019)和終身學習(Zhai et al., 2019)。知識蒸餾的大部分擴展集中于壓縮深度神經網絡,因此輕量級的學生網絡可以很容易地部署在諸如視覺識別、語音識別和自然語言處理(NLP)等應用程序中。此外,知識蒸餾中從一個模型到另一個模型的知識轉移符號也可以擴展到其他任務,如對抗攻擊(Papernot et al., 2016b)、數據增強(Lee et al., 2019a;Gordon和Duh, 2019),數據隱私和安全(Wang等,2019a)。
本文對知識蒸餾的研究進行了綜述。本綜述的主要目的是1) 全面概述知識蒸餾,包括動機的背景,基本符號和公式,以及幾種典型知識,蒸餾和算法; 2) 全面回顧知識蒸餾的最新進展,包括理論、應用和在不同現實場景下的擴展; 3) 從知識遷移的不同角度,包括不同類型的知識、訓練方案、知識提煉算法/結構和應用,闡述知識蒸餾的一些挑戰和見解。本文組織概況如圖2所示。具體地說,本文的其余部分結構如下。第二節給出了知識蒸餾的重要概念和常規模型。知識和蒸餾的種類分別在第3節和第4節中進行了總結。現有的關于知識提煉中的師生結構的研究在第5部分進行了說明。第6節對許多最新的知識蒸餾方法進行了全面的總結和介紹。知識蒸餾的廣泛應用將在第7節的不同方面加以說明。第8節討論了知識蒸餾中具有挑戰性的問題和未來的方向。最后,在第9節給出結論。
摘要: 近年來,隨著深度學習的快速發展,面向自然語言處理領域的預訓練技術獲得了長足的進步。早期的自然語言處理領域長期使用Word2Vec等詞向量方法對文本進行編碼,這些詞向量方法也可看作靜態的預訓練技術。然而,這種上下文無關的文本表示給其后的自然語言處理任務帶來的提升非常有限,并且無法解決一詞多義問題。ELMo提出了一種上下文相關的文本表示方法,可有效處理多義詞問題。其后,GPT和BERT等預訓練語言模型相繼被提出,其中BERT模型在多個典型下游任務上有了顯著的效果提升,極大地推動了自然語言處理領域的技術發展,自此便進入了動態預訓練技術的時代。此后,基于BERT的改進模型、XLNet等大量預訓練語言模型不斷涌現,預訓練技術已成為自然語言處理領域不可或缺的主流技術。文中首先概述預訓練技術及其發展歷史,并詳細介紹自然語言處理領域的經典預訓練技術,包括早期的靜態預訓練技術和經典的動態預訓練技術;然后簡要梳理一系列新式的有啟發意義的預訓練技術,包括基于BERT的改進模型和XLNet;在此基礎上,分析目前預訓練技術研究所面臨的問題;最后對預訓練技術的未來發展趨勢進行展望。
基于Transformer的模型目前在NLP中得到了廣泛的應用,但我們對它們的內部工作原理仍然知之甚少。本文綜合了40多項分析研究,對著名的BERT模型(Devlin et al 2019)的已知情況進行了描述。我們還提供了對模型及其訓練機制的擬議修改的概述。然后我們概述了進一步研究的方向。
概述
自2017年推出以來,Transformers(Vaswani et al 2017)掀起了NLP的風暴,提供了增強的并行化和更好的長依賴建模。最著名的基于Transformers 的模型是BERT (Devlin et al 2019),他們在許多基準測試中獲得了最先進的結果,并集成在谷歌搜索中,提升了10%的查詢準確率。
雖然很明顯BERT和其他基于Transformer的模型工作得非常好,但是不太清楚為什么,這限制了架構的進一步假設驅動的改進。與CNNs不同,Transformer幾乎沒有認知動機,而且這些模型的大小限制了我們進行預訓練實驗和消融研究的能力。這解釋了過去一年里大量的研究試圖理解BERT表現背后的原因。
本文概述了迄今為止所了解到的情況,并強調了仍未解決的問題。我們重點研究BERT學習的知識的類型,這些知識在哪里體現,如何學習,以及提出的改進方法。
BERT架構
從根本上說,BERT是一堆由多個“頭”組成的Transformer 編碼器層,即全連接神經網絡增強了一個自我注意機制。對于序列中的每個輸入標記,每個頭計算鍵、值和查詢向量,這些向量用于創建加權表示。將同一層中所有磁頭的輸出合并并通過全連接層運行。每個層都用一個跳過連接進行包裝,并在它之后應用層規范化。
圖1 BERT模型
目錄:
【導讀】近年來深度學習芯片的研究發展是業界關注的焦點。專知之前報道過Google AI Jeff Dean獨自撰文的關于AI時代芯片的歷史發展趨勢-【Google Jeff Dean獨自署名論文】深度學習革命及其對計算機架構和芯片設計的影響,講述AI芯片發展歷程與未來,但學術業界一直缺乏對當前深度學習編譯器框架的綜述。最近北航的學者撰寫了第一篇關于當下深度學習編譯器的綜述論文《The Deep Learning Compiler: A Comprehensive Survey》36頁pdf1,從各個方面對現有的DL編譯器進行了全面的比較。此外,還詳細分析了多級紅外設計和編譯優化技術。最后,指出了DL編譯器的研究方向,很好的論文。
摘要
在不同的DL硬件上部署各種深度學習(DL)模型的困難,促進了社區中DL編譯器的研究和開發。工業界和學術界已經提出了幾個DL編譯器,如Tensorflow XLA和TVM。類似地,DL編譯器將不同DL框架中描述的DL模型作為輸入,然后為不同的DL硬件生成優化代碼作為輸出。然而,現有的綜述論文沒有一個全面地分析DL編譯器的獨特設計。在本文中,我們通過剖析通常采用的設計細節,對現有的DL編譯器進行了全面的調研,重點是面向DL的多級IRs和前端/后端優化。具體來說,我們從各個方面對現有的DL編譯器進行了全面的比較。此外,還詳細分析了多級紅外設計和編譯優化技術。最后,指出了DL編譯器的研究方向。這是第一篇關于DL編譯器的獨特設計的綜述論文,我們希望能夠為將來DL編譯器的研究鋪平道路。
概述
深度學習(DL)的發展對各個科學領域產生了深遠的影響。它不僅在自然語言處理(NLP) (Manning et al., 1999)和計算機視覺(CV) (Forsyth and Ponce, 2002)等人工智能領域顯示出顯著的價值,而且在電子商務(Ha et al., 2016)、智慧城市(Mohammadi et al., 2017)和藥物發現(Chen et al., 2018a)等更廣泛的應用領域也取得了巨大的成功。隨著卷積神經網絡(convolutional neural network, CNN) (LeCun et al., 1998)、遞歸神經網絡(neural network, RNN) (Rumelhart et al., 1986)、長短時記憶(long short-term memory, LSTM) (Hochreiter and Schmidhuber, 1997)、生成對抗網絡(adversarial network, GAN) (Goodfellow et al., 2014)等多種深度學習模型的出現,簡化DL模型的編程是實現其廣泛應用的關鍵。
在工業界和學術界的不斷努力下,為了簡化各種DL模型的應用,提出了TensorFlow (Abadi et al., 2016)、PyTorch (Paszke et al., 2019)、MXNet (Chen et al., 2015)和CNTK (Seide and Agarwal, 2016)等流行的DL編程框架。盡管上述DL編程框架的優點和缺點取決于它們設計中的折衷方案,但是互操作性對于減少冗余工程工作變得非常重要,因為它支持跨現有DL模型的新出現的DL模型。為了提高互操作性,ONNX (onn, [n.d.])被提議定義一種表示DL模型的開放源碼格式,這種格式可以促進不同DL框架之間的模型轉換。
與此同時,矩陣乘法等獨特的計算特性激發了芯片架構師為提高效率而設計定制DL芯片的熱情。互聯網巨頭(如谷歌TPU (Jouppi等,2017年),Hisilicon NPU (Liao等,2019年),蘋果Bonic (Kingsley-Hughes, 2017年)),處理器供應商(如NNP (tur, [n.d]),英特爾NNP (NNP, [n.d])),服務提供商(如亞馬遜推論(inf, [n.d]),阿里巴巴Hanguang (han, [n.d]),甚至初創公司(如Cambricon (Liu等,2016年),Graphcore (Jia等,為了提高DL模型的計算能力,他們投入了大量的人力和資本來開發DL芯片。一般來說,DL芯片的種類包括:1)通用芯片與軟硬件協同設計;2)完全定制DL機型專用芯片;3)受生物腦科學啟發的神經形態芯片。例如,通用芯片(如CPU、GPU)增加了AVX512矢量單元和張量核等特殊硬件組件來加速DL模型。而對于專用芯片,如谷歌張量處理單元(TPU),應用特定的集成電路(如矩陣乘法引擎和高帶寬內存)被設計來提高性能和能源效率到極致。在可預見的未來,DL芯片的設計將變得更加多樣化。
為了在不同的DL芯片上加速DL模型,有效地將計算映射到DL芯片是很重要的。在通用芯片上,高度優化的線性代數庫(如基本線性代數子程序庫(BLAS))(如MKL和cuBLAS)是DL模型高效計算的基礎。以卷積運算為例,DL框架將卷積轉換為矩陣乘法,然后調用BLAS庫中的GEMM函數。此外,芯片廠商還為DL計算(例如,MKL-DNN和cuDNN)發布了特別優化的庫,包括前向和后向卷積、池化、標準化和激活。還開發了更高級的工具來進一步加速DL操作。以TensorRT (ten, [n.d])為例,它支持圖形優化(如層融合)和低比特量化,并具有大量高度優化的GPU內核。在專用的DL芯片上,供應商還提供了類似的庫和工具鏈,以有效地執行DL模型。然而,依賴上述的庫和工具在不同的DL芯片上映射DL模型的缺點是,它們通常落后于DL模型的快速開發,因此不能有效地利用DL芯片。
為了解決DL庫和工具的缺陷,以及減輕手工優化每個DL芯片上的DL模型的負擔,DL社區求助于領域特定的編譯器技術來解決問題。很快地,一些流行的DL編譯器被提了出來,例如來自工業界和學術界的TVM (Chen等人,2018b)、Tensor Comprehension (Vasilache等人,2018)、Glow (Rotem等人,2018)、nGraph (Cyphers等人,2018)和XLA (Leary和Wang, 2017)。DL編譯器將DL框架中描述的模型定義作為輸入,并在各種DL芯片上生成高效的代碼實現作為輸出。模型定義和特定代碼實現之間的轉換針對模型規范和硬件體系結構進行了高度優化。具體地說,DL編譯器結合了面向DL的優化,比如層和操作符融合,這支持高效的代碼生成。此外,現有的DL編譯器也利用了來自通用編譯器(如LLVM (Lattner和Adve, 2004))的成熟工具鏈,這些工具鏈提供了跨不同硬件架構的更好的可移植性。與傳統編譯器相似,DL編譯器也采用了包括前端、中間表示(IR)和后端在內的分層設計。然而,DL編譯器的惟一性在于多層IRs和DL特定優化的設計。
在這篇論文中,我們通過將編譯器的設計分為前端、多級IR和后端,并著重介紹了IR的設計和優化方法,對現有的DL編譯器進行了全面的研究。據我們所知,這是第一篇全面介紹DL編譯器設計的論文。具體而言,本文的貢獻如下:
我們從硬件支持、DL框架支持、代碼生成和優化等方面對現有的DL編譯器進行了全面的比較,為最終用戶選擇合適的DL編譯器提供了指導。
我們剖析了現有DL編譯器的總體設計,并詳細分析了多級IR設計和編譯器優化技術,如數據流底層優化、硬件內在映射、內存延遲隱藏和并行化。
我們為DL編譯器的未來發展提供了一些見解,包括自動調優、多面體編譯器、量化、可微編程和隱私保護,希望能促進DL編譯器社區的研究。
本文其余部分組織如下。第2節介紹DL編譯器的背景,包括DL框架、DL芯片以及硬件(FPGA)特定的DL編譯器。第3節詳細比較了現有的DL編譯器。第4節描述了DL編譯器的總體設計,重點介紹了IR和前端/后端優化。第五部分是全文的總結,并對未來的研究方向進行了展望。
題目: 自然語言處理中的表示學習進展:從Transfomer到BERT
報告人: 邱錫鵬 博士 復旦大學
摘要: 目前全連接自注意力模型(比如Transformer)在自然語言處理領域取得了廣泛的成功。本報告主要介紹我們在自注意力模型方面的一些工作,主要涵蓋兩部分內容:1)Transformer及其改進模型:通過分析Transformer的基本原理和優缺點,提出一些改進模型Star-Transformer、Multi-Scale Transformer等。2)預訓練的Transformer模型的遷移方法:雖然預訓練的Transformer模型(比如BERT、GPT等)在很多自然語言任務上都取得了非常好的性能,我們通過任務轉換、繼續預訓練、多任務學習等方法來進一步提高其遷移能力。最后,對Transformer模型及其未來發展趨勢進行展望。