在 Cloud TPU 執行推論
「提供」是指將訓練好的機器學習模型部署至正式環境,以便執行推論。TPU v5e 和後續版本支援推論。提供工作負載時,首要任務是達成延遲時間服務水準目標 (SLO)。
本文說明如何在單一主機 TPU 提供模型。如果 TPU 切片有八個或更少的晶片,則有一個 TPU VM 或主機,稱為「單主機」TPU。如要瞭解如何使用 PyTorch 進行多主機推論,請參閱 vLLM-TorchTPU 和 SGLang-TorchTPU。如要瞭解如何使用 JAX 執行多主機推論,請參閱「使用 Pathways 執行多主機推論」。
設定 TPU
無論選擇哪種堆疊,都必須有具備單一主機 TPU 的 Google Cloud 專案,才能提供模型。下列步驟適用於所有程式庫和架構組合:
- 建立專案。您必須擁有 Google Cloud 帳戶和專案,才能使用 Cloud TPU。詳情請參閱「設定 TPU 的Google Cloud 專案」。
查看配額。請確認您有足夠的配額,可供推論使用的 TPU 核心數量。TPU v5e 的訓練和提供作業會使用不同的配額。在 Cloud TPU API 中,TPU v5e 的特定服務配額如下:
- 隨選 v5e 資源:
TPU v5 lite pod cores for serving per project per zone - 可先占的 v5e 資源:
Preemptible TPU v5 lite pod cores for serving per project per zone
其他 TPU 版本的訓練和提供工作負載則使用相同配額。詳情請參閱「Cloud TPU 配額」。
- 隨選 v5e 資源:
建立 TPU VM。請選擇有提供服務的 TPU 版本和可用區,然後建立單一主機 TPU VM。詳情請參閱「TPU 區域和可用區」和「管理 TPU 資源」。
TPU VM 執行後,請按照「選擇推論堆疊」中的程式庫和架構設定指南操作。
選擇推論堆疊
Cloud TPU 支援透過兩個開放原始碼服務程式庫進行大型語言模型 (LLM) 推論:vLLM 和 SGLang。這兩個程式庫都可在 Cloud TPU 上執行,並搭配 JAX 或 PyTorch 後端,因此無論模型是以何種框架編寫,您都能選擇最適合工作負載的程式庫。
請先選擇程式庫,然後選取與模型架構相符的後端,如下表所示:
| 提供程式庫 | JAX 後端 | PyTorch 後端 |
|---|---|---|
| vLLM |
vllm-jax
|
vllm-torchtpu
|
| SGLang |
sglang-jax
|
sglang-torchtpu
|
使用 vLLM 進行推論
vLLM 是開放原始碼程式庫,可快速推論及提供 LLM,以持續批次處理和 PagedAttention 為基礎。Cloud TPU 透過 JAX 模型的 vllm-jax 外掛程式和 PyTorch 模型的 vllm-torchtpu 外掛程式,與 vLLM 搭配運作。
如要查看更多使用 vLLM 在 TPU 上提供模型的範例,請參閱下列資源:
- 開始使用 vLLM TPU
- 在 Google Kubernetes Engine 上透過 vLLM 使用 TPU Trillium 提供 LLM
- 在 Trillium TPU (v6e) 上提供 vLLM 的方法
vLLM 搭配 JAX
vLLM TPU 說明文件涵蓋安裝、快速入門導覽課程、支援的模型和調整選項。詳情請參閱「在 TPU 上使用 vLLM 提供 JAX 模型」。
搭配 PyTorch 使用 vLLM
vllm-torchtpu 外掛程式會將 TorchTPU 核心和執行階段支援新增至 vLLM。詳情請參閱「在 TPU 上使用 vLLM 提供 PyTorch 模型」。
使用 SGLang 進行推論
SGLang 是開放原始碼的大型語言和多模態模型服務框架,結合高效能執行階段和結構化生成前端。在 Cloud TPU 上,SGLang 會透過 SGLang-JAX 後端 (sglang-jax) 執行 JAX 模型,並透過 SGLang-TorchTPU 後端 (sglang-torchtpu) 執行 PyTorch 模型。
SGLang 搭配 PyTorch
如要瞭解安裝、伺服器啟動和支援的設定,請參閱「在 TPU 上使用 SGLang-TorchTPU 執行階段提供 PyTorch 模型」。
SGLang 搭配 JAX
如要瞭解安裝、伺服器啟動和支援的設定,請參閱「在 TPU 上使用 SGLang-JAX 執行階段提供 JAX 模型」。
剖析推論效能
設定推論後,您可以使用分析器分析效能和 TPU 使用率。如要進一步瞭解剖析功能,請參閱下列資源: