LM 推理 - 優化延遲、吞吐量與可擴展性
部署大型語言模型(LLMs)進行推理是一項複雜但回報豐厚的任務,需要在性能、成本和可擴展性之間取得平衡。優化和調整 LLM 推理系統涉及理解權衡、選擇合適的工具以及利用 NVIDIA 的先進技術,例如 TensorRT-LLM、Triton Inference Server 和 NVIDIA Inference Microservices (NIM)。本指南將探索高效 LLM 部署的關鍵技術和策略。
在 LLM 推理中,最重要的考量之一是延遲與吞吐量之間的權衡。這兩個指標是反向相關的:改善其中一個通常會以犧牲另一個為代價。例如,當併發設置為 250 時,吞吐量可以比併發設置為 1 高出 50 倍,而延遲僅增加 5 倍。通過放寬延遲要求,可以顯著提高吞吐量並降低總擁有成本(TCO)。這種權衡對於設計聊天機器人等應用程序與批量處理任務尤為重要。
隨著 LLM 的規模因縮放定律而增長,張量並行性(Tensor Parallelism, TP)成為將計算分佈到多個 GPU 上所必需的技術。即使模型可以裝入單個 GPU,TP 仍然可以提供顯著的好處。將模型部署在 2 個 GPU 上的 TP2 模式下,相比於在單個 GPU 上運行相同模型的 TP1 模式,可以將內存帶寬和計算資源增加一倍。TP2 改善了單個請求的延遲,但會帶來 GPU 之間通信的額外開銷。為了獲得最佳性能,可以考慮使用 DGX 或 HGX 系統等支持 NVLink 的服務器,或 PCIe 連接的 H100 NVL 卡。
Hopper 架構引入了 FP8 精度,相比於 FP16 提供了顯著的優勢。FP8 將數據存儲需求減半,同時將處理速度加倍。Transformer 引擎動態縮放張量以在使用 FP8 時保持準確性。這使得 FP8 尤其適用於需要減少內存使用並最大化吞吐量的大規模部署。
利用 NVIDIA 的工具來優化推理工作負載。TensorRT-LLM 為特定硬件約束(如延遲或吞吐量)優化模型,而 Triton Inference Server 通過動態批處理和多框架支持等功能簡化了部署。NIM 提供了預構建的微服務,可快速部署並進行即時優化。對於參數超過 130 億的大型模型,使用支持 NVLink 的系統以有效處理增加的內存需求和 GPU 間通信。
根據應用選擇合適的模式。流模式(Streaming Mode)優先考慮首次生成標記時間(Time-to-First-Token, TTFT),適用於聊天機器人等實時應用;而順序模式(Sequential Mode)則優化端到端延遲(End-to-End Latency, E2E),適用於需要完整響應後才能消費的任務。輸出標記主導成本和延遲;相比之下,輸入標記相對更便宜。嚴格的延遲限制會降低吞吐量,但對於某些實時應用可能是必要的。
生產應用通常會經歷全天需求波動。在高峰請求每秒數量(RPS)的 95% 設置參考點,以平衡低谷期間的未充分利用與高峰期間的容量限制。如果僅有平均 RPS,可使用泊松分佈估算峰值需求。此方法確保成本效益,同時在高需求期間保持可接受的延遲。
本地部署成本包括 GPU 服務器購買價格(按多年攤銷)、數據中心託管成本(電力、空間租賃、員工)以及每 GPU 的 NVIDIA AI Enterprise 許可證(年度費用)。雲端 API 提供靈活性,但由於基於標記計費模型可能導致長期成本更高。雖然雲端 API 簡化了部署,但相比於本地解決方案,它們對延遲和吞吐量的控制較少。
飛行批處理(In-Flight Batching, IFB)動態地將不同階段(預填充和解碼)的請求組合到單個批次中,通過允許新請求進入正在進行的批次而不必等待當前請求完成,保持幾乎恆定的批次大小以提高 GPU 利用率並降低延遲。塊狀上下文處理(Chunked Context Processing)將長輸入序列分成塊以進行高效處理,在計算密集型預填充與內存密集型解碼之間取得平衡。
客戶端併發性通過從客戶端發送固定併發級別 (C
) 的請求來維持穩定延遲,即使在工作負載變化下也能確保一致性能。較大的模型需要更多內存並具有更高延遲——根據應用需求選擇模型大小。
調整 LLM 推理系統涉及在延遲、吞吐量、硬件約束和部署成本之間進行權衡。通過利用 NVIDIA 的先進工具,例如 TensorRT-LLM 和 NIM,以及張量並行性、IFB 和精度縮放 (FP8) 等優化技術,可以部署符合應用要求且具備可擴展性和效率的推理系統。不論是構建實時聊天機器人還是離線處理大規模數據集,這些最佳實踐都將幫助您設計兼具性能與成本效益的強大 AI 解決方案!