SageMaker的主要功能,涵蓋從數(shù)據(jù)準(zhǔn)備、訓(xùn)練、到推理部署一條龍服務(wù)

截圖中的是海外區(qū)域的版本,與中國區(qū)的版本差別不大,4月30日,中國區(qū)的SageMaker也正式開放,而且,我還嗅到了羊毛的氣息,真的有有免費(fèi)套餐可用,AWS 中國(寧夏)區(qū)域提供一個(gè)月免費(fèi)套餐,看完我的簡(jiǎn)短體驗(yàn)后,馬上就可以免費(fèi)體驗(yàn)了(薅羊毛了)。

對(duì)我來說,Amazon SageMaker不能把我這樣什么都不懂的人變成機(jī)器學(xué)習(xí)專家,但Amazon SageMaker真的可以降低機(jī)器學(xué)習(xí)的門檻。

由于很多機(jī)器學(xué)習(xí)相關(guān)的工具都不夠成熟,經(jīng)常存在兼容性的問題,這些工具不能像安裝手機(jī)應(yīng)用那樣一鍵安裝和運(yùn)行,用起來很不方便,還經(jīng)常有各種Bug。在人人都得學(xué)點(diǎn)大數(shù)據(jù)技術(shù),學(xué)點(diǎn)機(jī)器學(xué)習(xí)技術(shù)的時(shí)代,這些局面一定會(huì)改變,但需要時(shí)間。Amazon SageMaker的出現(xiàn)是為了改變這一局面。

在Amazon SageMaker這里,用戶只需要帶著自己的算法和代碼,以及準(zhǔn)備好的數(shù)據(jù),就能在這里開始訓(xùn)練并部署模型了,看起來就像拎包入住。即便是沒有自己的算法和代碼,也沒有數(shù)據(jù),也可以和我一樣利用SageMaker自帶的demo體驗(yàn)一把。

動(dòng)手吧,零基礎(chǔ)小白用十多分鐘訓(xùn)練一個(gè)模型

話不多說,趕緊和我一起動(dòng)起手來,用十來分鐘體會(huì)訓(xùn)練并部署機(jī)器學(xué)習(xí)模型的過程吧。

示例代碼非常簡(jiǎn)單,它使用的是非常簡(jiǎn)單的K-means聚類算法和非常常見的mnist數(shù)據(jù)集來做一個(gè)手寫體識(shí)別,說簡(jiǎn)單點(diǎn),就是識(shí)別手寫圖片里0到9這十個(gè)數(shù)字。我要做的就是打開一個(gè)帶有代碼的筆記本實(shí)例,一路Shift+Enter就能完成訓(xùn)練,然后……然后就結(jié)束了。

2018年的時(shí)候,我曾經(jīng)用SageMaker的筆記本實(shí)例訓(xùn)練并部署了一個(gè)模型<2018年舊稿子的鏈接>,經(jīng)過兩年的發(fā)展迭代,SageMaker有了許多新的功能,所以,這次我試著用全新發(fā)布的SageMaker Studio重新走一遍當(dāng)初那個(gè)超級(jí)簡(jiǎn)單的機(jī)器學(xué)習(xí)訓(xùn)練過程。

如果您對(duì)于機(jī)器學(xué)習(xí)的訓(xùn)練過程有一點(diǎn)點(diǎn)好奇,可以看看這幾張截圖,如果對(duì)具體步驟不感興趣,可以跳過這些截圖。

第一張截圖的含義是:在SageMaker進(jìn)行一些設(shè)置,這樣就能訪問AWS的各種資源了。

第二張截圖的含義是獲取需要用來訓(xùn)練的數(shù)據(jù)。這些數(shù)據(jù)非常規(guī)范,不用做任何額外操作直接就能來訓(xùn)練。

第三張圖的含義是:觀察數(shù)據(jù)集的特征,然后按照數(shù)據(jù)集的特征進(jìn)行下一步的處理。

第四張圖的含義是訓(xùn)練模型,由于數(shù)據(jù)集比較簡(jiǎn)單,算法也簡(jiǎn)單,很快就會(huì)訓(xùn)練出一個(gè)模型。

第五張圖說的是訓(xùn)練完成了,訓(xùn)練時(shí)間大約花費(fèi)了四五分鐘。

第六張圖的含義是:模型訓(xùn)練完成后,要部署在線推理服務(wù),設(shè)置需要運(yùn)行模型的主機(jī)類型。

第七張圖的含義是:做了一個(gè)驗(yàn)證,看看模型的準(zhǔn)確度。不過,這里看的不是特別直觀。

第八張圖的含義是:做了一個(gè)分類,系統(tǒng)認(rèn)為這幾個(gè)數(shù)字的寫的比較像,所以才放在一起。我們?cè)俣嗫磶讖垐D。

從上面兩張圖,我們的肉眼就可以大致感受到這個(gè)準(zhǔn)確度。最后,記得刪除剛才啟用的主機(jī)資源,不然,一直運(yùn)行著可是要一直扣錢的。

以上就是我訓(xùn)練一個(gè)簡(jiǎn)單模型的全部過程,可以說不能更簡(jiǎn)單了。唯一的門檻就是,你最好認(rèn)識(shí)幾個(gè)常用的英文單詞,不然會(huì)覺得過程有點(diǎn)無聊。

所以,以上就是SageMaker的一些主要功能了。

SageMaker非常適合那些需要實(shí)驗(yàn)算法和調(diào)參數(shù)的人。比如,你突發(fā)奇想,想去試一個(gè)新算法,但身邊的電腦性能太差了,而且電腦上的工具經(jīng)常出問題,有了SageMaker之后就沒有這些麻煩了,只要你有代碼和數(shù)據(jù),完全可以在這里用完即走。訓(xùn)練速度很快,成本也不高,起碼不用買動(dòng)輒好幾千甚至上萬塊錢的顯卡。(PS:萬一發(fā)現(xiàn)自己不適合機(jī)器學(xué)習(xí),這顯卡出二手可就……請(qǐng)聯(lián)系我。)

進(jìn)階需求:Amazon SageMaker Studio把該做的都做了

我曾在個(gè)人電腦用LSTM網(wǎng)絡(luò)訓(xùn)練一個(gè)古詩生成的模型,訓(xùn)練次數(shù)少的時(shí)候,模型給出來的唐詩看著很別扭,訓(xùn)練次數(shù)多起來看起來會(huì)自然一點(diǎn),當(dāng)然,內(nèi)容并沒有什么含義。前者幾分鐘就訓(xùn)練完成了,后者則花了一個(gè)晚上,我如果想改變其中一個(gè)參數(shù),那么就需要再訓(xùn)練一個(gè)晚上,讓電腦嗡嗡響一晚上,而且希望不要意外關(guān)機(jī),不然前功盡棄??!

數(shù)據(jù)科學(xué)家訓(xùn)練一個(gè)復(fù)雜的模型,一次訓(xùn)練可能需要好幾天,一次訓(xùn)練只能說明一次算法或者參數(shù)的表現(xiàn),如何證明算法和參數(shù)合適不合適則需要N多次的訓(xùn)練。如果每一次嘗試都要等上好幾天的話,那么,那么數(shù)據(jù)科學(xué)家的工作也太輕松了吧!如果5天出一個(gè)結(jié)果,訓(xùn)練1萬次,那這個(gè)項(xiàng)目大概需要兩代人前赴后繼。orz

以前,雖然Amazon SageMaker已經(jīng)有很多功能可以加速訓(xùn)練過程,但對(duì)于用戶的調(diào)參和優(yōu)化算法使用還沒有那么方便,而這,恰恰是真正需要的東西,要知道,除了準(zhǔn)備數(shù)據(jù),數(shù)據(jù)科學(xué)家們絕大部分時(shí)間都在改算法和調(diào)參數(shù)。

AWS去年十二月又推出了Amazon SageMaker Studio,集成了多個(gè)功能。這里我挑幾個(gè)我個(gè)人覺得有意思的介紹一下:

Amazon SageMaker的功能全景圖

Amazon SageMaker Experiments主要就解決了多次實(shí)驗(yàn)迭代管理這個(gè)問題,它可以幫你跟蹤、記錄和比較數(shù)千個(gè)機(jī)器學(xué)習(xí)任務(wù),包括任務(wù)的里數(shù)據(jù)集,算法還有參數(shù),模型,平臺(tái)配置,參數(shù)設(shè)置等,都能通過圖形或表格的方式靈活觀察迭代變化的情況,對(duì)比一下看哪個(gè)表現(xiàn)最好,調(diào)出表現(xiàn)最合適的模型。系統(tǒng)自動(dòng)記錄,再也不用手動(dòng)記錄了!一會(huì)兒我們可以試試這個(gè)功能。

另外,我還發(fā)現(xiàn)Amazon SageMaker Studio還有一個(gè)非常實(shí)用的協(xié)作功能。當(dāng)你調(diào)參或者改代碼的時(shí)候碰到問題了,想請(qǐng)教別人解決,但是你不能把你電腦搬過去,也沒辦法要求別人配置一套跟你完全一樣的環(huán)境,也不方便把AWS賬號(hào)給他,那怎么調(diào)試呢?最好的辦法就是加入?yún)f(xié)作機(jī)制,給你直接用我的環(huán)境,你看到的東西跟我看到的完全一樣,所見即所得地就地解決問題。這協(xié)作效率~

Amazon SageMaker Studio是一個(gè)在線的IDE(集成開發(fā)環(huán)境)工具,IDE常有的功能他都有,包括Debug和在線監(jiān)控等等功能,Amazon SageMaker Notebook也包含在其中。Amazon SageMaker Notebook可以說是Jupyter Notebook的加強(qiáng)版,它在Jupyter Notebook基礎(chǔ)上做了許多強(qiáng)化。

個(gè)人覺得AWS的Amazon SageMaker Debugger功能非常良心,它能提前發(fā)現(xiàn)超參數(shù)的問題,如果沒有它,超參數(shù)有問題在訓(xùn)練任務(wù)運(yùn)行期間不會(huì)暴露,訓(xùn)練完之后可能會(huì)發(fā)現(xiàn),如果能在早期發(fā)現(xiàn)問題的話就不用白等了。

Amazon SageMaker Studio最受我這種新手菜鳥推崇的功能可能就是Amazon SageMaker Autopilot了,它可以自己做數(shù)據(jù)預(yù)處理,自己選擇算法,自動(dòng)調(diào)整模型,自動(dòng)調(diào)用各種計(jì)算和存儲(chǔ)資源。是自動(dòng)化的機(jī)器學(xué)習(xí)功能,是一個(gè)讓機(jī)器訓(xùn)練機(jī)器的功能。當(dāng)然,目前還是有一定局限性的。

初體驗(yàn):體驗(yàn)SageMaker Studio自動(dòng)化的機(jī)器學(xué)習(xí)

帶著滿滿的好奇心,我試著用Kaggle上下載的“泰坦尼克號(hào)獲救”數(shù)據(jù)來進(jìn)行自動(dòng)化的機(jī)器學(xué)習(xí),我這樣啥也不懂的也體驗(yàn)了一下自動(dòng)化的機(jī)器學(xué)習(xí)。出乎意料的是,整個(gè)操作過程還非常簡(jiǎn)單!

如下圖所示,我先把下載下來的數(shù)據(jù)傳到了S3上。(原版的數(shù)據(jù)只有891條數(shù)據(jù),SageMaker Autopilot要求最少得有1000條數(shù)據(jù),于是,我手動(dòng)復(fù)制了109條數(shù)據(jù),測(cè)試才得以進(jìn)行,這個(gè)操作非常不推薦,但為了體驗(yàn)自動(dòng)化的機(jī)器學(xué)習(xí),就這樣吧)

配置自動(dòng)化機(jī)器學(xué)習(xí)服務(wù)

我指定了訓(xùn)練數(shù)據(jù)(S3存儲(chǔ)中里的csv表格)和要預(yù)測(cè)的參數(shù)(Survived-獲救與否)后,點(diǎn)確定之后就什么都不用管了。

SageMaker Autopilot自動(dòng)化機(jī)器學(xué)習(xí)的四個(gè)階段

如上圖所示,整個(gè)過程需要經(jīng)過上圖所示的四個(gè)階段。所有操作,包括數(shù)據(jù)預(yù)處理,選擇算法還有調(diào)整參數(shù)的操作都由系統(tǒng)自動(dòng)完成,缺點(diǎn)是等候的時(shí)間比較長。

看到這里,其實(shí)整個(gè)體驗(yàn)就完成了,如果您對(duì)于自動(dòng)化的訓(xùn)練過程有興趣,也可以接著往下看幾張截圖。

SageMaker Autopilot Data Exploration可以查看數(shù)據(jù)

等待中我還看到我提供的數(shù)據(jù)的概況,我的數(shù)據(jù)其實(shí)還需要進(jìn)行處理,Autopilot會(huì)自動(dòng)進(jìn)行數(shù)據(jù)預(yù)處理,有朋友可能會(huì)好奇,聽著挺高大上的,啥是數(shù)據(jù)預(yù)處理呢?

舉個(gè)栗子:如上圖所示,“Age”部分有的數(shù)據(jù)是空的,要進(jìn)行運(yùn)算的話,必須以合理的方式把數(shù)據(jù)補(bǔ)上,類似的,字符串?dāng)?shù)據(jù)也要處理掉??傊瑪?shù)據(jù)預(yù)處理還是挺麻煩的,是個(gè)時(shí)間黑洞,還好Autopilot能自己搞定,幸福感up!up!

當(dāng)進(jìn)行到參數(shù)優(yōu)化的模型調(diào)優(yōu)階段后,會(huì)看到Objective目標(biāo)值,也就是模型預(yù)測(cè)的精準(zhǔn)度在不停的變化,雖然不一定下一個(gè)就比上一個(gè)好,但大體上,目標(biāo)值是在不斷提高的。

不斷優(yōu)化的模型精準(zhǔn)度

所有操作都是自動(dòng)完成的,大概等了兩個(gè)小時(shí)候后,訓(xùn)練終于完成了!

本次體驗(yàn),在SageMaker Experiments的自動(dòng)化的參數(shù)優(yōu)化過程中,一共訓(xùn)練出了250個(gè)模型(要是手動(dòng)訓(xùn)練250次,會(huì)不會(huì)瘋?),最后選一個(gè)模型進(jìn)行部署即可。那么,選哪個(gè)模型呢?下圖中,SageMaker Experiments會(huì)自動(dòng)給你標(biāo)注出來哪個(gè)是最好的!是不是很貼心。

點(diǎn)擊Deploy Model即可配置用來運(yùn)行模型的主機(jī)。

結(jié)語

通過上述經(jīng)歷,我想說,亞馬遜云服務(wù)(AWS) 的Amazon SageMaker對(duì)于想成為數(shù)據(jù)科學(xué)家的人非常實(shí)用,希望本文對(duì)想了解它的人能有所幫助。(更多動(dòng)手體驗(yàn)類文章可查看微信公眾號(hào):云體驗(yàn)師)

分享到

zhupb

相關(guān)推薦