大語言模型(LLM)的發展同時往往伴隨著硬體加速技術的進化,本文對使用 FPGA、ASIC 等晶片的模型效能、能效表現來了一次全面概覽。
對人類語言進行大規模建模是一個複雜的過程,研究人員花了幾十年的時間才開發出來。這項技術最早可追溯於 1950 年,當時克勞德・夏農將資訊理論應用於人類語言。從那時起,翻譯和語音識別等任務取得了長足的進步。
在這個過程中,人工智慧 (AI) 和機器學習 (ML) 是技術進步的關鍵。ML 作為 AI 的一個子集,其允許計算機從資料中進行學習。一般來說,ML 模型要麼是有監督的,要麼是無監督的。
在接下來要介紹的這篇論文中《 Hardware Acceleration of LLMs: A comprehensive survey and comparison 》,來自西阿提卡大學的研究者重點介紹了有監督模型。
論文地址:https://arxiv.org/pdf/2409.03384
根據論文介紹,深度學習模型分為生成式和判別式。生成式人工智慧是深度學習的一個子集,它使用神經網路來處理標記和未標記的資料。大型語言模型 (LLM) 有助於理解字元、單詞和文字。
2017 年,Transformer 徹底改變了語言建模。Transformer 是一種神經網路,它使用注意力機制處理長期文字依賴關係。谷歌於 2017 年建立了第一個用於文字翻譯的 Transformer 模型。Transformer 此後不斷髮展,改進了注意力機制和架構。發展到今天,OpenAI 釋出的 ChatGPT 是一個著名的 LLM,它可以預測文字並能回答問題、總結文字等。
本文對使用硬體加速器來加速 Transformer 網路所做的一些研究工作進行了全面的調查。該調查介紹了已提出的框架,然後對每個框架的技術、處理平臺(FPGA、ASIC、記憶體、GPU)、加速、能源效率、效能(GOP)等進行了定性和定量比較。
FPGA 加速器
在這一部分中,作者以 A-T 編號的方式列舉了有關 FPGA 的研究,可謂調查的非常詳細。每項研究都用簡短的幾句話概括,閱讀起來簡單又清晰。舉例來說:
FTRANS 。2020 年,Li 等人提出了一種硬體加速框架 FTRANS,旨在加速基於 Transformer 的大規模語言表示。FTRANS 顯著提高了速度和能效,超越了 CPU 和 GPU 實現,在一系列比較後顯示 FTRANS 比其他方案快 81 倍,能效高 9 倍,特別是與使用 VCU118 (16nm) 的 GPU 處理器 RTX5000 相比。該加速器的效能速率為 170 GOP,能效率為 6.8 GOP/W。
多頭注意力。2020 年,Lu 等人提出了一種基於 FPGA 的架構,用於加速 Transformer 網路中計算最密集的部分。在他們的工作中,他們為兩個關鍵元件提出了一種新型硬體加速器,即多頭注意力 (MHA) ResBlock 和位置前饋網路 (FFN) ResBlock,它們是 Transformer 中最複雜的兩個層。所提出的框架是在 Xilinx FPGA 上實現的。根據效能評估,與 V100 GPU 相比,所提出的設計實現了 14.6 倍的加速。
FPGA NPE。2021 年,Khan 等人提出了一種用於語言模型的 FPGA 加速器,稱為 NPE。NPE 的能源效率比 CPU(i7-8700k)高約 4 倍,比 GPU(RTX 5000)高約 6 倍。
除此以外,文中還介紹了 ViA 、 FPGA DFX 、 FPGA OPU 等研究,這裡就不再詳細介紹了。
基於 CPU 和 GPU 的加速器
TurboTransformer。2021 年,Jiarui Fang 和 Yang Yu 推出了 TurboTransformers 加速器,這是一種在 GPU 上專為 Transformer 模型打造的技術。TurboTransformers 在可變長度輸入的延遲和效能方面優於 PyTorch 和 ONNXRuntime,速度提高了 2.8 倍。
Jaewan Choi。2022 年,研究員 Jaewan Choi 發表了題為「Accelerating Transformer Networks through Rewiring of Softmax Layers」的研究,文中提出了一種加速 Transformer 網路中 Softmax 層的方法。該研究引入了一種重新佈線技術來加速 Transformer 網路中的 Softmax 層,隨著 Transformer 模型處理更長的序列以提高準確率,這項技術變得越來越重要。所提出的技術將 Softmax 層劃分為多個子層,更改資料訪問模式,然後將分解的 Softmax 子層與後續和前面的過程合併。該方法分別將 BERT、GPT-Neo、BigBird 和 Longformer 在當前 GPU 上的推理速度加快了 1.25 倍、1.12 倍、1.57 倍和 1.65 倍,顯著減少了片外記憶體流量。
SoftMax。2022 年,Choi 等人提出了一種透過重組 Softmax 層加速 Transformer 網路的新框架。Softmax 層將注意力矩陣的元素歸一化為 0 到 1 之間的值。此操作沿注意力矩陣的行向量進行。根據分析,縮放點積注意力 (SDA) 塊中的 softmax 層分別使用了 BERT、GPT-Neo、BigBird 和 Longformer 總執行時間的 36%、18%、40% 和 42%。Softmax 重組透過顯著減少片外記憶體流量,在 A100 GPU 上對 BERT、GPT-Neo、BigBird 和 Longformer 進行推理時實現了高達 1.25 倍、1.12 倍、1.57 倍和 1.65 倍的加速。
此外,論文還介紹了 LightSeq2 、 LLMA 、 vLLMs 等研究。
ASIC 加速器
A3。2020 年,Hma 等人提出了一項關於 Transformer 網路加速的早期研究,稱為 A3 。不過,研究人員所提出的方案尚未在 FPGA 上實現。基於效能評估,與 Intel Gold 6128 CPU 實現相比,所提出的方案可實現高達 7 倍的加速,與 CPU 實現相比,能效可提高 11 倍。
ELSA。2021 年,Ham 等人提出了一種用於加速 Transformer 網路的硬體 - 軟體協同設計方法,稱為 Elsa 。ELSA 大大減少了自注意力操作中的計算浪費。
SpAtten。2021 年,Want 等人提出了一種用於大型語言模型加速的框架 Spatten。SpAtten 採用新穎的 NLP 加速方案,以減少計算和記憶體訪問。SpAtten 分別比 GPU(TITAN Xp)和 Xeon CPU 實現了 162 倍和 347 倍的加速。在能源效率方面,與 GPU 和 CPU 相比,SpAtten 實現了 1193 倍和 4059 倍的節能。
在這部分,作者還列舉了加速 transformer 網路的新方法 Sanger、用於提高自然語言處理中 transformer 模型效率的 AccelTran 等多項研究。
記憶體硬體加速器
ATT。2020 年,Guo 等人提出了一種基於注意力的加速器加速方法,稱為 ATT,該方法基於電阻性 RAM。根據效能評估,ATT 與 NVIDIA GTX 1080 Ti GPU 相比,可以實現 202 倍的加速。
ReTransformer。2020 年,Yang 等人提出了一種用於加速 Transformer 的記憶體框架,稱為 ReTransformer。ReTransformer 是一種基於 ReRAM 的記憶體架構,用於加速 Transformer,它不僅使用基於 ReRAM 的記憶體架構加速 Transformer 的縮放點積注意力,而且還透過使用提出的矩陣分解技術避免寫入中間結果來消除一些資料依賴性。效能評估表明,與 GPU 相比,ReTransformer 可以實現高達 23.21 倍的加速,而相應的整體功率降低了 1086 倍。
iMCAT。2021 年,Laguna 等人提出了一種用於加速長句 Transformer 網路的新型記憶體架構,稱為 iMCAT。該框架結合使用 XBar 和 CAM 來加速 Transformer 網路。效能評估表明,對於長度為 4098 的序列,這種方法實現了 200 倍的加速和 41 倍的效能改進。
除此以外,該章節還介紹了 iMCAT 、 TransPIM 、 iMTransformer 等研究。
定量比較
下表 I 列出了目前所有的硬體加速器以及各自的主要特性,包括加速器名稱、加速器型別(FPGA/ASIC/In-memory)、效能和能效。
在某些情況下,當提出的架構與 CPU、GPU 進行比較時,以往的工作也會提及加速這一指標。不過,由於每種架構的基線比較不同,因而本文只展示了它們的絕對效能和能效,而沒有涉及加速。
效能定量比較
下圖 1 展示了不同工藝技術下,每種加速器的效能;圖 2 展示了更加清楚的對數尺度效能。
我們可以看到,採用 14nm 工藝的 AccelTran(伺服器)實現最高效能,達到了 372000 GOPs,而 ReTransformer 模型的效能最低。此外,ViA、Me-ViT 和 Ftrans 等採用相同工藝技術的模型並沒有實現相似的效能。
不過,對於沒有采用相同工藝技術的加速器,則很難進行公平比較。畢竟,工藝技術會對硬體加速器效能產生顯著的影響。
能效 vs 工藝技術
下圖 3 展示了大多數硬體加速器的能效(GOPs/W)水平,圖 4 展示了對數尺度層面的能效。由於很多架構沒有測量能效,因而本文只列出了提供了能效的加速器。當然,很多加速器採用了不同的工藝技術,因此很難進行公平比較。
結果顯示,以記憶體為主(In-Memory 加速器)的模型具有更好的能效表現。原因在於資料傳輸減少了,並且這種特定的架構允許資料在記憶體中直接處理,而不需要從記憶體傳輸到 CPU。
16nm 工藝下的加速比較
下表 II 展示了 16nm 工藝下,不同硬體加速器的外推效能。
下圖 5 展示了當在相同的 16nm 工藝技術下外推效能時,不同硬體加速器的絕對效能,其中 AccelTran 的效能水平最高。
實驗外推
本文針對 FPGA 架構進行了實驗外推,並測試了 20nm、28nm、40nm、 55nm、65nm 和 180nm 工藝下技術不同的矩陣乘法程式碼,以驗證 16nm 工藝的理論轉換效果。研究者表示,FPGA 技術上的矩陣乘法結果有助於外推不同硬體加速器在相同工藝技術上的結果。
下表 III 展示了不同 FPGA 裝置、工藝技術以及矩陣乘法 IP 核的結果。
下圖 6 展示了每種 FPGA 裝置和矩陣乘法工藝技術的最大時脈頻率。由於 FPGA 的效能依賴於最大時脈頻率,因此外推效能使得不同工藝技術下架構之間能夠實現公平比較。
更多實驗細節請參閱原論文。