共用方式為


教學課程:定型和部署 Azure Machine Learning 模型

適用於: 是圖示 IoT Edge 1.1

重要

IoT Edge 1.1 終止支援日期為 2022 年 12 月 13 日。 如需此產品、服務、技術或 API 的支援資訊,請參閱 Microsoft 產品生命週期。 如需更新至最新版IoT Edge的詳細資訊,請參閱 更新IoT Edge

在本文中,我們會進行下列工作:

  • 使用 Azure Machine Learning Studio 定型機器學習模型。
  • 將定型的模型封裝為容器映像。
  • 將容器映像部署為 Azure IoT Edge 模組。

您能運用 Machine Learning 工作室進行實驗、定型及部署機器學習模型的基本區塊。

此文章中的步驟通常是由資料科學家執行的。

在教學課程的這個區段中,您將會了解如何:

  • 在 Azure Machine Learning 工作區中建立 Jupyter Notebook 來定型機器學習模型。
  • 容器化訓練過的機器學習模型。
  • 從容器化機器學習模型建立 IoT Edge 模組。

必要條件

此文章是關於在 IoT Edge 上使用 Machine Learning 的系列文章之一。 本系列中的每篇文章皆以先前文章中的工作為基礎。 如果您是被直接引導至此文章,請參閱本系列中的第一篇文章

設定 Azure Machine Learning

我們會使用 Machine Learning 工作室來裝載兩個 Jupyter Notebook 和支援檔案。 在這裡,我們會建立並設定 Machine Learning 專案。 如果您尚未用過 Jupyter 或 Machine Learning 工作室,以下是兩份入門文件:

注意

設定服務之後,便可以從任何電腦存取 Machine Learning。 您在設定期間應使用開發 VM,其具備您所需的所有檔案。

安裝 Azure Machine Learning Visual Studio Code 擴充功能

開發 VM 上的 Visual Studio Code 應已安裝此延伸模組。 如果您在不同的執行個體上執行,請重新安裝延伸模組,如設定 Visual Studio Code 延伸模組中所述。

建立 Azure Machine Learning 帳戶

若要在 Azure 上佈建資源及執行工作負載,請使用您的 Azure 帳戶認證登入。

  1. 在 Visual Studio Code 中,選取功能表列中的 [檢視]>[命令選擇區],以開啟命令選擇區。

  2. 在命令選擇區中輸入命令 Azure: Sign In ,以開始登入流程。 依照指示完成登入登入。

  3. 建立 Machine Learning 計算執行個體以執行您的工作負載。 在命令選擇區中,輸入命令 Azure ML: Create Compute

  4. 選取 Azure 訂閱。

  5. 選取 [+ 建立新的 Azure ML 工作區],然後輸入名稱 turbofandemo

  6. 選取您在本示範中使用的資源群組。

  7. 您應該會在 Visual Studio Code 視窗右下角看到工作區建立的進度:建立工作區:turobofandemo。 此步驟可能需要一兩分鐘的時間。

  8. 請等候工作區建立成功。 畫面應該會顯示已建立 Azure ML 工作區 turbofandemo

上傳 Jupyter Notebook 檔案

我們會將範例筆記本檔案上傳到新的 Machine Learning 工作區。

  1. 移至 ml.azure.com 並登入。

  2. 選取您的 Microsoft 目錄、Azure 訂用帳戶和新建立的 Machine Learning 工作區。

    顯示選取 Azure 機器學習 工作區的螢幕快照。

  3. 登入 Machine Learning 工作區之後,請使用左側的功能表,移至 [筆記本] 區段。

  4. 選取我的檔案索引標籤。

  5. 選取 [上傳] (向上箭號圖示)。

  6. 移至 C:\source\IoTEdgeAndMlSample\AzureNotebooks。 選取清單中的所有檔案,然後選取 [開啟]

  7. 選取 [我信任這些檔案的內容] 核取方塊。

  8. 選取 [上傳] 開始上傳。 然後在程序完成之後,選取 [完成]

Jupyter Notebook 檔案

請檢閱您上傳到 Machine Learning 工作區中的檔案。 本教學課程這個部分的活動橫跨兩個使用一些支援檔案的筆記本檔案。

  • 01-turbofan_regression.ipynb:此筆記本使用 Machine Learning 工作區來建立及執行機器學習實驗。 此筆記本大致會執行下列步驟:

    1. 從裝置控管所產生的 Azure 儲存體帳戶下載資料。
    2. 探索並準備資料,然後使用資料來定型分類器模型。
    3. 使用測試資料集 (Test_FD003.txt) 從實驗評估模型。
    4. 將最佳分類器模型發佈至 Machine Learning 工作區。
  • 02-turbofan_deploy_model.ipynb:此筆記本會採用在上一個筆記本中所建立的模型,並用它來建立已準備好部署至 IoT Edge 裝置的容器映像。 此筆記本會執行下列步驟:

    1. 為模型建立評分指令碼。
    2. 使用儲存在 Machine Learning 工作區中的分類器模型來產生容器映像。
    3. 在 Azure 容器執行個體上將該映像部署為 Web 服務。
    4. 使用 Web 服務來驗證模型及映像是否能如預期般運作。 已驗證的映像將會在此教學課程的建立和部署自訂 IoT Edge 模組部分中,部署至我們的 IoT Edge 裝置。
  • Test_FD003.txt:此檔案包含我們將在驗證已定型分類器時作為測試集使用的資料。 為求簡化,我們選擇使用針對原始競賽所提供的測試資料作為測試集。

  • RUL_FD003.txt:此檔案包含 Test_FD003.txt 檔案中每個裝置的最後一個週期的剩餘使用年限 (RUL)。 請參閱 C:\source\IoTEdgeAndMlSample\data\Turbofan 中的 readme.txt 和 Damage Propagation Modeling.pdf 檔案,以取得該資料的詳細說明。

  • Utils.py:包含用來處理資料的 Python 公用程式函式。 第一個筆記本包含這些函式的詳細說明。

  • README.md:此讀我檔案描述使用筆記本。

執行 Jupyter Notebook

您現已建立好工作區,因此可以接著執行筆記本。

  1. 從 [我的檔案] 頁面,選取 [01-turbofan_regression.ipynb]

    顯示選取要執行之第一個筆記本的螢幕快照。

  2. 如果該筆記本被列為 [不受信任],請選取位於筆記本右上方的 [不受信任] 小工具。 出現對話方塊時,請選取 [信任]

  3. 為了獲得最佳結果,請參閱每個資料格的文件,並個別加以執行。 選取工具列上的 [執行]。 之後,您會發現執行多個儲存格較為方便。 您可以忽略升級和淘汰的警告。

    儲存格在執行時會顯示以方括號括住的星號 ([*])。 當儲存格的作業完成時,星號會以數字取代,並可能會出現相關輸出。 筆記本中的儲存格會循序建置,而且一次只能執行一個儲存格。

    您也可以使用 [儲存格] 功能表的執行選項。 選取 Ctrl+Enter 以執行儲存格,然後選取 Shift+Enter 以執行儲存格並前進到下一個儲存格。

    提示

    為了讓資料格作業保持一致,請避免在瀏覽器中從多個索引標籤執行相同的筆記本。

  4. 在 [設定全域屬性] 指示後面的儲存格中,輸入您的 Azure 訂用帳戶、設定和資源的值。 然後,執行資料格。

    顯示筆記本中設定全域屬性的螢幕快照。

  5. 在 [工作區詳細資料] 前面的儲存格中,在儲存格執行後,尋找指示您登入以進行驗證的連結。

    顯示裝置驗證登入提示的螢幕快照。

    開啟連結並輸入指定代碼。 此登入程序會使用 Microsoft Azure 跨平台命令列介面,驗證 Jupyter Notebook 以存取 Azure 資源。

    顯示裝置確認上驗證應用程式的螢幕快照。

  6. 在 [瀏覽結果] 前面的資料格中,複製執行識別碼中的值,然後將其貼到 [重新組成執行] 後面的資料格中包含的執行識別碼。

    顯示在儲存格之間複製執行識別碼的螢幕快照。

  7. 執行筆記本中其餘的資料格。

  8. 儲存筆記本並返回您的專案頁面。

  9. 開啟 02-turbofan_deploy_model.ipynb,並執行每個儲存格。 您必須先登入,以在 [設定工作區] 後面的儲存格中進行驗證。

  10. 儲存筆記本並返回您的專案頁面。

確認是否成功

若要確認筆記本是否已成功完成,請確認其中是否已建立幾個項目。

  1. 在 Machine Learning 筆記本的 [我的檔案] 索引標籤上,選取 [重新整理]

  2. 確認是否已建立下列檔案。

    檔案 說明
    ./aml_config/.azureml/config.json 用來建立 Machine Learning 工作區的組態檔。
    ./aml_config/model_config.json 我們需要在 Azure 中的 turbofanDemo Machine Learning 工作區中部署模型的設定檔。
    myenv.yml 提供所部署 Machine Learning 模型相依性的相關資訊。
  3. 確認下列 Azure 資源已建立。 某些資源名稱會附加隨機字元。

    Azure 資源 名稱
    Azure Machine Learning 工作區 turborfanDemo
    Azure Container Registry turbofandemoxxxxxxxx
    Application Insights turbofaninsightxxxxxxxx
    Azure Key Vault turbofankeyvaultbxxxxxxxx
    Azure 儲存體 turbofanstoragexxxxxxxxx

偵錯

您可以將 Python 陳述式插入至筆記本以進行偵錯,例如使用 print() 命令來顯示值。 如果您看到未定義的變數或物件,請執行其首次宣告或具現化時所在的儲存格。

如果需要重做筆記本,您可能必須刪除先前建立的檔案和 Azure 資源。

清除資源

本教學課程是集合的一部分,其中每篇文章都會以上一篇文章中所完成的工作為基礎。 請等到您完成最後一個教學課程後,再清除任何資源。

下一步

在本文中,我們使用在 Machine Learning 工作室中執行的兩個 Jupyter Notebook,以使用 turbofan 裝置的資料:

  • 定型 RUL 分類器。
  • 將分類器儲存為模型。
  • 建立容器映像。
  • 以 Web 服務的形式部署及測試映像。

請前往下一篇文章以建立 IoT Edge 裝置。