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

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

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

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

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

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

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

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

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

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

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

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

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

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

Amazon SageMaker Feature Store——特征存儲和管理神器

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

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

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

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

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

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

Amazon SageMaker Pipelines 實現(xiàn)工作流管理和自動化

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

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

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

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

用戶可以通過Amazon SageMaker Studio來使用Amazon SageMaker Pipelines。

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

通過Amazon SageMaker JumpStart開啟機器學(xué)習(xí)之旅

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

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

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

分享到

zhupb

相關(guān)推薦