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

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

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

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

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

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

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

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

以下內容是更為具體的介紹:

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

使用 Amazon SageMaker Clarify進行偏差檢測和模型解釋

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

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

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

用 Deep Profiling for Amazon SageMaker Debugger 做模型訓練剖析

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

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

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

用 Distributed Training on Amazon SageMaker 縮短訓練時間

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

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

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

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

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

使用 Amazon SageMaker Edge Manager管理邊緣設備模型

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

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

通過Amazon SageMaker JumpStart開啟機器學習之旅

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

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

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

分享到

zhupb

相關推薦