美國時間12月8日,在亞馬遜 re:Invent 2020 上,AWS 人工智慧副總裁 Swami Sivasubramanian 宣佈了雲上機器學習服務——Amazon SageMaker的諸多更新,從這次更新中,看到了雲上機器學習方案的優越性。
在全球釋出後的第一時間,AWS大中華區雲服務產品管理總經理顧凡和AWS大中華區機器學習產品總監代聞及時向中國媒體分享並解讀了這次連珠炮一樣的釋出。
從顧凡的介紹中瞭解到,2016年,AWS開始在雲上提供機器學習服務,2017年開始加速,最近三年,每年新增的服務和功能超過200個,全球有超過十萬家企業使用者在使用AWS雲上的機器學習服務,這些使用者遍佈多個行業,可謂遍地開花。從AWS的全球化視野來看,中國區使用者是在機器學習應用方面走的比較領先的。
在談到AWS構建雲上機器學習服務的側重點時,顧凡提到了三點,一個是在服務的寬度和深度上發力,一個是考慮與使用者應用環境的整合,最後一個是幫助使用者構建機器學習的能力,要授人以漁。
上圖提到的是AWS的雲上機器學習服務的三個維度:多元的基礎架構,包括各種AI開發框架、各種算力架構型別以及各種機器學習例項主機;高階的API服務,各種訓練好的模型,只需呼叫API即可使用;另外一層是機器學習煉丹爐一樣的服務——Amazon SageMaker,是AWS最具特色的雲上機器學習服務,是目前已知同類產品中功能最強大的一個。
隨著資料越來越多的出現在雲上,隨著雲上機器學習功能的完善,體驗的一步步最佳化,雲上機器學習優勢將更明顯,此次新發布中,分散式的機器學習方案就非常體現雲的優越性,同時也能明顯感覺到,企業對機器學習的接受度在快速提高,應用更加普遍了,機器學習不再是紙上談兵,一個行之有效的服務可以幫助企業快速落地機器學習的能力。
在詳細介紹此次釋出的內容前,先簡單介紹下我個人對新功能的看法:
其中有幾個功能是預料之中的,比如Amazon SageMaker Data Wrangler是做資料準備工作的,這是繼續GroundTruth之後,在資料準備方面的又一個大動作,它透過預配置的一些操作來幫助使用者進行資料準備,能節省很大一部分資料準備的工作時間。此前一直覺得AWS在這部分做的不多,這下做了很好的補充。
機器學習的工作流(Pipeline)工具Amazon SageMaker Pipelines也是預料之中的釋出,能幫助使用者分享和復現機器學習的訓練過程,便於組織內協作,還配合訓練迭代記錄工具來最佳化模型。當機器學習應用於生產環境中,成了一種家常便飯一樣的操作,工作流就非常有必要。
最能體現雲上機器學習優越性的釋出Distributed Training on Amazon SageMaker。以分散式來進行機器學習訓練是很多人翹首以盼的高階特性,機器學習大都侷限在單臺裝置上,為此,很多人不得不選一臺配置儘可能高的機器,但訓練速度仍舊侷限在單臺裝置的算力。Distributed Training on Amazon SageMaker把訓練負載分配到多臺裝置上,讓訓練時間變的可控,模型訓練和迭代會更及時。我最大的感受是,這種分散式的方案最能體現雲上機器學習的優越性。
有幾個功能期待值不是特別高,但做出來仍非常有價值,比如Amazon SageMaker Feature Store,是管理特徵資料的,便於分享和複用特徵資料;Deep Profiling for Amazon SageMaker Debugger 是檢視訓練過程資源利用情況的工具,能最佳化成本;Amazon SageMaker Edge Manager是幫助把模型執行在邊緣端的工具;
最讓我驚訝的是Amazon SageMaker Clarify還能進行偏差檢測和模型解釋。在訓練前,能結合Amazon SageMaker Data Wrangler來分析檢測資料是否有傾向性,是否公正,能檢測資料分佈的情況並給出提示。在模型訓練完成,在推理階段,還能幫使用者看出來哪些特徵對模型的影響比較大。有類似能力的方案似乎並不多,能讓開發者對於模型本身有更深的認識,為模型最佳化找方向。
以下內容是更為具體的介紹:
1,Amazon SageMaker Data Wrangler ——資料清洗、特徵提取神器
機器學習的訓練需要資料,但是有很多資料不能直接拿來做訓練,需要做處理,比如,處理資料格式不一樣的情況,要處理資料缺失的情況,處理資料明顯出錯的情況等等,這種把資料規範化的過程就屬於資料準備過程,然後,還需要將資料轉化為特徵,這部分工作稱為特徵工程。
在機器學習工作中,這些工作要消耗開發人員大量的時間。Amazon SageMaker Data Wrangler就是為了簡化這一過程。
Amazon SageMaker Data Wrangler首先可以從多種資料來源接收資料,然後,用內建的300多個數據轉換器,對特徵進行規範化、轉換和組合,將原始資料進行處理後得到可用於訓練的資料,整個構成不需要使用者寫一行程式碼。
轉換過程能在Amazon SageMaker Studio裡檢視,看這些轉換是否符合預期。這些提取出來的特徵資料會儲存在 Amazon SageMaker Feature Store 中,以供重複使用。
2,Amazon SageMaker Feature Store——特徵儲存和管理神器
Amazon SageMaker Feature Store 提供了一個新的儲存庫,可以儲存、更新、檢索和共享用於訓練和推理的特徵資料,如果沒有這一服務,使用者只能把特徵資料存在S3上。
真的需要這種服務嗎?其實,AWS是考慮到很多特徵(Feature)需要複用的情況,包括同一個人訓練不同模型,同一家公司不同部門都可能會複用特徵,作為機器學習專家的AWS發現了複用特徵時會的管理負擔,於是就推出了Amazon SageMaker Feature Store。
在訓練過程中,需要大批次訪問特徵資料,推理過程中,模型需要實時訪問部分特徵資料。兩個過程需要使用一樣的特徵資料,但有不同的訪問模式,開發者自己來做這件事其實並不容易。
3,Amazon SageMaker Feature Store就是為了解決這一問題,它提供了一個可供開發人員訪問和共享特徵的服務。
訓練階段它能方便地組織和更新大批次特徵資料,推理階段它能提供單毫秒級的低延遲訪問,來訪問少量特徵資料,既降低了生成模型的難度,又提供高了預測的精度和預測的效能。
Amazon SageMaker Feature Store 整合在 Amazon SageMaker Studio 中,
4,Amazon SageMaker Pipelines 實現工作流管理和自動化
開發過程中的CI/CD可以加速軟體開發和部署的效率,為了加速機器學習的工作效率,Amazon SageMaker Pipelines出現了,這是第一個專為機器學習構建的CI/CD(持續整合和持續交付)服務,目前此類服務很少,而且,使用起來比較麻煩。
Amazon SageMaker Pipelines可以設定機器學習的工作流,包括資料載入步驟、資料轉換過程(用Amazon SageMaker Data Wrangler)、儲存特徵(用Amazon SageMaker Feature Store)、訓練配置及演算法設定、除錯步驟,以及最佳化步驟,設定機器學習的全流程。
Amazon SageMaker Pipelines可以使用相同的設定來重複進行端到端的工作流,也可以定期使用新資料重新執行工作流,來更新模型,更新模型的過程可以用Amazon SageMaker Experiments來記錄,幫助開發者調參和迭代模型。
建立的Amazon SageMaker Pipelines可以在團隊之間共享和重複使用,可以用一個工作流重新建立一個模型,也可以在基礎上修改,建立一個新的模型。
使用者可以透過Amazon SageMaker Studio來使用Amazon SageMaker Pipelines。
5,使用 Amazon SageMaker Clarify進行偏差檢測和模型解釋
開發人員有時會嘗試使用開源工具檢測訓練資料中的統計偏差,這需要大量的程式設計工作。而Amazon SageMaker Clarify能幫助使用者檢測整個機器學習工作流中的統計偏差,並能為模型所做的預測提供解釋。
Amazon SageMaker Clarify還與Amazon SageMaker Experiments整合使用,它還能詳細說明輸入到模型中的每個特徵是如何影響預測的。最後,Amazon SageMaker Clarify與 Amazon SageMaker Model Monitor整合,一旦模型特徵的重要性發生偏移,導致模型預測質量發生改變,它就會提醒開發人員。
6,用 Deep Profiling for Amazon SageMaker Debugger 做模型訓練剖析
Deep Profiling for Amazon SageMaker Debugger 能夠自動監控系統資源利用率,為訓練瓶頸提供告警。開發人員沒有一個標準的監控系統利用率的方法(例如 GPU、CPU、網路吞吐量和記憶體 I/O)以識別和排除訓練作業中的瓶頸。因此,開發人員無法以最快的速度、最高的成本效益來訓練模型。
Amazon SageMaker Debugger透過最新的 Deep Profiling 功能擴大了監控系統資源利用率的範圍,在 Amazon SageMaker Studio 中或透過 AWS CloudWatch 傳送訓練期間的問題告警,將使用情況關聯到訓練作業中的不同階段,或者訓練期間的特定時間點。
Amazon SageMaker Debugger 還可以根據告警觸發別的操作,比如,當檢測到 GPU 使用情況不正常時,即停止訓練作業。Amazon SageMaker Debugger Deep Profiling 目前支援 PyTorch、Apache MXNet 和 TensorFlow 等框架,無需在訓練指令碼中更改任何程式碼即可使用。
7,用 Distributed Training on Amazon SageMaker 縮短訓練時間
Distributed Training on Amazon SageMaker 使得訓練大型複雜深度學習模型的速度比當前的快上兩倍。當一些模型太大,無法容納在單個 GPU 提供的記憶體中時,使用者會嘗試在多個 GPU 間拆分模型,但拆分模型的方式和調整訓練程式碼的過程非常複雜。業內也有一些別的實現方案,是許多人都致力於實現的一個功能。
為了克服這些挑戰,AWS拿出了自己的解決方案,用Distributed Training on Amazon SageMaker 提供兩種分散式訓練功能,一種是拆分資料,一種是拆分訓練好的模型。
第一種,Distributed Training 與 Amazon SageMaker 模型並行引擎一起,透過在多個 GPU 間自動分割資料,將訓練作業從一個 GPU 擴充套件到數百個或數千個 GPU,將訓練時間縮短多達 40%。
第二種,Distributed Training 與 Amazon SageMaker 模型並行引擎一起,自動剖析和識別分割模型的最佳方式,在多個 GPU 上高效分割具有數十億引數的大型複雜模型。
使開發人員能夠在不增加成本的情況下,提高大型模型的訓練速度,這一功能充分體現了雲上分散式架構的優勢。
8,使用 Amazon SageMaker Edge Manager管理邊緣裝置模型
Amazon SageMaker Edge Manager 可以幫助開發人員最佳化、保護、監控和維護部署在邊緣裝置叢集上的機器學習模型。
能在降低記憶體佔用率的同時,提升執行速度,而且,準確性也沒有損失,當發現模型出現問題,可以重新訓練模型以便開發人員不斷提高模型的質量。
透過Amazon SageMaker JumpStart開啟機器學習之旅
Amazon SageMaker JumpStart 為開發人員提供了一個易於使用、可搜尋的介面,用於查詢同類最佳解決方案、演算法和 notebook 示例。
當前,缺乏機器學習經驗的客戶很難開始機器學習部署,而高階的開發人員發現很難將機器學習應用到所有應用場景。
透過 Amazon SageMaker JumpStart,客戶現在可以快速找到針對其機器學習場景的相關資訊。新接觸機器學習的開發人員可以從多個完整的端到端機器學習解決方案中進行選擇(例如欺詐檢測、客戶流失預測或時序預測),並且可以直接部署到 Amazon SageMaker Studio 環境中。有經驗的使用者則可以從一百多個機器學習模型中選擇,快速開始模型構建和訓練。