次の方法で共有


Machine Learning Studio (クラシック) Web サービスをデプロイする

適用対象:これはチェック マークです。これは、この記事が Machine Learning Studio (クラシック) に適用されることを意味します。Machine Learning Studio (クラシック) これは X です。これは、この記事が Azure Machine Learning には適用されないことを意味します。Azure Machine Learning

重要

Machine Learning Studio (クラシック) のサポートは、2024 年 8 月 31 日に終了します。 その日付までに Azure Machine Learning に移行することをお勧めします。

2021 年 12 月 1 日以降、新しい Machine Learning Studio (クラシック) リソースは作成できません。 2024 年 8 月 31 日まで、既存の Machine Learning Studio (クラシック) リソースを引き続き使用できます。

ML Studio (クラシック) のドキュメントは廃止予定であり、今後更新されない可能性があります。

Machine Learning Studio (クラシック) を使用すると、予測分析ソリューションを構築してテストできます。 その後、Web サービスとしてソリューションをデプロイできます。

Machine Learning Studio (クラシック) Web サービスは、アプリケーションと Machine Learning Studio (クラシック) ワークフローのスコア付けモデルの間のインターフェイスを提供します。 外部のアプリケーションは、Machine Learning Studio (クラシック) ワークフローのスコア付けモデルとリアルタイムに通信できます。 Machine Learning Studio (クラシック) Web サービスを呼び出すと、予測結果が外部のアプリケーションに返されます。 Web サービスの呼び出しを実行するには、Web サービスのデプロイ時に作成された API キーを渡します。 Machine Learning Studio (クラシック) Web サービスは、Web プログラミング プロジェクトでの一般的なアーキテクチャ選択である REST に基づいています。

Machine Learning Studio (クラシック) には、2 種類の Web サービスがあります。

  • 要求応答サービス (RRS): 1 つのデータ レコードをスコア付けする低待機時間で拡張性の高いサービス。
  • バッチ実行サービス (BES): データ レコードのバッチをスコア付けする非同期サービス。

BES への入力は、RRS で使用されるデータ入力と似ています。 主な違いは、BES が、Azure Blob Storage、Azure Table Storage、Azure SQL Database、HDInsight (Hive クエリ)、HTTP ソースなど、さまざまなソースからレコードのブロックを読み取る点です。

モデルのデプロイは、大まかに次の 3 つの手順で行われます。

  • トレーニング実験を作成する - Studio (クラシック) では、多数の組み込みの機械学習アルゴリズムを使用して、指定したトレーニング データを使用して予測分析モデルをトレーニングおよびテストできます。
  • それを予測実験に変換する - モデルが既存のデータでトレーニングされ、それを使用して新しいデータをスコア付けする準備ができたら、予測のために実験を準備して合理化します。
  • 新しい Web サービスまたはクラシック Web サービスとしてデプロイする - 予測実験を Azure Web サービスとしてデプロイすると、ユーザーはモデルにデータを送信し、モデルの予測を受け取ることができます。

トレーニング実験を作成する

予測分析モデルをトレーニングするには、Azure Machine Learning Studio (クラシック) を使用してトレーニング実験を作成します。この実験には、トレーニング データを読み込み、必要に応じてデータを用意し、機械学習アルゴリズムを適用して結果を評価するための、さまざまなモジュールを含めることができます。 実験を繰り返し、別の機械学習アルゴリズムを試して結果を比較したり評価したりできます。

トレーニング実験を作成したり管理したりするプロセスはあらゆる場所でより包括的に使用できます。 詳細については、次の記事を参照してください。

トレーニング実験を予測実験に変換する

モデルのトレーニングが終了したら、トレーニング実験を予測実験に変換して、新しいデータのスコア付けを行うことができます。

予測実験に変換することで、トレーニングされたモデルをスコア付け Web サービスとしてデプロイできるようになります。 Web サービスのユーザーがモデルに入力データを送信し、モデルは予測結果を返します。 予測実験を変換する際は、モデルが他のユーザーに使用されることを想定しておいてください。

トレーニング実験を予測実験に変換するプロセスには、次の 3 つの手順が含まれます。

  1. 機械学習アルゴリズムのモジュールをトレーニング済みのモデルに置き換えます。
  2. スコア付けに必要なモジュールのみに実験を絞り込みます。 トレーニング実験にはトレーニングに必要な多数のモジュールが含まれますが、モデルがトレーニングされると、それらのモジュールは不要になります。
  3. モデルが Web サービス ユーザーからのデータを受け入れる方法と、どのデータを返すかを定義します。

ヒント

トレーニング実験では、独自のデータを使用してモデルのトレーニングとスコア付けに取り組みました。 ただしいったんデプロイすると、ユーザーから新しいデータがモデルに送信され、モデルは予測結果を返します。 このため、トレーニング実験を予測実験に変換してデプロイの準備をするときには、モデルが他のユーザーにどのように使用されるかに留意してください。

スコアリング実験に変換する

[Web サービスの設定] ボタン

実験を実行した後 (実験キャンバスの下部にある [Run]\( 実行 \) をクリックし、[ Web サービスの設定 ] ボタンをクリックします ( [予測 Web サービス ] オプションを選択します)。 Web サービスのセットアップ では、トレーニング実験を予測実験に変換する 3 つの手順が実行されます。

  1. トレーニング済みのモデルは、モジュール パレットの トレーニング済みモデル セクション (実験キャンバスの左側) に保存されます。 次に、機械学習アルゴリズムと モデルのトレーニング モジュールを、保存されたトレーニング済みモデルに置き換えます。
  2. 実験が分析され、明らかにトレーニングのためにのみ使用されて不要になったモジュールが削除されます。
  3. Web サービスの入力モジュールと出力モジュールが実験の既定の場所に挿入されます (これらのモジュールはユーザー データを受け入れて返します)。

たとえば、次の実験では、サンプルの国勢調査のデータを使用した 2 クラスのブースト デシジョン ツリー モデルをトレーニングします。

トレーニング実験

この実験のモジュールは、基本的に 4 つの異なる機能を実行します。

モジュール関数

トレーニング実験を予測実験に変換すると、これらのモジュールの一部は不要になったり、別の役割を果たすようになります。

  • データ - このサンプル データセット内のデータはスコアリング中に使用されません。Web サービスのユーザーは、スコア付けするデータを提供します。 ただし、データ型など、このデータセットからのメタデータは、トレーニング済みのモデルで使用されます。 このため、このメタデータを提供できるように、予測実験のデータセットを保持する必要があります。

  • 準備 - スコア付けに送信されるユーザー データによっては、これらのモジュールが受信データを処理するために必要な場合と必要ない場合があります。 [ Web サービスのセットアップ ] ボタンはこれらには触れないので、それらを処理する方法を決定する必要があります。

    たとえば、この例では、サンプル データセットに欠損値が含まれている可能性があるため、Clean Missing Data モジュールが含まれて処理されています。 また、サンプル データセットには、モデルのトレーニングには不要な列が含まれています。 そのため、データ フローから追加の列を除外するために、 データセット内 の列の選択モジュールが含まれていました。 Web サービスを通じてスコア付けのために送信されるデータに欠損値がないことがわかっている場合は、Clean Missing Data モジュールを削除できます。 ただし、 データセット内の列の選択 モジュールは、トレーニング済みモデルが期待するデータの列を定義するのに役立つため、そのモジュールはそのままにする必要があります。

  • トレーニング - これらのモジュールは、モデルのトレーニングに使用されます。 [ Web サービスのセットアップ] をクリックすると、これらのモジュールは、トレーニングしたモデルを含む 1 つのモジュールに置き換えられます。 この新しいモジュールは、モジュール パレットの [トレーニング済みモデル ] セクションに保存されます。

  • スコア - この例では、 データの分割 モジュールを使用して、データ ストリームをテスト データとトレーニング データに分割します。 予測実験では、トレーニングは行われません。そのため、 データの分割 を削除できます。 同様に、2 番目の Score Model モジュールと Evaluate Model モジュールは、テスト データからの結果を比較するために使用されるため、これらのモジュールは予測実験では必要ありません。 ただし、残りの Score Model モジュールは、Web サービスを通じてスコア結果を返すために必要です。

[Web サービスのセットアップ] をクリックした後の例を次に示します。

変換された予測実験

Web サービスのセットアップによって行われる作業は、Web サービスとしてデプロイする実験を準備するのに十分な場合があります。 ただし、実験に合わせて追加の作業を実行する可能性があります。

入力と出力のモジュールを調整する

トレーニング実験では、トレーニング データのセットを使用して、機械学習アルゴリズムが必要とする形式でデータを取得するいくつかの処理を実行しました。 Web サービス経由で受信するデータにこの処理が必要ない場合は、それをバイパスできます。 Web サービス入力モジュール の出力を実験内の別のモジュールに接続します。 この場所のモデルにユーザーのデータが届くようになります。

たとえば、既定では、 Web サービスのセットアップ では、上の図に示すように、 Web サービス入力 モジュールがデータ フローの上部に配置されます。 ただし、データ処理モジュールの後に Web サービス入力 を手動で配置できます。

Web サービス入力の移動

Web サービスを通じて提供される入力データが、これで処理なしでモデルのスコア付けモジュールに直接渡されるようになりました。

同様に、既定では、 Web サービスの設定 では、Web サービス出力モジュールがデータ フローの下部に配置されます。 この例では、Web サービスはスコア モデルモジュールの出力をユーザーに返します。この出力には、完全な入力データベクトルとスコアリング結果が含まれています。 ただし、別のものを返したい場合は、 Web サービス出力 モジュールの前にモジュールを追加できます。

たとえば、入力データのベクター全体ではなく、スコアリング結果のみを返すには、 データセット内の列の選択 モジュールを追加して、スコア付け結果を除くすべての列を除外します。 次に、 Web サービス出力 モジュールを、データセット内の 列の選択 モジュールの出力に移動します。 実験は次のようになります。

Web サービスの出力の移動

データ処理モジュールを追加または削除する

スコア付け中に必要ないことがわかっているモジュールが、他にも実験に存在する場合は、それらを削除できます。 たとえば、データ処理モジュールの後のポイントに Web サービス入力 モジュールを移動したため、予測実験から Clean Missing Data モジュールを削除できます。

これで、予測実験が次のようになります。

追加モジュールの削除

オプションの Web サービス パラメーターを追加する

場合によっては、Web サービスのユーザーがサービスにアクセスしたときに、モジュールの動作を変更できるようにすることもあります。 Web サービス パラメーター を使用すると、これを行うことができます。

一般的な例は、デプロイされた Web サービスのユーザーが Web サービスにアクセスするときに別のデータ ソースを指定できるように、データの インポート モジュールを設定することです。 または、別の宛先を指定できるように データのエクスポート モジュールを構成します。

Web サービスのパラメーターを定義して、1 つまたは複数のモジュール パラメーターに関連付け、必須かオプションかを指定することができます。 Web サービスのユーザーは、サービスにアクセスするときにこれらのパラメーターの値を指定することができ、モジュールの動作はそれに応じて変更されます。

Web サービス パラメーターとその使用方法の詳細については、「 Machine Learning Web サービス パラメーターの使用」を参照してください。

次の手順では、新しい Web サービスとして予測実験をデプロイする方法を説明します。 実験は、従来の Web サービスとしてデプロイすることもできます。

新しい Web サービスとしてデプロイする

予測実験の準備ができたので、新しい (Resource Manager ベースの) Azure Web サービスとしてこれをデプロイできます。 Web サービスを使用してユーザーはデータをモデルに送信でき、モデルは予測を返します。

予測実験をデプロイするには、実験キャンバスの下部にある [ 実行 ] をクリックします。 実験の実行が完了したら、[ Deploy Web Service ]\(Web サービスのデプロイ\) をクリックし、[ Deploy Web Service New]\(Web サービス のデプロイ\) を選択します。 Machine Learning Studio (クラシック) Web サービス ポータルのデプロイ ページが開きます。

新しい Web サービスをデプロイするには、Web サービスのデプロイ先となるサブスクリプションで十分なアクセス許可を持っている必要があります。 詳細については、「 Machine Learning Web サービス ポータルを使用して Web サービスを管理する」を参照してください。

Web サービス ポータルの [実験のデプロイ] ページ

[Deploy Experiment (実験のデプロイ]) ページで、Web サービスの名前を入力します。 料金プランを選択します。 既存の料金プランがある場合はそのプランを選択できます。ない場合は、サービス用に新しい料金プランを作成する必要があります。

  1. [ 価格プラン ] ドロップダウンで、既存のプランを選択するか、[ 新しいプランの選択 ] オプションを選択します。
  2. [ プラン名] に、請求書のプランを識別する名前を入力します。
  3. 月単位プランレベルのいずれかを選択します。 プラン レベルは既定では既定のリージョンのプランになり、Web サービスはそのリージョンにデプロイされます。

[ デプロイ ] をクリックすると、Web サービスの [クイック スタート ] ページが開きます。

Web サービスの [クイック スタート] ページでは、新しい Web サービスの作成後に実行するほとんどの一般的なタスクにアクセスし、そのガイダンスを得ることができます。 ここから、[テスト] ページと [Consume (使用)] ページの両方に簡単にアクセスできます。

新しい Web サービスをテストする

新しい Web サービスをテストするには、一般的なタスクで [ Web サービスのテスト ] をクリックします。 [テスト] ページでは、Web サービスを要求応答サービス (RRS) またはバッチ実行サービス (BES) としてテストできます。

RRS テストのページには、入力、出力、および実験用に定義したすべてのグローバル パラメーターが表示されます。 Web サービスをテストするには、手動で適切な入力値を入力するか、テスト値を含むコンマ区切り値 (CSV) の書式設定されたファイルを指定できます。

RRS を使用してテストするには、リスト ビュー モードから入力に適切な値を入力し、[ 要求と応答のテスト] をクリックします。 予測結果は、左側の出力列に表示されます。

Web サービスをテストするための適切な値を入力する

BES をテストするには、[ バッチ] をクリックします。 バッチ テストのページで、入力の下の [参照] をクリックし、適切なサンプル値を含む CSV ファイルを選択します。 CSV ファイルがなく、Machine Learning Studio (クラシック) を使用して予測実験を作成した場合は、予測実験用のデータ セットをダウンロードし、それを使用できます。

データ セットをダウンロードするには、Machine Learning Studio (クラシック) を開きます。 予測実験を開き、実験の入力を右クリックします。 コンテキスト メニューからデータセット を選択し 、[ ダウンロード] を選択します。

Studio (クラシック) キャンバスからデータ セットをダウンロードする

[ テスト] をクリックします。 バッチ実行ジョブの状態は、[バッチ ジョブの テスト] の下の右側に表示されます。

Web サービス ポータルを使用してバッチ実行ジョブをテストする

[構成] ページでは、説明、タイトルの変更、ストレージ アカウント キーの更新、Web サービスのサンプル データの有効化を行うことができます。

Web サービスを構成する

新しい Web サービスにアクセスする

Machine Learning Studio (クラシック) から Web サービスをデプロイしたら、プログラムでそのサービスにデータを送信したり、応答を受信したりできます。

[ 使用] ページには、Web サービスにアクセスするために必要なすべての情報が表示されます。 たとえば、API キーは、サービスへの承認済みアクセスを許可するために提供されます。

Machine Learning Studio (クラシック) Web サービスへのアクセスの詳細については、「 Machine Learning Studio (クラシック) Web サービスを使用する方法」を参照してください。

新しい Web サービスを管理する

Machine Learning Studio (クラシック) Web サービス ポータルを使用して新しい Web サービスを管理できます。 ポータルの メイン ページで、[ Web サービス] をクリックします。 Web サービスのページでは、サービスを削除したり、コピーしたりすることができます。 特定のサービスを監視するには、サービスをクリックし、[ ダッシュボード] をクリックします。 Web サービスに関連付けられているバッチ ジョブを監視するには、[ バッチ要求ログ] をクリックします。

新しい Web サービスを複数のリージョンにデプロイする

複数のサブスクリプションやワークスペースがなくても、複数のリージョンに新しい Web サービスを簡単にデプロイできます。

料金は、リージョンに固有なので、Web サービスをデプロイするリージョンごとに課金プランを定義する必要があります。

別のリージョンにプランを作成する

  1. Machine Learning Web サービスにサインインします。
  2. [ プラン ] メニュー オプションをクリックします。
  3. 「プランの概要」ページで、【新規】をクリックします。
  4. [ サブスクリプション ] ドロップダウンから、新しいプランが存在するサブスクリプションを選択します。
  5. [ リージョン ] ドロップダウンから、新しいプランのリージョンを選択します。 選択したリージョンのプラン オプションが、ページの [プラン オプション] セクションに表示されます。
  6. [ リソース グループ ] ドロップダウンから、プランのリソース グループを選択します。 リソース グループの詳細については、 Azure Resource Manager の概要に関するページを参照してください。
  7. [ プラン名] にプランの名前を入力します。
  8. [ プラン オプション] で、新しいプランの請求レベルをクリックします。
  9. [ 作成] をクリックします。

別のリージョンに Web サービスをデプロイする

  1. [Machine Learning Web サービス] ページで、[ Web サービス ] メニュー オプションをクリックします。
  2. 新しいリージョンにデプロイする Web サービスを選択します。
  3. [ コピー] をクリックします。
  4. [Web サービス名] に、Web サービスの新しい名前を入力します。
  5. Web サービスの説明に、Web サービスの説明を入力します。
  6. [ サブスクリプション ] ドロップダウンから、新しい Web サービスが存在するサブスクリプションを選択します。
  7. [リソース グループ] ドロップダウンから、Web サービスのリソース グループを選択します。 リソース グループの詳細については、 Azure Resource Manager の概要に関するページを参照してください。
  8. [ リージョン ] ドロップダウンから、Web サービスをデプロイするリージョンを選択します。
  9. [ ストレージ アカウント ] ドロップダウンから、Web サービスを格納するストレージ アカウントを選択します。
  10. [ 価格プラン ] ドロップダウンから、手順 8 で選択したリージョンのプランを選択します。
  11. [ コピー] をクリックします。

従来の Web サービスとしてデプロイする

予測実験の準備を十分に実行したので、従来の Azure Web サービスとしてデプロイできます。 Web サービスを使用してユーザーはデータをモデルに送信でき、モデルは予測を返します。

予測実験をデプロイするには、実験キャンバスの下部にある [ 実行 ] をクリックし、[ Web サービスのデプロイ] をクリックします。 Web サービスがセットアップされ、Web サービスのダッシュ ボードに配置されます。

Studio (クラシック) から Web サービスをデプロイする

従来の Web サービスをテストする

Web サービスは、Machine Learning Studio (クラシック) Web サービス ポータルまたは Machine Learning Studio (クラシック) のどちらかでテストできます。

要求応答 Web サービスをテストするには、Web サービス ダッシュボードの [テスト ] ボタンをクリックします。 ダイアログ ボックスが表示され、サービスへのデータの入力が促されます。 これらはスコア付け実験で想定される列になります。 一連のデータを入力し、[ OK] をクリックします。 Web サービスによって生成された結果がダッシュボードの下部に表示されます。

[新しい Web サービス] セクションで前述したように、Machine Learning Studio (クラシック) Web サービス ポータルでサービスをテストするには、[ テスト プレビュー] リンクをクリックします。

バッチ実行サービスをテストするには、[ プレビューのテスト ] リンクをクリックします。 バッチ テストのページで、入力の下の [参照] をクリックし、適切なサンプル値を含む CSV ファイルを選択します。 CSV ファイルがなく、Machine Learning Studio (クラシック) を使用して予測実験を作成した場合は、予測実験用のデータ セットをダウンロードし、それを使用できます。

Web サービスをテストする

[構成] ページで、サービスの表示名を変更し、説明を入力できます。 名前と説明は、Web サービスを管理する Azure portal に表示されます。

入力スキーマ、出力スキーマ、および Web サービス パラメーターの各列の文字列を入力することで、入力データ、出力データ、および Web サービス パラメーターの説明を指定できます。 これらの説明は、Web サービスのサンプル コードのドキュメントで使用されます。

ログ記録を有効にすれば、Web サービスのアクセスで発生するすべてのエラーを診断できます。 詳細については、「 Machine Learning Studio (クラシック) Web サービスのログ記録を有効にする」を参照してください。

Web サービス ポータルでログ記録を有効にする

「新しい Web サービス」セクションで説明した手順と同様に、Web サービスのエンドポイントを Machine Learning Web サービス ポータルで構成することもできます。 オプションは異なりますが、サービスの説明の追加または変更、ログの有効化、テスト用サンプル データの有効化を行うことができます。

従来の Web サービスにアクセスする

Machine Learning Studio (クラシック) から Web サービスをデプロイしたら、プログラムでそのサービスにデータを送信したり、応答を受信したりできます。

ダッシュ ボードでは、Web サービスへのアクセスが必要なすべての情報が提供されます。 たとえば、サービスへの承認済みアクセスを許可する API キーや、コードの記述に役立つ API のヘルプ ページが提供されます。

Machine Learning Studio (クラシック) Web サービスへのアクセスの詳細については、「 Machine Learning Studio (クラシック) Web サービスを使用する方法」を参照してください。

従来の Web サービスを管理する

Web サービスを監視するために実行できるさまざまな操作があります。 更新および削除することもできます。 デプロイ時に作成される既定のエンドポイントに加え、従来の Web サービスにさらにエンドポイントを追加することもできます。

詳細については、 Machine Learning Studio (クラシック) ワークスペースの管理、Machine Learning Studio (クラシック) Web サービス ポータルを使用した Web サービスの管理に関するページを参照してください。

Web サービスを更新する

別のトレーニング データでのモデルの更新など、Web サービスに変更を加えたり、元の Web サービスを上書きしてもう一度デプロイしたりできます。

Web サービスを更新するには、Web サービスのデプロイに使用した元の予測実験を開き、[ 名前を付けて保存] をクリックして編集可能なコピーを作成します。 変更を加え、[ Web サービスのデプロイ] をクリックします。

この実験は前にデプロイ済みであるため、既存のサービスを上書きするか (従来の Web サービス)、更新するか (新しい Web サービス) 確認されます。 [はい] または [更新] をクリックすると、既存の Web サービスが停止し、新しい予測実験がその場所にデプロイされます。

たとえば元の Web サービスの構成に変更を加えた場合や新しい表示名または説明を入力した場合、それらの値をもう一度入力する必要が生じます。

Web サービスを更新するオプションの 1 つに、モデルをプログラムによって再トレーニングする方法があります。 詳細については、「 プログラムによる Machine Learning Studio (クラシック) モデルの再トレーニング」を参照してください。

次のステップ