共用方式為


優化生產環境的模型服務端點

學習如何針對需要高吞吐量、低延遲及可靠效能的生產工作負載,優化模型服務端點。

優化策略可分為三類:

何時優化你的端點

當您遇到以下任一情境時,請考慮優化您的模型服務端點:

  • 高查詢量:你的應用程式每秒向單一端點發送超過 5 萬筆查詢(QPS)
  • 延遲需求:你的應用程式需要低於 100 毫秒的回應時間
  • 擴展瓶頸:端點在流量高峰時出現排隊或回傳 HTTP 429 錯誤
  • 成本優化:你希望在維持績效目標的同時降低服務成本
  • 生產準備:你正準備從開發工作轉到生產工作負載

基礎建設優化

基礎建設優化能改善網路路由、擴展行為及運算能力。

路線優化

路由優化 是高吞吐量工作負載中基礎設施最顯著的改善。 當你在端點啟用路由優化時,Databricks 模型服務會改善推論請求的網路路徑,從而促進客戶端與模型間更快速、更直接的通訊。

效能提升:

特徵 / 功能 標準終點限制 路由優化端點限制
每個工作區的每秒查詢率(QPS) 200 50,000+(如需更高限額,請聯絡 Databricks)
每個工作空間的用戶端並行性 192-1024(依地區而異) 無明確限制(受限於已配置的並行數)
端點為每個服務實體提供預設並行數 1,024 1,024(如需更高限額,請聯絡Databricks)

何時使用路線優化:

  • 需要超過 200 QPS 的工作負載
  • 嚴格延遲需求的應用程式(延遲低於 50 毫秒)
  • 服務多個同時使用者的生產部署

這很重要

路由優化僅適用於自訂模型服務端點。 基礎模型 API 及外部模型不支援路線優化。 驗證需要 OAuth 代幣;不支援個人存取權杖。

請參閱「 服務端點的路由優化 」以獲得設定說明,查詢細節請參見「 查詢路由優化的服務端點 」。

佈建的預置平行處理

配置並行性控制終端能同時處理多少請求。 根據您預期的 QPS 和延遲需求來配置預配置併發性。

配置指引:

  • 最小並發數:設定為足夠高,以便在不造成排隊的情況下處理基線流量負載
  • 最大並行:設定足夠高以容納流量激增,同時控制成本
  • 自動擴展:啟用自動擴展功能,根據需求動態調整容量

計算所需的並行性:

Required Concurrency = Target QPS × Average Latency (seconds)

舉例來說,如果你的目標是 100 QPS,平均延遲 200ms:

Required Concurrency = 100 × 0.2 = 20

利用 負載測試 來測量實際延遲並決定最佳的並行設定。

實例類型

根據你模型的計算需求選擇實例類型:

實例類型 適用對象 權衡取捨
CPU(小型、中型、大型) 輕量級模型,簡單推論邏輯 成本較低,但對於運算密集型模型來說速度較慢
GPU(小型、中型、大型) 大型模型、複雜計算、影像/影片處理 成本較高,深度學習效能最佳

小提示

從 CPU 實例開始進行開發和測試。 只有當你發現推理延遲高或模型需要專門運算(例如深度學習操作)時,才建議切換到 GPU 實例。

模型優化

模型優化提升推論速度與資源效率。

模型大小和複雜度

模型規模與複雜度:較小且較簡單的模型通常能帶來更快的推論時間與較高的 QPS。 如果你的模型很大,可以考慮像是模型量子化或修剪等技術。

批次處理

如果你的應用程式能在一次呼叫中發送多個請求,請在用戶端啟用批次處理。 這能大幅降低每次預測的負擔。

前處理與後處理優化

將複雜的前處理與後處理從服務端點卸下,以減輕推論基礎設施的負擔。

用戶端優化

用戶端優化改善應用程式與服務端點的互動方式。

連線池化

連線池會重複使用現有連線,而不是為每個請求建立新連線,大幅降低開銷。

  • 使用 Databricks SDK,自動化實作連線池管理的最佳實務
  • 如果使用自訂客戶端,需自行實作連線池。

錯誤處理與重試策略

實施穩健的錯誤處理機制,以優雅地處理臨時故障,尤其是在自動擴展事件或網路中斷時。

有效載荷大小優化

盡量減少請求與回應的有效載荷大小,以縮短網路傳輸時間並提升吞吐量。

衡量並提升績效

效能監控

使用 Mosaic AI 模型服務提供的工具監控端點效能:

計量 它衡量的是什麼 標的 超出時採取的措施
延遲(P50、P90、P99) 請求回應時間 依應用程式而定(通常 <100-500毫秒) 檢查是否有排隊,優化模型或客戶端
吞吐量(QPS) 每秒完成的請求數 依工作負載而定 啟用路由優化,增加配置並行性
錯誤率 申請失敗的百分比 <1% 檢查服務紀錄,檢查容量問題
佇列深度 等待處理的請求 0(無排隊) 增加配置並行性或啟用自動擴展
CPU/記憶體使用量 資源使用率 <80% 擴大實例類型或增加並行性

請參閱 「監控模型品質與端點健康 」以獲得詳細監控指引,並「 追蹤並匯出服務端點健康指標至Prometheus與Datadog ,以匯出指標至可觀察工具」。

負載測試

負載測試在真實交通狀況下衡量端點效能,並協助你:

  • 評估最佳的預配置並行性設定
  • 識別效能瓶頸
  • 驗證延遲與吞吐量需求
  • 了解用戶端並行與伺服器並行之間的關係

請參閱 負載測試以服務端點

排解常見效能問題

Queuing

模型服務支援自動縮放,根據流量模式調整容量。 然而,突發流量激增可能導致排隊,因為自動擴展需要時間偵測負載增加並預留額外容量。 在此期間,要求可能暫時超過可用容量,導致排隊。

當請求速率或並行性超過端點目前的處理能力時,會發生排隊。 這通常發生在流量急劇激增、工作負載突發,或端點配置並行不足時。 模型服務端點允許暫時排隊以處理突發,但超過定義閾值後,端點會回傳 HTTP 429(請求過多)錯誤以保護系統穩定性。

排隊會增加延遲,因為排隊請求會等待處理。 為了減少排隊時間:

  • 設定最低預配置併發度足夠高,以應對基線流量以及常見的流量突發。
  • 啟用路由優化以提升容量上限
  • 在客戶端應用程式中實作帶有指數退縮的重試邏輯

外部 API 瓶頸

模型在推論過程中常會呼叫外部 API,以進行資料豐富、特徵檢索或其他任務。 這些外部相依性可能成為效能瓶頸:

  • 延遲:測量每次外部 API 呼叫的回應時間。 這些通話中的高延遲直接增加整體服務延遲並降低吞吐量。
  • 吞吐量限制:外部 API 可能會施加速率限制或容量限制。 超過這些限制可能會導致降頻、錯誤及效能下降。
  • 錯誤率:外部 API 頻繁錯誤可能觸發重試並增加服務端點的負載。
  • 快取:對外部 API 頻繁存取的資料實施快取,以減少呼叫次數並改善回應時間。

監控這些因素,找出瓶頸,並針對高吞吐量工作負載實施針對性的優化。

其他資源