今天,我非常高興地宣布推出Amazon SageMaker管道,這是Amazon SageMaker的一項(xiàng)新功能,可讓數(shù)據(jù)科學(xué)家和工程師輕松構(gòu)建、自動(dòng)化、并擴(kuò)展端到端的機(jī)器學(xué)習(xí)管道。
機(jī)器學(xué)習(xí)(ML)本質(zhì)上是實(shí)驗(yàn)性的,且不可預(yù)測(cè)。您花費(fèi)數(shù)天或數(shù)周時(shí)間以許多不同的方式探索和處理數(shù)據(jù),試圖破解開Geode以揭示其珍貴寶石。然后,您可以嘗試不同的算法和參數(shù),培訓(xùn)和優(yōu)化大量模型以尋找最高準(zhǔn)確度。此過程通常涉及許多不同的步驟,它們之間存在依賴關(guān)系,人工管理可能會(huì)變得相當(dāng)復(fù)雜。特別是,跟蹤模型沿襲可能很困難,這妨礙了可審計(jì)性和治理。最后,部署頂級(jí)模型,然后根據(jù)參考測(cè)試集對(duì)其進(jìn)行評(píng)估。終于?不是很重要,因?yàn)槟憧隙〞?huì)一次又一次地迭代,無(wú)論是嘗試新想法,還是只是就新數(shù)據(jù)建立定期重新培訓(xùn)模型。
遺憾的是,無(wú)論ML有多令人興奮,它確實(shí)涉及大量重復(fù)性工作。即使是小型項(xiàng)目也需要幾百個(gè)步驟才能獲得生產(chǎn)綠燈。隨著時(shí)間的推移,這項(xiàng)工作不僅減少了項(xiàng)目的樂趣和興奮,還為監(jiān)督和人為錯(cuò)誤創(chuàng)造了充足的空間。
為了減輕人工工作并提高可追溯性,許多機(jī)器學(xué)習(xí)團(tuán)隊(duì)采用了開發(fā)運(yùn)維理念,并實(shí)施了持續(xù)集成和持續(xù)交付(CI/CD)的工具和流程。盡管這肯定是朝著正確方向邁出的一步,但編寫自己的工具往往會(huì)導(dǎo)致復(fù)雜的項(xiàng)目,這些項(xiàng)目需要的軟件工程和基礎(chǔ)設(shè)施工作量超過最初預(yù)期。寶貴的時(shí)間和資源被從實(shí)際機(jī)器學(xué)習(xí)項(xiàng)目中挪用,使得創(chuàng)新放緩。可悲的是,一些團(tuán)隊(duì)決定恢復(fù)人工工作,以進(jìn)行模型管理、批準(zhǔn)和部署。
Amazon SageMaker管道簡(jiǎn)介
簡(jiǎn)而言之,Amazon SageMaker管道為您的機(jī)器學(xué)習(xí)項(xiàng)目帶來(lái)了一流的開發(fā)運(yùn)維實(shí)踐。這一新功能使數(shù)據(jù)科學(xué)家和機(jī)器學(xué)習(xí)開發(fā)人員能夠輕松創(chuàng)建自動(dòng)化、可靠的端到端機(jī)器學(xué)習(xí)管道。與往常使用SageMaker一樣,所有基礎(chǔ)設(shè)施都是完全托管的,不需要您做任何工作。
Care.com是全球領(lǐng)先的尋找和管理高質(zhì)量家庭護(hù)理的平臺(tái)。Care.com數(shù)據(jù)科學(xué)經(jīng)理Clemens Tummeltshammer告訴我們的:“一個(gè)供需平衡的強(qiáng)大護(hù)理行業(yè),對(duì)于從個(gè)體家庭到全國(guó)國(guó)內(nèi)生產(chǎn)總值的經(jīng)濟(jì)增長(zhǎng)都至關(guān)重要。我們對(duì)Amazon SageMaker功能庫(kù)和Amazon SageMaker管道感到興奮,因?yàn)槲覀兿嘈?,它們將通過使用一組一致的精選數(shù)據(jù),幫助我們?cè)跀?shù)據(jù)科學(xué)和開發(fā)團(tuán)隊(duì)中更好地實(shí)現(xiàn)擴(kuò)展,我們可以使用這些數(shù)據(jù)構(gòu)建從數(shù)據(jù)準(zhǔn)備到部署的可擴(kuò)展端到端機(jī)器學(xué)習(xí)(ML)模型管道。借助Amazon SageMaker新公布的功能,我們可以加快針對(duì)不同應(yīng)用程序的機(jī)器學(xué)習(xí)模型的開發(fā)和部署,通過更快的實(shí)時(shí)推薦幫助客戶作出更明智的決策?!?/span>
讓我向您詳細(xì)介紹Amazon SageMaker管道中的主要組件:管道、模型注冊(cè)表和MLOps模板。
管道—模型構(gòu)建管道使用簡(jiǎn)單的Python SDK定義。它們可以包括Amazon SageMaker中可用的任何操作,例如使用Amazon SageMaker Processing或Amazon SageMaker Data Wrangler進(jìn)行數(shù)據(jù)準(zhǔn)備、模型培訓(xùn)、模型部署到實(shí)時(shí)終端節(jié)點(diǎn)或批量轉(zhuǎn)換。您還可以將Amazon SageMaker Clarify添加到您的管道中,以便在培訓(xùn)之前或模型部署后檢測(cè)偏向。同樣,您可以添加Amazon SageMaker模型監(jiān)控器來(lái)檢測(cè)數(shù)據(jù)和預(yù)測(cè)質(zhì)量問題。
一旦啟動(dòng),模型構(gòu)建管道將作為CI/CD管道執(zhí)行。每個(gè)步驟都會(huì)被記錄下來(lái),并提供詳細(xì)的日志記錄信息,以供追蹤和調(diào)試。當(dāng)然,您還可以在Amazon SageMaker Studio中可視化管道,并實(shí)時(shí)跟蹤不同的執(zhí)行情況。
模型注冊(cè)表—模型注冊(cè)表允許您跟蹤和編錄模型。在SageMaker Studio中,您可以輕松查看模型歷史記錄、列出和比較版本以及跟蹤模型評(píng)估指標(biāo)等元數(shù)據(jù)。您還可以定義在生產(chǎn)環(huán)境中可部署或不部署哪些版本。事實(shí)上,您甚至可以構(gòu)建管道,在獲得批準(zhǔn)后自動(dòng)觸發(fā)模型部署。您會(huì)發(fā)現(xiàn),模型注冊(cè)表在跟蹤模型沿襲、改進(jìn)模型治理和加強(qiáng)合規(guī)性狀況方面非常有用。
MLOps模板—SageMaker管道包括一系列內(nèi)置CI/CD模板,用于熱門管道(構(gòu)建/培訓(xùn)/部署、僅部署等)。您還可以添加和發(fā)布自己的模板,以便您的團(tuán)隊(duì)可以輕松地發(fā)現(xiàn)和部署它們。模板不僅節(jié)省了大量時(shí)間,還使機(jī)器學(xué)習(xí)團(tuán)隊(duì)能夠輕松地從實(shí)驗(yàn)到部署,使用標(biāo)準(zhǔn)流程進(jìn)行協(xié)作,而無(wú)需管理任何基礎(chǔ)設(shè)施。模板還可讓運(yùn)維團(tuán)隊(duì)根據(jù)需要自定義步驟,并為他們提供故障排除的完全可見性。
現(xiàn)在,我們來(lái)做一個(gè)快速演示!
使用Amazon SageMaker管道構(gòu)建端到端管道
打開SageMaker Studio,我選擇“Components”(組件)選項(xiàng)卡和“Projects”(項(xiàng)目)視圖。這將顯示內(nèi)置項(xiàng)目模板的列表。我選擇一個(gè)來(lái)構(gòu)建、培訓(xùn)和部署模型。
然后,我只需為項(xiàng)目命名,然后創(chuàng)建它。
幾秒鐘后,項(xiàng)目就緒。我可以看到,它包含兩個(gè)托管在AWS CodeCommit中的Git存儲(chǔ)庫(kù),一個(gè)用于模型培訓(xùn),另一個(gè)用于模型部署。
第一個(gè)存儲(chǔ)庫(kù)提供了用于創(chuàng)建多步模型構(gòu)建管道的支撐代碼:數(shù)據(jù)處理、模型培訓(xùn)、模型評(píng)估和基于準(zhǔn)確性的條件模型注冊(cè)。正如您將在pipeline.py文件中看到的那樣,該管道在眾所周知的Abalone數(shù)據(jù)集上使用XGBoost算法來(lái)培訓(xùn)線性回歸模型。此存儲(chǔ)庫(kù)還包括一個(gè)構(gòu)建規(guī)范文件,由AWS CodePipeline和AWS CodeBuild自動(dòng)執(zhí)行管道。
同樣,第二個(gè)存儲(chǔ)庫(kù)包含模型部署的代碼和配置文件,以及通過質(zhì)量門所需的測(cè)試腳本。此操作還基于AWS CodePipeline和AWS CodeBuild,后者運(yùn)行AWS CloudFormation模板來(lái)創(chuàng)建用于暫存和生產(chǎn)的模型終端節(jié)點(diǎn)。
單擊兩個(gè)藍(lán)色鏈接,我在本地克隆了存儲(chǔ)庫(kù)。這將觸發(fā)管道的第一次執(zhí)行。
幾分鐘后,管道已成功運(yùn)行。切換到“Pipelines”(管道)視圖,我可以直觀地顯示其步驟。
點(diǎn)擊培訓(xùn)步驟,我可以看到模型的均方根錯(cuò)誤(RMSE)指標(biāo)。
由于RMSE低于條件步驟中定義的閾值,因此我的模型被添加到模型注冊(cè)表中,如下所示。
為簡(jiǎn)單起見,注冊(cè)步驟將模型狀態(tài)設(shè)置為“Approved”(已批準(zhǔn)),這將自動(dòng)觸發(fā)模型部署到同一賬戶中的實(shí)時(shí)終端節(jié)點(diǎn)。幾秒鐘之內(nèi),我看到模型正在部署。
或者,您可以將模型注冊(cè)為“Pending manual approval”(等待人工批準(zhǔn))狀態(tài)。這將阻止部署,直到模型經(jīng)過人工審查和批準(zhǔn)。由于模型注冊(cè)表支持跨賬戶部署,因此您還可以輕松地在其他賬戶中部署,而無(wú)需跨賬戶復(fù)制任何內(nèi)容。
幾分鐘后,終端節(jié)點(diǎn)啟動(dòng)了,我可以用它來(lái)測(cè)試我的模型。
一旦我確定此模型能夠按預(yù)期運(yùn)行,我就可以發(fā)送回顯信息給MLOps團(tuán)隊(duì),并要求他們?cè)谏a(chǎn)環(huán)境中部署模型。
打開我的MLOps后,我打開AWS CodePipeline控制臺(tái),看到我的部署確實(shí)在等待批準(zhǔn)。
然后我批準(zhǔn)部署模型,這將觸發(fā)管道的最后階段。
返回我的數(shù)據(jù)科學(xué)家,我在SageMaker Studio中看到我的模型正在部署中。大功告成!
開始使用
正如您所看到的,Amazon SageMaker Pipelines使數(shù)據(jù)科學(xué)團(tuán)隊(duì)和MLOps團(tuán)隊(duì)能夠使用熟悉的工具輕松協(xié)作。他們可以創(chuàng)建和執(zhí)行強(qiáng)大的自動(dòng)化機(jī)器學(xué)習(xí)管道,從而比以前更快地提供高質(zhì)量生產(chǎn)模型。
您可以在SageMaker可用的所有商業(yè)區(qū)域開始使用SageMaker管道。在CodePipeline也可用的區(qū)域,MLOps功能可用。
我們提供示例筆記本電腦來(lái)幫助您入門。立即試用,并向我們提供反饋。我們始終期待您的反饋,您可通過一貫的AWS Support聯(lián)系人向我們提供反饋,也可在針對(duì)SageMaker在AWS論壇上提出反饋。
–Julien
特別感謝我的同事Urvashi Chowdhary在早期測(cè)試期間提供的寶貴協(xié)助。