KServe:一個健壯且可擴充套件的雲原生模型伺服器

danny_2018發表於2022-04-08

如果你熟悉Kubeflow,你就會知道KFServing是平臺的模型伺服器和推理引擎。去年9月,KFServing專案經歷了一次轉型,變成了KServe。

除了名稱變更之外,KServe現在是從Kubeflow專案畢業的獨立元件。這種分離允許KServe發展為一個單獨的、雲原生推理引擎,部署為一個獨立的模型伺服器。當然,它將繼續與Kubeflow緊密整合,但它們將被視為獨立的開源專案來處理和維護。

KServe是由谷歌、IBM、彭博社、Nvidia和Seldon合作開發的,是Kubernetes的開源雲原生模型伺服器。最新版本0.8的重點是將模型伺服器轉換為一個獨立的元件,並對分類法和命名法進行了更改。

讓我們瞭解KServe的核心功能

模型伺服器用於機器學習模型,就像應用程式用於編寫二進位制程式碼一樣。兩者都為部署提供執行時和執行上下文。KServer作為模型伺服器,為機器學習和大規模的學習模型提供了基礎。

KServe可以部署為傳統的Kubernetes部署,也可以部署為支援零擴充套件的無伺服器部署。對於無伺服器,它利用了面向無伺服器的Knative Serving的優勢,具有自動縮放功能。Istio用作入口,向API使用者公開服務端點。Istio和Knative服務的結合實現了令人興奮的場景,例如模型的藍/綠和金絲雀部署。

Kserve架構圖

RawDeployment模式允許你在不使用Knative服務的情況下使用KServe,它支援傳統的縮放技術,如水平pod自動縮放(HPA),但不支援縮放到零。

KServe架構

KServe model server有一個控制平面和一個資料平面。控制平面管理並協調負責推理的自定義資源。在無伺服器模式下,它與Knative資源協調管理自動縮放。

KServe控制平面的核心是管理推理服務生命週期的KServe控制器。它負責建立服務、入口資源、模型伺服器容器、模型代理容器,用於請求/響應日誌記錄、批處理,以及從模型儲存中提取模型。模型儲存是在模型伺服器上註冊的模型的儲存庫。它通常是一種物件儲存服務,如Amazon S3、谷歌雲端儲存、Azure Storage或MinIO。

資料平面管理針對特定模型的請求/響應週期。它有一個預測器、轉換器和直譯器元件。

AI應用程式向預測器端點傳送REST或gRPC請求。預測器充當呼叫transformer元件的推理管道,transformer元件可以執行入站資料(請求)的預處理和出站資料(響應)的後處理。或者,可能會有一個直譯器元件,為託管模型帶來AI解釋能力。KServe鼓勵使用可互操作和可擴充套件的V2協議。

資料平面還具有端點,用於檢查模型的就緒性和執行狀況。它還公開了用於檢索模型後設資料的API。

支援的框架和執行時

KServe支援廣泛的機器學習和深度學習框架。深度學習框架和執行時與現有的服務基礎設施(如TensorFlow Serving、TorchServe和Triton推理伺服器)配合使用。KServe可以透過Triton 託管TensorFlow、ONNX、PyTorch和TensorRT執行時。

對於基於SKLearn的經典機器學習模型,XGBoost、Spark MLLib和LightGBM KServe依賴於Seldon的MLServer。

KServe的可擴充套件框架使其能夠插入任何遵守V2推理協議的執行時。

使用ModelMesh的多模式服務

KServe為每個推理部署一個模型,將平臺的可擴充套件性限制在可用的CPU和GPU上。當在昂貴且稀缺的計算資源GPU上執行推理時,這種限制變得很明顯。

透過多模式服務,我們可以克服基礎設施的限制——計算資源、最大pod和最大IP地址。

ModelMesh Serving由IBM開發,是一個基於Kubernetes的平臺,用於實時服務ML/DL模型,針對高容量/密度用例進行了最佳化。與管理流程以最佳利用可用資源的作業系統類似,ModelMesh最佳化部署的模型以在叢集內高效執行。

透過跨部署的pod叢集智慧管理記憶體中的模型資料,以及隨著時間的推移對這些模型的使用,系統最大限度地利用了可用的叢集資源。

ModelMesh Serving基於KServe v2資料平面API進行推理,這使得它可以部署為類似於NVIDIA Triton推理伺服器的執行時。當一個請求到達KServe資料平面時,它被簡單地委託給ModelMesh Serving。

ModelMesh Serving與KServe的整合目前處於Alpha階段。隨著這兩個專案的成熟,將有一個更緊密的整合,使混合和匹配兩個平臺的功能和能力成為可能。

隨著模型服務成為MLOP的核心構建塊,像KServe這樣的開源專案變得非常重要。KServe的可擴充套件性使其能夠使用現有和即將出現的執行時,從而成為一個獨特的模型服務平臺。

來自 “ 開源雲中文社群 ”, 原文作者:開源雲中文社群;原文連結:https://thenewstack.io/kserve-a-robust-and-extensible-cloud-native-model-server/,如有侵權,請聯絡管理員刪除。

相關文章