IBM的ModelMesh走向開源 使開發者能夠大規模部署AI模型
模型服務是AI用例的一個關鍵組成部分。 它涉及從人工智慧模型中提供推論,以回應使用者的請求。 那些涉足企業級機器學習應用的人知道,通常不是一個模型提供推論,而是實際上有數百甚至數千個模型在同步運行。
這在計算上是一個非常昂貴的過程,因為你不可能在每次要提供請求時都啟動一個專用容器。 這對在Kubernetes集群中部署大量模型的開發者來說是一個挑戰,因為存在一些限制,如允許的最大莢數和IP位址以及計算資源分配。
IBM通過其專有的ModelMesh模型服務管理層為Watson產品(如Watson Assistant、Watson Natural Language Understanding和Watson Discovery)解決了這個難題。 由於這些模型已經在生產環境中運行了幾年,ModelMesh已經針對各種場景進行了全面測試。 現在,IBM正在將這一管理層與控制器元件以及為模型服務的運行時間一起貢獻給開放源碼社區。
ModelMesh使開發者能夠在Kubernetes之上以「極端規模」部署AI模型。 它具有緩存管理的功能,也是一個平衡推理請求的路由器,模型被智慧地放置在pod中,對臨時中斷提供彈性。 ModelMesh的部署可以輕鬆升級,無需任何外部協調機制。 它自動確保一個路由新請求到它之前已經完全更新和載入。
在用一些統計數據解釋ModelMesh的可擴展性時,IBM表示:
一個部署在單個工人節點8vCPU x 64G集群上的ModelMesh實例能夠打包20K個簡單字串模型。 在密度測試的基礎上,我們還對ModelMesh的服務進行了負載測試,通過發送成千上萬的併發推理請求來類比一個高流量的假日季節場景,所有載入的模型都以個位數毫秒的延遲進行回應。 實驗表明,單個工人節點支援20k個模型,每秒最多可進行1000次查詢,並以個位數毫秒的延遲回應推理任務。
IBM將ModelMesh貢獻給了KServe GitHub組織,該組織早在2019年就由IBM、Google、彭博社、英偉達和Seldon聯合開發。
您可以在下面提到的各種GitHub儲存庫中查看ModelMesh的運用與實現:
用於協調模型放置和路由的 ModelMesh 容器 運行時適配器
ModelMesh運行時適配器– 在每個模型服務 pod 中運行的容器,充當 ModelMesh 和第三方模型伺服器容器之間的仲介,它還包含了負責從存儲中檢索模型的”拉動器”邏輯。
triton-inference-server – NVIDIA的Triton推理伺服器
seldon-mlserver – Python MLServer,是KFServing的一部分