次の方法で共有


チュートリアル: 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 Studio は、機械学習モデルの実験、トレーニング、デプロイに使用される基本的なブロックです。

この記事の手順は、通常、データ サイエンティストによって実行される場合があります。

チュートリアルのこのセクションでは、次の方法について説明します。

  • Azure Machine Learning ワークスペースに Jupyter Notebook を作成して、機械学習モデルをトレーニングします。
  • トレーニング済みの機械学習モデルをコンテナー化します。
  • コンテナー化された機械学習モデルから IoT Edge モジュールを作成します。

前提条件

この記事は、IoT Edge での Machine Learning の使用に関するチュートリアルのシリーズの一部です。 シリーズの各記事は、前の記事の作業に基づいています。 この記事に直接アクセスした場合は、シリーズの最初の記事 を参照してください。

Azure Machine Learning を設定する

Machine Learning Studio を使用して、2 つの Jupyter ノートブックとサポート ファイルをホストします。 ここでは、Machine Learning プロジェクトを作成して構成します。 Jupyter または Machine Learning Studio を使用していない場合は、2 つの入門ドキュメントを次に示します。

サービスを設定すると、任意のコンピューターから 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。 この手順には、1 ~ 2 分かかる場合があります。

  8. ワークスペースが正常に作成されるまで待ちます。 Azure ML ワークスペース turbofandemo が作成されたと表示されます。

Jupyter Notebook ファイルをアップロードする

サンプル ノートブック ファイルを新しい Machine Learning ワークスペースにアップロードします。

  1. ml.azure.com に移動してサインインします。

  2. Microsoft ディレクトリ、Azure サブスクリプション、および新しく作成した Machine Learning ワークスペースを選択します。

    Azure Machine Learning ワークスペースの選択を示すスクリーンショット。

  3. Machine Learning ワークスペースにサインインしたら、左側のメニューを使用して Notebooks セクションに移動します。

  4. [ マイ ファイル ] タブを選択します。

  5. [ アップロード] (上矢印アイコン) を選択します。

  6. C:\source\IoTEdgeAndMlSample\AzureNotebooks に移動します。 リスト内のすべてのファイルを選択し、[ 開く] を選択します。

  7. [これらのファイルの内容を信頼する ] チェック ボックスをオンにします。

  8. を選択してアップロードを開始します。 次に、プロセスの完了後に [完了] を選択します。

Jupyter Notebook ファイル

Machine Learning ワークスペースにアップロードしたファイルを確認しましょう。 チュートリアルのこの部分のアクティビティは、いくつかのサポート ファイルを使用する 2 つのノートブック ファイルにまたがっています。

  • 01-turbofan_regression.ipynb: このノートブックでは、Machine Learning ワークスペースを使用して機械学習実験を作成して実行します。 大まかに言えば、ノートブックは次の手順を実行します。

    1. デバイス ハーネスによって生成された Azure Storage アカウントからデータをダウンロードします。
    2. データを探索して準備し、そのデータを使用して分類子モデルをトレーニングします。
    3. テスト データセット (Test_FD003.txt) を使用して、実験からモデルを評価します。
    4. Machine Learning ワークスペースに最適な分類子モデルを発行します。
  • 02-turbofan_deploy_model.ipynb: このノートブックは、前のノートブックで作成されたモデルを取得し、それを使用して、IoT Edge デバイスにデプロイする準備ができているコンテナー イメージを作成します。 ノートブックは、次の手順を実行します。

    1. モデルのスコアリング スクリプトを作成します。
    2. Machine Learning ワークスペースに保存された分類子モデルを使用して、コンテナー イメージを生成します。
    3. Azure Container Instances に Web サービスとしてイメージをデプロイします。
    4. Web サービスを使用して、モデルとイメージが期待どおりに動作することを検証します。 検証済みのイメージは、このチュートリアルの「カスタム IoT Edge モジュールの作成とデプロイ」 の IoT Edge デバイスにデプロイされます。
  • Test_FD003.txt: このファイルには、トレーニング済みの分類子を検証するときにテスト セットとして使用するデータが含まれています。 このテスト データは、元のコンテストで提供されているとおりに、そのシンプルさのためのテスト セットとして使用することを選択しました。

  • RUL_FD003.txt: このファイルには、Test_FD003.txt ファイル内の各デバイスの最後のサイクルの残存耐用年数 (RUL) が含まれています。 データの詳細な説明については、C:\source\IoTEdgeAndMlSample\data\Turbofan の readme.txt ファイルと損傷伝播 Modeling.pdf ファイルを参照してください。

  • Utils.py: このファイルには、データを操作するための Python ユーティリティ関数のセットが含まれています。 最初のノートブックには、関数の詳細な説明が含まれています。

  • README.md: この readme ファイルでは、ノートブックの使用方法について説明します。

Jupyter Notebook を実行する

ワークスペースが作成されたので、ノートブックを実行できます。

  1. [ マイ ファイル ] ページで、 01-turbofan_regression.ipynb を選択します。

    最初に実行するノートブックの選択を示すスクリーンショット。

  2. ノートブックが 信頼されていないと表示されている場合は、ノートブックの右上隅にある [信頼されていない ] ウィジェットを選択します。 ダイアログ ボックスが表示されたら、[ 信頼] を選択します。

  3. 最適な結果を得るには、各セルのドキュメントを読み、個別に実行します。 ツール バーの [ 実行 ] を選択します。 後になって、複数のセルを実行することが有用であることがわかるでしょう。 アップグレードと非推奨の警告は無視できます。

    セルが実行中の場合、角かっこ ([*]) の間にアスタリスクが表示されます。 セルの操作が完了すると、アスタリスクが数値に置き換えられ、関連する出力が表示されることがあります。 ノートブック内のセルは順番にビルドされ、一度に実行できるセルは 1 つだけです。

    [セル] メニューから実行オプションを使用することもできます。 Ctrl + Enter キーを押してセルを実行し、Shift + Enter キーを押してセルを実行し、次のセルに進みます。

    ヒント

    一貫性のあるセル操作を行う場合は、ブラウザーの複数のタブから同じノートブックを実行しないようにします。

  4. グローバル プロパティの設定 の手順に従うセルに、Azure サブスクリプション、設定、およびリソースの値を入力します。 次に、セルを実行します。

    ノートブックのグローバル プロパティの設定を示すスクリーンショット。

  5. ワークスペースの詳細の前のセルで、実行後に、認証のためにサインインするように指示するリンクを探します。

    デバイス認証のサインイン プロンプトを示すスクリーンショット。

    リンクを開き、指定したコードを入力します。 このサインイン手順では、Microsoft Azure クロスプラットフォーム コマンド ライン インターフェイスを使用して、Jupyter Notebook を認証して Azure リソースにアクセスします。

    デバイスでのアプリケーションの認証の確認を示すスクリーンショット。

  6. 結果を探索の前のセルで、実行 ID の値をコピーし、実行を再構成の後のセルで実行 ID に貼り付けます。

    セル間での実行 ID のコピーを示すスクリーンショット。

  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 ターボファンインサイトxxxxxxxx
    Azure Key Vault turbofankeyvaultbxxxxxxxx
    Azure Storage turbofanstoragexxxxxxxxx

デバッグ

値を表示する print() コマンドなど、デバッグ用の Python ステートメントをノートブックに挿入できます。 定義されていない変数またはオブジェクトが表示される場合は、最初に宣言またはインスタンス化されたセルを実行します。

ノートブックをやり直す必要がある場合は、以前に作成したファイルと Azure リソースを削除する必要がある場合があります。

リソースをクリーンアップする

このチュートリアルは、各記事が前の記事で行われた作業に基づいて構築されるセットの一部です。 最後のチュートリアルが完了するまで、リソースのクリーンアップを待ちます。

次のステップ

この記事では、Machine Learning Studio で実行されている 2 つの Jupyter ノートブックを使用して、turbofan デバイスのデータを使用して次の操作を行いました。

  • RUL 分類子をトレーニングします。
  • 分類子をモデルとして保存します。
  • コンテナー イメージを作成します。
  • イメージを Web サービスとしてデプロイしてテストします。

次の記事に進み、IoT Edge デバイスを作成します。