Machine Learning Studio (クラシック) Web サービスをデプロイする
適用対象: Machine Learning Studio (クラシック) 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 (クラシック) から Azure Machine Learning への機械学習プロジェクトの移動に関する情報を参照してください。
- Azure Machine Learning についての詳細を参照してください
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 (クラシック) を使用してトレーニング実験を作成します。この実験には、トレーニング データを読み込み、必要に応じてデータを用意し、機械学習アルゴリズムを適用して結果を評価するための、さまざまなモジュールを含めることができます。 実験を繰り返し、別の機械学習アルゴリズムを試して結果を比較したり評価したりできます。
トレーニング実験を作成したり管理したりするプロセスはあらゆる場所でより包括的に使用できます。 詳細については、次の記事を参照してください。
- Machine Learning Studio (クラシック) で単純な実験を作成する
- Machine Learning Studio (クラシック) で予測ソリューションを開発する
- Machine Learning Studio (クラシック) にトレーニング データをインポートする
- Machine Learning Studio (クラシック) で実験イテレーションを管理する
トレーニング実験を予測実験に変換する
モデルのトレーニングが終了したら、トレーニング実験を予測実験に変換して、新しいデータのスコア付けを行うことができます。
予測実験に変換することで、トレーニングされたモデルをスコア付け Web サービスとしてデプロイできるようになります。 Web サービスのユーザーがモデルに入力データを送信し、モデルは予測結果を返します。 予測実験を変換する際は、モデルが他のユーザーに使用されることを想定しておいてください。
トレーニング実験を予測実験に変換するプロセスには、次の 3 つの手順が含まれます。
- 機械学習アルゴリズムのモジュールをトレーニング済みのモデルに置き換えます。
- スコア付けに必要なモジュールのみに実験を絞り込みます。 トレーニング実験にはトレーニングに必要な多数のモジュールが含まれますが、モデルがトレーニングされると、それらのモジュールは不要になります。
- モデルが Web サービス ユーザーからのデータを受け入れる方法と、どのデータを返すかを定義します。
ヒント
トレーニング実験では、独自のデータを使用してモデルのトレーニングとスコア付けに取り組みました。 ただしいったんデプロイすると、ユーザーから新しいデータがモデルに送信され、モデルは予測結果を返します。 このため、トレーニング実験を予測実験に変換してデプロイの準備をするときには、モデルが他のユーザーにどのように使用されるかに留意してください。
[Web サービスの設定] ボタン
(実験キャンバスの下部にある [実行] をクリックして) 実験を実行したら、([予測 Web サービス] オプションを選択して)[Web サービスの設定] ボタンをクリックします。 [Web サービスの設定] によって、トレーニング実験を予測実験に変換する次の 3 つの手順が実行されます。
- トレーニング済みのモデルを、(実験キャンバスの左側にある) モジュール パレットの [トレーニング済みのモデル] セクションに保存します。 次に、機械学習アルゴリズムとモデルのトレーニング モジュールを、保存したトレーニング済みのモデルに置き換えます。
- 実験が分析され、明らかにトレーニングのためにのみ使用されて不要になったモジュールが削除されます。
- Web サービスの入力 および 出力 モジュールを、実験の既定の場所に挿入します (これらのモジュールはユーザー データを受け入れて返します)。
たとえば、次の実験では、サンプルの国勢調査のデータを使用した 2 クラスのブースト デシジョン ツリー モデルをトレーニングします。
この実験のモジュールは、基本的に 4 つの異なる機能を実行します。
トレーニング実験を予測実験に変換すると、これらのモジュールの一部は不要になったり、別の役割を果たすようになります。
データ- このサンプル データセット内のデータは、スコア付け中には使用されません。Web サービスのユーザーは、スコア付けするデータを指定します。 ただし、データ型など、このデータセットからのメタデータは、トレーニング済みのモデルで使用されます。 このため、このメタデータを提供できるように、予測実験のデータセットを保持する必要があります。
準備 -スコア付けのために送信されるユーザー データによっては、これらのモジュールが受信データの処理に必要な場合と必要でない場合があります。 [Web サービスの設定] ボタンではこれらは処理されないため、ユーザーがどのように処理するかを決める必要があります。
たとえばこの例では、サンプル データセットで値が不足している可能性があるため、これに対処するために見つからないデータのクリーンアップ モジュールが含まれています。 また、サンプル データセットには、モデルのトレーニングには不要な列が含まれています。 このため、これらの余分な列をデータ フローから除外するためのデータセット内の列の選択モジュールが含まれています。 Web サービスを通じてスコア付けのために送信されるデータに不足している値がないことがわかっている場合は、見つからないデータのクリーンアップ モジュールを削除できます。 ただし、データセット内の列の選択モジュールは、トレーニング済みのモデルが必要とするデータ列の定義に役立つため、このモジュールは残す必要があります。
トレーニング - これらのモジュールは、モデルのトレーニングに使用します。 [Web サービスの設定] をクリックすると、これらのモジュールはトレーニング済みのモデルを含む 1 つのモジュールに置き換えられます。 この新しいモジュールは、モジュール パレットの [Trained Models (トレーニング済みのモデル)] セクションに保存されます。
スコア - この例では、データ ストリームをテスト データとトレーニング データに分割するために、データの分割モジュールが使用されます。 予測実験ではもうトレーニングを行わないため、データの分割を削除できます。 同様に、2 番目のモデルのスコア付けモジュールとモデルの評価モジュールは、テスト データの結果を比較するために使用されるため、これらのモジュールも予測実験では不要です。 ただし、残りのモデルのスコア付けモジュールは、Web サービスを通じてスコア結果を返すために必要です。
[Web サービスの設定]をクリックした後で、この例がどのようになるのかを次に示します。
[Web サービスの設定] によって実行された作業は、実験を Web サービスとしてデプロイするための準備として十分な場合があります。 ただし、実験に合わせて追加の作業を実行する可能性があります。
入力と出力のモジュールを調整する
トレーニング実験では、トレーニング データのセットを使用して、機械学習アルゴリズムが必要とする形式でデータを取得するいくつかの処理を実行しました。 Web サービスを通じて受信することを想定しているデータでこの処理が不要な場合は、Web サービスの入力モジュールの出力を実験の別のノードに接続することで、これを回避できます。 この場所のモデルにユーザーのデータが届くようになります。
たとえば、既定では、上の図で示すように、[Web サービスの設定] によって、Web サービスの入力モジュールがデータ フローの上部に配置されます。 ただし、Web サービスの入力をデータ処理モジュールの先に手動で配置することができます。
Web サービスを通じて提供される入力データが、これで処理なしでモデルのスコア付けモジュールに直接渡されるようになりました。
同様に、既定では Web サービスの設定 によって、Web サービスの出力モジュールがデータ フローの下部に置かれます。 この例では、Web サービスはユーザーに、完全な入力データのベクトルとスコア付けの結果を含むモデルのスコア付けモジュールの出力を返します。 ただし、別のものを返したい場合は、Web サービスの出力モジュールの前に別のモジュールを追加することができます。
たとえば、入力データのベクトル全体ではなく、スコア付けの結果のみを返すようにする場合は、データセット内の列の選択モジュールを追加して、スコア付けの結果以外のすべての列を除外できます。 次に、Web サービスの出力モジュールをデータセット内の列の選択モジュールの出力に移動します。 実験は次のようになります。
データ処理モジュールを追加または削除する
スコア付け中に必要ないことがわかっているモジュールが、他にも実験に存在する場合は、それらを削除できます。 たとえば、Web サービスの入力モジュールをデータ処理モジュールの後の地点に移動したため、見つからないデータのクリーンアップ モジュールを予測実験から削除できます。
これで、予測実験が次のようになります。
オプションの Web サービス パラメーターを追加する
場合によっては、Web サービスのユーザーがサービスにアクセスしたときに、モジュールの動作を変更できるようにすることもあります。 Web サービスのパラメーター を使えば変更できます。
一般的な例として、デプロイされた Web サービスのユーザーが Web サービスにアクセスしたときに別のデータ ソースを指定できるように、データのインポート モジュールを設定する場合があります。 または、別の宛先を指定できるようにデータのエクスポート モジュールを構成します。
Web サービスのパラメーターを定義して、1 つまたは複数のモジュール パラメーターに関連付け、必須かオプションかを指定することができます。 Web サービスのユーザーは、サービスにアクセスするときにこれらのパラメーターの値を指定することができ、モジュールの動作はそれに応じて変更されます。
Web サービス パラメーターとその使用方法の詳細については、Machine Learning Web サービスのパラメーターの使用に関する記事を参照してください。
次の手順では、新しい Web サービスとして予測実験をデプロイする方法を説明します。 実験は、従来の Web サービスとしてデプロイすることもできます。
新しい Web サービスとしてデプロイする
予測実験の準備ができたので、新しい (Resource Manager ベースの) Azure Web サービスとしてこれをデプロイできます。 Web サービスを使用してユーザーはデータをモデルに送信でき、モデルは予測を返します。
予測実験をデプロイするには、実験キャンバスの下部にある [実行] をクリックします。 実験の実行が終了したら [Web サービスのデプロイ] をクリックし、Web サービスのデプロイ 新規 を選択します。 Machine Learning Studio (クラシック) Web サービス ポータルのデプロイ ページが開きます。
Note
新しい Web サービスをデプロイするには、Web サービスのデプロイ先となるサブスクリプションで十分なアクセス許可を持っている必要があります。 詳細については、Machine Learning Web サービス ポータルを使用した Web サービスの管理に関するページを参照してください。
Web サービス ポータルの [実験のデプロイ] ページ
[Deploy Experiment (実験のデプロイ]) ページで、Web サービスの名前を入力します。 料金プランを選択します。 既存の料金プランがある場合はそのプランを選択できます。ない場合は、サービス用に新しい料金プランを作成する必要があります。
- [Price Plan (料金プラン)] ドロップダウンで、既存のプランを選択するか、[Select new plan (新しいプランを選択する)] オプションを選択します。
- [プラン名]に、請求書でプランを識別する名前を入力します。
- [Monthly Plan Tiers (月額プラン レベル)]のいずれか 1 つを選択します。 プラン レベルは既定では既定のリージョンのプランになり、Web サービスはそのリージョンにデプロイされます。
[デプロイ] をクリックすると、Web サービスの [クイック スタート] ページが開きます。
Web サービスの [クイック スタート] ページでは、新しい Web サービスの作成後に実行するほとんどの一般的なタスクにアクセスし、そのガイダンスを得ることができます。 ここから、[テスト] ページと [Consume (使用)] ページの両方に簡単にアクセスできます。
新しい Web サービスをテストする
新しい Web サービスをテストするには、一般的なタスクの下の [Test web service (Web サービスのテスト)] をクリックします。 [テスト] ページでは、Web サービスを要求応答サービス (RRS) またはバッチ実行サービス (BES) としてテストできます。
RRS テストのページには、入力、出力、および実験用に定義したすべてのグローバル パラメーターが表示されます。 Web サービスをテストするには、手動で適切な入力値を入力するか、テスト値を含むコンマ区切り値 (CSV) の書式設定されたファイルを指定できます。
RRS を使用してテストするには、リスト ビュー モードから適切な入力値を入力し、 [Test Request-Response (要求応答のテスト)]をクリックします。 予測結果は、左側の出力列に表示されます。
BES をテストするには、 [バッチ]をクリックします。 バッチ テストのページで、入力の下の [参照] をクリックし、適切なサンプル値を含む CSV ファイルを選択します。 CSV ファイルがなく、Machine Learning Studio (クラシック) を使用して予測実験を作成した場合は、予測実験用のデータ セットをダウンロードし、それを使用できます。
データ セットをダウンロードするには、Machine Learning Studio (クラシック) を開きます。 予測実験を開き、実験の入力を右クリックします。 コンテキスト メニューの [データセット] を選択し、[ダウンロード] を選択します。
テストをクリックします。 バッチ実行ジョブの進行状況は、[Test Batch Jobs (バッチ ジョブのテスト)] の右下に表示されます。
[構成] ページでは、Web サービスの説明やタイトルの変更、ストレージ アカウント キーの更新、およびサンプル データの有効化を行うことができます。
新しい Web サービスにアクセスする
Machine Learning Studio (クラシック) から Web サービスをデプロイしたら、プログラムでそのサービスにデータを送信したり、応答を受信したりできます。
[Consume (使用)] ページでは、Web サービスへのアクセスに必要なすべての情報が提供されます。 たとえば、API キーは、サービスへの承認済みアクセスを許可するために提供されます。
Machine Learning Studio (クラシック) Web サービスへのアクセスの詳細については、Machine Learning Studio (クラシック) Web サービスを使用する方法に関するページを参照してください。
新しい Web サービスを管理する
Machine Learning Studio (クラシック) Web サービス ポータルを使用して新しい Web サービスを管理できます。 メイン ポータル ページ で [Web サービス]をクリックします。 Web サービスのページでは、サービスを削除したり、コピーしたりすることができます。 特定のサービスを監視するには、サービスをクリックし、 [ダッシュボード]をクリックします。 Web サービスに関連付けられたバッチ ジョブを監視するには、 [Batch Request Log (バッチ要求ログ)]をクリックします。
新しい Web サービスを複数のリージョンにデプロイする
複数のサブスクリプションやワークスペースがなくても、複数のリージョンに新しい Web サービスを簡単にデプロイできます。
料金は、リージョンに固有なので、Web サービスをデプロイするリージョンごとに課金プランを定義する必要があります。
別のリージョンにプランを作成する
- Machine Learning Web サービスにサインインします。
- [プラン] メニュー オプションをクリックします。
- [プラン] 概要ページで 新規 をクリックします。
- [サブスクリプション] ドロップダウンで、新しいプランを配置するサブスクリプションを選択します。
- [地域] ドロップダウンで、新しいプランのリージョンを選択します。 選択したリージョンのプラン オプションが、ページの [Plan Options (プラン オプション)] セクションに表示されます。
- [リソース グループ] ドロップダウンで、プランのリソース グループを選択します。 リソース グループの詳細については、「Azure Resource Manager の概要」をご覧ください。
- [プラン名] にプランの名前を入力します。
- [Plan Options (プラン オプション)]で、新しいプランの課金レベルをクリックします。
- Create をクリックしてください。
別のリージョンに Web サービスをデプロイする
- Machine Learning Web サービスのページで、[Web サービス] メニュー オプションをクリックします。
- 新しいリージョンにデプロイする Web サービスを選択します。
- コピー をクリックします。
- [Web サービス名]に Web サービスの新しい名前を入力します。
- [Web service description (Web サービスの説明)]に Web サービスの説明を入力します。
- [サブスクリプション] ドロップダウンで、新しい Web サービスを配置するサブスクリプションを選択します。
- [リソース グループ] ドロップダウンで、Web サービスのリソース グループを選択します。 リソース グループの詳細については、「Azure Resource Manager の概要」をご覧ください。
- [地域] ドロップダウンで、Web サービスをデプロイするリージョンを選択します。
- [ストレージ アカウント] ドロップダウンで、Web サービスを格納するためのストレージ アカウントを選択します。
- [Price Plan (価格プラン)] ドロップダウンで、手順 8 で選択したリージョンのプランを選択します。
- コピー をクリックします。
従来の Web サービスとしてデプロイする
予測実験の準備を十分に実行したので、従来の Azure Web サービスとしてデプロイできます。 Web サービスを使用してユーザーはデータをモデルに送信でき、モデルは予測を返します。
予測実験をデプロイするには、実験キャンバスの下部にある [実行] をクリックし、[Web サービスのデプロイ] をクリックします。 Web サービスがセットアップされ、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 サービスを管理する Azure Portal に表示されます。
INPUT SCHEMA、OUTPUT SCHEMA、Web SERVICE PARAMETER の各列に文字列を入力し、入力データ、出力データ、Web サービス パラメーターの説明を追加できます。 これらの説明は、Web サービスのサンプル コードのドキュメントで使用されます。
ログ記録を有効にすれば、Web サービスのアクセスで発生するすべてのエラーを診断できます。 詳細については、Machine Learning Studio (クラシック) 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 サービスが停止され、新しい予測実験が代わりにデプロイされます。
Note
たとえば元の Web サービスの構成に変更を加えた場合や新しい表示名または説明を入力した場合、それらの値をもう一度入力する必要が生じます。
Web サービスを更新するオプションの 1 つに、モデルをプログラムによって再トレーニングする方法があります。 詳細については、プログラムによる Machine Learning Studio (クラシック) のモデルの再トレーニングに関するページを参照してください。
次のステップ
デプロイのしくみに関する技術的な詳細については、Machine Learning Studio (クラシック) モデルが実験から運用可能な Web サービスになるまでの過程に関するページを参照してください。
デプロイのためにモデルを準備する方法の詳細については、Machine Learning Studio (クラシック) でのデプロイのためにモデルを準備する方法に関するページを参照してください。
REST API を使用して Web サービスにアクセスするには、いくつかの方法があります。 Machine Learning Studio (クラシック) Web サービスを使用する方法に関するページを参照してください。