大型語言模型提供極為出色的新功能,擴大人工智慧潛在的應用領域。不過其龐大規模與獨特的執行特性,很難用具成本效益的方式來使用它們。
|
NVIDIA TensorRT-LLM增強了 NVIDIA H100 GPU 上大型語言模型的推論能力 |
NVIDIA 不斷與 Meta、AnyScale、Cohere、Deci、Grammarly、Mistral AI、MosaicML(現已成為 Databricks 的一員)、OctoML、Tabnine及Together AI等重點企業密切合作,以加快大型語言模型的推論速度及取得最佳的推論結果。
這些創新項目已經整合進開源型態的 NVIDIA TensorRT-LLM 軟體,將在未來幾週內發布。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 的大型語言模型服務提供了最先進的效能,讓我們能夠把省下來的成本回饋給客戶。」Rao 說。
大型語言模型生態系統呈現爆炸性發展
生態系統正在快速創新,發展出全新多樣化的模型架構。更大的模型釋放出新的功能和使用範例。像是 Meta 旗下擁有 700 億個參數的 Llama 2,這一類最大、最先進的語言模型需要多個 GPU 協同工作,才能即時提供回應。開發人員過去如果想獲得最佳的大型語言模型推論表現,就必須重寫和手動將人工智慧模型分割成多個片段,然後跨多個 GPU 協調執行。
TensorRT-LLM 使用一種模型平行化(model parallelism)的 tensor 平行,將個別權重矩陣分割到各個裝置上。如此一來便能以大規模高效率的方式進行推論 - 可以在透過 NVLink 連接的多個 GPU 和多個伺服器上平行運作每個模型,無需開發人員出手干預或修改模型。
隨著推出新模型和模型架構,開發人員可以利用 TensorRT-LLM 中開源型態的最新 NVIDIA 人工智慧內核,將其模型調整至最佳狀態。支援的內核融合包括尖端的FlashAttention 和 Masked Multi-Head Attention技術,用於GPT模型執行的上下文和生成階段,以及許多其他功能。
此外,TensorRT-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
大型語言模型內有數十億個模型權重和啟動項目,通常使用 16 位元浮點(FP16 或 BF16)值進行訓練和表示,每個值佔用 16 位元記憶體。然而,在推論過程中,大多數模型可以使用現代量化技術有效地表示為較低精度,如8位甚至4位整數(INT8或INT4)。
量化是在不失準確度的前提下,降低模型權重和啟動精度的過程。使用更低精度代表每個參數更小,模型佔用 GPU 記憶體的空間也更小。這樣就能在相同硬體條件下對更大的模型進行推論,同時在執行過程中減少記憶體運作時間。
NVIDIA H100 GPU 加上 TensorRT-LLM,讓使用者能夠輕鬆將模型權重轉換為新的 FP8 格式,並自動編譯模型以利用最佳化的 FP8 內核。在 Hopper Transformer 引擎 技術實現的,無需更動任何模型程式碼。
H100 引入的 FP8 資料格式使得開發人員能夠量化他們的模型,並在不降低模型準確度的情況下大幅減少記憶體消耗。與 INT8 或 INT4 等其他資料格式相比,FP8 量化保留了更高的準確度,同時做到最快的效能表現和最簡單的實現。
結語
大型語言模型的發展日新月異。每天都開發出不同的模型架構,促進生態系統不斷發展。而大型模型也會釋放出新的功能和使用範例,推動各產業加以採用。
大型語言模型推論技術為資料中心打開新的局面。更出色的效能及更高的準確性為企業降低了總持有成本。模型創新能夠創造出更美好的客戶體驗,進而帶來更高的收入和收益。
在規劃推論部署項目之際,要利用最先進的 LLM 達到最佳效能,仍要考慮許多其他因素。最佳化這件事很少會自動進行。使用者必須考慮平行、端到端工作流程和先進調度技術等微調模型的因素。他們還要有一個能夠處理混合精度,又不會降低準確度的運算平台。
TensorRT-LLM 包括 TensorRT 的深度學習編譯器、最佳化的內核、前處理和後處理,以及在一個簡單的、開源的Python API中實現多GPU/多節點通訊,用於定義、最佳化和執行大型語言模型,以進行生產環境中的推論。