IBM于近期推出了全新無(wú)服務(wù)器的開(kāi)源框架CodeFlare,幫助開(kāi)發(fā)人員減少在混合云環(huán)境中部署AI模型所花費(fèi)的時(shí)間,此框架目前已在GitHub上開(kāi)源。
使用CodeFlare后,減少94%機(jī)器學(xué)習(xí)模型Pipeline執(zhí)行時(shí)長(zhǎng)
對(duì)于企業(yè)而言,訓(xùn)練出一個(gè)機(jī)器學(xué)習(xí)模型從來(lái)不是主要的瓶頸—那什么才是呢?
在生產(chǎn)環(huán)境中的持續(xù)運(yùn)營(yíng)、構(gòu)建完整的人工智能系統(tǒng),完成規(guī)?;涞兀抑虚g沒(méi)有任何重大的斷層,這才是真正的挑戰(zhàn)。然而,企業(yè)為了隨時(shí)應(yīng)對(duì)新需求來(lái)部署機(jī)器學(xué)習(xí)解決方案,經(jīng)常只能不斷重寫(xiě)實(shí)驗(yàn)程序代碼來(lái)迭代,但這種方法是模棱兩可的,在不具備MLOps的概念之下,成功幾率更低。
據(jù)IBM表示,用戶(hù)使用CodeFlare框架分析和優(yōu)化大約100,000個(gè)用于訓(xùn)練機(jī)器學(xué)習(xí)模型的pipeline時(shí),可將執(zhí)行時(shí)長(zhǎng)從原本的4小時(shí)大幅縮減到短短15分鐘。
資料科學(xué)和機(jī)器學(xué)習(xí)分析,在各個(gè)垂直領(lǐng)域的需求正在激增,任務(wù)也變得越來(lái)越復(fù)雜。隨著資料集越來(lái)越大,涉及的系統(tǒng)也變多,使得AI研究人員和開(kāi)發(fā)人員得花更多時(shí)間配置在模型設(shè)置上,要?jiǎng)?chuàng)建一個(gè)機(jī)器學(xué)習(xí)模型,必須還得進(jìn)行數(shù)據(jù)清洗、特征標(biāo)準(zhǔn)化、特征提取等耗時(shí)、耗力、多重的前置作業(yè),才能進(jìn)行訓(xùn)練優(yōu)化。
而CodeFlare存在的目的,就是要簡(jiǎn)化AI迭代過(guò)程,讓數(shù)據(jù)工作流程更容易規(guī)?;M(jìn)行。CodeFlare框架主要是創(chuàng)建在Ray之上—Ray是加州大學(xué)伯克利分校RISE實(shí)驗(yàn)室為AI應(yīng)用程序開(kāi)發(fā)的開(kāi)源分布式計(jì)算系統(tǒng),也是源自IBM集團(tuán)的一個(gè)項(xiàng)目,通過(guò)該項(xiàng)目也創(chuàng)建出了世界上第一個(gè)原型2納米芯片。
IBM框架CodeFlare接口基于Python,具三大特點(diǎn)
IBM Research混合云平臺(tái)總監(jiān)Priya Nagpurkar透露:“CodeFlare采用了簡(jiǎn)化機(jī)器學(xué)習(xí)的概念…更進(jìn)一步把每個(gè)孤立的步驟串聯(lián)起,將端到端pipeline與資料科學(xué)家熟悉的接口無(wú)縫集成—比如Python,而不是容器(container)。CodeFlare使用了統(tǒng)一的runtime和程序接口,有助于簡(jiǎn)化pipeline集成和擴(kuò)展的過(guò)程,展現(xiàn)與眾不同的性能?!?/p>
具體來(lái)說(shuō),CodeFlare擁有以下三大特點(diǎn):
1.基于Python的接口,可用于管理跨平臺(tái)的pipeline,且pipeline可以在大多數(shù)計(jì)算環(huán)境中共享資源、進(jìn)行平行化運(yùn)算。通過(guò)轉(zhuǎn)接器與其他云原生生態(tài)系統(tǒng)統(tǒng)集成和銜接,形成橫向分布式工作流程,開(kāi)發(fā)人員也不必為了維護(hù)管理而去學(xué)新的語(yǔ)言。
2.觸發(fā)器功能,使CodeFlare pipeline能夠在發(fā)生某些特定事件(例如有新文件抵達(dá))時(shí)被啟動(dòng),同時(shí),可從任何來(lái)源加載和分割資料,讓pipeline能夠有效去運(yùn)用一系列數(shù)據(jù)源,包括文件系統(tǒng)、對(duì)象存儲(chǔ)、數(shù)據(jù)湖和分布式文件系統(tǒng)。
3.可以部署在任何云基礎(chǔ)架構(gòu)上,通過(guò)和Red Hat OpenShift和IBM Cloud Code Engine的集成,實(shí)現(xiàn)了無(wú)服務(wù)器的體驗(yàn),并供用戶(hù)在任意平臺(tái)創(chuàng)建工作流程,具備拓展無(wú)服務(wù)器服務(wù)的好處。
從廣泛角度來(lái)看,CodeFlare的概念類(lèi)似于Amazon SageMaker Pipelines,聚焦在從云儀表板自動(dòng)化、組織機(jī)器學(xué)習(xí)pipeline的流程,而Google、微軟和Hybernet Labs則是分別在Cloud AI Platform Pipelines、Azure Machine Learning Pipelines和Galileo中提供了相似的服務(wù)。但I(xiàn)BM強(qiáng)調(diào),CodeFlare結(jié)合了本地和云計(jì)算基礎(chǔ)架構(gòu),是從本地端開(kāi)始構(gòu)建來(lái)支持混合云的。
“該框架背后的動(dòng)機(jī),是為了收攏工作流程,還有為了完美結(jié)合人工智能、機(jī)器學(xué)習(xí)、資料分析和建?!?,Nagpurkar表示,“我們看到了在runtime之下能大幅優(yōu)化渠道的機(jī)會(huì),可以有效管理和改善數(shù)據(jù)依賴(lài)性(data dependencies)、執(zhí)行控制性(execution control)。”
CodeFlare已開(kāi)源,降低企業(yè)AI部署混合云難度
目前CodeFlare已在GitHub開(kāi)源,IBM也提供了一系列有關(guān)其工作原理,以及開(kāi)發(fā)人員入門(mén)所需的技術(shù)博客文章。預(yù)期未來(lái),IBM計(jì)劃繼續(xù)發(fā)展CodeFlare,來(lái)支持更復(fù)雜的pipeline和功能,例如容錯(cuò)和一致性、外部資源的集成和數(shù)據(jù)管理,以及強(qiáng)化對(duì)可視化渠道的支持。
就目前的性能來(lái)看,CodeFlare已經(jīng)可以將執(zhí)行100,000個(gè)訓(xùn)練渠道的分析和優(yōu)化時(shí)間,從4小時(shí)縮短到15分鐘。此外,IBM正在與客戶(hù)合作,將CodeFlare集成到他們的軟件流程中,也在IBM自家的AI研究中使用此框架。
“實(shí)現(xiàn)一致性的體驗(yàn),以將pipeline從筆記本擴(kuò)展到小型集群(cluster)、再到云,是CodeFlare的一大關(guān)注點(diǎn)”,Nagpurkar補(bǔ)充,“我們將CodeFlare視為我們混合云平臺(tái)發(fā)展的關(guān)鍵下一步,對(duì)用戶(hù)的價(jià)值方面,我們必須強(qiáng)調(diào),通過(guò)顯著提高效率,CodeFlare不僅可以節(jié)省成本和時(shí)間,而且還創(chuàng)造了機(jī)會(huì)來(lái)解決以前由于規(guī)?;驈?fù)雜度等原因、而根本不切實(shí)際的新使用場(chǎng)景。”
有了像CodeFlare這種具備MLOps優(yōu)勢(shì)的框架,開(kāi)發(fā)人員就不必一直重復(fù)相同的工作,也不需要徹底理解pipeline的配置,用統(tǒng)一接口就可使用豐富的工具和API一致的進(jìn)行操作,把更多寶貴的時(shí)間放在研究和實(shí)際應(yīng)用上,簡(jiǎn)化配置和部署的復(fù)雜工作流程,更快速部署到混合云,開(kāi)發(fā)和部署AI模型的過(guò)程,又會(huì)變得輕巧許多。