NVIDIA AI 平台為大型語言模型帶來巨大效益

作者 NVIDIA

大型語言模型 (large language model; LLM) 的規模和複雜性日益增加,NVIDIA 今日宣布推出 NeMo Megatron 框架的更新內容,更新後可加快訓練速度達 30%。這些更新內容包括兩項開創性技術及一項超參數工具,用在任意 GPU 數量的 LLM 訓練最佳化及擴展,為使用 NVIDIA AI 平台訓練與部署模型提供新的功能。

全球最大的開放科學、開放取用的多語言模型 BLOOM,內有 1,760 億個參數,日前在 NVIDIA AI 平台進行訓練,能夠產出 46 個語言及 13 種程式語言的文字。NVIDIA AI 平台亦支援其中一個擁有 5,300 億個參數的強大 Transformer 語言模型,即 Megatron-Turing NLG 模型 (MT-NLG)。

LLM 領域的最新進展

LLM 是當今最重要的先進技術之一,模型內有數兆個參數,可以從文字中進行學習。但開發 LLM 是個昂貴且耗時的過程,須運用深厚的技術能力、分散式基礎設施與完整堆疊才得以完成。

LLM 在推動即時生成內容、文字摘要、客服聊天機器人與透過對話式人工智慧 (AI) 介面的問答等領域,卻能帶來莫大的好處。為了推動 LLM 的發展,AI 領域的開發人員不斷運用包含 Megatron-LMApex 與其他 GPU 加速函式庫的 NVIDIA AI 平台來創新開發工具,像是微軟 DeepSpeedColossal-AIHugging Face BigScienceFairscale

在 NVIDIA AI 平台推出新的最佳化內容後,能解決整個堆疊中現有的多項痛點。NVIDIA 期待持續與AI 社群合作,讓每個人都能運用 LLM 的強大實力。

縮短 LLM 開發時間

最新的 NeMo Megatron 更新內容可加快 30% 的 GPT-3 模型訓練速度,模型從 220 億個參數,大至 1 兆個參數都可順利運行。現在使用 1,024 個 NVIDIA A100 GPU,只要 24 天就能訓練出多達 1,750 億個參數的模型,相較於過往版本,訓練時間縮短 10 天,相當於約 25 萬個 GPU 運算小時。

NeMo Megatron 是一個快速、高效且易用的端到端容器化框架,用於收集資料、訓練大型模型、按照業界標準基準評估模型,與以最先進的延遲與傳輸量表現進行推論。

使用 NeMo Megatron,便能在多種 GPU 叢集配置上輕鬆處理並複製 LLM 的訓練和推論作業。目前搶先體驗的客戶可以取得這些功能,在 NVIDIA DGX SuperPODsNVIDIA DGX Foundry 及 Microsoft Azure 雲端環境中運行,並且即將開放支援其他雲端平台。

目前已開放在 NVIDIA LaunchPad 上體驗這些功能。NVIDIA LaunchPad 是一項免費的計畫,提供使用者短期內使用 NVIDIA 加速基礎設施中的多個實作實驗室。

兩項新技術可加快 LLM 的訓練速度

更新項目包括兩項用於最佳化及擴展 LLM 訓練的新技術,即序列平行 (sequence parallelism; SP) 與選擇性激發再運算 (selective activation recomputation; SAR)。

藉由察覺先前未進行平行化的 transformer 層區域在序列維度上是各自獨立,序列平行擴大了 tensor 級模型的平行性。

沿著序列維度拆分這些層就能進行分散運算,而最重要的是,這些區域的激發記憶體分布於 tensor 平行裝置上。由於以分散方式加以激發,可將更多激發作用保留用於反向運算,而不用重新運算。

Graphic showing that sequence parallelism is used in LayerNorm and Dropout layers, while tensor parallelism is used in attention and FFN layers.
圖一: transformer 層內的平行模式

不同的激發作用需要不同的操作次數來重新運算,選擇性激發再運算改善因記憶體限制而部分被迫重新運算,而非全部激發的情況。除了增加檢查點和重新運算整個 transformer 層,亦可建立檢查點及重新運算每個 transformer 層中,佔用大量記憶體但重新運算的成本不高的部分。

如欲瞭解更多相關資訊,請見《Reducing Activation Recomputation in Large Transformer Models》。

Within the attention layer, the activations for the QKT matrix multiply, softmax, softmax dropout, and attention over V operations are recomputed.
圖二: Self-attention 模塊。紅色虛線代表應用選擇性激發重新運算的區域
Sequence parallelism and SAR reduce the memory by ~5x
圖三: SP 與 SAR 將激發記憶體保留用於反向運算。隨著模型大小的增加,SP 與 SAR 皆具類似的記憶體保留能力,將所需的記憶體數量減少五倍
Graph showing that sequence parallelism and SAR together reduce the computation overhead to just 2% of the baseline.
圖四: 完全激發再運算與 SP 加上 SAR 的運算時間。長條圖細分出每層的前向、反向和重新運算時間。基線是無採用重新運算和序列平行時的情況。這些技術能在所有激發都被重新運算 (而非保留) 時有效減少額外的運算時間。最大模型的額外時間從 36% 降至僅 2%

要配合高度最佳化的推論策略,才能發揮 LLM 的強大實力。使用者可以輕鬆將訓練好的模型用於推論,並且利用 p-tuning 及 prompt tuning 功能對不同的使用情況進行最佳化調整。

這些功能可以取代微調,讓 LLM 可以適應新的使用情況,無需繁瑣地對完整預先訓練好的模型進行微調。該技術不會更動原始模型裡的參數,便能避免發生因微調模型而出現的災難性「遺忘」問題。欲瞭解更多相關資訊,請見《Adapting P-Tuning to Solve Non-English Downstream Tasks》。

用於訓練和推論的全新超參數工具

在分散式基礎設施中找出適合 LLM 的模型配置非常耗時。NeMo Megatron 推出一項超參數工具,可以自動尋找最佳的訓練和推論配置,且無需修改程式碼。如此一來,LLM 只要一上線便能接受訓練以進行推論收斂,不用浪費時間去尋找高效的模型配置。

NeMo Megatron 使用啟發式方法和經驗網格,在不同參數之間尋找有著最佳傳輸量的配置:資料平行、tensor 平行、流程平行、序列平行、微批次大小與激發檢查點層的數量 (包括選擇性激發重新運算)。

在 NGC 的容器上使用超參數工具與 NVIDIA 測試,在不到 24 小時內便替一個有著 175B GPT-3 模型達到最佳訓練配置 (請見圖五)。與使用完全激發重新運算的一般配置相比,傳輸量速度提高 20% 到 30%。使用最新技術,讓具有超過 20B 參數的模型速度可再加快 10% 到 20%。

Graph showing 22.06 container with sequence parallelism and selective activation recomputation delivering 30% speed-up compared to the 22.05 containers with full recompute or HP tool capabilities.
圖五: 將超參數工具用於多個容器上的結果顯示,使用序列平行和選擇性激發重新運算,有助於加快處理速度,其中每個節點皆搭載 NVIDIA DGX A100

超參數工具亦能找出推論過程中,有著最高傳輸量或最低延遲的模型配置。模型可以獲得延遲和傳輸量限制資訊,而該工具將會推薦合適的配置。

HP tools find optimal model configurations that deliver high throughput, and low latency for inferencing. Several configurations are shown in the graph with varying throughput and latency tradeoffs for GPT-3: 175B, 40B, and 20B parameter models.
圖六: 超參數工具的推論結果顯示每個 GPU 的傳輸量及不同配置的延遲情況。最佳配置包括高傳輸量及低延遲

欲瞭解更多關於適用於 LLM 的 NVIDIA AI 平台最新更新內容,敬請申請搶先體驗 NeMo Megatron。企業亦能在 NVIDIA LaunchPad 上免費體驗 NeMo Megatron