Skip to content

ogckw/aws-sagemaker-workshop

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

AWS SageMaker工作坊

AWS SageMaker是一個全受管的機器學習服務。從監督式學習到非監督式學習,從決策樹到深度學習,資料科學家可以都輕鬆的將自己的分析流程及演算法實現在上面,並可以使用AWS最佳化過的演算法來進行分析。特色為貼近目前開發者的生態體系,例如:使用Jupyter Notebook開發、可以使用Docker客製化環境、整合SDK可以跨語言使用提供其他團隊使用,目前提供AWS Cli、.NET、C++、Go、Java、JavaScript、PHP、Python、Ruby等SDK。

Created by Hans (github: https://github.com/ogckw)

SageMaker元件說明

SageMaker架構

sagearch

  • S3 Bucket

    提供SageMaker儲存及讀取訓練資料、存放模型

  • Container Registry

    提供程式碼執行環境的image

  • Notebook Instance

    用於資料科學家互動式分析服務,可以使用資料科學家常使用的Jupyter Notebook分析並分享給合作團隊。

  • ML Training Service

    用於訓練及分析資料運算服務,可以利用分散式演算法來進行分散式運算,不用管理叢集的基礎設施,讓資料科學家只用專注在算法上而不是管理叢集。

  • ML Hosting Service

    用於最終提供預測或分類算演法結果服務,不用管理叢集的基礎設施,可以輕鬆的整合任何語言呼叫演算法使用,就像在使用習慣語言中的SDK一樣。

Workshop 流程教學指引

預先要求

  • AWS帳號並有Admin權限
  • 能連上網路且足夠順暢的電腦
  • 瀏覽器為Chrome或Firefox
  • 基礎的IAM、EC2、S3知識

Module0 Prepare Environment 約10分鐘

準備基礎環境

  1. 登入AWS

    本Lab可選擇的Region如下列,請確保接下來開的服務都在同個Region,這邊範例使用US East (N. Virginia)

    1. US East (N. Virginia)
    2. US East (Ohio)
    3. US West (Oregon)
    4. EU (Ireland)

    確認自己所在的Region為US East (N. Virginia)

    login

  2. 建立S3 Bucket提供之後進行Module使用

    creates3

    creates3

    輸入S3 名稱及區域

    Bucket Name: 請填入想要的名稱

    這邊的範例使用hans-work-201804

    注意! S3 bucket名稱為全球唯一,重覆的名稱會無法建立,所以請勿照抄範例,請自己想一個適合的名稱

    Region: US East (N. Virginia)

    creates3 

    一直選Next直到建立好bucket

    creates3

    creates3

    creates3

    creates3

Module1 Introduction to Notebook Instance 15分鐘

建立一個資料科學家探索資料用機器並探索資料

  1. 建立Notebook Instance

    選擇服務SageMaker

    createsagemaker

    建立Notebook Instance

    createsagemaker

    設定Notebook Instance規格

    Notebook instance name: 請填入想要的名稱

    Notebook instance type: 請選擇想要的型號

    建議instance type選擇ml.t2.mediumml.m4.xlarge

    createsagemaker

    設定Notebook所使用的IAM Role權限

    createsagemaker

    填入剛剛建立的S3 bucket名稱後建立Role

    createsagemaker

    建立成功畫面並確認VPC - optional選擇No VPC後選擇Create notebook instance

    createsagemaker

    會出現建立中的畫面

    createsagemaker

    建立完成看到InService後點選Open

    createsagemaker

    瀏覽器會跳出新的視窗,恭喜你!成功建立第一個資料科學家所使用的環境

    createsagemaker

  2. 探索資料

    選擇New建立新的資料夾並改名為video-game-sales

    createsagemaker

    createsagemaker

    createsagemaker

    點選進入新建的資料夾並上傳檔案cht-video-game-sales-xgboost.ipynb

    createsagemaker

    createsagemaker

    createsagemaker

    進入Notebook開始開發

    createsagemaker

    簡易介紹Jupyter Notebook使用方式,Jupyter Notebook是一個資料科學家常使用的開發工具,舉例來說,剛剛上傳的cht-video-game-sales-xgboost.ipynb為一個Notebook,一個Notebook又由一個個Cell組成程式碼來達到與資料分析跟互動。 紅框框起來的部分是編輯程式碼及執行的地方,稱為Cell, 透過滑鼠左建點擊選取想要的Cell 使用Shift + Enter來執行該個Cell內的程式碼

    createsagemaker

    或選Run也可以執行該Cell的程式碼

    createsagemaker

    執行中的Cell會顯示左側框框(In[ ])會顯示*

    createsagemaker

    修改S3 Bucket成自己剛剛建立的Bucket名稱

    createsagemaker

    接下來可以照著Notebook上的指示開發

    請注意!!! 本程式碼腳本會上下互相依賴,請務必照順序執行Cell,請勿隨意重新整理網頁,如果重新整理網頁之前執行的內容會消失

Module2 Introduction to ML Training Service 約15分鐘

建立一個資料科學家運算跟分析機器

  1. 建立ML Training Service Instance

    設定要訓練的工作,例如要用什麼機器,在哪個Region

    createsagemaker

    createsagemaker

    XGBoost演算法要輸出模型的位置以及超參數等設定

    createsagemaker

    開始訓練,這邊準備的範例約需要訓練6-10分鐘

    createsagemaker

  2. 監控訓練狀態

    可以回到AWS的Console看到UI介面上的設定

    createsagemaker

    訓練的狀態

    createsagemaker

    CloudWatch會紀錄訓練的log

    createsagemaker

Module3 Introduction to ML Hosting Service 約15分鐘

建立一個機器學習提供預測或分群服務使用

  1. 建立ML Hosting Service Instance

    指定模型

    createsagemaker

    設定EC2規格

    createsagemaker

    建立服務的Endpoint約需要8-10分鐘

    createsagemaker

  2. 開始評估模型

    createsagemaker

    建立混淆矩陣 (Confusion Matrix)

    createsagemaker

    計算預測的準確率

    createsagemaker

Clean Up

清除你的環境避免額外的收費

  1. 清除ML Hosting Service (清除Endpoints)

    createsagemaker

  2. 清除Endpoint Configuration

    createsagemaker

  3. 清除Models

    createsagemaker

  4. 清除Notebook

    先停止

    createsagemaker

    確認停止後刪除

    createsagemaker

  5. 清除S3

    搜尋剛剛建立的S3 Bucket並選擇刪除

    createsagemaker

    填入想要刪除的S3 Buckcet名稱後按確認

    createsagemaker

  6. 清除IAM

    createsagemaker

    createsagemaker

    createsagemaker