林健 謝冬鳴 余波
摘要:深度學(xué)習(xí)技術(shù)是支撐眾多人工智能應(yīng)用的基礎(chǔ),云服務(wù)是當(dāng)今主流的計(jì)算能力供給模式。以云服務(wù)方式提供深度學(xué)習(xí)能力廣受關(guān)注,構(gòu)建這類(lèi)服務(wù)的關(guān)鍵在于深度學(xué)習(xí)業(yè)務(wù)向云服務(wù)模式適配,具體涉及作業(yè)調(diào)度、存儲(chǔ)接入和資源管理等方面的兼容性問(wèn)題與適配型特性研發(fā)。OMAI深度學(xué)習(xí)平臺(tái)將深度學(xué)習(xí)業(yè)務(wù)云服務(wù)化,通過(guò)作業(yè)調(diào)度中間層抽象、異構(gòu)存儲(chǔ)容器內(nèi)掛載、資源表達(dá)式匹配等機(jī)制,有效解決了深度學(xué)習(xí)業(yè)務(wù)的云服務(wù)適配問(wèn)題.OMAI為人工智能云服務(wù)研發(fā)提供指導(dǎo)思路。
關(guān)鍵詞:深度學(xué)習(xí);人工智能;云服務(wù);高性能計(jì)算;平臺(tái)軟件
DOI:10.11907/rjdk.201139開(kāi)放科學(xué)(資源服務(wù))標(biāo)識(shí)碼(OSID):
中圖分類(lèi)號(hào):TP301文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1672-7800(2020)006-0001-08
0 引言
深度學(xué)習(xí)技術(shù)作為人工智能領(lǐng)域的基礎(chǔ)性技術(shù),為互聯(lián)網(wǎng)、金融、安全、教育、醫(yī)療等領(lǐng)域的眾多應(yīng)用提供技術(shù)支撐。近年來(lái),深度學(xué)習(xí)云服務(wù)開(kāi)始在各大云計(jì)算平臺(tái)涌現(xiàn),這是因?yàn)樵品?wù)模式能夠解決深度學(xué)習(xí)技術(shù)門(mén)檻高、資源消耗多、需求波動(dòng)大等問(wèn)題,同時(shí)也體現(xiàn)出深度學(xué)習(xí)的業(yè)務(wù)需求具有一定的共通性和迫切性。然而,深度學(xué)習(xí)和云計(jì)算兩個(gè)領(lǐng)域有其各自的發(fā)展軌跡,將深度學(xué)習(xí)平臺(tái)作為一種云服務(wù)運(yùn)行于云計(jì)算環(huán)境,勢(shì)必遇到一系列有待適配的技術(shù)缺口及需要解決的工程問(wèn)題。
公有云或私有云平臺(tái)研發(fā)者已經(jīng)或多或少地注意到這些問(wèn)題并提出了解決方案,多種深度學(xué)習(xí)云服務(wù)的出現(xiàn)就是例證。然而,多數(shù)云服務(wù)由商業(yè)巨頭開(kāi)發(fā),且存在軟件架構(gòu)遷就市場(chǎng)需求等現(xiàn)實(shí)問(wèn)題,因此深度學(xué)習(xí)業(yè)務(wù)的云服務(wù)適配問(wèn)題并沒(méi)有系統(tǒng)地梳理和總結(jié)。本文基于對(duì)現(xiàn)有深度學(xué)習(xí)平臺(tái)的分析,闡述了深度學(xué)習(xí)在云服務(wù)適配時(shí)可能遇到的問(wèn)題,并對(duì)現(xiàn)有解決方案進(jìn)行歸納整理,期望這些工作對(duì)未來(lái)深度學(xué)習(xí)云服務(wù)的研發(fā)提供有益啟發(fā)及幫助。
本文提出OMAI(Oriental Mind Artificial Intelligence)深度學(xué)習(xí)平臺(tái)。OMAI深度學(xué)習(xí)平臺(tái)是一套以高性能計(jì)算(High Performance Computing,HPC)為特色,涵蓋人工智能業(yè)務(wù)全流程的一站式平臺(tái)軟件,支持一體機(jī)、局域網(wǎng)、私有云與公有云部署。針對(duì)云服務(wù)適配,OMAI平臺(tái)提出了作業(yè)調(diào)度中間層抽象、異構(gòu)存儲(chǔ)容器內(nèi)掛載、資源表達(dá)式匹配等諸多機(jī)制,解決作業(yè)調(diào)度、存儲(chǔ)接人和資源管理等不同的技術(shù)問(wèn)題,構(gòu)建一套系統(tǒng)化解決方案。
1 深度學(xué)習(xí)業(yè)務(wù)及其云服務(wù)特點(diǎn)
本文從深度學(xué)習(xí)運(yùn)行時(shí)特征、服務(wù)化模式和云服務(wù)現(xiàn)狀等角度介紹深度學(xué)習(xí)業(yè)務(wù)及其云服務(wù)特點(diǎn)。
1.1 深度學(xué)習(xí)運(yùn)行時(shí)特征
深度學(xué)習(xí)業(yè)務(wù)分為研發(fā)層業(yè)務(wù)與應(yīng)用層業(yè)務(wù)。前者指面向神經(jīng)網(wǎng)絡(luò)算法或人工智能應(yīng)用的研發(fā)人員提供硬件、軟件、算法、算力等基礎(chǔ)設(shè)施服務(wù)的業(yè)務(wù);后者指面向大眾消費(fèi)者或特定行業(yè)技術(shù)人員等最終用戶(hù),提供端到端應(yīng)用服務(wù)的業(yè)務(wù)。研發(fā)層業(yè)務(wù)全生命周期包括算法開(kāi)發(fā)、模型訓(xùn)練、訓(xùn)練過(guò)程可視化、模型驗(yàn)證、服務(wù)發(fā)布、數(shù)據(jù)推理等環(huán)節(jié);應(yīng)用層業(yè)務(wù)的全生命周期則以數(shù)據(jù)推理為核心,輔以模型增量訓(xùn)練等可選環(huán)節(jié),以及前端界面、模型市場(chǎng)等周邊服務(wù)。研發(fā)層業(yè)務(wù)的云服務(wù)適配問(wèn)題,本質(zhì)上是深度學(xué)習(xí)平臺(tái)軟件的上云問(wèn)題,其涉及技術(shù)面廣、代表性強(qiáng),能夠涵蓋應(yīng)用層業(yè)務(wù)的核心環(huán)節(jié),因此本文的研究對(duì)象以研發(fā)層業(yè)務(wù)為主。
深度學(xué)習(xí)業(yè)務(wù)特征可從不同維度進(jìn)行分類(lèi)。考慮云服務(wù)場(chǎng)景的分類(lèi)標(biāo)準(zhǔn)是業(yè)務(wù)的運(yùn)行時(shí)特征,即運(yùn)行模式。云計(jì)算環(huán)境中最常見(jiàn)的兩種運(yùn)行模式是微服務(wù)與批處理作業(yè)。表1給出深度學(xué)習(xí)業(yè)務(wù)各個(gè)環(huán)節(jié)的運(yùn)行實(shí)體本質(zhì)及歸屬運(yùn)行模式,前述流程中的服務(wù)發(fā)布環(huán)節(jié)屬于微服務(wù)的創(chuàng)建過(guò)程,無(wú)須分類(lèi)單列。
(1)微服務(wù)模式。算法開(kāi)發(fā)、訓(xùn)練過(guò)程可視化、在線(xiàn)模型驗(yàn)證和數(shù)據(jù)推理屬于微服務(wù)模式,本質(zhì)上是Web、REST或RPC服務(wù),一般具有無(wú)狀態(tài)特征,抑或是將狀態(tài)持久化保存于外部存儲(chǔ)器件。其生命周期長(zhǎng)度取決于用戶(hù)的主觀(guān)需求,理論上可以無(wú)限長(zhǎng)。盡管微服務(wù)可通過(guò)自包含或中間件方式獨(dú)立運(yùn)行,然而為了可管理性、可伸縮性和容錯(cuò)性等目標(biāo),實(shí)際場(chǎng)景下通常使用基于虛擬機(jī)、容器或無(wú)服務(wù)器(Serveless)技術(shù)的微服務(wù)調(diào)度與編排軟件進(jìn)行管理。
(2)批處理作業(yè)模式。模型訓(xùn)練、離線(xiàn)模型驗(yàn)證和數(shù)據(jù)推理屬于批處理作業(yè)模式。它們本質(zhì)上是普通進(jìn)程,或?yàn)樵╪ative)進(jìn)程,或基于Python等語(yǔ)言解釋器;一般帶有狀態(tài),在內(nèi)存或顯存中維護(hù)當(dāng)前階段的運(yùn)行時(shí)信息。其生命周期長(zhǎng)度取決于算法、算力、數(shù)據(jù)集大小等因素,一般情況為有限長(zhǎng),除非人為控制。盡管普通進(jìn)程可以獨(dú)立運(yùn)行,然而為了可管理性、執(zhí)行效率、資源利用率等目標(biāo),實(shí)際場(chǎng)景下通常使用批處理作業(yè)調(diào)度軟件管理,這也是“批處理作業(yè)”模式名稱(chēng)的由來(lái)。
1.2 深度學(xué)習(xí)服務(wù)化模式
當(dāng)一個(gè)組織內(nèi)部的基礎(chǔ)設(shè)施、應(yīng)用與用戶(hù)數(shù)量日益增長(zhǎng),或者打算提供對(duì)外服務(wù)時(shí),軟件的服務(wù)化就不可避免。深度學(xué)習(xí)業(yè)務(wù)的兩種運(yùn)行模式均可采用多種不同的服務(wù)化模式。微服務(wù)天然是為服務(wù)化設(shè)計(jì)的,傳統(tǒng)上為Web應(yīng)用或SOA(Services Oriented Architecture)中間件設(shè)計(jì)微服務(wù)調(diào)度編排軟件,對(duì)深度學(xué)習(xí)業(yè)務(wù)中的微服務(wù)環(huán)節(jié)也適用。盡管不同的調(diào)度編排軟件及運(yùn)行環(huán)境(虛擬機(jī)、容器或無(wú)服務(wù)器架構(gòu))在云服務(wù)適配開(kāi)發(fā)方面存在差異,但研發(fā)層業(yè)務(wù)用戶(hù)可見(jiàn)的只是Web、REST或RPC接口,上述軟件和環(huán)境對(duì)用戶(hù)完全透明,其選型基本不影響服務(wù)體驗(yàn)。因此,微服務(wù)的服務(wù)化模式不是研究重點(diǎn),這里不展開(kāi)說(shuō)明。
相比之下,批處理作業(yè)的服務(wù)化問(wèn)題較為復(fù)雜。其核心原因在于:多數(shù)深度學(xué)習(xí)引擎以開(kāi)發(fā)庫(kù)(library)的形式發(fā)布,將運(yùn)行時(shí)的控制權(quán)完全交給上層開(kāi)發(fā)者,不提供面向服務(wù)化的運(yùn)行時(shí)控制框架(調(diào)度框架)。這使得批處理作業(yè)的服務(wù)化工作必須補(bǔ)齊運(yùn)行時(shí)控制的短板。運(yùn)行時(shí)控制框架的設(shè)計(jì)或選型,既影響深度學(xué)習(xí)云服務(wù)的整體架構(gòu),又在一定程度上對(duì)研發(fā)層業(yè)務(wù)相關(guān),因此成為深度學(xué)習(xí)服務(wù)化模式研究的重點(diǎn)。表2給出深度學(xué)習(xí)批處理作業(yè)中常見(jiàn)服務(wù)化模式所使用的調(diào)度框架及主要適用場(chǎng)景。
(1)大數(shù)據(jù)調(diào)度框架。大數(shù)據(jù)調(diào)度框架以Apache生態(tài)中的MapReduce、YARN調(diào)度框架為代表,其特點(diǎn)在于生態(tài)成熟,與大數(shù)據(jù)組件的交互性好,易于構(gòu)建以數(shù)據(jù)為中心的工作流;可伸縮性和容錯(cuò)性設(shè)計(jì)較為完善,適合在已有的大數(shù)據(jù)集群上部署。基于這類(lèi)框架的深度學(xué)習(xí)典型案例包括Yahoo!開(kāi)源的TensorFlowOnSpark、Databricks發(fā)布的Spark Deep Learning,以及多種商業(yè)數(shù)據(jù)分析平臺(tái)軟件中的深度學(xué)習(xí)功能。
(2)高性能調(diào)度框架。以HPC生態(tài)中常見(jiàn)的Slurm、PBS調(diào)度器為代表。它們與高性能計(jì)算、通信及存儲(chǔ)組件的交互性好,貼合深度學(xué)習(xí)訓(xùn)練對(duì)大規(guī)模矩陣運(yùn)算及分布式通信的需求,特別適合基于MPI優(yōu)化的深度學(xué)習(xí)引擎。其穩(wěn)定性和可擴(kuò)展性在大規(guī)模超算環(huán)境下得以驗(yàn)證,適合在已有的超算基礎(chǔ)設(shè)施上部署。包括Amazon高性能計(jì)算服務(wù)(AWS HPC)、中國(guó)科技云人工智能平臺(tái)在內(nèi)的超算服務(wù),均提供基于此類(lèi)框架的深度學(xué)習(xí)解決方案。
(3)容器化調(diào)度框架。容器化調(diào)度框架以踐行“云原生”(cloud native)理念的Kubernetes、Mesos DC/OS平臺(tái)軟件為代表。這類(lèi)框架專(zhuān)門(mén)針對(duì)云服務(wù)的需求和特點(diǎn)設(shè)計(jì),與云服務(wù)基礎(chǔ)設(shè)施的交互性好,為業(yè)務(wù)上云帶來(lái)很大便利。資源彈性與容錯(cuò)性是其主要優(yōu)勢(shì),適合在已有的云計(jì)算環(huán)境中部署。這類(lèi)框架的代表性深度學(xué)習(xí)解決方案有Kubeflow、Volcano等開(kāi)源項(xiàng)目,多數(shù)公有云深度學(xué)習(xí)服務(wù)也選擇了容器化路線(xiàn)。
1.3 深度學(xué)習(xí)云服務(wù)現(xiàn)狀
近年來(lái),人工智能的發(fā)展,催生了大量面向研發(fā)層業(yè)務(wù)的深度學(xué)習(xí)平臺(tái)軟件,部分軟件支持云服務(wù)工作方式。為了歸納云服務(wù)特點(diǎn)以及分析深度學(xué)習(xí)業(yè)務(wù)的云服務(wù)適配問(wèn)題,有必要對(duì)它們加以分類(lèi)總結(jié)。本文采用云服務(wù)形態(tài)及定位兩種分類(lèi)維度。形態(tài)依服務(wù)受眾可分為公有云服務(wù)和私有云服務(wù),定位則與該服務(wù)的產(chǎn)品設(shè)計(jì)及發(fā)展歷程相關(guān)。表3為在此標(biāo)準(zhǔn)下各類(lèi)深度學(xué)習(xí)云服務(wù)的典型代表。
(1)公有云服務(wù)。公有云服務(wù)通過(guò)互聯(lián)網(wǎng)面向公眾提供服務(wù)。深度學(xué)習(xí)服務(wù)在公有云上一般處于SaaS層(開(kāi)發(fā)工具)和PaaS層(能力集成)。深度學(xué)習(xí)公有云服務(wù)除面臨多租戶(hù)安全隔離、彈性伸縮與成本控制等公有云通用問(wèn)題外,還需要解決專(zhuān)用硬件接人和復(fù)用等特有問(wèn)題。
(2)私有云服務(wù)。私有云服務(wù)部署在組織內(nèi)部,面向特定群體提供服務(wù)。深度學(xué)習(xí)服務(wù)在私有云中的安全性要求一般低于公有云,網(wǎng)絡(luò)管理策略也相對(duì)簡(jiǎn)單。然而,私有云的資源限制導(dǎo)致其具有接人外部資源、構(gòu)建混合云的需求,同時(shí)私有云往往涉及適配企業(yè)特有的組織構(gòu)架與工作流程。
(3)以深度學(xué)習(xí)為核心的專(zhuān)業(yè)化人工智能服務(wù)。此類(lèi)服務(wù)聚焦深度學(xué)習(xí)領(lǐng)域,在覆蓋深度學(xué)習(xí)業(yè)務(wù)全流程的同時(shí)力圖將局部技術(shù)點(diǎn)(如自動(dòng)學(xué)習(xí)、算法模型庫(kù))做深做精。盡管其也支持傳統(tǒng)機(jī)器學(xué)習(xí)及一定的數(shù)據(jù)處理功能,但往往不作為重點(diǎn)。此類(lèi)服務(wù)一般以作業(yè)表單或RES了接口方式與用戶(hù)交互,通常為用戶(hù)提供較高的自由度,支持訓(xùn)練和部署自定義的算法模型。
(4)帶有深度學(xué)習(xí)能力的綜合型人工智能服務(wù)。此類(lèi)服務(wù)更關(guān)注業(yè)務(wù)覆蓋的廣度,力圖滿(mǎn)足應(yīng)用對(duì)人工智能技術(shù)的全方位需求,因此還包含傳統(tǒng)機(jī)器學(xué)習(xí)、數(shù)據(jù)處理、服務(wù)編排、DevOps流程等服務(wù)。此類(lèi)服務(wù)的用戶(hù)交互形式比較多樣化,以便適應(yīng)人工智能領(lǐng)域不同細(xì)分業(yè)務(wù)特點(diǎn)。前兩類(lèi)人工智能服務(wù)大多屬于獨(dú)立規(guī)劃與演進(jìn)的產(chǎn)品。
(5)帶有深度學(xué)習(xí)能力的數(shù)據(jù)分析服務(wù)。此類(lèi)服務(wù)通常在數(shù)據(jù)分析平臺(tái)基礎(chǔ)上發(fā)展而來(lái)。傳統(tǒng)的數(shù)據(jù)分析平臺(tái)一般支持統(tǒng)計(jì)分析或機(jī)器學(xué)習(xí)方法。深度學(xué)習(xí)技術(shù)在補(bǔ)充其分析能力的同時(shí),也具備一定的獨(dú)立工作能力。此類(lèi)服務(wù)往往繼承了數(shù)據(jù)分析平臺(tái)的工作流拖拽或筆記本交互使用模式,其算法模型一般以平臺(tái)預(yù)置為主,對(duì)自定義程序的支持相對(duì)較弱。
(6)帶有深度學(xué)習(xí)能力的高性能計(jì)算服務(wù)。此類(lèi)服務(wù)通常是在高性能計(jì)算作業(yè)管理軟件基礎(chǔ)上發(fā)展而來(lái)。相比前幾類(lèi)覆蓋深度學(xué)習(xí)業(yè)務(wù)多環(huán)節(jié)的服務(wù),高性能計(jì)算服務(wù)一般只聚焦模型訓(xùn)練環(huán)節(jié),以便充分利用超算硬件資源。此類(lèi)服務(wù)普遍會(huì)繼承高性能計(jì)算領(lǐng)域以作業(yè)腳本或表單為主的交互方式,支持用戶(hù)提交自定義程序,且有較為嚴(yán)格的安全約束。
2 深度學(xué)習(xí)業(yè)務(wù)的云服務(wù)適配問(wèn)題
從深度學(xué)習(xí)業(yè)務(wù)特點(diǎn)可以看出,并非所有業(yè)務(wù)環(huán)節(jié)均能精確適配云服務(wù)。深度學(xué)習(xí)的典型服務(wù)化模式也表明,并非所有服務(wù)化場(chǎng)景均具有“云原生”特征。從現(xiàn)有深度學(xué)習(xí)云服務(wù)實(shí)踐可知,每款產(chǎn)品均有其設(shè)計(jì)取舍。因此,深度學(xué)習(xí)業(yè)務(wù)的云服務(wù)適配是一類(lèi)綜合性問(wèn)題,尚不存在完美的解決方案。本文對(duì)這類(lèi)問(wèn)題進(jìn)行系統(tǒng)性梳理,總結(jié)出其中3個(gè)主要問(wèn)題——作業(yè)調(diào)度、存儲(chǔ)接人和資源管理,并對(duì)問(wèn)題的本質(zhì)及相關(guān)研究成果進(jìn)行綜述。
2.1 作業(yè)調(diào)度問(wèn)題
作業(yè)調(diào)度問(wèn)題同批處理作業(yè)特性以及Python或原生進(jìn)程的需求相關(guān),這里分為運(yùn)行模式適配和運(yùn)行環(huán)境依賴(lài)兩個(gè)子問(wèn)題加以討論。
2.1.1 運(yùn)行模式適配
深度學(xué)習(xí)模型訓(xùn)練等核心環(huán)節(jié)的運(yùn)行模式是批處理作業(yè),典型的進(jìn)程形態(tài)是Python或原生進(jìn)程。然而,經(jīng)典的云服務(wù)不能完全滿(mǎn)足其需求,具體表現(xiàn)在:①?gòu)椥訫a-pReduce等大數(shù)據(jù)服務(wù)(如AWS EMR)雖然支持批處理作業(yè)調(diào)度,但主要服務(wù)于Java組件,存在安全沙箱等限制PY-thon或原生進(jìn)程的設(shè)計(jì);②容器實(shí)例或容器集群服務(wù)(如阿里云ECI)雖然與一些深度學(xué)習(xí)引擎主推的容器化運(yùn)行模式一致,但它們?yōu)闊o(wú)狀態(tài)的微服務(wù)設(shè)計(jì),不支持群調(diào)度(gang-scheduling)等批處理專(zhuān)有特性,因而無(wú)法滿(mǎn)足分布式訓(xùn)練需求;③基于容器的批處理服務(wù)(如Azure Batch)最大程度上滿(mǎn)足了容器化與批處理兩大需求,但仍存在分布式命令行參數(shù)配置復(fù)雜、進(jìn)程行為控制語(yǔ)義薄弱等細(xì)節(jié)問(wèn)題。
2017年以前,多數(shù)廠(chǎng)商選擇自研深度學(xué)習(xí)批處理作業(yè)調(diào)度機(jī)制,如IBM PowerAI等脫胎于大數(shù)據(jù)系統(tǒng)的產(chǎn)品選擇在Spark等大數(shù)據(jù)框架基礎(chǔ)上構(gòu)建深度學(xué)習(xí)支持能力,而大多數(shù)公有云深度學(xué)習(xí)服務(wù)選擇在Kubernetes等容器平臺(tái)上開(kāi)發(fā)批處理作業(yè)調(diào)度。2017年以后,隨著Kubeflow和Volcano兩個(gè)開(kāi)源項(xiàng)目的發(fā)布,容器化與批處理結(jié)合領(lǐng)域有了公認(rèn)的解決方案,二者均通過(guò)Kubernetes的operator機(jī)制實(shí)現(xiàn)批處理作業(yè)的封裝和抽象,并通過(guò)scheduler機(jī)制實(shí)現(xiàn)群調(diào)度等運(yùn)行時(shí)的行為控制。主要不同點(diǎn)在于:Kubeflow傾向于提供高層次封裝,且面向深度學(xué)習(xí)全流程設(shè)計(jì);Volcano傾向于提供細(xì)粒度工具,且針對(duì)多種批處理調(diào)度場(chǎng)景設(shè)計(jì)。
相對(duì)于基于大數(shù)據(jù)和容器化框架的運(yùn)行模式適配機(jī)制,基于高性能框架的工作比較小眾。這與超算環(huán)境受眾面小、從業(yè)人員動(dòng)手能力較強(qiáng)有關(guān)。AWS HPC和中國(guó)科技云提供的深度學(xué)習(xí)能力,本質(zhì)上是幫助用戶(hù)自動(dòng)創(chuàng)建批處理腳本,但后續(xù)操作仍需要使用傳統(tǒng)作業(yè)管理命令或界面。隨著人工智能業(yè)務(wù)的增長(zhǎng)以及高性能計(jì)算技術(shù)向深度學(xué)習(xí)的滲透,高性能調(diào)度框架在深度學(xué)習(xí)領(lǐng)域的應(yīng)用價(jià)值逐漸顯現(xiàn),這一趨勢(shì)值得云服務(wù)開(kāi)發(fā)者關(guān)注。
2.1.2 運(yùn)行時(shí)環(huán)境依賴(lài)
深度學(xué)習(xí)領(lǐng)域的快速發(fā)展導(dǎo)致深度學(xué)習(xí)引擎、算法開(kāi)發(fā)庫(kù)的演進(jìn)迅速,依賴(lài)關(guān)系復(fù)雜多變,它們對(duì)操作系統(tǒng)、編程語(yǔ)言及系統(tǒng)開(kāi)發(fā)庫(kù)的依賴(lài)也瞬息萬(wàn)變。深度學(xué)習(xí)的3種服務(wù)化模式普遍選擇使用容器技術(shù)(Docker和Singularity)解決。容器使得作業(yè)進(jìn)程包含上下文環(huán)境,避免管理復(fù)雜的環(huán)境依賴(lài)項(xiàng)。然而容器技術(shù)并非萬(wàn)能,考慮云服務(wù)下的作業(yè)動(dòng)態(tài)調(diào)度場(chǎng)景,簡(jiǎn)單使用容器存在以下問(wèn)題:
(1)開(kāi)發(fā)庫(kù)與驅(qū)動(dòng)程序耦合。并非所有開(kāi)發(fā)庫(kù)都可通過(guò)容器實(shí)現(xiàn)與宿主環(huán)境的完全解耦,如CUDA、OFED等面向特定硬件的開(kāi)發(fā)庫(kù)就與宿主環(huán)境中的驅(qū)動(dòng)程序存在版本依賴(lài)。以CUDA為例,NVIDIA GPU Cloud發(fā)布的鏡像一般內(nèi)置CUDA,通過(guò)定期升級(jí)宿主環(huán)境驅(qū)動(dòng)程序的方法確保對(duì)新版CUDA兼容,同時(shí)逐步放棄舊版支持;另有一些公有云將不同版本的CUDA同時(shí)安裝于宿主環(huán)境,由容器選擇性?huà)燧d。兩種方案在解決耦合問(wèn)題時(shí)沒(méi)有本質(zhì)區(qū)別,區(qū)別只在于問(wèn)題的歸屬者。
(2)鏡像體積與拉取性能權(quán)衡。將更多的運(yùn)行時(shí)依賴(lài)項(xiàng)置于容器鏡像內(nèi)部,就意味著作業(yè)調(diào)度時(shí)需要拉取更大的文件,這將對(duì)作業(yè)啟動(dòng)性能造成顯著影響。除了對(duì)CUDA等體積較大、演進(jìn)穩(wěn)定的開(kāi)發(fā)庫(kù)實(shí)施上述掛載方案外,業(yè)界常用的優(yōu)化方案還包括定期在宿主節(jié)點(diǎn)上拉取常用基礎(chǔ)鏡像或鏡像的公共層,以及P2P等優(yōu)化傳輸方案。
(3)作業(yè)內(nèi)進(jìn)程間依賴(lài)項(xiàng)的差異。同一分布式作業(yè)的不同進(jìn)程(容器)間存在環(huán)境依賴(lài)項(xiàng)差異。以MXNet引擎的典型分布式作業(yè)為例,Master進(jìn)程只需要最簡(jiǎn)單的PYthon環(huán)境,Server進(jìn)程依賴(lài)更多Python開(kāi)發(fā)庫(kù),Worker進(jìn)程在此基礎(chǔ)上還依賴(lài)CUDA。對(duì)3種進(jìn)程統(tǒng)一使用完整的鏡像勢(shì)必造成資源浪費(fèi)和性能損失。業(yè)界常用的優(yōu)化方案包括為每種進(jìn)程開(kāi)發(fā)不同的鏡像,或是將不同進(jìn)程按特定規(guī)則合并到同一容器中執(zhí)行。
2.2 存儲(chǔ)接入問(wèn)題
存儲(chǔ)接人問(wèn)題來(lái)源于深度學(xué)習(xí)作業(yè)對(duì)算法、模型、數(shù)據(jù)集等云上數(shù)據(jù)資產(chǎn)的訪(fǎng)問(wèn),這里分為存儲(chǔ)類(lèi)型匹配和存儲(chǔ)跨域訪(fǎng)問(wèn)兩個(gè)子問(wèn)題討論。
2.2.1 存儲(chǔ)類(lèi)型匹配
深度學(xué)習(xí)作業(yè)要訪(fǎng)問(wèn)云上的數(shù)據(jù)資產(chǎn),其前提是深度學(xué)習(xí)引擎、運(yùn)行時(shí)控制框架以及云存儲(chǔ)服務(wù)三者支持的存儲(chǔ)類(lèi)型存在交集。存儲(chǔ)類(lèi)型按接口類(lèi)型劃分,包括POSIX存儲(chǔ)(如本地文件系統(tǒng)、網(wǎng)絡(luò)文件系統(tǒng))、對(duì)象存儲(chǔ)(如AWS S3)、專(zhuān)有接口存儲(chǔ)(如HDFS)等。
(1)深度學(xué)習(xí)引擎方面,TensorFlow通過(guò)通用的I/O中間層支持多種存儲(chǔ)類(lèi)型,而PyTorch對(duì)非POSIX存儲(chǔ)支持有限,需要借助第三方庫(kù)實(shí)現(xiàn)。
(2)運(yùn)行時(shí)控制框架方面,大數(shù)據(jù)調(diào)度框架一般不干涉存儲(chǔ),而由應(yīng)用直接訪(fǎng)問(wèn)存儲(chǔ);容器化調(diào)度框架則普遍提供對(duì)特定類(lèi)型存儲(chǔ)的容器內(nèi)掛載機(jī)制。
(3)云存儲(chǔ)服務(wù)方面,基于POSIX接口的本地文件系統(tǒng)、網(wǎng)絡(luò)文件系統(tǒng)以及類(lèi)AWS S3接口的對(duì)象存儲(chǔ)幾乎是云平臺(tái)標(biāo)配,專(zhuān)有接口存儲(chǔ)也在部分大數(shù)據(jù)云服務(wù)中常見(jiàn)。
深度學(xué)習(xí)云服務(wù)開(kāi)發(fā)者必須合理抉擇上述三者的交集,才能讓作業(yè)訪(fǎng)問(wèn)云存儲(chǔ)變得可行和高效。幾類(lèi)備選存儲(chǔ)的特征分析如下:①本地文件系統(tǒng)。它是必然可行的選擇,也是線(xiàn)下環(huán)境的首選。然而在容器化環(huán)境中,本地文件系統(tǒng)的生命周期與容器相同,外部交互依賴(lài)于消耗時(shí)間空間的上傳下載操作。同時(shí),云服務(wù)也強(qiáng)調(diào)以數(shù)據(jù)為中心的交互,本地文件系統(tǒng)會(huì)割裂數(shù)據(jù)在服務(wù)間的復(fù)用;②網(wǎng)絡(luò)文件系統(tǒng)(Network File System,NFS)。其可行性取決于運(yùn)行時(shí)控制框架的支持程度,以Kubernetes為代表的容器化調(diào)度框架支持NFS掛載。但NFS在云環(huán)境中存在續(xù)跨域訪(fǎng)問(wèn)問(wèn)題,需要開(kāi)發(fā)者注意;③對(duì)象存儲(chǔ)系統(tǒng)。REST接口的對(duì)象存儲(chǔ)系統(tǒng)無(wú)須掛載即可使用,因此其可行性與運(yùn)行控制框架無(wú)關(guān),主要取決于深度學(xué)習(xí)引擎。不同于語(yǔ)義完備的POSIX存儲(chǔ),對(duì)象存儲(chǔ)一般只支持順序訪(fǎng)問(wèn)。這對(duì)其適用的數(shù)據(jù)資產(chǎn)類(lèi)型造成限制,好在深度學(xué)習(xí)業(yè)務(wù)的常見(jiàn)資產(chǎn)訪(fǎng)問(wèn)操作不會(huì)超越順序訪(fǎng)問(wèn);④HDFS。其最大優(yōu)勢(shì)在于與Apache生態(tài)的大數(shù)據(jù)服務(wù)交互性好。HDFS的REST接口和順序訪(fǎng)問(wèn)語(yǔ)義使其優(yōu)缺點(diǎn)與對(duì)象存儲(chǔ)類(lèi)似,但亦存在跨域訪(fǎng)問(wèn)問(wèn)題。
在當(dāng)前公有云深度學(xué)習(xí)服務(wù)中,對(duì)象存儲(chǔ)系統(tǒng)是主流。針對(duì)不支持對(duì)象存儲(chǔ)的深度學(xué)習(xí)引擎,業(yè)界常用的解決方案包括在算法代碼中調(diào)用第三方客戶(hù)端、在深度學(xué)習(xí)引擎中添加訪(fǎng)問(wèn)支持,或在運(yùn)行時(shí)控制框架層面實(shí)現(xiàn)文件系統(tǒng)掛載。在一些由數(shù)據(jù)分析平臺(tái)演進(jìn)而來(lái)的深度學(xué)習(xí)服務(wù)中,HDFS是主流,它們也常使用上述3種方法解決接口匹配問(wèn)題。而在基于高性能計(jì)算集群的深度學(xué)習(xí)服務(wù)中,NFS及其它兼容POSIX接口的全局文件系統(tǒng)是主流,這與其固有的軟件生態(tài)相適應(yīng)。
2.2.2 存儲(chǔ)跨域訪(fǎng)問(wèn)
深度學(xué)習(xí)業(yè)務(wù)訪(fǎng)問(wèn)存儲(chǔ)服務(wù)時(shí),需要考慮網(wǎng)絡(luò)互通性。在單一局域網(wǎng)環(huán)境下,用戶(hù)和開(kāi)發(fā)者往往體會(huì)不到網(wǎng)絡(luò)互通性對(duì)存儲(chǔ)服務(wù)的影響,但在云服務(wù)環(huán)境下這一問(wèn)題突顯。私有云通常將用戶(hù)和服務(wù)所在的局域網(wǎng)分設(shè),用戶(hù)需通過(guò)網(wǎng)關(guān)訪(fǎng)問(wèn)包括存儲(chǔ)在內(nèi)的服務(wù)。公有云的情況更為復(fù)雜,服務(wù)基礎(chǔ)設(shè)施一般會(huì)按功能、地域和安全級(jí)別劃分為多個(gè)局域網(wǎng),網(wǎng)間路由與安全策略各異。網(wǎng)關(guān)機(jī)制不僅存在于用戶(hù)與服務(wù)之間,還存在于各個(gè)服務(wù)組件之間。無(wú)論公有云還是私有云,用戶(hù)的業(yè)務(wù)一般運(yùn)行在名為“虛擬專(zhuān)有云”(Virtual Private Cloud,VPC)的局域網(wǎng)中,進(jìn)一步增加了網(wǎng)絡(luò)環(huán)境的復(fù)雜性。深度學(xué)習(xí)服務(wù)與存儲(chǔ)服務(wù)在這種跨多網(wǎng)絡(luò)環(huán)境下的交互,即構(gòu)成存儲(chǔ)跨域訪(fǎng)問(wèn)。
多數(shù)公有云的對(duì)象存儲(chǔ)系統(tǒng)已經(jīng)隱式解決了存儲(chǔ)跨域訪(fǎng)問(wèn)問(wèn)題,其實(shí)現(xiàn)原理是在云環(huán)境內(nèi)部不同局域網(wǎng)及互聯(lián)網(wǎng)的DNS服務(wù)器上為對(duì)象存儲(chǔ)系統(tǒng)的域名設(shè)置不同的解析目標(biāo),使其指向本域可達(dá)的網(wǎng)關(guān)服務(wù)器。由于對(duì)象存儲(chǔ)一般基于REST接口,普通的Web網(wǎng)關(guān)即可實(shí)現(xiàn)此功能。深度學(xué)習(xí)云服務(wù)組件可以從云環(huán)境內(nèi)部的任意局域網(wǎng)、VPC或者互聯(lián)網(wǎng)直接訪(fǎng)問(wèn)對(duì)象存儲(chǔ),簡(jiǎn)化了服務(wù)開(kāi)發(fā),故其是多數(shù)深度學(xué)習(xí)云服務(wù)優(yōu)先支持對(duì)象存儲(chǔ)的原因。不過(guò),在公有云中使用對(duì)象存儲(chǔ)系統(tǒng)還需要注意地域(region)概念,并非所有的公有云都支持地域無(wú)關(guān)的統(tǒng)一訪(fǎng)問(wèn)人口及跨地域的數(shù)據(jù)訪(fǎng)問(wèn),深度學(xué)習(xí)云服務(wù)在這類(lèi)公有云中一般要求為每地域一實(shí)例。
NFS、HDFS及其它面向局域網(wǎng)設(shè)計(jì)的全局文件系統(tǒng)在云環(huán)境下需要綁定到特定VPC,不支持隱式跨域訪(fǎng)問(wèn)。在實(shí)現(xiàn)深度學(xué)習(xí)云服務(wù)時(shí)對(duì)服務(wù)組件(運(yùn)行于服務(wù)VPC內(nèi)的主機(jī))訪(fǎng)問(wèn)用戶(hù)數(shù)據(jù)(位于用戶(hù)VPC內(nèi)的存儲(chǔ))帶來(lái)了障礙。為解決這一問(wèn)題,可以采取VPC對(duì)等連接或其它等價(jià)方式,實(shí)現(xiàn)跨VPC網(wǎng)絡(luò)互通。同時(shí),用戶(hù)的VPC一般無(wú)法從互聯(lián)網(wǎng)直接訪(fǎng)問(wèn),這就需要云服務(wù)顯式設(shè)計(jì)存儲(chǔ)訪(fǎng)問(wèn)機(jī)制,將存儲(chǔ)請(qǐng)求通過(guò)層層網(wǎng)關(guān)轉(zhuǎn)發(fā)到用戶(hù)的VPC中。此類(lèi)設(shè)計(jì)對(duì)用戶(hù)暴露的概念和操作相對(duì)復(fù)雜,在企業(yè)級(jí)定制產(chǎn)品中較為常見(jiàn),在面向公眾的產(chǎn)品中卻不普遍。
2.3 資源管理問(wèn)題
資源管理問(wèn)題是云計(jì)算的共性問(wèn)題,因?yàn)榇蠖鄶?shù)云服務(wù)本質(zhì)上體現(xiàn)了為用戶(hù)管理軟硬件資源的復(fù)雜性。這里將深度學(xué)習(xí)業(yè)務(wù)的資源管理問(wèn)題分為應(yīng)用對(duì)資源耦合及高性能資源復(fù)用兩個(gè)子問(wèn)題予以討論。
2.3.1 應(yīng)用對(duì)資源耦合
云計(jì)算環(huán)境為了實(shí)現(xiàn)高資源利用率及高靈活性,有將資源與應(yīng)用解耦的傾向,這種設(shè)計(jì)對(duì)資源請(qǐng)求同構(gòu)性強(qiáng)的應(yīng)用友好。然而,深度學(xué)習(xí)業(yè)務(wù)不同環(huán)節(jié)、不同作業(yè)的資源請(qǐng)求差異性大。例如算法開(kāi)發(fā)環(huán)境一般只需要CPU,模型訓(xùn)練需要使用訓(xùn)練型GPU(如NVIDIA V100),而數(shù)據(jù)推理需要使用推理型GPU(如NVIDIA T4)或FPGA;對(duì)于分布式作業(yè),還需要選擇性地使用高速以太網(wǎng)或InfiniBand網(wǎng)絡(luò)。為所有宿主環(huán)境配齊各類(lèi)資源顯然是不經(jīng)濟(jì)的選擇,這就需要運(yùn)行時(shí)控制框架具有資源感知的調(diào)度能力,為不同的作業(yè)選擇最合適的宿主節(jié)點(diǎn)。
仍以容器化調(diào)度框架為例說(shuō)明。Kubernetes支持以量化請(qǐng)求方式申請(qǐng)CPU、內(nèi)存等通用資源,以及GPU等通過(guò)插件接人的擴(kuò)展資源,并支持以節(jié)點(diǎn)標(biāo)簽及其選擇器(se1ector)方式描述量化請(qǐng)求不能表達(dá)的額外信息,例如GPU型號(hào)。這種機(jī)制在不涉及包含同類(lèi)異構(gòu)硬件的宿主節(jié)點(diǎn)的云計(jì)算環(huán)境中能較好地滿(mǎn)足資源感知的作業(yè)調(diào)度需求。針對(duì)包含同類(lèi)異構(gòu)硬件的情況(如單機(jī)內(nèi)有兩種不同型號(hào)的GPU),亦有第三方開(kāi)發(fā)者提出了ExtendedRe.source、ResourceClass等細(xì)粒度資源匹配機(jī)制。這些機(jī)制在硬件組成復(fù)雜的開(kāi)發(fā)與實(shí)驗(yàn)環(huán)境中比較有用。但對(duì)于真實(shí)生產(chǎn)環(huán)境,考慮到硬件資源及軟件版本的易維護(hù)性,應(yīng)當(dāng)盡可能避免同類(lèi)異構(gòu)硬件組合的復(fù)雜情況。
除GPU型號(hào)這種定性的資源感知指標(biāo)外,在深度學(xué)習(xí)云服務(wù)中還需要注意諸如顯存這樣的定量指標(biāo)。不同于支持時(shí)間片輪轉(zhuǎn)的CPU資源和支持頁(yè)面交換的內(nèi)存資源,顯存等資源數(shù)量不足并非只會(huì)影響執(zhí)行效率,而是會(huì)直接導(dǎo)致作業(yè)失敗。這一問(wèn)題可以在容器化調(diào)度框架和算法程序兩個(gè)層面解決。在框架層面,對(duì)于不涉及資源復(fù)用的情況,可以簡(jiǎn)單地將定量指標(biāo)當(dāng)作定性標(biāo)簽用于資源匹配。涉及資源復(fù)用時(shí),上述ResourceClass機(jī)制及后續(xù)介紹的復(fù)用插件機(jī)制亦能提供支持。在算法層面,對(duì)于服務(wù)預(yù)置的算法可以采取資源感知的自適應(yīng)設(shè)計(jì),最大限度利用資源而不引發(fā)作業(yè)失敗。
2.3.2 高性能資源復(fù)用
深度學(xué)習(xí)業(yè)務(wù)經(jīng)常會(huì)使用高性能計(jì)算、通信與存儲(chǔ)設(shè)備提升訓(xùn)練或推理效率。在多作業(yè)共享宿主環(huán)境的情況下,為提升資源利用率、降低服務(wù)成本,需要實(shí)現(xiàn)資源復(fù)用。并非每一種高性能資源都默認(rèn)支持透明復(fù)用模式。資源復(fù)用需要考慮可行性、可用性、安全隔離及性能隔離等層面問(wèn)題。某些ASIC和FPGA設(shè)備不提供多作業(yè)復(fù)用能力,這屬于可行性問(wèn)題;GPU雖然可被多作業(yè)復(fù)用,但顯存總量有物理約束且默認(rèn)不支持換出到硬盤(pán),因此無(wú)法使瞬時(shí)內(nèi)存超限的多個(gè)作業(yè)穩(wěn)定并存,這屬于可用性問(wèn)題;GPU被復(fù)用時(shí),多作業(yè)均可訪(fǎng)問(wèn)其虛擬設(shè)備文件,存在顯存數(shù)據(jù)泄露風(fēng)險(xiǎn),這屬于安全隔離問(wèn)題;InfiniBand網(wǎng)卡在被多作業(yè)直接復(fù)用時(shí),每個(gè)作業(yè)的帶寬無(wú)法得到保證,這屬于性能隔離問(wèn)題。在InfiniBand網(wǎng)卡上啟用帶有QoS支持的虛擬功能(Virtual Functions,VF)后,資源復(fù)用的多種問(wèn)題可以得到解決。
僅在設(shè)備層面支持資源復(fù)用是不夠的。深度學(xué)習(xí)云服務(wù)還需要在運(yùn)行時(shí)控制框架層面以合理的方式應(yīng)用這些底層機(jī)制,才能實(shí)現(xiàn)安全和性能有保障的資源復(fù)用。以Kubernetes場(chǎng)景為例,為了可用性與安全性目標(biāo),NVIDIA提供的GPU插件選擇不開(kāi)放GPU原有的復(fù)用能力,只允許一個(gè)GPU分配給一個(gè)容器組。阿里云開(kāi)源的GPU共享插件開(kāi)放了GPU復(fù)用能力,但不支持安全隔離和性能隔離,其適用于多個(gè)可信應(yīng)用復(fù)用GPU,且在算法程序中自行保證資源用量的場(chǎng)景。騰訊設(shè)計(jì)的GaiaGPU機(jī)制”)No通過(guò)系統(tǒng)開(kāi)發(fā)庫(kù)攔截GPU訪(fǎng)問(wèn)請(qǐng)求,在GPU復(fù)用的基礎(chǔ)上實(shí)現(xiàn)了資源配額控制,從而滿(mǎn)足多作業(yè)運(yùn)行的可用性與性能隔離需求。
由于容器機(jī)制的弱隔離性,資源復(fù)用機(jī)制即使能夠保證設(shè)備本身的安全隔離,仍有可能在其它方面具有安全風(fēng)險(xiǎn)。例如,部分資源復(fù)用機(jī)制依賴(lài)操作系統(tǒng)或容器的特權(quán)選項(xiàng),使得從容器內(nèi)部實(shí)施攻擊更加容易。解決這類(lèi)問(wèn)題的思路是將用戶(hù)身份感知的調(diào)度策略與資源復(fù)用機(jī)制相結(jié)合,避免互不可信的作業(yè)運(yùn)行于同一宿主節(jié)點(diǎn)。此外,高性能生態(tài)中的Singularity非特權(quán)容器技術(shù),以及基于輕量級(jí)虛擬機(jī)的Kata安全容器技術(shù),也是實(shí)現(xiàn)高性能資源安全復(fù)用的可選方案,它們已在部分超算中心的高性能計(jì)算服務(wù)以及公有云的容器實(shí)例服務(wù)中實(shí)現(xiàn),值得深度學(xué)習(xí)云服務(wù)參考。
3.4.1 資源表達(dá)式匹配機(jī)制
在對(duì)接多種調(diào)度框架的公共抽象層中,應(yīng)用所依賴(lài)的資源需求是作業(yè)抽象的重要組成部分。OMAI采用一種基于JSON語(yǔ)言支持?jǐn)U展字段的資源需求表示方法,以及與之配套的資源表達(dá)式匹配機(jī)制。使用JSON表示資源需求,方便對(duì)不同的集群驅(qū)動(dòng)進(jìn)行解析;擴(kuò)展字段機(jī)制則適應(yīng)了調(diào)度框架以插件方式接人和復(fù)用高性能資源的設(shè)計(jì)。資源表達(dá)式匹配機(jī)制相比傳統(tǒng)的標(biāo)簽匹配機(jī)制,增加了算術(shù)、字符串和集合運(yùn)算能力,有助于對(duì)定量指標(biāo)以及復(fù)雜條件實(shí)施匹配。以匹配GPU資源為例,本機(jī)制可以按GPU型號(hào)、顯存容量、類(lèi)別(訓(xùn)練或推理)等條件組合實(shí)施匹配。
相比Kubernetes生態(tài)中第三方提出的ExtendedResoHree、ResoureeClass等細(xì)粒度資源匹配機(jī)制,本機(jī)制實(shí)現(xiàn)的是節(jié)點(diǎn)級(jí)匹配而非設(shè)備級(jí)匹配,因而不適用單節(jié)點(diǎn)包含同類(lèi)異構(gòu)硬件的情況。該權(quán)衡是值得的,因?yàn)镺MAI需要實(shí)現(xiàn)跨多類(lèi)調(diào)度框架的通用性,并非每一類(lèi)調(diào)度框架都支持涉及設(shè)備細(xì)節(jié)信息的細(xì)粒度調(diào)度,同時(shí)真實(shí)生產(chǎn)環(huán)境中也較少存在這種復(fù)雜的硬件組成情況。
3.4.2 增強(qiáng)型插件機(jī)制
針對(duì)云計(jì)算環(huán)境中最常用的Kubernetes調(diào)度框架,OMAI團(tuán)隊(duì)研發(fā)了具有增強(qiáng)特性的資源接人和調(diào)度插件。以GPU復(fù)用插件為例,相比阿里云開(kāi)源、面向推理服務(wù)、以顯存為資源選擇依據(jù)的GPU共享插件,OMAI的GPU復(fù)用插件支持“毫GPU”等更多靈活易用的資源單位,也支持面向訓(xùn)練作業(yè)的單容器多GPU分配。在性能隔離方面,本插件參考了GaiaGPU設(shè)計(jì)。在安全隔離方面,出于對(duì)容器弱隔離性問(wèn)題的整體規(guī)避,OMAI采取了用戶(hù)身份感知的反親和性調(diào)度策略。此外,通過(guò)集群驅(qū)動(dòng)中的相關(guān)設(shè)計(jì)避免了同類(lèi)插件經(jīng)常存在的、源于與NVIDIA GPU插件互不感知的資源沖突問(wèn)題。
增強(qiáng)型資源插件亦是OMAl支持其它高性能硬件、實(shí)現(xiàn)高性能計(jì)算特色的途徑之一。這類(lèi)插件使得高端硬件能力可以透明且安全地強(qiáng)化深度學(xué)習(xí)應(yīng)用。
3.5 應(yīng)用場(chǎng)景
OMAI現(xiàn)已服務(wù)于多種應(yīng)用場(chǎng)景,其公有云服務(wù)已經(jīng)上線(xiàn)并對(duì)公眾開(kāi)放使用,私有云服務(wù)也已支撐了某科研院所的遙感圖像分析、某上市公司的數(shù)據(jù)處理平臺(tái)等生產(chǎn)性業(yè)務(wù)。OMAI團(tuán)隊(duì)及客戶(hù)在此基礎(chǔ)上研發(fā)的應(yīng)用涉及圖像分類(lèi)、圖像增強(qiáng)、數(shù)據(jù)分析、數(shù)據(jù)預(yù)測(cè)、自然語(yǔ)言處理等領(lǐng)域。相比直接使用深度學(xué)習(xí)引擎或傳統(tǒng)平臺(tái)軟件,OMAI為上述應(yīng)用提供的核心價(jià)值在于云服務(wù)化,特色價(jià)值在于高性能,目標(biāo)是使用戶(hù)以低成本、高效率上線(xiàn)人工智能業(yè)務(wù)。
OMAI目前仍在繼續(xù)開(kāi)發(fā)演進(jìn),期望其設(shè)計(jì)思路能夠?qū)Ρ绢I(lǐng)域的技術(shù)研究和產(chǎn)品研發(fā)帶來(lái)啟發(fā),從而促進(jìn)人工智能系統(tǒng)與應(yīng)用的長(zhǎng)足發(fā)展。
4 結(jié)語(yǔ)
深度學(xué)習(xí)技術(shù)是支撐人工智能應(yīng)用的基礎(chǔ),以云服務(wù)方式提供深度學(xué)習(xí)能力是業(yè)界的主流趨勢(shì)。深度學(xué)習(xí)業(yè)務(wù)實(shí)現(xiàn)具有微服務(wù)和批處理作業(yè)兩種典型模式。業(yè)界通常采用大數(shù)據(jù)、高性能或容器化調(diào)度框架構(gòu)建面向不同場(chǎng)景的深度學(xué)習(xí)云服務(wù)。對(duì)現(xiàn)有平臺(tái)軟件的分析表明,深度學(xué)習(xí)業(yè)務(wù)的云服務(wù)適配過(guò)程需要解決運(yùn)行模式適配和運(yùn)行時(shí)環(huán)境依賴(lài)等作業(yè)調(diào)度問(wèn)題、存儲(chǔ)類(lèi)型匹配和存儲(chǔ)跨域訪(fǎng)問(wèn)等存儲(chǔ)接人問(wèn)題,以及資源耦合與高性能資源復(fù)用等資源管理問(wèn)題。業(yè)界現(xiàn)有的云服務(wù)針對(duì)不同問(wèn)題提出了多種解決方案,在一定程度上滿(mǎn)足了特定場(chǎng)景對(duì)深度學(xué)習(xí)業(yè)務(wù)云服務(wù)化的需求。OMAI深度學(xué)習(xí)平臺(tái)是在系統(tǒng)分析上述問(wèn)題的基礎(chǔ)上,面向全流程、一站式、高性能目標(biāo)設(shè)計(jì)研發(fā)的深度學(xué)習(xí)云服務(wù)軟件。它具有作業(yè)調(diào)度中間層抽象、異構(gòu)存儲(chǔ)容器內(nèi)掛載、資源表達(dá)式匹配等機(jī)制,解決了作業(yè)調(diào)度、存儲(chǔ)接人和資源管理等層面的技術(shù)問(wèn)題。OMAI的設(shè)計(jì)思路和研究實(shí)踐可用于指導(dǎo)本領(lǐng)域研發(fā)工作。