自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

大模型工業(yè)化的方法論,都藏在GPU里

人工智能
GPU 卻有辦法將海嘯在空間上細分成萬千條涓涓細流,在時間上縮短流水的路徑,在結構上精簡路徑分支,將大規(guī)模任務層層拆解成小規(guī)模任務,舉重若輕般承載了海量算力需求,成為智能時代的算力基礎。

引言

數(shù)據(jù)智能時代,計算是剛需,也是痛點,最主要的特點就是一個字——大。

將“大”拆分成三個特點,則包括:

  • 數(shù)據(jù)大批量
  • 計算串行依賴
  • 計算復雜性高

這囊括了數(shù)據(jù)和算法的復雜性,而數(shù)據(jù)、算法、算力是智能時代三要素,前兩者的復雜性最后都要由算力來承載。

這使得業(yè)界對算力的需求在空間和時間上都極速膨脹,有如海嘯之勢。

?GPU 卻有辦法將海嘯在空間上細分成萬千條涓涓細流,在時間上縮短流水的路徑,在結構上精簡路徑分支,將大規(guī)模任務層層拆解成小規(guī)模任務,舉重若輕般承載了海量算力需求,成為智能時代的算力基礎。

針對上述三個特點,GPU 基于吞吐量、顯存等指標,分別采用并行、融合、簡化三種方法,在算子層面進行加速。?

GPU 加速的主要方法論,亦適用于大模型的工業(yè)化。

伴隨底層芯片、算力、數(shù)據(jù)等基礎設施的完善和進步,全球 AI 產業(yè)正逐步從運算智能走向感知智能、認知智能,并相應形成“芯片、算力設施、AI 框架&算法模型、應用場景”的產業(yè)分工、協(xié)作體系。2019 年以來,AI 大模型帶來問題泛化求解能力大幅提升,“大模型+小模型”逐步成為產業(yè)主流技術路線,驅動全球 AI 產業(yè)發(fā)展全面加速。

不久前,DataFun 舉辦《AI 大模型技術路線和工業(yè)化落地實踐》分享活動,來自 NVIDIA、百度、字節(jié)跳動火山翻譯、騰訊微信等 6 位專家,從模型訓練技術與推理方案、多語言機器翻譯的應用、大規(guī)模語言模型研發(fā)與落地等多方面,帶來AI大模型技術路線和工業(yè)化落地實踐的精彩分享。

他們在業(yè)界落地大模型的時候,很大程度上都采用了并行、融合與簡化的方法,并且還從訓練、推理層面延伸到了算法建模層面。

一、并行

并行方法是一種空間換時間的方法,它將海嘯細分成涓涓細流。具體而言,對于數(shù)據(jù)大批量的計算,每個計算步驟的耗時都比較長。GPU 利用并行計算,也就是把沒有計算依賴的數(shù)據(jù)盡可能并行,把大批量拆分成小批量,以減少每個計算步驟的 GPU 空閑等待時間,提高計算吞吐量。

?為了實際完成大模型的訓練,就需要高效率的軟件框架,使得訓練在單個 GPU、單個節(jié)點甚至在大規(guī)模集群上都有很好的計算效率。

因此,NVIDIA 開發(fā)出了 Megatron 訓練框架。?

Megatron 采用了模型并行、Sequence 并行等優(yōu)化手段以高效地訓練 Transformer 大模型,可訓練萬億級別參數(shù)量的模型。

在算法建模層面,火山翻譯和百度主要對 MoE 模型等建模方法進行了探索。

1、 模型并行

模型并行可分為 Pipeline 并行和 Tensor 并行。

圖片

Pipeline 并行也就是層間并行(圖中上半部分),將不同的層劃分到不同的 GPU 進行計算。這種模式的通信只發(fā)生在層的邊界,通信次數(shù)和通信數(shù)據(jù)量較少,但會引入額外的 GPU 空間等待時間。

Tensor 并行也就是層內并行(圖中下半部分),將一個層的計算劃分到不同的 GPU 上計算。這種模式的實現(xiàn)更加容易,對于大矩陣的效果更好,更好實現(xiàn) GPU 之間的負載均衡,但通信次數(shù)和數(shù)據(jù)量都比較大。

圖片

為了充分利用 GPU 資源,Megatron 將每個訓練 batch 劃分成了更小的 micro batch。

由于不同的 micro batch 之間沒有數(shù)據(jù)依賴,因此可以互相覆蓋等待時間,從而能夠提高 GPU 的利用率,進而提高整體的訓練性能。

圖片

?Tensor 并行把每個算子的計算劃分到不同的 GPU 上,對于一個矩陣層,存在橫切和縱切兩種方式。

如圖所示,Megatron 在 Transformer block 的 attention 和 MLP 部分都引入了這兩種切分方式。

圖片

在 Tensor 并行模式下,每個 Transformer 層的前向反向加起來總共需要四次 All-reduce 通信,由于 All-reduce 的通信量較大,因此 Tensor 并行更適合單卡內部使用。

結合 Pipeline 并行和 Tensor 并行,Megatron 可以將在 32 個 GPU 上訓練 1700 億參數(shù)模型,擴展到在 3072 個 GPU 上訓練 1 萬億參數(shù)規(guī)模的模型。

2、Sequence 并行

Tensor 并行其實并沒有對 Layer-norm 以及 Dropout做拆分,因此這兩個算子在每個 GPU 之間是復制的。

然而,這些操作本身不需要大量計算,卻非常占用激活顯存。

圖片

?為此,Megatron 又提出了 Sequence 并行的優(yōu)化方法。Sequence 并行的好處在于不會增加通信量,并且可以大大減少顯存占用

由于 Layer-norm 和 Dropout 沿著序列的維度是獨立的,因此可以按照 Sequence 維度進行拆分。?

使用了 Sequence 并行之后,對于超大規(guī)模的模型而言,其實顯存占用量還是很大的。因此,Megatron 又引入了激活重計算技術。

Megatron 的做法是,找到一些計算量很少但顯存占用很大的算子,比如 Attention 里的 Softmax、Dropout 等算子,對這些算子進行激活重計算就可以顯著減少顯存,并且計算開銷增加不大。

Sequence 并行和選擇性激活重計算的結合可以將顯存占用降低為原來的 1/5 左右。相對于原本直接將所有激活進行重計算的方案,其顯存也只有其兩倍,同時計算開銷顯著降低,并且隨著模型規(guī)模增大,計算開銷的占比也會逐漸降低。到萬億規(guī)模模型的時候,重計算的開銷只占整體的 2% 左右。?

3、算法并行

MoE 模型因其設計思想簡潔、可擴展性強等特點,使其在業(yè)界得到了越來越多的關注。

MoE 模型提出了這樣的設計思想,也就是將大模型拆分成多個小模型。每個樣本只需要激活部分專家模型進行計算,從而大大節(jié)省計算資源。

圖片

目前最常用的稠密大模型是 BERT、T5、GPT-3,最常用的稀疏 MoE 模型是 T5+MoE,MoE 正成為大模型構建的趨勢。

可以說,MoE 在算法建模層面,結合了并行計算的思想。

大模型的通用性,體現(xiàn)在多個方面,除了我們已經熟知的幾點,比如注意力機制歸納偏置更弱,模型容量大,模型數(shù)據(jù)大等等,還可以在任務建模方式上做優(yōu)化,MoE 就是典型的代表。

對于火山翻譯而言,MoE 的基本思路是通過寬度換取深度,因為模型深度越深,計算層數(shù)越多,進而推理時間越長。

圖片

比如,對于擁有 4 層 Encoder、4 層 Decoder 的 Transformer 模型,每次計算必須經過所有 8 個 FFN 的計算。如果是混合專家模型,則可以把 FFN 平行放置,最終把計算路徑減半,因而推理時間也減半。

圖片

而在相同推理時間下,也就是模型深度相近的時候,由于 MoE 可以增加模型寬度,在機器翻譯的最終效果上也有所提升。

圖片

針對 24 種非洲語言和英、法語言的多語言翻譯任務,火山翻譯開發(fā)出了擁有 128 層 Transformer、24 個專家層的 MoE 模型,相比傳統(tǒng)架構實現(xiàn)了更好的翻譯效果。

圖片

?但 Sparse MoE 中的“專家模型”可能有些名不副實,因為對于一句話,比如其每個 Token 經過的專家都有可能是不同的。

火山翻譯因此開發(fā)了 Hard Gate MoE,使得句子經過的專家由語種確定,這使得模型結構更加簡單,實驗結果也表明其翻譯效果更好。

在算法建模的并行化探索中,百度也在知識增強跨模態(tài)生成大模型 ERNIE-ViLG 2.0 中采用了混合專家擴散模型框架。?

圖片

?為何要對擴散模型采用專家模型?

其實是因為在不同的生成階段,模型建模要求的不同。比如在初始階段,模型著重學習從高斯噪聲中生成有語義的圖像,在最后階段,模型著重從含噪圖像中恢復圖像細節(jié)。?

實際上,在 ERNIE 3.0 的早期版本中就融合了自編碼和自回歸,其可在通用的語義表示上,針對具體的生成任務和理解任務,結合兩種建模方式。?

圖片

融合自編碼和自回歸的基本思想其實與專家模型的建模方法論類似。

具體來說,是在通用表示的基礎上,根據(jù)理解任務適合自編碼網絡結構,生成任務適合自回歸網絡結構,來進行建模。此外,這種建模方式通常還能學習到更好的通用表示。

圖片

此外,在 ERNIE-UniX2 模型中,百度通過將對比學習、語言模型等預訓練范式進行融合,將多語言、多模態(tài)的理解和生成任務進行了統(tǒng)一。

?訓練完 MoE 模型后,推理部署也是非常重視效率的環(huán)節(jié)。

在進行超大規(guī)模模型推理部署方案選擇的時候,首先會根據(jù)模型的參數(shù)規(guī)模、模型結構、GPU 顯存和推理框架,以及對模型精度和推理性能的權衡來決定是使用單卡推理還是多卡推理。如果顯存不足,則會考慮模型壓縮或多卡推理的方案。

多卡推理包括 Tensor 并行、Pipeline 并行、Expert 并行等模式。?

圖片

對 MoE 超大模型采用不同模式會遇到不同的挑戰(zhàn)。其中,MoE 模型的 Tensor 并行和稠密模型類似。

如果選擇 Expert 并行模式,每個 MoE Layer 的 Expert 就會被劃分到不同的 GPU 上,這可能帶來負載均衡問題,從而導致大量的 GPU 是空閑的,最終使得整體吞吐量不高。這是 MoE 多卡推理中需要關注的重點。

對于 Tensor 并行和 Pipeline 并行,除了通過微調減少卡間通訊以外,更直接的方法是提升卡間帶寬。而當對 MoE 模型使用 Expert 并行導致負載均衡問題的時候,可以通過 Profiling 分析優(yōu)化。

多卡推理方案增加了通信開銷,對模型推理延時有一定影響。

二、融合

融合是解決并行計算中遇到的天然矛盾的方法,并行計算和串行計算是兩種基本的計算模式。而在應用并行計算的時候,最典型的困難就是大量的串行依賴,以及因此產生的中間值顯存占用問題,而 GPU 顯存通常會成為大模型訓練和推理的硬件性能瓶頸之一。

對于海量計算串行依賴問題,最主要的方法是將細流的路徑縮短,也就是減少中間停留過程。具體來說,就是利用算子融合,把次序存在先后依賴關系的算子進行合并,以減少顯存占用。

算子融合不僅在計算層面,也可以在算子設計層面實現(xiàn)。

1、1F1B

Pipeline 并行中如果將前向和反向過程分開,就會出現(xiàn)顯存占用過多問題。

圖片

因此,Megatron 又提出了 Pipeline 并行的新模式 1F1B,每個 GPU 以交替的方式執(zhí)行每個 micro batch 的正向和反向過程,以盡早釋放其占用的顯存,進而減少顯存占用。

圖片

1F1B 并不能減少 bubble time,為了進一步減少 bubble time,Megatron 又提出了 interleaved 1F1B 模式。也就是原本每個 GPU 負責連續(xù) 4 個層的計算,現(xiàn)在變成負責連續(xù)兩個層的計算,只有原來的一半,從而 bubble time 也變成了原來的一半。

2、Kernel融合

當在做 GPU 計算的時候,每個計算流程都可以封裝成一個 GPU 的 Kernel,放到 GPU 上執(zhí)行,并且是順序性的。傳統(tǒng)的算子庫為了通用性,會把算子設計的非常基本,因此數(shù)量也非常多,帶來的弊端是顯存占用多,因為需要存儲大量的中間隱藏表示,另外這對帶寬的要求也比較高,最終可能造成延遲或者性能損失。

圖片

火山翻譯基于 CuBLAS 乘法接口將其他非矩陣乘法算子進行了融合,包括了 Softmax、LayerNorm 等。

圖片

除了比較通用算子的融合,火山翻譯還針對一些特定算子比如 Beam Search 無法很好利用 GPU 并行性的特點,優(yōu)化其計算依賴問題,從而實現(xiàn)加速。

在四種主流 Transformer 模型上,LightSeq 算子融合在 PyTorch 的基礎上取得了最高 8 倍的加速。

三、簡化

簡化是一種比較簡單直觀的加速方式,在細微處將流水分支精簡。具體而言,就是對于計算高復雜性,在保證性能的前提下將算子復雜度簡化,最終減少計算量。

超大規(guī)模模型的單卡推理一般會涉及模型壓縮。

圖片

常見的模型壓縮方案是量化、蒸餾和剪枝。量化是業(yè)內最常用的模型壓縮方案之一。雖然量化的計算采用了更低的精度,但可以保持模型的參數(shù)量級,在某些情況下或許能更好地保證模型整體的精度。

1、量化

圖片

目前有兩種量化方法,一種是訓練后量化,一種是量化感知訓練。后者通常比前者對模型的精度保持更好。

完成量化后,可以通過 TensorRT 或 FasterTransformer 等推理加速框架,進一步加速超大模型的推理。

圖片

LightSeq 在訓練過程的量化中采用了真 int8 量化,也就是在矩陣乘法之前,會執(zhí)行量化操作,并且在矩陣乘法之后才執(zhí)行反量化操作。而不像過去的偽量化那樣,在矩陣乘法之前就執(zhí)行了量化和反量化操作,以讓模型適應量化所帶來的損失和波動。后者在實際計算中并不能帶來加速,反而可能增大延時,或者使得顯存占用上升。而真 int8 量化在實際應用中也帶來了很好的加速效果。

2、蒸餾

圖片

第二種模型壓縮方式是蒸餾。蒸餾可以針對不同應用場景采用不同的策略對超大模型進行壓縮,在某些情況下,蒸餾可以讓超大模型擁有更好的泛化能力。

3、剪枝

圖片

最后一種模型壓縮方案是剪枝。剪枝可分為全模型剪枝和部分層剪枝,對于超大模型,了解模型關鍵層非常重要,需要避開這些對精度影響最大的部分的剪枝,這對于稀疏 MoE 模型也是適用的。

4、大模型工業(yè)化

大模型的研究和落地已成趨勢,預計在 2022 年,關于大規(guī)模語言模型和 Transformers 的論文超過 1 萬篇,比五年前 Transformers 剛提出的時候增長了7倍。另外,大模型也有非常廣泛的應用,比如圖片生成、推薦系統(tǒng)、機器翻譯,甚至是生命科學、代碼生成等。

圖片

OpenAI 也曾經在 2020 年發(fā)表過兩篇論文,就展示過一個模型的表現(xiàn)基本上和三個主要的因素掛鉤,即算力、數(shù)據(jù)集大小、模型參數(shù)量,以這三個指標就能很好地預測模型的效果。

圖片

?Richard Sutton 曾經說過,在過去 70 年的 AI 發(fā)展中,一個反復出現(xiàn)的趨勢是一個通用的能夠高效利用計算資源的方法,總會是最后的贏家。

根據(jù) Richard Sutton 的“贏家定律”,深度學習在過去近十年是贏在了通用性。?

但如今,大模型訓練的挑戰(zhàn)已不言而喻。以 GPT-3 為例,其在訓練的時候如果使用原始的混合精度,需要保存訓練時的參數(shù)和梯度以及 FP 32 的主參數(shù),如果使用 Adam 優(yōu)化器,還要保存兩個優(yōu)化器的動量信息,則最終總共需要 2.8 個 TB 的顯存,這遠遠超出了單卡的顯存容量,需要超過 35 張 A100 才能承載。

?NVIDIA 2021 年的論文“Efficient Large-Scale Language Model Training on GPU Clusters Using Megatron-LM”中得出一個經驗公式,表明單次迭代參數(shù)量為 1750 億的 GPT-3 模型就需要 4.5 億 FLOPs 的算力。如果整個訓練周期包含 95000 次迭代的話,就需要 430 ZettaFLOPs。換句話說,需要一塊 A100 訓練 16000 天,這還是不考慮計算效率的結論。

也就是說,光靠堆積這三個指標在大模型工業(yè)化時代將極大浪費資源。?

DeepMind 在 2022 年發(fā)表的 ChinChilla 的論文中曾表示,實際上 GPT-3、OPT、PaLM 等大模型,基本都屬于欠擬合模型。如果基于同樣的計算資源,調小模型參數(shù)量,并訓練更多步驟,最終的模型效果才能更好一些。這也是微信在 WeLM 大規(guī)模語言模型中遵循的設計思想。

業(yè)界各企業(yè)基本都在開始將注意力從規(guī)模上放松,轉而關注大模型落地時的效率問題。

比如,從整體執(zhí)行效率來看,經過 Megatron 優(yōu)化的幾乎所有模型都有 30% 的吞吐量提升,并且隨著模型大小的增加,可以實現(xiàn)更高的 GPU 利用率。在 1750 億參數(shù)的 GPT-3 模型上,GPU 利用率可以達到 52.8%。而在 5300 億參數(shù)規(guī)模以上的模型上,利用率可以達到 57%。

也就是說,根據(jù) Richard Sutton 的“贏家定律”,效率,將成為大模型工業(yè)化的主基調。

責任編輯:姜華 來源: DataFunTalk
相關推薦

2013-12-25 09:50:27

華為馬悅企業(yè)業(yè)務

2022-06-27 08:47:29

BEM修飾符元素

2024-08-22 15:11:26

2022-11-07 09:55:06

云原生

2016-12-01 19:10:42

大數(shù)據(jù)數(shù)據(jù)分析

2023-06-08 18:13:20

曙光

2024-09-03 15:05:03

2016-09-30 16:06:23

大數(shù)據(jù)分析工業(yè)化

2020-07-01 08:02:26

Scrum方法論框架

2014-05-04 14:15:31

2025-04-03 13:07:50

2022-08-22 11:45:59

架構技術

2025-04-01 02:22:00

2015-08-12 17:06:28

2009-05-08 10:29:32

信息化

2024-06-12 10:59:34

測試自動化軟件開發(fā)

2020-10-12 07:57:42

技術架構制圖

2023-02-22 08:15:13

壓測模擬計算

2021-11-05 08:28:27

內存泄漏調試

2009-03-16 13:43:14

點贊
收藏

51CTO技術棧公眾號