IBM近日宣布,已將其用于公司內(nèi)部的ModelMesh模型服務(wù)開源,并貢獻給KServe開源社區(qū)。ModelMesh專為大規(guī)模、高密度和頻繁變化的模型用例而設(shè)計,可以幫助開發(fā)者擴展Kubernetes。
模型服務(wù)是人工智能領(lǐng)域的一個重要組成部分。它使用人工智能模型中提供的推理來響應(yīng)用戶的請求。那些接觸過企業(yè)級機器學(xué)習(xí)應(yīng)用的用戶或開發(fā)者應(yīng)該知道,它們通常不是由一個模型提供推理,實際上是由數(shù)百甚至數(shù)千個模型在串聯(lián)運行。由于AI模型的計算成本很高,因為你不可能在每次要提供請求時都啟動一個專用容器。
除此之外,因為存在一些限制,這對在Kubernetes集群上部署大量模型的開發(fā)者來說也是一個挑戰(zhàn):
·計算資源限制
·最大pod限制(Kubernetes建議每個節(jié)點最多有100個pods)
·最大IP地址限制(一個擁有4096個IP的集群可以部署大約1000到4000個模型)
IBM通過其專有的ModelMesh模型服務(wù)管理層為Watson產(chǎn)品(如Watson Assistant、Watson Natural Language Understanding和Watson Discovery)解決了這個難題。由于這些模型已經(jīng)在生產(chǎn)環(huán)境中運行了多年時間,ModelMesh已經(jīng)針對各種場景進行了全面測試。現(xiàn)在,IBM將這一管理層與控制器組件以及模型服務(wù)運行時一起貢獻給了開源社區(qū)。
ModelMesh使開發(fā)者能夠在Kubernetes之上以"極大規(guī)模"部署AI模型。它具有緩存管理的功能,也充當一個平衡推理請求的路由。模型被智能地放置在pods中,并且能夠適應(yīng)臨時中斷。開發(fā)者無需任何外部協(xié)調(diào)機制就可以輕松升級部署的ModelMesh。它可以自動確保一個模型在路由新的請求之前已經(jīng)完全更新和加載。
IBM用一些統(tǒng)計數(shù)據(jù)解釋了ModelMesh的可擴展性:
一個部署在單個工作節(jié)點8vCPU x 64G集群上的ModelMesh實例能夠打包2萬個簡單字符串模型。除了密度測試之外,我們還通過發(fā)送數(shù)千個并發(fā)推理請求來對ModelMesh服務(wù)進行負載測試,以模擬高流量的假日場景,所有加載的模型都以個位數(shù)毫秒的延遲做出響應(yīng)。我們的實驗表明,單個工作節(jié)點支持2萬個模型,每秒最多1000個查詢,并以個位數(shù)毫秒的延遲響應(yīng)推理任務(wù)。
ModelMesh與KServe相結(jié)合,還將為部署在生產(chǎn)中的模型增加可信的人工智能指標,如可解釋性與公平性。目前該項目已托管至GitHub平臺,可點擊鏈接進一步了解該項目。
相關(guān)鏈接:https://github.com/kserve/modelmesh-serving