KServe:一個健壯且可擴充套件的雲原生模型伺服器
如果你熟悉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/,如有侵權,請聯絡管理員刪除。
相關文章
- 健壯且可讀的安卓架構設計安卓架構
- MemQ:可替代Kafka的高效、可擴充套件的雲原生PubSub系統MQKafka套件
- 【譯】12個編寫乾淨且可擴充套件的JavaScript技巧套件JavaScript
- WPF如何封裝一個可擴充套件的Window封裝套件
- 可擴充套件性套件
- 基於 Golang 構建高可擴充套件的雲原生 PaaS(附 PPT 下載)Golang套件
- 可擴充套件性筆記一套件筆記
- [提問交流]求一個會員擴充套件的模型套件模型
- 一個開發中的 Laravel 關聯模型擴充套件Laravel模型套件
- PHP擴充套件開發就是一個自己的PHP擴充套件PHP套件
- 擴充套件javascript原生物件套件JavaScript物件
- 可動態擴充套件的資料庫模型設計套件資料庫模型
- 一個可擴充套件的報警系統Quick-Alarm套件UI
- iOS一個靈活可擴充套件的開源Log庫iOS套件
- 如何開始一個模組化可擴充套件的Web App套件WebAPP
- INFORMIX表的預設初始擴充套件、下一個擴充套件資料塊以及一個表允許的最大擴充套件數。ORM套件
- 構建可擴充套件的應用(一) (轉)套件
- 可擴充套件的搜尋元件套件元件
- 我的第一個Emacs擴充套件Mac套件
- Ubuntu 原生安裝 Swoole 擴充套件Ubuntu套件
- JavaScript 原生物件及擴充套件JavaScript物件套件
- 擴充套件 GRTN:雲原生趨勢下的 RTC 架構演進套件架構
- Laravel-permission(一個許可權管理的擴充套件包) 的使用Laravel套件
- 編寫可擴充套件程式套件
- Chrome第一個擴充套件程式Chrome套件
- 從零開發一個健壯的npm包NPM
- 「翻譯」SAP MII(SAP製造整合和智慧)-靈活且可擴充套件套件
- PHP擴充套件開發教程2 – 編寫第一個擴充套件 hello worldPHP套件
- 基於 Kyma 的企業級雲原生應用的擴充套件案例分享套件
- ETL的可擴充套件性和可維護性套件
- 年輕人的第一個VSCode擴充套件VSCode套件
- 1. 我的第一個 PHP 擴充套件PHP套件
- 實用的可選項(Optional)擴充套件套件
- dubbo是如何實現可擴充套件的?套件
- uber/cadence:Cadence是一種分散式,可擴充套件,持久且高度可用的流程編排引擎分散式套件
- kotlin 擴充套件(擴充套件函式和擴充套件屬性)Kotlin套件函式
- 我的第一個擴充套件包釋出啦-封裝明道雲API套件封裝API
- IM伺服器:編寫一個健壯的伺服器程式需要考慮哪些問題伺服器