NVIDIA TensorRT-LLM 增強了 NVIDIA H100 GPU 上大型語言模型的推論能力

作者 NVIDIA Developer

大型語言模型提供極為出色的新功能,擴大人工智慧潛在的應用領域。不過其龐大規模與獨特的執行特性,很難用具成本效益的方式來使用它們。

NVIDIA 不斷與 MetaAnyScaleCohereDeciGrammarlyMistral AIMosaicML(現已成為 Databricks 的一員)、OctoMLTabnine 及 Together AI 等重點企業密切合作,以加快大型語言模型的推論速度及取得最佳的推論結果。

這些創新項目已經整合進開源型態的 NVIDIA TensorRT-LLM 軟體,可在 Ampere、Lovelace 和 Hopper GPU上使用,將在未來幾週內發布。TensorRT-LLM 由 TensorRT 深度學習編譯器組成,包括經最佳化調整的內核、前處理和後處理步驟,以及多 GPU/多節點通訊基元,可在 NVIDIA GPU 上創造出突破性的效能表現。它讓開發人員能夠嘗試新的大型語言模型,提供峰值效能和快速自訂功能,而無需具備深厚的 C++ 或 NVIDIA CUDA 相關知識。

TensorRT-LLM 透過開源模組 Python API,提高了易用性和擴充性,可用於定義、最佳化和執行新架構,還會隨著大型語言模型的發展而增強,且能輕鬆自訂相關內容。

例如 MosaicML 在 TensorRT-LLM 的基礎上無縫增加所需的特定功能,並將其整合到推論服務中。Databricks 工程部門副總裁 Naveen Rao 指出:「這絕對是一件輕而易舉的事。」

「TensorRT-LLM 簡單易用,提供包括詞元串流處理(streaming of tokens)、動態批次處理(in-flight batching)、paged-attention、量化等齊全的功能,而且效率出色。它為使用 NVIDIA GPU 的 LLM 服務提供了最先進的效能,讓我們能夠把省下來的成本回饋給客戶。」Rao 說。

效能比較

摘要文章只是大型語言模型的眾多應用項目之一。以下基準測試顯示了 TensorRT-LLM 在最新的 NVIDIA Hopper 架構上所提升的出色效能表現。

下圖反映出使用 NVIDIA A100 和 NVIDIA H100 與 CNN/Daily Mail 進行的文章摘要作業,CNN/Daily Mail 是用於評估摘要表現的著名資料集。

圖 1 中光是 H100 就比 A100 快上四倍。加入 TensorRT-LLM 及其包括動態批次處理在內的各項優勢後,總吞吐量提高了八倍,實現最高吞吐量。

GPT-J performance comparison between A100 and H100 with and without TensorRT-LLM.
圖1:GPT-J-6B 模型在使用 A100 與 加上和未加上 TensorRT-LLM 的 H100 效能比較 Text summarization, variable I/O length, CNN / DailyMail dataset | A100 FP16 PyTorch eager mode | H100 FP8 | H100 FP8, in-flight batching, TensorRT-LLM

Llama 2 是 Meta 近期發布的一款熱門語言模型,受到想要採用生成式人工智慧的企業廣泛使用,而 TensorRT-LLM 在 Llama 2 模型上進行推論的表現是 A100 GPU 的 4.6 倍。

Llama 2 70B performance comparison between A100 and H100 with and without TensorRT-LLM.
圖2:700 億個參數的 Llama 2 模型在使用 A100與加上和未加上 TensorRT-LLM 的 H100 效能比較Text summarization, variable I/O length, CNN / DailyMail dataset | A100 FP16 PyTorch eager mode| H100 FP8 | H100 FP8, in-flight batching, TensorRT-LLM

總持有成本與能源效率的改善

對於採用人工智慧技術的客戶來說,最小化總持有成本(TCO)和資料中心的能源消耗是關鍵目標,特別是考慮到大型語言模型的運算需求急劇增加。客戶在考慮人工智慧平台支出時,不僅僅關注單個伺服器的成本,而是必須考慮總體的資本和營運成本。

資本成本包括 GPU 伺服器的成本、管理主機節點(用於協調所有 GPU 伺服器的 CPU 伺服器)、網路設備(基礎設施、乙太網路和網路線)以及儲存。營運成本包括資料中心 IT 人員和軟體、設備維護,以及資料中心租金和電費。如果從整體上考慮資料中心產生的實際成本,大幅提高效能會減少裝置和維護需求,從而節省下可觀的資本和營運支出。

下圖顯示,與 A100 相比,對於像 GPT-J 6B 這樣的小型語言模型,效能提升 8 倍,並將減少 5.3 倍的總持有成本以及減少 5.6 倍的能源消耗(節省電費):

This bar chart graph shows a GPT-J-6B performance comparison between A100 and H100 TCO and energy benefits.
圖3. GPT-J-6B 在 A100和有 TensorRT-LLM 的 H100 的展現出的總持有成本和能源成本效益

同樣的,在像是 Llama2 這種先進的大型語言模型上,即使有 700 億個參數,客戶也可以實現 4.6 倍的性效能加速,從而使總持有成本降低 3 倍,並且與 A100 基準相比,能耗降低 3.2 倍:

This bar chart graph shows a Llama 2 70B performance comparison between A100 and H100 TCO and energy benefits
圖4. 有 700 億個參數的 Llama 2 在 A100 與有 TensorRT-LLM H100 的總持有成本和能源成本效益

除了上面顯示的總持有成本之外,還有與軟體開發相關的巨大人力成本,這些成本很容易超過基礎架構成本本身。NVIDIA在TensorRT、TensortRT-LLM、Triton 推論伺服器和NeMo框架上的投資為開發人員節省了大量時間,也縮短了上市時間。客戶需要將這些人工成本考慮在內(這些人工成本很容易超過資本和營運成本),以便真實瞭解其人工智慧支出總額。

大型語言模型生態系統呈現爆炸性發展

生態系統正在快速創新,發展出全新多樣化的模型架構。更大的模型釋放出新的功能和使用範例。像是 Meta 旗下擁有 700 億個參數的 Llama 2,這一類最大、最先進的語言模型需要多個 GPU 協同工作,才能即時提供回應。開發人員過去如果想獲得最佳的大型語言模型推論表現,就必須重寫和手動將人工智慧模型分割成多個片段,然後跨多個 GPU 協調執行。

TensorRT-LLM 使用一種模型平行化(model parallelism)的 tensor 平行,將個別權重矩陣分割到各個裝置上。如此一來便能以大規模高效率的方式進行推論 – 可以在透過 NVLink 連接的多個 GPU 和多個伺服器上平行運作每個模型,無需開發人員出手干預或修改模型。

隨著推出新模型和模型架構,開發人員可以利用 TensorRT-LLM 中開源型態的最新 NVIDIA 人工智慧內核,將其模型調整至最佳狀態。支援的內核融合包括尖端的 FlashAttention 和 Masked Multi-Head Attention 技術,用於 GPT 模型執行的上下文和生成階段,以及許多其他功能。

此外,TensorRT-LLM 還包括當今生產環境中已廣泛使用的許多 LLM 的完全最佳化、可立即運行版本。其中包括 Meta Llama 2、OpenAI GPT-2 和 GPT-3、Falcon、Mosaic MPT、BLOOM 及其他十幾種,都能透過簡單易用的 TensorRT-LLM Python API 來操作這些大型語言模型。

這些功能可幫助開發人員更快、更準確地開發自訂的大型語言模型,以滿足幾乎各行各業的需求。

動態批次處理

當今的大型語言模型極為多樣化。一個模型可同時用於處理多種彼此間差異極大的任務。從聊天機器人中簡單的一問一答,到文件摘要或生成長篇程式碼,要用高度動態的方式來處理這些工作,而輸出的大小則是天差地遠。

這種多功能性可能會導致難以有效地批量處理請求並行執行它們(而這是用於服務神經網路時常見的最佳化方式),造成某些請求比其他請求更早完成。

為了管理這些動態負載,TensorRT-LLM 包含了一種稱為動態批次處理(in-flight batching)_的最佳調度技術。這項技術讓一個大型語言模型的整體文字生成過程可拆分成在模型上執行的多次迭代。

TensorRT-LLM 利用動態批次處理技術,不會等到整個批次處理完成後再處理下一組請求,而是會立即從批次處理中移除已經完成的序列。在其他請求仍被處理中,它就開始執行新的請求。動態批次處理與額外的內核級最佳化技術提高了 GPU 的使用率,將 H100 Tensor 核心 GPU 上實際 LLM 請求基準的吞吐量最少提高了一倍,有助於漸少能耗以及將總持有成本降至最低。

H100 Transformer 引擎加上 FP8

LLM 內有數十億個模型權重和啟動項目,通常使用 16 位元浮點(FP16 或 BF16)值進行訓練和表示,每個值佔用 16 位元記憶體。然而,在推論過程中,大多數模型可以使用現代量化技術有效地表示為較低精度,如 8 位甚至 4 位整數(INT8 或 INT4)。

量化是在不失準確度的前提下,降低模型權重和啟動精度的過程。使用更低精度代表每個參數更小,模型佔用 GPU 記憶體的空間也更小。這樣就能在相同硬體條件下對更大的模型進行推論,同時在執行過程中減少記憶體運作時間。

NVIDIA H100 GPU 加上 TensorRT-LLM,讓使用者能夠輕鬆將模型權重轉換為新的 FP8 格式,並自動編譯模型以利用最佳化的 FP8 內核。在 Hopper Transformer 引擎 技術實現的,無需更動任何模型程式碼。

H100 引入的 FP8 資料格式使得開發人員能夠量化他們的模型,並在不降低模型準確度的情況下大幅減少記憶體消耗。與 INT8 或 INT4 等其他資料格式相比,FP8 量化保留了更高的準確度,同時做到最快的效能表現和最簡單的實現。

結語

LLM 的發展日新月異。每天都開發出不同的模型架構,促進生態系統不斷發展。而大型模型也會釋放出新的功能和使用範例,推動各產業加以採用。

LLM 推論技術為資料中心打開新的局面。更出色的效能及更高的準確性為企業降低了總持有成本。模型創新能夠創造出更美好的客戶體驗,進而帶來更高的收入和收益。

在規劃推論部署項目之際,要利用最先進的 LLM 達到最佳效能,仍要考慮許多其他因素。最佳化這件事很少會自動進行。使用者必須考慮平行、端到端工作流程和先進調度技術等微調模型的因素。他們還要有一個能夠處理混合精度,又不會降低準確度的運算平台。

TensorRT-LLM 包括 TensorRT 的深度學習編譯器、最佳化的內核、前處理和後處理,以及在一個簡單的、開源的 Python API 中實現多 GPU/多節點通訊,用於定義、最佳化和執行 LLM,以進行生產環境中的推論。

開始使用 TensorRT-LLM

NVIDIA TensorRT-LLM 現已開放早期試用,不久將整合進 NVIDIA NeMo 框架 – NeMo 框架是 NVIDIA AI Enterprise 的一部分,而 NVIDIA AI Enterprise 是一個具有安全性、穩定性、可管理性和支援性的企業級人工智慧軟體平台。開發人員與研究人員可以透過 NGC 上的 NeMo 框架或 GitHub 上的源碼庫取得 TensorRT-LLM。

請注意,您必須在 NVIDIA 開發者計畫中註冊才能申請早期試用。您還必須使用貴組織的電子郵件地址登入。我們不接受使用 Gmail、Yahoo、QQ 或其他個人電子郵件帳戶提出的申請。

如要參加早期試用活動,請填寫簡短的申請表,並且詳述您的使用案例。