【 MLOps 】使用 Azure Machine Learning SDK 來建立及執行機器學習管線 - 以 TensorFlow Iris 為例

【 MLOps 】使用 Azure Machine Learning SDK 來建立及執行機器學習管線 - 以 TensorFlow Iris 為例
Photo by Jeison Higuita / Unsplash

內容

  • 學習目標
  • 前置準備作業
  • 流程
  • 上傳 Dataset 到 Azure Blob
  • 建立 Microsoft Azure Machine Learning Studio
  • 建立 AzureML Pipeline

學習目標

  • 將訓練與評估的 CSV 檔案從本地端傳送至 Azure Blob
  • AzureML Datastore 連接至 Azure Blob
  • AzureML Datastore 讀取 CSV 檔案並建立對應的 Dataset 物件。
  • 建立 Azure ML PipelineData 物件,以存儲在管道的訓練和評估步驟中產生的中間資料。
  • 通過 Azure ML Pipeline 建立訓練和評估 2 個步驟
    • ① 訓練步驟負責訓練模型,並將生成的模型存儲在 Azure ML Models AssetsAzure Blob 中。
    • ② 評估步驟負責使用測試資料評估模型的性能。

前置準備作業

流程

---2023-03-29---2.38.06

上傳 Dataset 到 Azure Blob

  • 檔案結構
└── Iris
    ├── Datasets
    │   ├── test
    │   │   └── iris_test.csv
    │   └── training
    │       └── iris_training.csv
    ├── .env
    ├── app.py
    └── requirements.txt
  • 將 Dataset 下載並依上方檔案結構進行存放

  • 建立 Azure Blob

    • 在搜尋框輸入 blob 並點選 Storage accounts 的搜尋結果
      ---2023-03-29---9.02.54
    • 點選 Create
      ---2023-03-29---9.06.11
    • 輸入相關資訊後點選左下角的 Review
      ---2023-03-29---9.07.53
      ---2023-03-29---9.09.40
    • 確認相關資訊後點選 Create
      ---2023-03-29---9.11.31
    • 建立過程中
      ---2023-03-29---9.12.58
    • 點選 Go to resource
      ---2023-03-29---9.14.34
    • 建立 Container
      • 點選左邊的 Containers → 點選上方的 + Container
        ---2023-03-29---9.17.20
      • 輸入 Container 名稱後點選 Create ( 之後的程式會使用到,請記得所輸入的名稱 )
        ---2023-03-29---9.20.13
        ---2023-03-29---9.22.23
      • 建立完成
        ---2023-03-29---9.23.48
  • 取得 Account Name 與 Key

    • 點選左側的 Access keys ( 之後的程式會使用到 Storage account nameKeyConnection string )
      ---2023-03-29---1.40.48
  • 在 Iris 資料夾中建立 .env 檔案內容如下

  • 安裝相關套件

  • 撰寫上傳檔案到 Azure Blob 的 Python 程式

  • 執行上傳程式

python3 app.py

---2023-03-29---9.38.55

  • 查看 Azure Blob 所上傳的檔案

---2023-03-29---9.39.57

---2023-03-29---9.40.52

---2023-03-29---9.41.36

建立 Microsoft Azure Machine Learning Studio

  • 在輸入框輸入 azure machine learning 後點選 Azure Machine Learning 的搜尋結果

---2023-03-29---9.56.15

  • 點選上方的 + Create > 點選 New workspace

---2023-03-29---10.00.51

  • 輸入相關資訊後點選左下方的 Review + create
    ---2023-03-29---10.02.43

    ---2023-03-29---10.04.17

  • 確認相關資訊後點選左下角的 Create

---2023-03-29---10.06.04

  • 建立過程中

---2023-03-29---10.07.16

  • 點選 Go to resource

---2023-03-29---10.08.44

  • 點選 Launch studio

---2023-03-29---10.10.10

  • 開啟 Studio 後的畫面

---2023-03-29---10.14.09

建立 AzureML Pipeline

Step 1. 建立運算資源

  • 點選左側的 Compute > 再點選 + New

---2023-03-29---10.20.12

  • 輸入 Compute name 與所要使用的硬體規格後點選 Create

---2023-03-29---10.22.05

  • 建立過程中

---2023-03-29---10.24.58


Step 2. 上傳 AzureML Sample Code


Step 3. 確認執行環境

  • 開啟 run_iris_pipeline.ipynb 後確認 Compute instancePython 3.8 - AuzreML 是否為綠燈 ( 綠燈代表正常運作中 )

---2023-03-29---11.05.17


Step 4. 安裝套件與確認 SDK 版本

  • 點選 安裝套件與確認 SDK 版本 程式區塊左側的 以執行程式

---2023-03-29---1.05.00

  • 執行結果

---2023-03-29---1.06.05


Step 5. 配置工作環境

  • 點選 配置工作環境 程式區塊左側的 以執行程式

---2023-03-29---1.34.05

  • 執行結果

---2023-03-29---1.35.20


Step 6. 連接已有的 Blob

  • 修改設定資訊

    • 第 3 行修改成上面 上傳 Dataset 到 Azure Blob 區塊中所取得的 Storage account name
    • 第 4 行修改成上面 上傳 Dataset 到 Azure Blob 區塊中所取得的 Key
    • 第 5 行修改成上面 上傳 Dataset 到 Azure Blob 區塊中所建立的 Container 名稱
  • 點選 連接已有的 Blob 程式區塊左側的 以執行程式

---2023-03-29---1.45.21

  • 執行結果

---2023-03-29---1.46.24


Step 7. 設定 Blob Key Secret

  • 修改設定資訊

    • 第 2 行 value = 後面請修改成上面 上傳 Dataset 到 Azure Blob 區塊中所取得的 Key
  • 點選 設定 Blob Key Secret 程式區塊左側的 以執行程式

---2023-03-29---1.49.00

  • 執行結果

---2023-03-29---1.50.42


Step 8. 建立運算叢集

  • 修改資訊

    • 第 13 行 vm_size= 請修改成所要使用的規格
  • 點選 建立運算叢集 程式區塊左側的 以執行程式

---2023-03-29---1.52.16

  • 執行結果

---2023-03-29---1.54.15


Step 9. 設定執行環境的 config

  • 點選 設定執行環境的 config 程式區塊左側的 以執行程式

---2023-03-29---1.55.39

  • 執行結果

---2023-03-29---1.56.52


Step 10. 建立 Python 腳本步驟

  • 點選 建立 Python 腳本步驟 程式區塊左側的 以執行程式

---2023-03-29---1.58.53

  • 執行結果

---2023-03-29---2.04.37


Step 11. 提交實驗

  • 點選 提交實驗 程式區塊左側的 以執行程式

---2023-03-29---2.09.59

  • 執行結果

---2023-03-29---2.11.09


Step 12. 確認 Pipeline 執行狀況 ( 執行需花一些時間 )

  • 點選左側的 Pipelines

---2023-03-29---2.11.59

  • 點選 Step 12 所顯示的 Dispaly name

---2023-03-29---2.12.12-1

  • 執行完成

---2023-03-29---2.26.30

  • Training 的 Metrics

---2023-03-29---2.27.22

  • Evaluate 的 Metrics

---2023-03-29---2.28.39

  • Training 的 Parameters

---2023-03-29---2.29.45

  • Evaluate 的 Parameters

---2023-03-29---2.31.09


Step 13. 確認 Models

  • 點選左側的 Models

---2023-03-29---2.33.26

---2023-03-29---2.34.46

  • 點選左側的 Artifacts

---2023-03-29---2.35.57


Step 14. 確認 Datasets

---2023-03-29---2.43.13

---2023-03-29---2.44.12

---2023-03-29---2.44.56


Step 15. 確認 Datastores

---2023-03-29---2.45.41

---2023-03-29---2.46.53


Step 16. Azure Blob 查看所上傳的檔案

---2023-03-29---2.39.22

Sample Code

GitHub

List of blogs