チュートリアル 3: 信用リスク モデルをデプロイする - Machine Learning Studio (クラシック)
適用対象: 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 (クラシック) で単純なモデルを開発します。 その後、そのモデルを Machine Learning Web サービスとしてデプロイします。 このデプロイ モデルは、新しいデータを使用して予測を行うことができます。 このチュートリアルは、3 部構成のチュートリアル シリーズのパート 3 です。
クレジットの申請書に記入する情報に基づいて個人のクレジット リスクを予測する必要があるとします。
信用リスクの評価は複雑な問題ですが、このチュートリアルでは、それを少し簡略化してみます。 Machine Learning Studio (クラシック) を使用して予測分析ソリューションを作成する方法の例として使用してください。 このソリューションでは、Machine Learning Studio (クラシック) と Machine Learning Web サービスを使用します。
この 3 部構成のチュートリアルでは、まず、公表されている信用リスク データを使用します。 その後、予測モデルを開発してトレーニングします。 最後にそのモデルを Web サービスとしてデプロイします。
チュートリアルのパート 1 では、Machine Learning Studio (クラシック) ワークスペースを作成し、データをアップロードし、実験を作成しました。
チュートリアルのパート 2 では、モデルをトレーニングして評価しました。
チュートリアルのこのパートでは、次のことを行います。
- 展開の準備をする
- Web サービスをデプロイする
- Web サービスをテストする
- Web サービスを管理する
- Web サービスにアクセスする
前提条件
チュートリアルのパート 2 を完了していること。
展開の準備をする
このチュートリアルで作成した予測モデルを他のユーザーが使用できるように、Web サービスとして Azure にデプロイできます。
これまでは、モデルのトレーニングを実験してきました。 ただし、デプロイするサービスのトレーニングはこれ以上行われません。サービスは、モデルに基づいてユーザーの入力をスコア付けすることで新しい予測を生成します。 そのため、この実験を "トレーニング" 実験から "予測" 実験に変換するための準備をします。
デプロイの準備は、3 ステップのプロセスです。
- モデルのいずれかを削除する
- 作成した "トレーニング実験" を "予測実験" に変換する
- Web サービスとして予測実験をデプロイする
モデルのいずれかを削除する
最初に、この実験を少しスリム化する必要があります。 現在、実験には 2 つの異なるモデルがありますが、Web サービスとしてデプロイするサービスでは、モデルは 1 つだけ使用します。
ブースト ツリー モデルの方が SVM モデルより優れていると判断したものとします。 このため、最初に実行するのは、2 クラス サポート ベクター マシン モジュールと、それをトレーニングするために使用したモジュールの削除です。 まずは実験キャンバスの下にある [名前を付けて保存] をクリックして実験のコピーを作成します。
次のモジュールを削除する必要があります。
- 2 クラス サポート ベクター マシン
- 上記に接続されていたモデルのトレーニング モジュールとモデルのスコア付けモジュール
- データの正規化 (両方)
- モデルの評価 (モデルの評価は終了したため)
各モジュールを選択して Delete キーを押すか、モジュールを右クリックして [削除]を選択します。
これでモデルは次のようになるはずです。
これで、2 クラス ブースト デシジョン ツリーを使用するモデルをデプロイする準備ができました。
トレーニング実験を予測実験に変換する
このモデルをデプロイできるよう準備するには、このトレーニング実験を予測実験に変換する必要があります。 これを行うには、3 つの手順を実行します。
- トレーニングしたモデルを保存し、トレーニング モジュールを置き換えます。
- 実験をトリミングしてトレーニングのためのみに必要だったモジュールを削除します。
- Web サービスが入力を受け取る場所と出力を生成する場所を定義します
この 3 つの手順は手動でも実行できますが、幸いにも、実験キャンバスの下部にある [Set Up Web Service]\(Web サービスの設定\) をクリックすることですべての手順を完了できます ([Predictive Web Service]\(予測 Web サービス\) オプションを選択します)。
ヒント
トレーニング実験を予測実験に変換するときの動作の詳細については、Machine Learning Studio (クラシック) でのデプロイのためにモデルを準備する方法に関するページを参照してください。
[Web サービスの設定]をクリックすると、次の動作が行われます。
- トレーニング済みのモデルが 1 つのトレーニング済みのモデル モジュールに変換され、実験キャンバスの左側にあるモジュール パレットに保存されます ([トレーニング済みのモデル] で見つけることができます)。
- トレーニングに使用されたモジュールは削除されます。具体的には:
- 2 クラス ブースト デシジョン ツリー
- モデルのトレーニング
- データの分割
- データをテストするために使用した 2 つ目の R スクリプトの実行モジュール
- 保存したトレーニング済みのモデルが実験に追加されます。
- Web サービスの入力モジュールと Web サービスの出力モジュールが追加されます (これらは、ユーザーのデータがどこでモデルに入力されるか、どのようなデータが返されるか、いつ Web サービスにアクセスされるかを識別します)
Note
実験は、実験キャンバスの上部に追加された 2 つのタブに分かれて保存されます。 元のトレーニング実験は [トレーニング実験] タブに、新しく作成された予測実験は [予測実験] タブに配置されます。 Web サービスとしてデプロイするのは予測実験です。
この特定の実験では、手順を 1 つ追加で実行する必要があります。 データに重み関数を提供するために、2 つの R スクリプトの実行モジュールが追加されています。 この追加はトレーニングとテストを行うために必要な操作であるため、これらのモジュールは最終モデルから削除できます。 Machine Learning Studio (クラシック) によって、分割モジュールを削除する際に、R スクリプトの実行モジュールが 1 つ削除されています。 ここで、もう 1 つのモジュールを削除し、メタデータ エディターをモデルのスコア付けに直接接続できます。
現在、実験は以下のようになっています。
Note
UCI のドイツ語のクレジット カード データ データセットはどうして予測実験に残されたか疑問に思われるでしょう。 このサービスでは、元のデータセットではなくユーザーのデータを使用します。それにもかかわらずなぜ元のデータセットを残すのでしょうか?
サービスで元のクレジット カード データを必要としないのは本当です。 しかし、列がいくつあり、どの列が数値型であるかなどの情報を含むこのデータのスキーマが必要になります。 このスキーマ情報は、ユーザーのデータを解釈するうえで必要になります。 そこで、これらのコンポーネントを接続したままにして、サービスが実行されているときにスコア付けモジュールがデータセット スキーマを利用できるようにしています。 データは使用されません。スキーマだけが使用されます。
注意すべき重要な点の 1 つとして、元のデータセットにラベルが含まれている場合は、Web 入力からの必要なスキーマにもラベル付きの列が必要です。 これを回避するには、Web 入力とトレーニング データセットを共通モジュールに接続する前に、ラベル、およびトレーニング データセットにあった (しかし、Web 入力に含まれることのない) 他のデータを削除します。
最後に実験を 1 回実行します ([ 実行] をクリック)。モデルがまだ動作していることを確認する場合は、 Score Model モジュールの出力をクリックし、結果の表示 を選択。 元のデータが、信用リスク値 ("スコア付けラベル") とスコア付け確率値 ("スコア付け確率") と共に表示されます。
Web サービスをデプロイする
従来の Web サービスまたは Azure Resource Manager に基づく新しい Web サービスのどちらかとして実験をデプロイできます。
従来の Web サービスとしてデプロイする
実験から派生する従来の Web サービスをデプロイするには、キャンバスの下にある [Web サービスのデプロイ] をクリックし、[Deploy Web Service (Classic) (Web サービスのデプロイ [従来])] を選択します。 Machine Learning Studio (クラシック) によって実験が Web サービスとしてデプロイされ、その Web サービス用のダッシュボードに移動します。 このページから実験に戻って ([View snapshot]\(スナップショットの表示\) または [View latest]\(最新の表示\) をクリック)、Web サービスの簡単なテストを実行できます (以下の「Web サービスをテストする」セクションを参照してください)。 この Web サービスにアクセスできるアプリケーションを作成するための情報も表示されます (詳細はこのチュートリアルの次の手順を参照してください)。
サービスを構成するには、[構成] タブをクリックします。このタブでは、サービス名 (既定で実験名が付けられます) を変更したり、説明を追加したりすることができます。 また、入力データと出力データにわかりやすいラベルを付けることもできます。
新しい Web サービスとしてデプロイする
Note
新しい Web サービスをデプロイするには、Web サービスのデプロイ先となるサブスクリプションで十分なアクセス許可を持っている必要があります。 詳細については、Machine Learning Web サービス ポータルを使用した Web サービスの管理に関するページを参照してください。
実験から派生した新しい Web サービスをデプロイするには:
キャンバスの下部の [Web サービスのデプロイ] をクリックし、[Deploy Web Service (New) (Web サービスのデプロイ (新規))] を選択します。 Machine Learning Studio (クラシック) から、Machine Learning Web サービスの [Deploy Experiment]\(実験のデプロイ\) ページに移動します。
Web サービスの名前を入力します。
[料金プラン] で、既存の価格プランを選択するか、[新規作成] を選択し、新しいプランに名前を付け、月額プラン オプションを選択します。 プラン レベルは既定では既定のリージョンのプランになり、Web サービスはそのリージョンにデプロイされます。
[デプロイ] をクリックします。
数分後に、Web サービスの [クイック スタート] ページが開きます。
サービスを構成するには、[構成] タブをクリックします。このタブでは、サービス タイトルを変更したり、説明を追加したりすることができます。
Web サービスをテストするには、[テスト] タブをクリックします (以下の「Web サービスをテストする」を参照してください)。 Web サービスにアクセスできるアプリケーションの作成については、[Consume]\(使用\) タブをクリックします (詳細については、このチュートリアルの次の手順を参照してください)。
ヒント
Web サービスをデプロイした後で更新できます。 たとえばモデルを変更する場合は、トレーニング実験を編集し、モデルのパラメーターを調整した後で [Web サービスのデプロイ] をクリックし、[Deploy Web Service (Classic) \(Web サービスのデプロイ (クラシック))] または [Deploy Web Service (New) \(Web サービスのデプロイ (新規))].を選択します。 もう一度実験をデプロイすると、Web サービスが置き換えられ、更新済みのモデルが使用されるようになります。
Web サービスをテストする
Web サービスがアクセスされると、ユーザーのデータが Web サービスの入力モジュールに入力され、そこからモデルのスコア付けモジュールに渡されてスコアが付けられます。 設定した予測実験の方法では、モデルのデータは、元の信用リスク データセットと同じ形式であることが期待されています。 結果は、Web サービスから Web サービスの出力モジュール経由でユーザーに返されます。
ヒント
構成した予測実験の方法では、モデルのスコア付けモジュールから結果全体が返されます。 これには、すべての入力データに加え、信用リスク値とスコア付け確率が含まれます。 ただし、必要に応じて、これとは異なる結果、たとえば信用リスク値のみを返すことができます。 これを行うには、列の選択モジュールを、モデルのスコア付けと Web サービスの出力の間に挿入して、Web サービスから返したくない列を排除します。
従来の Web サービスは、Machine Learning Studio (クラシック) または Azure Machine Learning Web サービス ポータルでテストできます。 新しい Web サービスは、Machine Learning Web サービス ポータルでのみテストできます。
ヒント
Machine Learning Web サービス ポータルでテストするとき、要求応答サービスのテストに使用できるサンプル データをポータルで作成することができます。 [構成] ページで、[Sample Data Enabled? (サンプル データを有効にしますか?)] で [はい] を選択します。 [テスト] ページの [要求 - 応答] タブを開くと、ポータルによって元の信用リスクデータセットから取得されたサンプル データが入力されます。
従来の Web サービスをテストする
従来の Web サービスは、Machine Learning Studio (クラシック) または Machine Learning Web サービス ポータルでテストできます。
Machine Learning Studio (クラシック) でテストする
Web サービスの [ダッシュボード] ページで、[既定のエンドポイント] の [テスト] ボタンをクリックします。 サービスの入力データを要求するダイアログが表示されます。 これらは、元の信用リスク データセットに含まれるのと同じ列です。
データのセットを入力し、 [OK]をクリックします。
Machine Learning Web サービス ポータルでテストする
Web サービスの [ダッシュボード] ページで、[既定のエンドポイント] の [Test preview (プレビューのテスト)] リンクをクリックします。 Machine Learning Web サービス ポータルで、Web サービス エンドポイント用のテスト ページが開き、サービスの入力データが求められます。 これらは、元の信用リスク データセットに含まれるのと同じ列です。
[Request-Response (要求応答)]のテストをクリックします。
新しい Web サービスをテストする
新しい Web サービスは、Machine Learning Web サービス ポータルでのみテストできます。
Machine Learning Web サービス ポータルで、ページ上部の [テスト] をクリックします。 [テスト] ページが開かれ、サービスのデータを入力することができます。 表示される入力フィールドは、元の信用リスク データセットに含まれる列に対応しています。
データのセットを入力し、 [Test Request-Response (要求応答のテスト)]をクリックします。
テストの結果は、ページの右側の出力列に表示されます。
Web サービスを管理する
デプロイした Web サービスは、従来の Web サービスでも新規 Web サービスでも、Machine Learning Web サービス ポータルから管理できます。
Web サービスのパフォーマンスを監視するには:
- Machine Learning Web サービス ポータルにサインインします。
- [Web サービス] をクリックします。
- Web サービスをクリックします
- [ダッシュボード] をクリックします。
Web サービスにアクセスする
このチュートリアルで前の手順では、信用リスク予測モデルを使用する Web サービスをデプロイしました。 これにより、ユーザーは、Web サービスにデータを送信し、結果を受信できます。
Web サービスは、次の 2 つの方法のいずれかで、REST API を使用してデータを受信して返すことができる Azure Web サービスです。
- 要求/応答 - ユーザーが HTTP プロトコルを使用して 1 行以上のクレジット データをサービスに送信し、サービスが 1 つ以上の結果のセットを返します。
- バッチ実行 - ユーザーが Azure BLOB に 1 行以上のクレジット データを格納し、そのBLOB の場所をサービスに送信します。 サービスは、入力 BLOB 内のデータのすべての行にスコアを付け、結果を別の BLOB に格納し、この BLOB のURL を返します。
Note
Studio (classic) の特徴の列名では、大文字と小文字が区別されます。 Web サービスを呼び出すための入力データの列名が、トレーニング データセットのものと同じであることを確認します。
Web サービスへのアクセスと利用の詳細については、Web アプリ テンプレートで Machine Learning Web サービスを使用する方法に関するページを参照してください。
リソースをクリーンアップする
この記事を使用して作成したリソースが不要になった場合は、料金の発生を避けるために削除してください。 方法については、製品内ユーザー データのエクスポートと削除に関するページを参照してください。
次のステップ
このチュートリアルでは、次の手順を完了しました。
- 展開の準備をする
- Web サービスをデプロイする
- Web サービスをテストする
- Web サービスを管理する
- Web サービスにアクセスする
R、C#、Python プログラミング言語で提供されるスターター コードを使用して、Web サービスにアクセスするカスタム アプリケーションを開発することもできます。