机器学习平台的简单调研
1. MLOps簡(jiǎn)介
在機(jī)器學(xué)習(xí)的任務(wù)過(guò)程中,可能面對(duì)以下幾個(gè)問(wèn)題:
- 隨著項(xiàng)目體量增加,數(shù)據(jù)不足時(shí),需要相關(guān)團(tuán)隊(duì)來(lái)負(fù)責(zé)數(shù)據(jù)采集、標(biāo)注和清洗。然而,采集數(shù)據(jù)本身太復(fù)雜以至于需要多層級(jí)的組織來(lái)完成,例如當(dāng)采集的數(shù)據(jù)量暴增時(shí)又需要開(kāi)發(fā)分布式系統(tǒng)。
- 將數(shù)據(jù)放入模型以后,可能會(huì)一直有新的模型迭代,因此需要不斷對(duì)同一份數(shù)據(jù)嘗試新的算法。每個(gè)模型又有非常多的超參,又需要調(diào)優(yōu)不同的超參數(shù)。
- 由于數(shù)據(jù)漂移、概念漂移,需要重新收集數(shù)據(jù),重新訓(xùn)練。
- 靜/動(dòng)態(tài)學(xué)習(xí)時(shí)模型的評(píng)估、可視化、應(yīng)用、部署等步驟非常繁雜。
- …
面對(duì)這樣繁雜的數(shù)據(jù)、工作量,跨組織的、重復(fù)性的工作就迫切需要自動(dòng)化的流水線(xiàn)設(shè)計(jì),該類(lèi)設(shè)計(jì)通常迫切需要快速開(kāi)發(fā)迭代。
在軟件工程中,DevOps旨在為開(kāi)發(fā)團(tuán)隊(duì)縮短開(kāi)發(fā)周期,提高部署速度。這對(duì)于一個(gè)流水線(xiàn)式機(jī)器學(xué)習(xí)的服務(wù)平臺(tái)開(kāi)發(fā)具有非常大的幫助。近年來(lái),DevOps逐漸向機(jī)器學(xué)習(xí)領(lǐng)域延伸,并逐漸形成一個(gè)新的概念—MLOps:應(yīng)用于管理大規(guī)模生產(chǎn)環(huán)境中機(jī)器學(xué)習(xí)和深度學(xué)習(xí)的平臺(tái)部署。兩者的本質(zhì)都是軟件系統(tǒng),因此DevOps的原理也適用于MLOps。但是,兩者仍然存在很多差異,例如前者的輸出主要包括源代碼、軟件等比較單調(diào)的成果,而后者不僅包含DevOps的所有輸出形式,還包括數(shù)據(jù)源、模型等。個(gè)人認(rèn)為,MLOps的開(kāi)發(fā)更加繁雜、更具有挑戰(zhàn)性。
MLOps的開(kāi)發(fā)對(duì)象為機(jī)器學(xué)習(xí)平臺(tái)。機(jī)器學(xué)習(xí)平臺(tái),顧名思義,為集成式機(jī)器學(xué)習(xí)環(huán)境而設(shè)計(jì),方便缺乏領(lǐng)域知識(shí)的相關(guān)用戶(hù)實(shí)現(xiàn)流水線(xiàn)式機(jī)器學(xué)習(xí)任務(wù)。一個(gè)機(jī)器學(xué)習(xí)平臺(tái)的基礎(chǔ),是將最原始數(shù)據(jù)經(jīng)過(guò)數(shù)據(jù)處理(采集、標(biāo)注、清洗、特征工程等)后作為輸入數(shù)據(jù),然后在輸入和輸出的數(shù)據(jù)中應(yīng)用靈活可控的模型接口,最后部署、上線(xiàn)訓(xùn)練好的模型以實(shí)現(xiàn)應(yīng)用。在此過(guò)程中,數(shù)據(jù)處理、模型訓(xùn)練、模型預(yù)測(cè)、測(cè)試、部署等都可以抽象成獨(dú)立可執(zhí)行單元,實(shí)現(xiàn)模塊內(nèi)高內(nèi)聚、模塊間低耦合標(biāo)準(zhǔn),根據(jù)任務(wù)之間的依賴(lài)關(guān)系實(shí)現(xiàn)模塊的流水線(xiàn)設(shè)計(jì)。
2. 機(jī)器學(xué)習(xí)平臺(tái)應(yīng)具備的基礎(chǔ)功能
在學(xué)習(xí)了Google的MLOps指導(dǎo)及相關(guān)綜述后,對(duì)機(jī)器學(xué)習(xí)系統(tǒng)有了大概的理解。MLOps指導(dǎo)敘述了機(jī)器學(xué)習(xí)平臺(tái)的各個(gè)模塊功能及耦合關(guān)系,相當(dāng)全面。這里我從個(gè)人角度出發(fā),簡(jiǎn)單列舉了目前認(rèn)為機(jī)器學(xué)習(xí)平臺(tái)應(yīng)具備的必要功能。
2.1 數(shù)據(jù)接入
在開(kāi)發(fā)機(jī)器學(xué)習(xí)平臺(tái)時(shí),數(shù)據(jù)接入是一個(gè)重要且必不可少的階段。機(jī)器學(xué)習(xí)中具有非常多數(shù)據(jù)源,例如data warehouses, data lakes, data meshes等。這些數(shù)據(jù)的格式可能多樣性,需要統(tǒng)一規(guī)范化數(shù)據(jù)處理,以方便后續(xù)流水線(xiàn)式任務(wù)對(duì)接。
2.2 數(shù)據(jù)處理
原生數(shù)據(jù)很有可能不滿(mǎn)足模型或需求的輸入數(shù)據(jù)要求及形式,通常需要進(jìn)一步數(shù)據(jù)處理操作。例如,大規(guī)模機(jī)器學(xué)習(xí)任務(wù)需要海量數(shù)據(jù)的引入及特征的有效表示,而現(xiàn)實(shí)世界的數(shù)據(jù)既缺乏標(biāo)簽(即缺乏訓(xùn)練的目標(biāo)),且存在屬性偏差、缺失、冗余、矛盾等問(wèn)題,這些數(shù)據(jù)通常需要修訂或重定義,包括但是不限于:數(shù)據(jù)標(biāo)注、數(shù)據(jù)清洗、數(shù)據(jù)增強(qiáng)、特征工程等。針對(duì)這些流程,通常需要具備交互式的各類(lèi)平臺(tái)及底層支持,例如Google MLOps指導(dǎo)中定義的數(shù)據(jù)&特征庫(kù)、數(shù)據(jù)處理接口及平臺(tái)、數(shù)據(jù)測(cè)試流水線(xiàn)等。相關(guān)領(lǐng)域中有大量文獻(xiàn)致力于解決數(shù)據(jù)處理中遇到的問(wèn)題。
2.3 模型構(gòu)建
機(jī)器學(xué)習(xí)平臺(tái)的一個(gè)核心功能是完善的模型構(gòu)建流水線(xiàn)。開(kāi)源機(jī)器學(xué)習(xí)庫(kù)如Tensorflow,pytorch等需要一定的技術(shù)門(mén)檻,但大大縮減了機(jī)器學(xué)習(xí)模型的開(kāi)發(fā)難度。機(jī)器學(xué)習(xí)庫(kù)的多樣性同樣增加了機(jī)器學(xué)習(xí)規(guī)范化統(tǒng)一的難度,例如多用戶(hù)對(duì)不同語(yǔ)言的支持。針對(duì)于這一點(diǎn),Google Vertex AI平臺(tái)在模型構(gòu)建階段提供了支持多類(lèi)機(jī)器學(xué)習(xí)庫(kù)的自定義編程。
個(gè)人總結(jié)了機(jī)器學(xué)習(xí)平臺(tái)中模型構(gòu)建的3類(lèi)的接口:
- A. 為毫無(wú)經(jīng)驗(yàn)的/急需上線(xiàn)使用的/測(cè)試用戶(hù)提供全自動(dòng)化預(yù)訓(xùn)練模型/API(效率高但缺乏可擴(kuò)展性)
- B. 為缺乏領(lǐng)域知識(shí)的用戶(hù)提供操作簡(jiǎn)便的構(gòu)建接口,如包含圖表、文本等可視化界面(效率高)
- C. 為算法工程師提供靈活的編程接口,如jupyter(靈活性高,門(mén)檻高)
機(jī)器學(xué)習(xí)平臺(tái)的一個(gè)目標(biāo)是降低機(jī)器學(xué)習(xí)項(xiàng)目部署的門(mén)檻,在模型部署方面,盡量避免過(guò)多模型編程的代碼(偏向于上述的A和B類(lèi))。因此,在模型構(gòu)建時(shí),需提供完備的預(yù)訓(xùn)練模型、面向數(shù)據(jù)特征匹配的模型推薦、面向任務(wù)的模型篩選等;在模型訓(xùn)練時(shí),需提供動(dòng)態(tài)的訓(xùn)練可視化(如tensorboard)、超參數(shù)搜索、硬件資源調(diào)度支撐等。
2.4 模型驗(yàn)證
在構(gòu)建模型之后,通常需要大量的測(cè)試之后才能部署上線(xiàn)使用。模型驗(yàn)證階段的目標(biāo)是多方面的,因?yàn)闄C(jī)器學(xué)習(xí)模型應(yīng)該泛化未知的輸入,實(shí)現(xiàn)邊界情況的合理處理和整體健壯性,以及滿(mǎn)足所有功能需求。
模型驗(yàn)證的形式很多,在模型質(zhì)量層面上,通常可以利用基于測(cè)試用例的模型驗(yàn)證方法+評(píng)估指標(biāo)的形式實(shí)現(xiàn)。機(jī)器學(xué)習(xí)平臺(tái)需要提供充足的測(cè)試用例,以輔助模型的開(kāi)發(fā)。但其他形式的模型驗(yàn)證內(nèi)容,我暫時(shí)了解不深,這里先不做敘述,以后再補(bǔ)充。
2.5 模型部署&服務(wù)
在數(shù)據(jù)及模型準(zhǔn)備好后,需要將模型及相關(guān)依賴(lài)資源打包、壓縮、甚至蒸餾等操作實(shí)現(xiàn)將模型到線(xiàn)上、app等平臺(tái)的部署。Flyte框架將所有依賴(lài)資源打包為Docker鏡像,但相對(duì)笨重。
2.6 模型監(jiān)控
模型監(jiān)控是機(jī)器學(xué)習(xí)平臺(tái)中模型質(zhì)量的保證。上線(xiàn)服務(wù)后,機(jī)器學(xué)習(xí)模型的輸入數(shù)據(jù)往往是動(dòng)態(tài)的,例如用戶(hù)歌曲情感趨勢(shì)、購(gòu)物傾向、網(wǎng)絡(luò)輿論等。這些數(shù)據(jù)可能在數(shù)據(jù)處理階段實(shí)現(xiàn)矯正,但仍然需要模型監(jiān)控階段有傾向性介入,實(shí)現(xiàn)數(shù)據(jù)糾正或進(jìn)行重訓(xùn)練。對(duì)于重訓(xùn)練來(lái)說(shuō),需要綜合考慮模型效果變化,數(shù)據(jù)更新頻率,訓(xùn)練開(kāi)銷(xiāo),部署開(kāi)銷(xiāo),重新訓(xùn)練的精度提升幅度,重訓(xùn)練的觸發(fā)機(jī)制等。除此之外,也可拋棄了原始的靜態(tài)訓(xùn)練并支持模型參數(shù)的在線(xiàn)實(shí)時(shí)更新,實(shí)現(xiàn)對(duì)模型的調(diào)整與優(yōu)化。
2.7 其他
2.7.1 日志系統(tǒng)
作為軟件開(kāi)發(fā)的一部分,完備的日志系統(tǒng)能夠記錄異常信息、操作規(guī)范等。
2.7.2 可視化模塊
可視化其實(shí)在各個(gè)行業(yè)中應(yīng)用非常廣泛,與機(jī)器學(xué)習(xí)最為相關(guān)的是VIS4AI,即用可視化的手段解釋AI中的黑匣子或幫助AI的開(kāi)發(fā)探索。在數(shù)據(jù)處理階段,可視化能夠通過(guò)圖表的形式呈現(xiàn)數(shù)據(jù)的分布、異常的信息、特征的維度等;在模型構(gòu)架階段,可視化能夠輔助用戶(hù)構(gòu)建模型(例如阿里PAI平臺(tái)中交互式創(chuàng)建模型)、實(shí)現(xiàn)AI的可解釋性(幫助理解每個(gè)layer、特征及訓(xùn)練參數(shù));在模型驗(yàn)證,可視化同樣可通過(guò)圖表形式呈現(xiàn)各類(lèi)評(píng)估指標(biāo);在模型監(jiān)控階段,可視化能夠幫助實(shí)現(xiàn)歷史版本追蹤、模型質(zhì)量監(jiān)控等。
2.7.3 版本控制
傳統(tǒng)的Devlop中,只需要對(duì)代碼、文檔進(jìn)行簡(jiǎn)單的版本控制。機(jī)器學(xué)習(xí)平臺(tái)的實(shí)際需求擴(kuò)大了版本控制的范圍。數(shù)據(jù)、模型、實(shí)驗(yàn)、配置等是機(jī)器學(xué)習(xí)平臺(tái)中的重要維護(hù)對(duì)象,通常需要健壯穩(wěn)定的版本控制系統(tǒng)。
以實(shí)驗(yàn)為例,在開(kāi)發(fā)/使用過(guò)程中,實(shí)驗(yàn)的歷史記錄也是也是相當(dāng)重要的。每個(gè)實(shí)驗(yàn)可能有許多影響結(jié)果的各個(gè)組件,例如硬件(GPU)、平臺(tái)(操作系統(tǒng)和依賴(lài)的軟件版本)、源代碼(模型訓(xùn)練和預(yù)處理)、模型參數(shù)、訓(xùn)練數(shù)據(jù)(輸入數(shù)據(jù)和輸出數(shù)據(jù))以及模型狀態(tài)、訓(xùn)練模型的版本等。在模型確定的過(guò)程中,通常需要執(zhí)行并記錄大量的實(shí)驗(yàn)(例如自動(dòng)化超參搜索),這類(lèi)實(shí)驗(yàn)的所有信息都應(yīng)該進(jìn)行詳細(xì)的版本控制。
3. 已有的機(jī)器學(xué)習(xí)平臺(tái)
3.1 開(kāi)源平臺(tái)
現(xiàn)有一些開(kāi)源機(jī)器學(xué)習(xí)平臺(tái),能夠在一定程度上實(shí)現(xiàn)機(jī)器學(xué)習(xí)項(xiàng)目部署的靈活性和便捷性。
Kubeflow
文檔比較豐富。
MLFlow
機(jī)器學(xué)習(xí)生命周期管理平臺(tái),主要提供實(shí)驗(yàn)跟蹤、項(xiàng)目打包、模型部署,簡(jiǎn)化機(jī)器學(xué)習(xí)應(yīng)用程序的訓(xùn)練、部署和管理。
Data Version Control (DVC)
采用類(lèi)似于git的管理機(jī)制,實(shí)現(xiàn)對(duì)數(shù)據(jù)集、ML實(shí)驗(yàn)、模型版本等控制。
Flyte
文檔簡(jiǎn)陋,部署依賴(lài)于環(huán)境,具有一定門(mén)檻;
將所有模塊拆分為T(mén)ask,將Task組裝成Workflow;
支持簡(jiǎn)單的workflow可視化;
UI交互式管理界面;
具有強(qiáng)大的版本管理功能;
用于跟蹤和維護(hù)以及自動(dòng)化 Kubernetes原生機(jī)器學(xué)習(xí)流水線(xiàn);
通過(guò)跟蹤模型的更改、版本控制、將模型及依賴(lài)項(xiàng)通過(guò)容器化操作實(shí)現(xiàn)可重用性機(jī)器學(xué)習(xí);
支持Python、R、Scala。
3.2 非開(kāi)源平臺(tái)
開(kāi)源的平臺(tái)大多從軟件工程角度上維護(hù)機(jī)器學(xué)習(xí)平臺(tái)的開(kāi)發(fā),例如系統(tǒng)維護(hù)、版本控制、打包部署等。然而,它們僅僅提供了腳手架,大量機(jī)器學(xué)習(xí)平臺(tái)所需要的功能仍需要從0開(kāi)發(fā)。目前一些機(jī)器學(xué)習(xí)平臺(tái)逐漸商用化,例如Google Vertex AI、阿里PAI等。
Google Vertex AI
Vertex AI由2021年創(chuàng)建,旨在允許跨技能水平的開(kāi)發(fā)人員和數(shù)據(jù)科學(xué)家快速訓(xùn)練模型,并提供管理模型整個(gè)生命周期等功能。該平臺(tái)著重采用了Google的Auto ML自動(dòng)化搜索超參數(shù)。功能強(qiáng)大,具有一系列數(shù)據(jù)導(dǎo)入、數(shù)據(jù)處理、模型自動(dòng)化選擇、模型部署、版本控制、可視化界面等常見(jiàn)功能。
優(yōu)點(diǎn):
- 集成式開(kāi)發(fā)環(huán)境:支持目前所有的機(jī)器學(xué)習(xí)python開(kāi)發(fā)庫(kù)
- 可視化交互式數(shù)據(jù)處理:包括數(shù)據(jù)預(yù)處理、訓(xùn)練模型選擇、參數(shù)選擇等。
- 多樣性數(shù)據(jù)導(dǎo)入,例如SQL、csv中的dataset
- 版本控制
- 有桌面端軟件
缺點(diǎn):
- 不易上手,具有一定門(mén)檻
- 有待補(bǔ)充
阿里PAI
PAI起初是服務(wù)于阿里巴巴集團(tuán)內(nèi)部(例如淘寶、支付寶和高德)的機(jī)器學(xué)習(xí)平臺(tái),致力于讓公司內(nèi)部開(kāi)發(fā)者更高效、簡(jiǎn)潔、標(biāo)準(zhǔn)地使用AI技術(shù)。隨著PAI的不斷發(fā)展,2018年P(guān)AI平臺(tái)正式商業(yè)化,目前已經(jīng)積累了數(shù)萬(wàn)的企業(yè)客戶(hù)和個(gè)人開(kāi)發(fā)者,是中國(guó)領(lǐng)先的云端機(jī)器學(xué)習(xí)平臺(tái)之一。
個(gè)人感覺(jué)阿里PAI的突出功能是可視化,以可視化為輔導(dǎo),創(chuàng)建數(shù)據(jù)標(biāo)注、處理、模型構(gòu)建等一系列流水線(xiàn)任務(wù)。PAI在模型測(cè)試、驗(yàn)證、維護(hù)方面還具有一定的上升空間。
流水線(xiàn)1:傳統(tǒng)PAI實(shí)踐
流水線(xiàn)2:迅速部署上線(xiàn)的PAI實(shí)踐
PAI將機(jī)器學(xué)習(xí)任務(wù)拆分開(kāi),分別維護(hù)如下幾個(gè)模塊:
-
智能標(biāo)注(iTAG):該模塊支持圖像、文本、視頻、音頻等多種數(shù)據(jù)類(lèi)型的標(biāo)注以及多模態(tài)的混合標(biāo)注。該模塊覆蓋面相對(duì)較廣,但缺乏深度用戶(hù)使用的功能。例如圖像標(biāo)注功能中只能實(shí)現(xiàn)簡(jiǎn)單的規(guī)則多邊形,無(wú)法實(shí)現(xiàn)類(lèi)似畫(huà)刷、蒙版等高階標(biāo)注任務(wù)。
-
可視化建模(PAI-Designer):支持大規(guī)模分布式的傳統(tǒng)機(jī)器學(xué)習(xí)、深度學(xué)習(xí)、強(qiáng)化學(xué)習(xí)訓(xùn)練,支持流批一體訓(xùn)練,該子模塊封裝了上百種機(jī)器學(xué)習(xí)算法,可以拖拽式建模、自動(dòng)調(diào)參,從而無(wú)編程玩轉(zhuǎn)人工智能。該部分是PAI面向商用化用戶(hù)的核心功能,封裝大量機(jī)器學(xué)習(xí)算法并提供交互式拖拽定制功能。這種交互式拖拽的功能實(shí)現(xiàn)了無(wú)代碼式簡(jiǎn)單的機(jī)器學(xué)習(xí)流水線(xiàn)布置工作,模塊間耦合度低,容易維護(hù),類(lèi)似于voreen,inviwo框架。
值得注意的是,DSG也提供了Auto ML的自助式機(jī)器學(xué)習(xí)組件,提供自動(dòng)化調(diào)參及特征工程。在該功能完備的情況下,PAI的優(yōu)勢(shì)略比Vertex AI明顯。
但是,組件化的缺點(diǎn)也比較明顯,即無(wú)法自主式實(shí)現(xiàn)復(fù)雜的模型,且目前缺乏一些較大型深度學(xué)習(xí)模型的組件,例如目標(biāo)跟蹤、視頻處理、目標(biāo)分割等。基于此,交互式建模方式可稱(chēng)為替代品。 -
交互式建模(PAI-DSW):PAI-DSW集成了JupyterLab,并以插件化的形式進(jìn)行深度定制化開(kāi)發(fā)。無(wú)需任何運(yùn)維配置,即可進(jìn)行Notebook編寫(xiě)、調(diào)試及運(yùn)行Python代碼。該模塊彌補(bǔ)了可視化建模中無(wú)法深度定制的缺點(diǎn),并且能夠靈活調(diào)用遠(yuǎn)程硬件資源,自定義實(shí)現(xiàn)數(shù)據(jù)導(dǎo)入、數(shù)據(jù)處理、模型構(gòu)建、模型部署等操作。除此之外,該模塊提供一些示例工程、官方鏡像等,確實(shí)比較方便。
-
模型在線(xiàn)服務(wù)(PAI-EAS):PAI針對(duì)在線(xiàn)推理場(chǎng)景提供了在線(xiàn)預(yù)測(cè)服務(wù),支持基于異構(gòu)硬件(CPU和GPU)的模型加載和數(shù)據(jù)請(qǐng)求的實(shí)時(shí)響應(yīng),能夠快速部署為RESTful API,實(shí)現(xiàn)模型在線(xiàn)服務(wù)。
-
推理優(yōu)化(PAI-Blade): PAI專(zhuān)門(mén)提供了模型的通用推理優(yōu)化工具,融合了計(jì)算圖優(yōu)化、TensorRT/oneDNN等vendor優(yōu)化庫(kù)、AI編譯優(yōu)化、Blade手工優(yōu)化算子庫(kù)、Blade混合精度及Blade Auto-Compression等多種優(yōu)化技術(shù),會(huì)先對(duì)模型進(jìn)行分析,再對(duì)其部分或全部應(yīng)用優(yōu)化技術(shù)。該工具可以直接通過(guò)接口調(diào)用,不需修改模型代碼。Vertex AI中缺乏該功能。
總結(jié)
機(jī)器學(xué)習(xí)平臺(tái)是一種基于軟件工程與機(jī)器學(xué)習(xí)交叉的新興起方向,其每個(gè)功能都需要大量的探索和實(shí)踐。構(gòu)建機(jī)器學(xué)習(xí)平臺(tái)涵蓋了大量的工程工作,目前的需求及存在問(wèn)題也非常明顯。機(jī)器學(xué)習(xí)平臺(tái)方興未艾,無(wú)論是面向集團(tuán)內(nèi)部還是面向商用,都具有其獨(dú)特的用途和技術(shù)。
經(jīng)調(diào)研,機(jī)器學(xué)習(xí)平臺(tái)在各個(gè)開(kāi)發(fā)階段中均具有非常大的挑戰(zhàn),簡(jiǎn)單總結(jié)如下:
- 數(shù)據(jù)收集:數(shù)據(jù)分散存儲(chǔ)、數(shù)據(jù)格式多樣性;
- 數(shù)據(jù)處理:數(shù)據(jù)缺失、數(shù)據(jù)簡(jiǎn)化、標(biāo)注等;
- 模型構(gòu)建:模型選擇、訓(xùn)練計(jì)算資源分配、超參數(shù)自動(dòng)化搜索;
- 模型驗(yàn)證:測(cè)試;
- 模型部署:機(jī)器學(xué)習(xí)平臺(tái)是一個(gè)更加復(fù)雜的軟件系統(tǒng),必須隨著時(shí)間的推移進(jìn)行維護(hù)。在工程中有一個(gè)單獨(dú)的學(xué)科,稱(chēng)為DevOps,重點(diǎn)是成功維護(hù)和支持現(xiàn)有生產(chǎn)系統(tǒng)所需的技術(shù)和工具,將其部署到機(jī)器學(xué)習(xí)平臺(tái)上事半功倍。模型部署階段,整合、監(jiān)控、更新等步驟均存在大量的工程性問(wèn)題需要解決。
個(gè)人作為機(jī)器學(xué)習(xí)平臺(tái)的初學(xué)者,暫時(shí)缺乏更深層次的認(rèn)知。文獻(xiàn)[8]和[9]詳細(xì)敘述了機(jī)器學(xué)習(xí)平臺(tái)開(kāi)發(fā)的歷史進(jìn)程及尚存在的技術(shù)難點(diǎn),這里簡(jiǎn)單展望一些機(jī)器學(xué)習(xí)平臺(tái)可錦上添花的部分功能:
- 模型搭建的可視化
考慮到無(wú)代碼式構(gòu)建,一些工作(如阿里PAI)直接將模型或算法封裝成常量接口,這在一定程度上降低了用戶(hù)的可操作空間。一直以來(lái),深度學(xué)習(xí)模型相當(dāng)于黑匣子,從代碼層面上也無(wú)法理解其模型架構(gòu)。如今已有一些工作實(shí)現(xiàn)將模型架構(gòu)轉(zhuǎn)換為可視化圖表,方便用戶(hù)理解其架構(gòu)原理(例如TensorBoard)。該功能可提供對(duì)模型的直觀理解。另外,該過(guò)程的逆置,類(lèi)似于交互式搭建機(jī)器學(xué)習(xí)流水線(xiàn)(阿里PAI),能夠?yàn)闊o(wú)編程經(jīng)驗(yàn)的用戶(hù)修改或設(shè)計(jì)模型并驗(yàn)證合理性提供幫助。 - 其他
參考資料
[1] [博客]MLOps簡(jiǎn)介
[2] [課程]Software Engineering for AI-Enabled Systems (SE4AI)
[3] [課程]MLOps (Machine Learning Operations) Fundamentals
[4] [博客]機(jī)器學(xué)習(xí)開(kāi)源平臺(tái)1
[5] [博客]機(jī)器學(xué)習(xí)開(kāi)源平臺(tái)2
[6] [博客]機(jī)器學(xué)習(xí)云平臺(tái)應(yīng)具備哪些功能?
[7] [博客]為什么我們需要機(jī)器學(xué)習(xí)平臺(tái)?
[8] [論文]Giray, G?rkem. “A software engineering perspective on engineering machine learning systems: State of the art and challenges.” Journal of Systems and Software 180 (2021): 111031.
[9] [論文]Paleyes, Andrei, Raoul-Gabriel Urma, and Neil D. Lawrence. “Challenges in deploying machine learning: a survey of case studies.” arXiv preprint arXiv:2011.09926 (2020).
總結(jié)
以上是生活随笔為你收集整理的机器学习平台的简单调研的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 神奇的css3(2)动画
- 下一篇: CodeForces 903D Alm