上圖提到的是AWS的云上機(jī)器學(xué)習(xí)服務(wù)的三個(gè)維度:多元的基礎(chǔ)架構(gòu),包括各種AI開(kāi)發(fā)框架、各種算力架構(gòu)類型以及各種機(jī)器學(xué)習(xí)實(shí)例主機(jī);高級(jí)的API服務(wù),各種訓(xùn)練好的模型,只需調(diào)用API即可使用;另外一層是機(jī)器學(xué)習(xí)煉丹爐一樣的服務(wù)——Amazon SageMaker,是AWS最具特色的云上機(jī)器學(xué)習(xí)服務(wù),是目前已知同類產(chǎn)品中功能最強(qiáng)大的一個(gè)。

隨著數(shù)據(jù)越來(lái)越多的出現(xiàn)在云上,隨著云上機(jī)器學(xué)習(xí)功能的完善,體驗(yàn)的一步步優(yōu)化,云上機(jī)器學(xué)習(xí)優(yōu)勢(shì)將更明顯,此次新發(fā)布中,分布式的機(jī)器學(xué)習(xí)方案就非常體現(xiàn)云的優(yōu)越性,同時(shí)也能明顯感覺(jué)到,企業(yè)對(duì)機(jī)器學(xué)習(xí)的接受度在快速提高,應(yīng)用更加普遍了,機(jī)器學(xué)習(xí)不再是紙上談兵,一個(gè)行之有效的服務(wù)可以幫助企業(yè)快速落地機(jī)器學(xué)習(xí)的能力。

在詳細(xì)介紹此次發(fā)布的內(nèi)容前,先簡(jiǎn)單介紹下我個(gè)人對(duì)新功能的看法:

其中有幾個(gè)功能是預(yù)料之中的,比如Amazon SageMaker Data Wrangler是做數(shù)據(jù)準(zhǔn)備工作的,這是繼續(xù)Ground Truth之后,在數(shù)據(jù)準(zhǔn)備方面的又一個(gè)大動(dòng)作,它通過(guò)預(yù)配置的一些操作來(lái)幫助用戶進(jìn)行數(shù)據(jù)準(zhǔn)備,能節(jié)省很大一部分?jǐn)?shù)據(jù)準(zhǔn)備的工作時(shí)間。此前一直覺(jué)得AWS在這部分做的不多,這下做了很好的補(bǔ)充。

機(jī)器學(xué)習(xí)的工作流(Pipeline)工具Amazon SageMaker Pipelines也是預(yù)料之中的發(fā)布,能幫助用戶分享和復(fù)現(xiàn)機(jī)器學(xué)習(xí)的訓(xùn)練過(guò)程,便于組織內(nèi)協(xié)作,還配合訓(xùn)練迭代記錄工具來(lái)優(yōu)化模型。當(dāng)機(jī)器學(xué)習(xí)應(yīng)用于生產(chǎn)環(huán)境中,成了一種家常便飯一樣的操作,工作流就非常有必要。

最能體現(xiàn)云上機(jī)器學(xué)習(xí)優(yōu)越性的發(fā)布Distributed Training on Amazon SageMaker。以分布式來(lái)進(jìn)行機(jī)器學(xué)習(xí)訓(xùn)練是很多人翹首以盼的高級(jí)特性,機(jī)器學(xué)習(xí)大都局限在單臺(tái)設(shè)備上,為此,很多人不得不選一臺(tái)配置盡可能高的機(jī)器,但訓(xùn)練速度仍舊局限在單臺(tái)設(shè)備的算力。Distributed Training on Amazon SageMaker把訓(xùn)練負(fù)載分配到多臺(tái)設(shè)備上,讓訓(xùn)練時(shí)間變的可控,模型訓(xùn)練和迭代會(huì)更及時(shí)。我最大的感受是,這種分布式的方案最能體現(xiàn)云上機(jī)器學(xué)習(xí)的優(yōu)越性。

有幾個(gè)功能期待值不是特別高,但做出來(lái)仍非常有價(jià)值,比如Amazon SageMaker Feature Store,是管理特征數(shù)據(jù)的,便于分享和復(fù)用特征數(shù)據(jù);Deep Profiling for Amazon SageMaker Debugger 是查看訓(xùn)練過(guò)程資源利用情況的工具,能優(yōu)化成本;Amazon SageMaker Edge Manager是幫助把模型運(yùn)行在邊緣端的工具;

最讓我驚訝的是Amazon SageMaker Clarify還能進(jìn)行偏差檢測(cè)和模型解釋。在訓(xùn)練前,能結(jié)合Amazon SageMaker Data Wrangler來(lái)分析檢測(cè)數(shù)據(jù)是否有傾向性,是否公正,能檢測(cè)數(shù)據(jù)分布的情況并給出提示。在模型訓(xùn)練完成,在推理階段,還能幫用戶看出來(lái)哪些特征對(duì)模型的影響比較大。有類似能力的方案似乎并不多,能讓開(kāi)發(fā)者對(duì)于模型本身有更深的認(rèn)識(shí),為模型優(yōu)化找方向。

以下內(nèi)容是更為具體的介紹:

Amazon SageMaker Data Wrangler ——數(shù)據(jù)清洗、特征提取神器

機(jī)器學(xué)習(xí)的訓(xùn)練需要數(shù)據(jù),但是有很多數(shù)據(jù)不能直接拿來(lái)做訓(xùn)練,需要做處理,比如,處理數(shù)據(jù)格式不一樣的情況,要處理數(shù)據(jù)缺失的情況,處理數(shù)據(jù)明顯出錯(cuò)的情況等等,這種把數(shù)據(jù)規(guī)范化的過(guò)程就屬于數(shù)據(jù)準(zhǔn)備過(guò)程,然后,還需要將數(shù)據(jù)轉(zhuǎn)化為特征,這部分工作稱為特征工程。

在機(jī)器學(xué)習(xí)工作中,這些工作要消耗開(kāi)發(fā)人員大量的時(shí)間。Amazon SageMaker Data Wrangler就是為了簡(jiǎn)化這一過(guò)程。

Amazon SageMaker Data Wrangler首先可以從多種數(shù)據(jù)源接收數(shù)據(jù),然后,用內(nèi)置的300多個(gè)數(shù)據(jù)轉(zhuǎn)換器,對(duì)特征進(jìn)行規(guī)范化、轉(zhuǎn)換和組合,將原始數(shù)據(jù)進(jìn)行處理后得到可用于訓(xùn)練的數(shù)據(jù),整個(gè)構(gòu)成不需要用戶寫(xiě)一行代碼。

轉(zhuǎn)換過(guò)程能在Amazon SageMaker Studio里查看,看這些轉(zhuǎn)換是否符合預(yù)期。這些提取出來(lái)的特征數(shù)據(jù)會(huì)保存在 Amazon SageMaker Feature Store 中,以供重復(fù)使用。

Amazon SageMaker Feature Store——特征存儲(chǔ)和管理神器

Amazon SageMaker Feature Store 提供了一個(gè)新的存儲(chǔ)庫(kù),可以存儲(chǔ)、更新、檢索和共享用于訓(xùn)練和推理的特征數(shù)據(jù),如果沒(méi)有這一服務(wù),用戶只能把特征數(shù)據(jù)存在S3上。

真的需要這種服務(wù)嗎?其實(shí),AWS是考慮到很多特征(Feature)需要復(fù)用的情況,包括同一個(gè)人訓(xùn)練不同模型,同一家公司不同部門(mén)都可能會(huì)復(fù)用特征,作為機(jī)器學(xué)習(xí)專家的AWS發(fā)現(xiàn)了復(fù)用特征時(shí)會(huì)的管理負(fù)擔(dān),于是就推出了Amazon SageMaker Feature Store。

在訓(xùn)練過(guò)程中,需要大批量訪問(wèn)特征數(shù)據(jù),推理過(guò)程中,模型需要實(shí)時(shí)訪問(wèn)部分特征數(shù)據(jù)。兩個(gè)過(guò)程需要使用一樣的特征數(shù)據(jù),但有不同的訪問(wèn)模式,開(kāi)發(fā)者自己來(lái)做這件事其實(shí)并不容易。

Amazon SageMaker Feature Store就是為了解決這一問(wèn)題,它提供了一個(gè)可供開(kāi)發(fā)人員訪問(wèn)和共享特征的服務(wù)。

訓(xùn)練階段它能方便地組織和更新大批量特征數(shù)據(jù),推理階段它能提供單毫秒級(jí)的低延遲訪問(wèn),來(lái)訪問(wèn)少量特征數(shù)據(jù),既降低了生成模型的難度,又提供高了預(yù)測(cè)的精度和預(yù)測(cè)的性能。

Amazon SageMaker Feature Store 集成在 Amazon SageMaker Studio 中,

Amazon SageMaker Pipelines 實(shí)現(xiàn)工作流管理和自動(dòng)化

開(kāi)發(fā)過(guò)程中的CI/CD可以加速軟件開(kāi)發(fā)和部署的效率,為了加速機(jī)器學(xué)習(xí)的工作效率,Amazon SageMaker Pipelines出現(xiàn)了,這是第一個(gè)專為機(jī)器學(xué)習(xí)構(gòu)建的CI/CD(持續(xù)集成和持續(xù)交付)服務(wù),目前此類服務(wù)很少,而且,使用起來(lái)比較麻煩。

Amazon SageMaker Pipelines可以設(shè)置機(jī)器學(xué)習(xí)的工作流,包括數(shù)據(jù)加載步驟、數(shù)據(jù)轉(zhuǎn)換過(guò)程(用Amazon SageMaker Data Wrangler)、保存特征(用Amazon SageMaker Feature Store)、訓(xùn)練配置及算法設(shè)置、調(diào)試步驟,以及優(yōu)化步驟,設(shè)置機(jī)器學(xué)習(xí)的全流程。

Amazon SageMaker Pipelines可以使用相同的設(shè)置來(lái)重復(fù)進(jìn)行端到端的工作流,也可以定期使用新數(shù)據(jù)重新運(yùn)行工作流,來(lái)更新模型,更新模型的過(guò)程可以用Amazon SageMaker Experiments來(lái)記錄,幫助開(kāi)發(fā)者調(diào)參和迭代模型。

創(chuàng)建的Amazon SageMaker Pipelines可以在團(tuán)隊(duì)之間共享和重復(fù)使用,可以用一個(gè)工作流重新創(chuàng)建一個(gè)模型,也可以在基礎(chǔ)上修改,創(chuàng)建一個(gè)新的模型。

用戶可以通過(guò)Amazon SageMaker Studio來(lái)使用Amazon SageMaker Pipelines。

使用 Amazon SageMaker Clarify進(jìn)行偏差檢測(cè)和模型解釋

開(kāi)發(fā)人員有時(shí)會(huì)嘗試使用開(kāi)源工具檢測(cè)訓(xùn)練數(shù)據(jù)中的統(tǒng)計(jì)偏差,這需要大量的編程工作。而Amazon SageMaker Clarify能幫助用戶檢測(cè)整個(gè)機(jī)器學(xué)習(xí)工作流中的統(tǒng)計(jì)偏差,并能為模型所做的預(yù)測(cè)提供解釋。

Amazon SageMaker Clarify已集成到Amazon SageMaker Data Wrangler,它運(yùn)行了一系列基于特征數(shù)據(jù)的算法,用以識(shí)別數(shù)據(jù)準(zhǔn)備過(guò)程中的偏差,并且清晰描述可能的偏差來(lái)源及其偏差程度。這樣,開(kāi)發(fā)人員就可以采取措施來(lái)減小偏差。

Amazon SageMaker Clarify還與Amazon SageMaker Experiments集成使用,它還能詳細(xì)說(shuō)明輸入到模型中的每個(gè)特征是如何影響預(yù)測(cè)的。最后,Amazon SageMaker Clarify與 Amazon SageMaker Model Monitor集成,一旦模型特征的重要性發(fā)生偏移,導(dǎo)致模型預(yù)測(cè)質(zhì)量發(fā)生改變,它就會(huì)提醒開(kāi)發(fā)人員。

用 Deep Profiling for Amazon SageMaker Debugger 做模型訓(xùn)練剖析

Deep Profiling for Amazon SageMaker Debugger 能夠自動(dòng)監(jiān)控系統(tǒng)資源利用率,為訓(xùn)練瓶頸提供告警。開(kāi)發(fā)人員沒(méi)有一個(gè)標(biāo)準(zhǔn)的監(jiān)控系統(tǒng)利用率的方法(例如 GPU、CPU、網(wǎng)絡(luò)吞吐量和內(nèi)存 I/O)以識(shí)別和排除訓(xùn)練作業(yè)中的瓶頸。因此,開(kāi)發(fā)人員無(wú)法以最快的速度、最高的成本效益來(lái)訓(xùn)練模型。

Amazon SageMaker Debugger通過(guò)最新的 Deep Profiling 功能擴(kuò)大了監(jiān)控系統(tǒng)資源利用率的范圍,在 Amazon SageMaker Studio 中或通過(guò) AWS CloudWatch 發(fā)送訓(xùn)練期間的問(wèn)題告警,將使用情況關(guān)聯(lián)到訓(xùn)練作業(yè)中的不同階段,或者訓(xùn)練期間的特定時(shí)間點(diǎn)。

Amazon SageMaker Debugger 還可以根據(jù)告警觸發(fā)別的操作,比如,當(dāng)檢測(cè)到 GPU 使用情況不正常時(shí),即停止訓(xùn)練作業(yè)。Amazon SageMaker Debugger  Deep Profiling 目前支持 PyTorch、Apache MXNet 和 TensorFlow 等框架,無(wú)需在訓(xùn)練腳本中更改任何代碼即可使用。

用 Distributed Training on Amazon SageMaker 縮短訓(xùn)練時(shí)間

Distributed Training on Amazon SageMaker 使得訓(xùn)練大型復(fù)雜深度學(xué)習(xí)模型的速度比當(dāng)前的快上兩倍。當(dāng)一些模型太大,無(wú)法容納在單個(gè) GPU 提供的內(nèi)存中時(shí),用戶會(huì)嘗試在多個(gè) GPU 間拆分模型,但拆分模型的方式和調(diào)整訓(xùn)練代碼的過(guò)程非常復(fù)雜。業(yè)內(nèi)也有一些別的實(shí)現(xiàn)方案,是許多人都致力于實(shí)現(xiàn)的一個(gè)功能。

為了克服這些挑戰(zhàn),AWS拿出了自己的解決方案,用Distributed Training on Amazon SageMaker 提供兩種分布式訓(xùn)練功能,一種是拆分?jǐn)?shù)據(jù),一種是拆分訓(xùn)練好的模型。

第一種,Distributed Training 與 Amazon SageMaker 模型并行引擎一起,通過(guò)在多個(gè) GPU 間自動(dòng)分割數(shù)據(jù),將訓(xùn)練作業(yè)從一個(gè) GPU 擴(kuò)展到數(shù)百個(gè)或數(shù)千個(gè) GPU,將訓(xùn)練時(shí)間縮短多達(dá) 40%。

第二種,Distributed Training 與 Amazon SageMaker 模型并行引擎一起,自動(dòng)剖析和識(shí)別分割模型的最佳方式,在多個(gè) GPU 上高效分割具有數(shù)十億參數(shù)的大型復(fù)雜模型。

使開(kāi)發(fā)人員能夠在不增加成本的情況下,提高大型模型的訓(xùn)練速度,這一功能充分體現(xiàn)了云上分布式架構(gòu)的優(yōu)勢(shì)。

使用 Amazon SageMaker Edge Manager管理邊緣設(shè)備模型

Amazon SageMaker Edge Manager 可以幫助開(kāi)發(fā)人員優(yōu)化、保護(hù)、監(jiān)控和維護(hù)部署在邊緣設(shè)備集群上的機(jī)器學(xué)習(xí)模型。

能在降低內(nèi)存占用率的同時(shí),提升運(yùn)行速度,而且,準(zhǔn)確性也沒(méi)有損失,當(dāng)發(fā)現(xiàn)模型出現(xiàn)問(wèn)題,可以重新訓(xùn)練模型以便開(kāi)發(fā)人員不斷提高模型的質(zhì)量。

通過(guò)Amazon SageMaker JumpStart開(kāi)啟機(jī)器學(xué)習(xí)之旅

Amazon SageMaker JumpStart 為開(kāi)發(fā)人員提供了一個(gè)易于使用、可搜索的界面,用于查找同類最佳解決方案、算法和 notebook 示例。

當(dāng)前,缺乏機(jī)器學(xué)習(xí)經(jīng)驗(yàn)的客戶很難開(kāi)始機(jī)器學(xué)習(xí)部署,而高級(jí)的開(kāi)發(fā)人員發(fā)現(xiàn)很難將機(jī)器學(xué)習(xí)應(yīng)用到所有應(yīng)用場(chǎng)景。

通過(guò) Amazon SageMaker JumpStart,客戶現(xiàn)在可以快速找到針對(duì)其機(jī)器學(xué)習(xí)場(chǎng)景的相關(guān)信息。新接觸機(jī)器學(xué)習(xí)的開(kāi)發(fā)人員可以從多個(gè)完整的端到端機(jī)器學(xué)習(xí)解決方案中進(jìn)行選擇(例如欺詐檢測(cè)、客戶流失預(yù)測(cè)或時(shí)序預(yù)測(cè)),并且可以直接部署到 Amazon SageMaker Studio 環(huán)境中。有經(jīng)驗(yàn)的用戶則可以從一百多個(gè)機(jī)器學(xué)習(xí)模型中選擇,快速開(kāi)始模型構(gòu)建和訓(xùn)練。

分享到

zhupb

相關(guān)推薦