チュートリアル:デザイナーで機械学習モデルをデプロイする

チュートリアルのパート 1 で作成した予測モデルを、他のユーザーが使用できるようデプロイしてみましょう。 パート 1 では、モデルをトレーニングしました。 ここでは、ユーザー入力に基づいて予測を生成しましょう。 チュートリアルのこのパートでは、次のことを行います。

  • リアルタイム推論パイプラインを作成する。
  • 推論クラスターを作成する。
  • リアルタイム エンドポイントをデプロイする。
  • リアルタイム エンドポイントをテストする。

前提条件

チュートリアルのパート 1 を完了して、デザイナーで機械学習モデルをトレーニングしてスコア付けする方法を学習します。

重要

このドキュメントで言及しているグラフィカル要素 (Studio やデザイナーのボタンなど) が表示されない場合は、そのワークスペースに対する適切なレベルのアクセス許可がない可能性があります。 ご自分の Azure サブスクリプションの管理者に連絡して、適切なレベルのアクセス許可があることを確認してください。 詳細については、「ユーザーとロールを管理する」を参照してください。

リアルタイム推論パイプラインを作成する

パイプラインをデプロイするためには、まずトレーニング パイプラインをリアルタイム推論パイプラインに変換する必要があります。 このプロセスにより、トレーニング モジュールが削除され、要求を処理するための Web サービスの入力と出力が追加されます。

リアルタイム推論パイプラインを作成する

  1. パイプライン キャンバス上で [Create inference pipeline](推論パイプラインの作成) > [Real-time inference pipeline](リアルタイム推論パイプライン) の順に選択します。

    パイプラインの作成ボタンへのアクセス方法を示すスクリーンショット

    これでパイプラインは次のようになっているはずです。

    デプロイ準備が完了したパイプラインの予測される構成を示すスクリーンショット

    [Create inference pipeline](推論パイプラインの作成) を選択すると、以下のようないくつかの処理が行われます。

    • トレーニング済みのモデルは、モジュール パレットに [Dataset](データセット) モジュールとして格納されます。 これは [マイ データセット] で見つかります。
    • [Train Model](モデルのトレーニング)[Split Data](データの分割) などのトレーニング モジュールは削除されます。
    • 保存したトレーニング済みのモデルが再びパイプラインに追加されます。
    • [Web Service Input](Web サービスの入力) モジュールと [Web Service Output](Web サービスの出力) モジュールが追加されます。 ユーザー データがパイプラインに入力される位置と、データが返される位置が、これらのモジュールによって示されます。

    注意

    既定では、Web サービスの入力 としては、予測パイプラインの作成に使用されたトレーニング データと同じデータ スキーマが期待されます。 このシナリオでは、価格がスキーマに含まれます。 ただし、価格は予測の間に要因としては使用されません。

  2. [送信] を選択し、パート 1 で使用したものと同じコンピューティング先と実験を使用します。

    これが最初の実行の場合は、パイプラインの実行が完了するまでに最大 20 分かかることがあります。 既定のコンピューティング設定の最小ノード サイズは 0 です。これは、アイドル状態になった後に、デザイナーによってリソースが割り当てられる必要があることを意味します。 コンピューティング リソースが既に割り当てられているため、パイプラインの反復実行にかかる時間は短くなります。 さらにデザイナーでは、各モジュール用にキャッシュされた結果を使用して、効率を向上させます。

  3. [デプロイ] を選択します。

推論クラスターを作成する

表示されたダイアログ ボックスで、既存の Azure Kubernetes Service (AKS) クラスターを選択して自分のモデルをデプロイできます。 既存の AKS クラスターがない場合は、次の手順を使用して作成してください。

  1. 表示されたダイアログ ボックスの [Compute](コンピューティング) を選択して [Compute](コンピューティング) ページに移動します。

  2. ナビゲーション リボンで、 [Inference Clusters](推論クラスター) > [+ New](+ 新規) の順に選択します。

    推論クラスターの新規作成ペインに移動する方法を示すスクリーンショット

  3. 推論クラスター ウィンドウで、新しい Kubernetes サービスを構成します。

  4. [Compute name](コンピューティング名) に「aks-compute」と入力します。

  5. [Region](リージョン) には、使用できる近くのリージョンを選択します。

  6. [作成] を選択します

    注意

    新しい AKS サービスの作成には約 15 分かかります。 プロビジョニングの状態は、 [Inference Clusters](推論クラスター) ページで確認できます。

リアルタイム エンドポイントをデプロイする

AKS サービスのプロビジョニングが完了したら、リアルタイム推論パイプラインに戻ってデプロイを完了します。

  1. キャンバスの上にある [Deploy](デプロイ) を選択します。

  2. [Deploy new real-time endpoint](新しいリアルタイム エンドポイントのデプロイ) を選択します。

  3. 作成した AKS クラスターを選択します。

    新しいリアルタイム エンドポイントの設定方法を示すスクリーンショット

    リアルタイム エンドポイントの [詳細] 設定を変更することもできます。

    [詳細] 設定 Description
    Application Insights の診断とデータ収集を有効にする Azure Application Insights を有効にして、デプロイされたエンドポイントからデータを収集するかどうか。
    既定値: false
    スコアリング タイムアウト Web サービスのスコアリング呼び出しに適用するタイムアウト (ミリ秒)。
    既定での動作は次のとおりです。60000
    Auto scale enabled(自動スケーリングの有効化) Web サービスの自動スケールを有効にするかどうか。
    既定値は: true
    最小レプリカ数 この Web サービスを自動スケールするときに使用するコンテナーの最小数。
    既定での動作は次のとおりです。1
    最大レプリカ数 この Web サービスを自動スケールするときに使用するコンテナーの最大数。
    既定での動作は次のとおりです。10
    ターゲット使用率 オートスケーラーがこの web サービスに対してメンテナンスを試行する目標使用率 (最大 100%)。
    既定での動作は次のとおりです。70
    更新間隔 自動スケーラーがこの Web サービスのスケーリングを試みる頻度 (秒)。
    既定での動作は次のとおりです。1
    CPU 予約容量 この Web サービスに割り当てる CPU コアの数。
    既定での動作は次のとおりです。0.1
    メモリ予約容量 この Web サービスに割り当てるメモリの量 (GB 単位)。
    既定での動作は次のとおりです。0.5
  4. [デプロイ] を選択します。

    デプロイが完了すると、キャンバスの上に成功通知が表示されます。 これには数分かかる可能性があります。

ヒント

リアルタイム エンドポイント設定ボックスで、 [コンピューティングの種類][Azure コンテナー インスタンス] を選択すると、Azure コンテナー インスタンス (ACI) にデプロイすることもできます。 Azure コンテナー インスタンスは、テストまたは開発に使用されます。 必要な RAM が 48 GB 未満である CPU ベースの小規模なワークロードには、ACI を使用します。

リアルタイム エンドポイントをテストする

デプロイが完了したら、 [エンドポイント] ページに移動して、リアルタイム エンドポイントを表示できます。

  1. [Endpoints](エンドポイント) ページで、デプロイ済みのエンドポイントを選択します。

    [詳細] タブでは、REST URI、Swagger 定義、状態、タグなどの詳細情報を確認できます。

    [Consume](使用) タブでは、サンプル使用コードやセキュリティ キーを検索し、認証方法を設定できます。

    [デプロイ ログ] タブで、リアルタイム エンドポイントの詳細なデプロイ ログを確認できます。

  2. エンドポイントをテストするには、 [テスト] タブに移動します。ここでは、テスト データを入力し、 [テスト] を選択して、エンドポイントの出力を確認します。

Web サービスの使用方法の詳細については、Web サービスとしてデプロイされたモデルの使用に関するページを参照してください

制限事項

推論パイプラインを更新する

トレーニング パイプラインに何らかの変更を加える場合は、トレーニング パイプラインを再送信し、推論パイプラインを 更新 して、推論パイプラインを再度実行する必要があります。

推論パイプラインではトレーニング済みのモデルのみが更新され、データ変換は更新されないことに注意してください。

更新された変換を推論パイプラインで使用するには、変換モジュールの変換出力をデータセットとして登録する必要があります。

変換データセットの登録方法を示すスクリーンショット

次に、推論パイプラインの TD- モジュールを、登録したデータセットに手動で置き換えます。

変換モジュールの置換方法を示すスクリーンショット

その後、更新されたモデルおよび変換と共に推論パイプラインを送信し、デプロイできます。

リアルタイム エンドポイントをデプロイする

データストアのアクセス制限により、推論パイプラインに データのインポート モジュールまたは データのエクスポート モジュールが含まれている場合、リアルタイム エンドポイントへのデプロイ時にこれらは自動的に削除されます。

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

重要

作成したリソースは、Azure Machine Learning のその他のチュートリアルおよびハウツー記事の前提条件として使用できます。

すべてを削除する

作成したすべてのものを使用する予定がない場合は、料金が発生しないように、リソース グループ全体を削除します。

  1. Azure portal で、ウィンドウの左側にある [リソース グループ] を選択します。

    Azure portal でリソース グループを削除する

  2. 一覧から、作成したリソース グループを選択します。

  3. [リソース グループの削除] を選択します。

リソース グループを削除すると、デザイナーで作成したすべてのリソースも削除されます。

個々の資産を削除する

実験を作成したデザイナーで、個々の資産を選択し、[削除] ボタンを選択してそれらを削除します。

ここで作成したコンピューティング ターゲットは、使用されていない場合、自動的にゼロ  ノードに 自動スケーリング されます。 このアクションは、料金を最小限に抑えるために実行されます。 コンピューティング ターゲットを削除する場合は、次の手順を実行してください。

アセットを削除する

各データセットを選択し、[登録解除] を選択することによって、ワークスペースからデータセットを登録解除できます。

データセットの登録解除

データセットを削除するには、Azure portal または Azure Storage Explorer を使用してストレージ アカウントに移動し、これらのアセットを手動で削除します。

次のステップ

このチュートリアルでは、デザイナーで機械学習モデルを作成、デプロイ、および使用する際の主な手順を学習しました。 デザイナーの使用方法の詳細については、次のリンクを参照してください。