概述
KServe 是一個標準化的 Kubernetes 原生平台,用於大規模服務機器學習模型。它為團隊提供了一種單一的、聲明性的方式來部署具有自動縮放、金絲雀部署和縮放到零的模型,抽象化大部分 Kubernetes 管道。
Kubernetes 上的 KServe 和模型服務是一個技術構建塊,會大規模影響模型品質、基礎設施成本、延遲和可靠性。
深入探討
KServe 以前稱為 KFServing,誕生於 Kubeflow 項目,它定義了 InferenceService 自訂資源。您編寫一個簡短的 YAML 文件,指向儲存在物件儲存(S3、GCS、Azure Blob)中的模型,然後 KServe 處理其餘的內容。它既支持預測推理,也支持越來越多的生成法學碩士服務。 KServe 為常見框架(TensorFlow Serving、TorchServe、Triton、scikit-learn、XGBoost、Hugging Face)提供預先建置的“服務執行時間”,並支援自訂容器。它建立在 Knative Serving 和網路層(Istio 或類似層)之上,提供請求驅動的自動縮放,包括真正的縮放到零,因此空閒模型不消耗計算。它還圍繞著開放推理協定標準化了預測 API,因此無論框架如何,客戶端都以相同的方式與每個模型進行通訊。
技術洞察
KServe 的自動擴展依賴於 Knative,它根據並發數或每秒請求數擴展副本數量,並且可以在流量停止時將副本數降至零,然後按需冷啟動。 InferenceService 將完整的推理管道抽象化為預測器、轉換器(預處理/後處理)和解釋器元件。模型透過「儲存初始化程序」從物件儲存加載,在啟動時將工件拉入 Pod,將模型儲存與服務容器映像解耦。
掌握 Kubernetes 上的 KServe 和模型服務
KServe 是一個標準化的 Kubernetes 原生平台,用於大規模服務機器學習模型。它為團隊提供了一種單一的、聲明性的方式來部署具有自動縮放、金絲雀部署和縮放到零的模型,抽象化大部分 Kubernetes 管道。 Kubernetes 上的 KServe 和模型服務是一個技術構建塊,會大規模影響模型品質、基礎設施成本、延遲和可靠性。為了建立深入的理解,請將 KServe 和 Kubernetes 上的模型服務視為一種操作模型,而不是單一功能:定義期望的結果,澄清假設,並將系統可以可靠地執行的操作與仍需要專家判斷的操作分開。
在實踐中,使用 Kubernetes 上的 KServe 和模型服務的強大團隊可以根據可靠性和成本來優化架構、資料和基礎設施選擇。他們記錄明確的成功標準,根據實際數據和工作流程進行測試,並根據觀察到的失敗模式而不是一次性基準測試勝利進行迭代。這就是理論理解轉變為跨產品、政策和營運的持久能力的地方。
多年來,架構決策決定著效能和營運成本。同時,優化一個基準測試可以隱藏更廣泛的系統弱點。最具彈性的方法是將實驗速度與治理規則結合:運行試點、捕獲證據、發布決策日誌,並隨著模型行為、使用者期望和監管要求的發展不斷更新保障措施。
戰略影響
多年來,架構決策決定著效能和營運成本。
多年來,架構決策決定著效能和營運成本。在高品質部署中,這會轉化為可衡量的操作規則、所有權邊界和定期審查儀式,以便團隊可以增強信心,而不是擴大模糊性。
技術教育幫助團隊選擇正確的堆疊,而不僅僅是最新的堆疊。
技術教育幫助團隊選擇正確的堆疊,而不僅僅是最新的堆疊。在高品質部署中,這會轉化為可衡量的操作規則、所有權邊界和定期審查儀式,以便團隊可以增強信心,而不是擴大模糊性。
更好的工程選擇可以減少生產中的可靠性事故。
更好的工程選擇可以減少生產中的可靠性事故。在高品質部署中,這會轉化為可衡量的操作規則、所有權邊界和定期審查儀式,以便團隊可以增強信心,而不是擴大模糊性。
現實世界的實施
一家銀行透過編寫指向 S3 中模型的 10 行 InferenceService YAML 來部署信用評分模型,並使用 KServe 處理自動縮放和入口。
電子商務團隊使用 KServe 金絲雀部署將 10% 的流量傳送到新的建議模型,然後在指標看起來正常時增加到 100%。
一個研究實驗室為數十個很少使用的模型提供了縮放至零的服務,因此每個模型僅在請求到達時才會啟動,並且在空閒時不消耗 GPU。
MLOps 團隊使用 KServe 轉換器元件在預測器運行 Triton 服務的視覺模型之前運行影像大小調整和標準化。
實施模式
Kubernetes 上的 KServe 和模型服務實踐
一家銀行透過編寫指向 S3 中模型的 10 行 InferenceService YAML 來部署信用評分模型,並使用 KServe 處理自動縮放和入口。
一家銀行透過編寫指向 S3 中模型的 10 行 InferenceService YAML 來部署信用評分模型,並使用 KServe 處理自動擴展和入口。當團隊預先定義品質閾值、為邊緣情況保留人工升級路徑並隨著時間的推移追蹤生產力增益和錯誤成本時,通常會獲得更好的結果。
Kubernetes 上的 KServe 和模型服務實踐
電子商務團隊使用 KServe 金絲雀部署將 10% 的流量傳送到新的建議模型,然後在指標看起來正常時增加到 100%。
電子商務團隊使用 KServe 金絲雀部署將 10% 的流量傳送到新的建議模型,然後在指標看起來正常時增加到 100%。當團隊預先定義品質閾值、為邊緣情況保留人工升級路徑並隨著時間的推移追蹤生產力增益和錯誤成本時,通常會獲得更好的結果。
Kubernetes 上的 KServe 和模型服務實踐
一個研究實驗室為數十個很少使用的模型提供了縮放至零的服務,因此每個模型僅在請求到達時才會啟動,並且在空閒時不消耗 GPU。
一個研究實驗室為數十個很少使用的模型提供縮放至零的服務,因此每個模型僅在請求到達時才啟動,並且不消耗 GPU,而空閒團隊在預先定義質量閾值、為邊緣情況保留人工升級路徑並隨著時間的推移跟踪生產力增益和錯誤成本時通常會獲得更好的結果。
Kubernetes 上的 KServe 和模型服務實踐
MLOps 團隊使用 KServe 轉換器元件在預測器運行 Triton 服務的視覺模型之前運行影像大小調整和標準化。
MLOps 團隊使用 KServe 轉換器元件在預測器運行 Triton 服務的視覺模型之前運行影像大小調整和標準化。當團隊預先定義品質閾值、為邊緣情況保留人工升級路徑並追蹤一段時間內的生產力增益和錯誤成本時,通常會獲得更好的結果。
風險與防護欄
優化一項基準測試可以隱藏更廣泛的系統弱點。
基礎設施和維護成本常常被低估。
隨著系統變得更加複雜,安全性和可觀察性差距可能會擴大。
實施路線圖
在實施之前定義延遲、品質和成本目標。
在實施之前定義延遲、品質和成本目標。將每個步驟視為證據門:如果不符合標準,則暫停推出,縮小差距,然後再擴大使用。
在實際負載和資料條件下進行基準測試。
在實際負載和資料條件下進行基準測試。將每個步驟視為證據門:如果不符合標準,則暫停推出,縮小差距,然後再擴大使用。
儀器監控錯誤、漂移和使用者影響。
儀器監控錯誤、漂移和使用者影響。將每個步驟視為證據門:如果不符合標準,則暫停推出,縮小差距,然後再擴大使用。
在擴展之前準備回滾和事件回應路徑。
在擴展之前準備回滾和事件回應路徑。將每個步驟視為證據門:如果不符合標準,則暫停推出,縮小差距,然後再擴大使用。