近日,AWS 宣布機器學習平台服務 Amazon SageMaker 在國内開始正式開放。這标志着 AWS 人工智能、機器學習平台服務的關鍵技術已全面進入中國。
雲計算逐漸向着 Serverless 方向發展,今後雲計算平台向開發者提供的是「服務」而不僅「伺服器」。Amazon SageMaker 就是這樣一項完全托管的服務,大幅度降低建構機器學習模型的門檻。也許有小夥伴會感覺到,之前明明做的是算法,為什麼被迫增長了很多 IT 知識?如今 SageMaker 就是為解決這一痛點誕生的。
不過機器學習平台已經那麼多了,SageMaker 又怎樣才能吸引煉丹師們的關注?從機器之心的體驗上來說,特别明顯的是它的「開放」與「好用」,雖然聽上去比較泛,但「開放」表明它支援絕大多數機器學習架構與算法,「好用」指用 IDE 寫代碼、可視化、Debug 一氣呵成。
這些亮點我們在後文都會着重介紹,現在,讓我們從頭理一理,Amazon SageMaker 到底是何許人。
SageMaker,走向「國服」
2020 年 4 月底,SageMaker 在 AWS 中國的 北京區域和甯夏區域上正式開放。這一次,SageMaker 幾乎所有元件,包括去年底剛推出的線上 IDE 工具 SageMaker Studio 都與全球同步在中國正式釋出了。
「AWS 在中國正式釋出的 SageMaker、SageMaker Studio 等工具,目前絕大多數功能都已上線。這展現了 AWS 對于中國市場的重視程度。」AWS 首席雲計算企業戰略顧問張俠在釋出活動中表示。
AWS 有一個願景:把亞馬遜在機器學習方面的經驗和能力傳遞給所有的企業和機構,而 SageMaker 在實作這一願景的過程中扮演着極為重要的角色。
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLicGcq5yYkNmYkJGMlFjMiFTNkdDOwkDZ0ETN5YGN4QTZwIWOl9CX5d2bs92Yl1iclB3bsVmdlR2LcNWaw9CXt92Yu4GZjlGbh5yYjV3Lc9CX6MHc0RHaiojIsJye.jpg)
亞馬遜提供的全棧式機器學習服務包括三層:位于底層的虛拟機器鏡像、機器學習架構和基礎架構支援,位于中層的 SageMaker 機器學習服務平台,以及最上層的各類 AI 應用服務。
通過 SageMaker,ML 模型的訓練無需開發者手動管理伺服器、搭建工具鍊、以及繁雜的調參。從完整的平台 IDE,到具體代碼與 API,SageMaker 都有一種 Pythonic 精神,簡潔易用,同時提供進階的接口。
比如上圖中的 Autopilot,這種 AutoML 子產品全流程地簡化算法人員的時間,小白也能輕松訓練個不錯的模型。而對于 ML 開發者,TF、PyTorch 甚至 Scikit-Learn 寫的算法腳本都能導入,甚至也可以自帶算法容器鏡像。而且,這些都是有完善的支援,Debug、可視化、端部署功能一個都不能少。
張俠表示,SageMaker 包含的元件,這也正是建構、訓練和部署機器學習應用所需要的所有能力,它們現在都已有了正式的「國服版」。
架構算法武器庫:開放
機器學習架構與算法早就非常豐富了,從我們寫的第一行 NumPy 代碼開始,到走向 PyTorch、TensorFlow,我們會熟悉各種架構與算法。作為新一代的煉丹師,明顯我們不會隻是用一種架構,它們都各自有擅長的領域與特點。然而各種機器學習平台,它們能滿足這樣的特點嗎,它們能做到這樣開放嗎?
諸多網際網路大廠的機器學習平台,有的也還算成熟了,但它們總會偏愛自行維護的機器學習架構。這樣确實沒什麼問題,自行維護的架構能針對硬體、UI 界面做出獨特的優化,更有利于高效運作算法。然而對于廣大開發者而言,似乎直接用自己熟悉的架構更友善,顯然這對平台的「開放性」會提出更高的要求。
AWS 在中國正式釋出的 SageMaker,就是這樣一種「開放」的機器學習武器庫。
從架構支援上來說,抛開亞馬遜維護的 MXNet,它對 TensorFlow、PyTorch 甚至 Scikit-Learn 等衆多架構都有很好的支援與優化。即使你用的自定義架構,那也可以直接通過容器在 SageMaker 中跑起來。
這種支援并不隻是說讓不同的架構在 SageMaker 能跑起來,它的重點同樣在于優化。AWS 内部有很多研究者也都采用 PyTorch 或 TensorFlow,這就為進一步優化架構提供了基礎。
舉個栗子:TensorFlow
AWS 是運作 TensorFlow 的最佳平台,因為它提供了針對 TensorFlow 的大量優化。在 256 個 GPU 的叢集擴充效率測試中,AWS 優化的 Tensorflow 的擴充效率高達 90 %,而預設的開源版本隻有 65 %。
想象一下,如果我們在 GitHub 上找到一個好項目,那麼不論它是用什麼架構寫的,我們都能導入到 SageMaker 中,充分利用 AWS 的底層優化與适配。
開放,不止架構
新一代煉丹師,從模組化到部署,很多時候我們都有自己熟悉的一套工具,例如利用 TPU 做訓練、利用 Cortex 做部署等等。SageMaker 強大的地方在于,盡管它支援全流程的端到端機器學習,但是如果我們隻部分需要 AWS,那也是沒問題的。
我們已有的武器庫能與 SageMaker 完美融合,這種開放才是 SageMaker 機器學習平台獨特的魅力。
與此同時,「開放」還展現在模型上,使用者自定義模型自不必說,SageMaker 還内置了衆多通用算法。例如做資料科學少不了的 XGBoost,兩行代碼就能訓練一個強大的模型。
衆多模型庫,再加上 SageMaker Autopilot 這樣的自動機器學習利器,連小白都能在 10 分鐘内搞定一個強大的機器學習模型。值得注意的是,Autopilot 是業内首個兼顧可控制和可視化的自動機器學習工具,它是 SageMaker 全流程開放中不可或缺的一部分。
為機器學習而生的 IDE
做機器學習算法,一半體驗在架構等工具,另一半就在 IDE 上了。PyCharm、Jupyter Notebook 等都是我們最常用的 IDE,做展示、做複雜項目都有合适的選擇。那麼對于機器學習,什麼樣的 IDE 才是最友善的?SageMaker Studio 提供了一個思路,即在統一的可視化界面寫代碼、搭模型、管理訓練、Debug 及做部署。
讀者們應該都了解,ML 中的資料預處理是最麻煩的,而在 IDE 處理資料需要特别好用的可視化,進而給我們關于資料最直覺的了解。與此同時,手動調參也需要特别好的可視化,來幫助我們對比不同算法和超參訓練出來的模型效果。
但好用的可視化程式設計通常會帶來一個問題,即 Debug 又變難了。是以模組化看起來直覺、代碼可互動,同時又容易 Debug,這就是為機器學習而生的 SageMaker Studio。
Notebook 撸代碼做實驗
在機器學習中,Notebook 已經是常見的形式了,很多雲平台都采用了這種編輯形式。因為可以與代碼互動,用它來開發機器學習代碼實在是再合适不過了。在 SageMaker Studio 中,除了 Notebook 傳統擅長可視化,還額外加了一些可視化元件以管理模型的實驗過程。
本來用 Notebook 寫輕量代碼就非常友善,再加上 SageMaker 自己提供的大量精煉 API,它們之間的配合特别融洽。對于那些費時費力的底層資源管理繁雜過程,交給 SageMaker API 就行了,剩下的隻要在 Notebook 寫下算法邏輯,這才是機器學習開發者最高效的姿勢。
雖然 SageMaker Notebook 的使用很簡單,但實際上 AWS 托管的底層計算資源、底層環境與依賴庫還是需要管理的,正是 SageMaker 屏蔽了這些底層的複雜性。而且特别友好的是,SageMaker 可以自動打包這些底層配置,然後一鍵共享 Notebook,這樣把底層都交給 SageMaker,連 ML 開發瞬間都友好了起來。
Debug 走一波
簡單直覺還隻是一個方面,作為機器學習開發者,模型建構與訓練經常也少不了 Debug,Python 代碼腳本用 VS Code 等 IDE 也還好 Debug,但是對于 Notebook,目前基本上還沒有成熟的 Debug 工具。就像大家比較熟悉的 Colab,它雖然也是采用了 Notebook,但并做不了 Debug。
SageMaker 雖然采用 了更直覺的 Notebook,但 SageMaker Debbuger 能在訓練期間自動捕獲模型資訊,例如節點的定義、張量的次元等等。這些都是 Debug 的正常操作,做到為 ML 而生的 IDE,SageMaker Debbuger 還裝備了一些進階技能:檢測梯度有沒有消失,模型是否過拟合等。
加上 Debbuger,IDE 才算得上成熟,做機器學習業務或實驗,也都離不開它。如上所示,訓練和 Debbuger 是同時進行的,我們能實時了解模型都在幹些什麼,有沒有出毛病。
最後,不論是「開放」還是「好用」,它們都隻是 SageMaker 給我們的直覺感受。本身來說,SageMaker 還有更多優質的特性,資料與模型的安全性自不必說,對機器學習流程的各個環節的支援,也為 SageMaker 賦予更多的靈活性。
SageMaker,你也可以
SageMaker 在 GitHub 上放了 160 多個示例筆記本與教程,我們現在也能免費試用兩個月,模組化、訓練和部署伺服器都有免費額度。是以不論是開發者還是小白,都能上手試一試,畢竟 AWS 的使用者基礎還是非常廣的。
「目前已有數萬家公司采用了 AWS 的機器學習服務,其數量超過其他雲服務商至少兩倍,」張俠表示。據介紹,使用 SageMaker 部署機器學習的既包括 Autodesk、拜耳、T-Mobile 等著名國際企業,也有虎牙、大宇無限、嘉誼互娛等中國客戶。
之是以使用者很多,還是在于它的功能足夠強,效率足夠高。從統計資料來看,使用 SageMaker 系列工具可以把機器學習的總體成本降低 54%,并将開發效率提升 10 倍。
「我們都知道 TensorFlow 很流行,這種工具全球大約 85% 的工作負載是由 AWS 平台承擔的,」張俠說道。「在使用 SageMaker+TensorFlow 的實際案例中,開發者們可以将模型訓練的并行擴充效率從 65% 提高到 90%,訓練時間從 30 分鐘縮短到了 14 分鐘。」
SageMaker 的強大不僅來自于 AWS 多年積累的技術,也源于這家公司與衆多使用者、合作夥伴共同建立起的生态。
「我們可以看到友商也已在提供類似的機器學習開發平台。從算法數量、服務完整性上來看,Amazon SageMaker 有很多領先的地方,」張俠表示。「最明顯的地方在于我們提供對幾乎所有主流機器學習架構的支援,同時也有大量内置算法和最新的重要功能。我們擁有大量合作夥伴,生态系統最為豐富。大量來自生産環境一線的回報,可以不斷促進工具的發展,将能夠最快的機器學習落地方法融合在我們的産品中。」
已支援了上萬客戶的 SageMaker,其生命力不容小觑,既然有免費額度試用,它還是非常值得我們開發者入手一試的。