文本生成推理基準測試
Hugging Face 已發布一款用於文本生成推理(TGI)的基準測試工具,讓開發者能夠分析吞吐量與延遲之間的取捨。此工具使用戶能超越單純的吞吐量指標,針對特定使用情境(例如檢索增強生成(RAG)或聊天)找出最佳配置,從而降低部署成本並提升使用者體驗。
了解 LLM 推理效能
LLM 推理本質上效率低下,因為解碼器在每生成一個 token 時都需要一次全新的前向傳播。為了緩解此問題,TGI 採用了多項效能提升技術,包括 Flash Attention、Paged Attention、量化與推測。然而,這些技術的最佳配置高度取決於具體工作負載:
- RAG Use-Cases: 通常涉及較長的提示(因為會檢索多個文件)以及中等長度的輸出,常常逼近模型上下文窗口的極限。
- Chat Scenarios: 通常包含較短的提示與在多輪對話中的輸出。
主要效能指標
為了有效分析部署情況,TGI 基準測試工具聚焦於四項主要指標:
- Token Latency: 處理並將單一 token 傳送給使用者所需的時間。
- Request Latency: 完整回應一次請求所需的總時間。
- Time to First Token (TTFT): 從最初請求到返回第一個 token 的時間,結合了預填充處理與第一個 token 的生成。
- Throughput: 伺服器在固定時間內能返回的 token 數量。
吞吐量與延遲是相互獨立的測量指標;優化其中一項通常需要在另一項上作出取捨。
兩階段推理流程
LLM 生成分為兩個不同階段,基準測試工具會分別對其進行分析:
- Pre-filling Stage: 整個提示在一次前向傳播中完成處理,以生成第一個 token。此階段對於確定 TTFT 至關重要。
- Decoding Stage: 隨後的每個 token 皆逐一生成,生成的 token 會被附加到輸入中以供下一次前向傳播使用。此階段通常佔用大部分計算時間。
使用 TGI 基準測試工具
此基準測試工具已整合於 TGI 中,可透過 CLI 執行。Hugging Face 提供了一個專屬的 Space,將 TGI Docker 映像與 Jupyter Lab 環境結合,以便於測試。
分析結果
工具會產生散佈圖,X 軸代表延遲(數值越低越好),Y 軸代表吞吐量(數值越高越好)。理想的效能點位於圖表的左上角。
- Vertical Data Trends: 若曲線呈垂直走向,表示可在不降低延遲的情況下提升吞吐量(透過增大 batch size)。這顯示系統仍有餘裕可免費容納更多使用者。
- Horizontal Data Trends: 若曲線呈水平走向,表示系統受限於計算資源。增大 batch size 只會提升所有使用者的延遲,卻無法相應提升吞吐量,顯示需要更佳的配置或硬體擴充。
部署策略
分析應該是一個迭代的過程。建議開發者先估算使用者行為,執行基準測試,然後根據結果微調 TGI 設定。這些發現可再套用至 AWS、GCP 或 Hugging Face Inference Endpoints 上的等效硬體,以確保部署具成本效益且效能優異。