Amazon SageMaker Canvas 初探
編輯導語:作為一款0代碼機器學習智能工具,Amazon SageMaker Canvas 在使用上會給用戶帶來什么不一樣的感受?本篇文章里,作者從“新手模式”、“上帝模式”等角度切入對該款產品進行了體驗測評,一起來看。
Amazon SageMaker Canvas 是本次測評的產品,主要用于提供“無代碼”構建人工智能模型的能力。為了明確當前的產品優勢并提出改進建議,這個評測從“新手模式”和“上帝模式”來描述整體的使用體驗。
Amazon SageMaker Canvas 是來自亞馬遜云科技公有云的一款 SaaS 化的產品。而國內的朋友可能使用國內的公有云上的 SaaS 軟件更多。
雖然從產品的基本使用邏輯上看,不管來自哪家的產品都是差不多的。但是,由于是國外廠商的產品,在具體設計上與國內公有云的產品還是多少有點差異的。這可能是國內的朋友們使用這塊產品遇到的一個“小門檻”。
接下來就開始正式的使用體驗。因為初始化的部分與 SageMaker 關系不大,先開啟“上帝模式”。
一、開始“云上之旅”
大賽的測評要求是從產品、運營、交互等角度給出使用體驗評測或者優化意見。但是作為一款云上的產品,在開始階段都要經歷一段“開始云上之旅”的過程。這段過程與具體公有云平臺和具體產品關系不大,是在云上使用產品的必經之旅。
當然,我自己在這個環節也遇到了一些小插曲,會在下面分享。
1. 注冊與支付方式
從注冊和開通的方式上看, Amazon SageMaker Canvas 與國內公有云的交互邏輯大體相同。但國外的公有云基本都是依賴信用卡支付的,并且有些是不支持銀聯的,僅支持 Visa 和 MasterCard ,比如微軟的 Azure 。
這可能是國內的朋友們體驗國外產品的一個門檻。而好在 Amazon SageMaker Canvas 可以直接用銀聯卡,我自己綁定的就是銀聯的信用卡。當然相比之下,還是咱們國內公有云的支付手段更便捷。
頁面交互的布局與國內公有云基本相同,一路跟著引導走,倒也不太需要太專業的知識。這部分采用“新手模式”完全可以搞定。完成注冊后登陸控制臺,頂部是整個平臺的頂級菜單。到這里,注冊這個步驟就算順利結束了。
2. 登錄控制臺并開通產品
控制臺(Console)是云平臺比較常見的一個概念。一方面是監控所有已經購買的資源,另一方面是給其他子產品提供了入口。
正規的入口是通過 亞馬遜云科技控制臺,依次選擇 服務?→ Machine Learning?→ Amazon SageMaker 來訪問 Amazon SageMaker 。這個路徑對于明確知道自己要使用的是一個機器學習的產品的朋友,還是比較好找的。
這里出現了一個小插曲。我一開始通過 Amazon SageMaker 這個關鍵詞直接進入了 Amazon SageMaker 這個產品。后來發現沒有 Canvas 選項,才意識到可能是某些操作出了問題。
看了主辦方提供的文檔之后,才發現是選錯了區??赡苡胁簧傩』锇楦乙粯?,在第一次注冊時候自動分配到了國內的香港區。后來切換到了美國的 us-east-1 區,然后就能看到關于 Amazon SageMaker Canvas 了。另外有一個小問題,就是切換到美東區后偶爾會遇到網絡會不穩定,多刷新幾次就行了。
在切換區之后,語言可能就變成了“English(US)”。還要繼續用中文的話,可以通過頂部菜單右上角的“設置”中切換語言。
切換區域之后,懶得再從菜單進了,直接通過控制臺頂部的搜索框輸入關鍵詞來進入 SageMaker 。這也是控制臺通常都會提供的功能。
順帶一提,如果你跟我一樣首選語言用的是“中文(簡體)”,那么 SageMaker Canvas 的中文名叫 “SageMaker 畫布” 。這個名字倒是很符合“無代碼”的意思。
3. 創建 Amazon SageMaker 域
接下來,又是一個對于非技術用戶比較有難點的事情,就是為使用 SageMaker 這個產品初始化一些配置。主要是為這個產品配置子賬號和角色,用來分配數據讀寫等權限,并配置相應的計算、存儲、網絡等資源。在國內的公有云平臺也會有類似的操作,只不過體驗做的比較好的話,會提供一套默認的初始化配置。
簡單理解,創建了一個 SageMaker 域,就相當于與給你的 SageMaker 分配了一臺“微型電腦”,用來進行所有后續的模型設計和訓練等操作。
亞馬遜云科技的設計對于小白用戶稍微有些門檻,因為你可能并不能理解這一步是要做什么。當然,直接點擊“提交”對于小白用戶來說也并沒有帶來什么困擾。
但是如果你是具有技術背景的專業型用戶,同時還有很明確的配置訴求,那么“標準配置”的模式可能更適合你。因為你可以在這里修改成自己想要的配置,從權限到網絡存儲等基本配置都能掌控。
當然如果你像我一樣是個強迫癥,改掉 default 換一個更有意義的名字可能才是頭等大事。
到這一步結束了嗎?還沒。
看到頁面上方的藍色條幅了嗎?根據剛才的配置, 亞馬遜云科技正在為你創建相關的用戶、角色,分配權限和資源等。同時域的狀態一欄也顯示為“Pending”。這個過程中我們做不了什么,等著吧。
到這一步,看到綠色條幅提示,并且下面域的狀態也變成了 Ready ,才算真正可以使用了。
總結起來,整個注冊過程的流程圖如下:
整個初始化過程對于小白用戶可能有些云里霧里,但是無可厚非,因為其他公有云產品基本也是這樣的。好在這些配置都是一次性的,如果沒有修改配置的訴求,那么以后再也不會經歷這個過程了。不過,如果能通過沙盒環境或者 Demo ,讓小白用戶更快上手,可能就更好了。
二、開始使用 SageMaker Canvas
從左面的菜單看, SageMaker 提供了多種開發工具環境:
- “Studio”對應的是做算法的朋友比較熟悉的 Jupyter Notebook (版本 1.2.21) 。由于不是本次評測的重點就簡單看了下,開發語言用的是 Python 3.7.10 ,環境是 Anaconda 4.6.14;
- “RStudio”對應的應該是數據分析師朋友可能更熟悉一點的 R 語言環境。但是不知道問什么,我沒打開;
- “畫布”就是我們本次要評測的 Canvas 了。
順帶一提,下面的“圖像”,英文原詞是“Images”。按國內的用詞習慣,可能翻譯成“鏡像”更合適一些。
1. 啟動 Canvas
Canvas 的入口在“用戶”列表中的操作列中,從下拉框里選擇“畫布”即可。如果你也想我一樣創建了多了個用戶,選擇自己需要用的那個用戶。
之后是一段過場動畫。這個過長我還是等了一些時間的,大概幾分鐘的樣子。這部分應該包括了創建和啟動應用實例,另外就是網絡穩定性可能導致一些延遲。不行就多等等,或者刷新一下。
進入到下面這頁面,我們就正式開始使用 Canvas 了。有點意外的是,視覺設計風格與亞馬遜云科技完全不同,似乎更 Flat 了一些。
到這里我們繼續開啟“新手模式”,完全按照頁面提示來操作。點擊頁面主區域的“+ New Model”,開始創建我們的第一個模型。
不過看看左面菜單,提供了兩個主要功能,一個是模型(Models),一個是數據集(Datasets)。做算法的同學在實際工作中大量精力需要鋪在數據處理上,因此直接新建模型隱隱感覺可能會遇到數據的問題,而且對于非算法背景的同學,與數據的互動可能也是比較吃力的一點。
接下來就看 Canvas 是如何解決這個問題的。
新建模型后, Canvas 按照常規操作提供了新手引導(intro)??戳讼?,雖然只是靜態的截圖,但是確實把使用 Canvas 進行建模的全過程介紹清楚了。其中第一步就提到了前面擔心的問題,也就是數據的問題如何解決。
如果關閉了操作引導之后還想再看一次,可以從左邊菜單中選擇“Help”,就又能看到這個彈窗了。
不過咱就是說,這個截圖里的圖標裂了,官方修復一下呀 ~
2. 開始建立模型
關閉引導之后,就正式開始建模了。通過頁面可以看到一個 Model 包括 4 個部分:
① Select 代表導入和管理訓練數據集
② Build 代表建模的過程,主要用于確定算法模型中的預測目標
③ Analyze 代表對模型的分析和評價,包括準確率和貢獻度等
④ Predict 代表模型部署后對真實數據集做預測
1)準備數據集
這里我們采用一個公開數據集,是關于共享單車的需求量的:https://www.kaggle.com/competitions/bike-sharing-demand 。
選擇其中的訓練集 train.csv 和測試集 test.csv ,通過 Amazon S3 將數據文件上傳到一個 Bucket (這一段具體步驟略過)。切換到“Select”頁簽下,點擊“Import Data to Canvas”,就能看到導入數據的指引了。這里直接選擇 Amazon S3 方式,選擇上傳的數據文件。
這一步怎么評價呢?也算是使用云產品的基本操作吧。不過可能會讓不少小白用戶再次遇到一個坎。如果能在 Canvas 內部提供與 S3 之間的數據同步功能,可能體驗會更好。雖然 Canvas 這里也確實提供了 Upload 方式,但是需要先配置與其他存儲介質的鏈接參數。實話實說,這對于小白來說就有些“硬核”了。
2)Build 階段
導入并選擇數據集之后就進入了 Build 階段了。模型數據集中的字段包括:
- datetime – hourly date + timestamp
- season – 1 = spring, 2 = summer, 3 = fall, 4 = winter
- holiday – whether the day is considered a holiday
- workingday – whether the day is neither a weekend nor holiday
- weather – 1: Clear, Few clouds, Partly cloudy, Partly cloudy, 2: Mist + Cloudy, Mist + Broken clouds, Mist + Few clouds, Mist, 3: Light Snow, Light Rain + Thunderstorm + Scattered clouds, Light Rain + Scattered clouds, 4: Heavy Rain + Ice Pallets + Thunderstorm + Mist, Snow + Fog
- temp – temperature in Celsius
- atemp – “feels like” temperature in Celsius
- humidity – relative humidity
- windspeed – wind speed
- casual – number of non-registered user rentals initiated
- registered – number of registered user rentals initiated
- count – number of total rentals
這里我們選擇預測的目標字段是 count 。在模型類型(Model Type)中選擇數值預測(Numeric prediction)(暫時忽略那個小三角警告)。
在實際創建模型之前, Canvas 提供了預覽模型效果的功能。點擊“Preview model”,下方會展示均方根誤差(RMSE)和特征貢獻度(Column Impact)。
接下來我們正式構建模型,點擊“Quick build”。之后還是要等一下。
3)模型分析
完成模型構建后,我們就能在 Analyze 菜單中看到模型的各方面情況了。主要包括整體情況(Overview)和評分(Scoring)兩部分。實話實說,這塊我就不是很專業了哈哈哈,所以也就不瞎解讀了。
最后再說一點,就是在 Scoring 頁簽下還有一個 Advanced metrics 入口。如果你沒有找到自己想看的指標,可以在這里再找一下。
4)模型預測
我們假設模型的訓練結果看起來一切良好,那么接下來就是實際使用這個模型做預測了。
切換到 Predict 頁簽,在選擇數據集中點擊 Select dataset ,選中前面已經準備好的 test.csv 。
這時出現了第二個小插曲:test.csv 中沒有 casual 和 registered 兩個字段,導致這個數據集不能用。
只好在自己電腦上處理了一下 test.csv ,“偽造”了兩列并重新上傳,這樣就可以用了。
點了 Generate predictions 之后,模型就開始做預測了。預測的過程還是挺快的,但是到這里,交互邏輯與前面幾個步驟稍微有點不一樣了。我以為預測的詳細結果會直接出現在頁面的下方,結果收到了一條通知,說預測結果已經完事了。好在這個通知是不會自動關閉的,不然可能不少小白會停留在這里不知所措了。
當然,從預測這件事本身出發,我是可以理解這個設計的。畢竟可能需要用一個模型對多個數據集做預測。以列表的形式確實更容易管理所有的預測動作和結果。
點擊通知中的 View 之后,我們就看到預測結果了。
當然,更正式的方式是從頁面下方的列表中,點擊 View 按鈕。
至此,一個基本的機器學習模型的全過程就結束了。其實,在頁面的最上方,模型名稱的右邊,還提供了對于模型的版本管理和分享等功能。我們可以不斷搜集新數據對模型進行訓練,并通過版本保留之前訓練的模型。
三、總結
1. 上手門檻
從整體看使用難度并不高,Canvas 確實做到了“無代碼”。所有的數據、訓練和預測工作可以通過交互界面完成。當然,前提是你需要了解機器學習建模的基本步驟和含義。
不過,在前面的評測中也提到了,作為一款公有云上的 SaaS 產品,對公有云上的存儲、計算、權限管控等相關子系統、子產品也是有依賴的。這意味著,在必要的時候,你需要了解并使用其他子系統、子產品,才能完成一個使用流程。我們在評測開頭區分了“新手模式”和“上帝模型”。下面我就列舉一下在整個評測過程中,分別涉及到哪些環節:
- 【新手模式】賬號注冊;
- 【新手模式】綁定支付方式;
- 【上帝模式】初始化 SageMaker ,創建必要的用戶、角色;
- 【上帝模式】如果處在沒有提供 Canvas 的區,需要手動切區;
- 【上帝模式】通過 Amazon S3 上傳需要的數據到某個 Bucket ;也可以選擇通過鏈接參數連接到 Snowflake 或者 Redshift ;
- 【新手模式】選擇已經上傳的數據集;
- 【新手模式】選擇要預測的數據字段;
- 【新手模式】切換模型類型,或者預覽模型的效果;
- 【新手模式】啟動模型訓練,等待訓練完成;
- 【新手模式】查看訓練結果;
- 【新手模式】進行模型預測。
從比例上看,也印證了整體使用難度不高的結論。希望亞馬遜云科技能在與 S3 等系統的聯動方面進一步降低使用難度,這樣對非技術背景的產品、運營朋友們可能更容易上手使用。
2. 功能建議
作為一款主打“無代碼”建模的機器學習平臺, Canvas 確實覆蓋了一個機器學習模型從數據到應用的全主干流程。但也不可否認,Canvas 中的每個環節其實可以做得更“寬”一些,通過默認值的方式兼顧純粹的新手用戶和稍微有一點“探索精神”的入門級用戶。
就比如,上傳到 S3 的數據文件由于遇到了字段不一致的小插曲,需要進行修改。但是我卻沒有找到能在線上直接處理數據集的地方。不管是修改數據集文件,還是在模型訓練的時候指定數據集中的字段,這兩個功能都沒找到。如果確實還沒有加的話,我建議 Canvas 考慮下加上這個功能。
如果你覺得它相比 Jupyter Notebook 這種平臺功能不夠豐富強大,確實,不過可以看出這兩個平臺本來的定位就是面向不同人群的。
我覺得 Canvas 在嘗試做的,是向“非算法專業”的用戶屏蔽底層的復雜性,只把真正需要“人”來決定的事情暴露出來。
當然這種嘗試在專業用戶眼中可能是“不完美”的,甚至是“漏洞百出”的。從我自身的工作經歷中也能體會到,當我們想把幾行代碼就能搞定的事情變成交互功能提供給不懂代碼的人時,可能反而把簡單的事情復雜化了。但也正是這種不完美的現狀,給我們繼續去探索問題本質和了解用戶訴求增添了一份動力。
作者:李陽
本文由 @御豪同學 原創發布于人人都是產品經理,未經許可,禁止轉載
題圖來自 Unsplash,基于 CC0 協議
- 目前還沒評論,等你發揮!