チュートリアル手順 5: Azure Machine Learning Web サービスをデプロイするWalkthrough Step 5: Deploy the Azure Machine Learning web service

これは、「 チュートリアル: 信用リスク評価のための予測分析ソリューションを Azure Machine Learning で開発するThis is the fifth step of the walkthrough, Develop a predictive analytics solution in Azure Machine Learning

  1. Machine Learning ワークスペースの作成Create a Machine Learning workspace
  2. 既存のデータをアップロードするUpload existing data
  3. 新しい実験を作成するCreate a new experiment
  4. モデルをトレーニングして評価するTrain and evaluate the models
  5. Web サービスをデプロイするDeploy the web service
  6. Web サービスにアクセスするAccess the web service

このチュートリアルで作成した予測モデルを他のユーザーが使用できるように、Web サービスとして Azure にデプロイします。To give others a chance to use the predictive model we've developed in this walkthrough, we can deploy it as a web service on Azure.

これまでは、モデルのトレーニングを実験してきました。Up to this point we've been experimenting with training our model. ただし、デプロイするサービスのトレーニングはこれ以上行われません。サービスは、モデルに基づいてユーザーの入力をスコア付けすることで新しい予測を生成します。But the deployed service is no longer going to do training - it's going to generate new predictions by scoring the user's input based on our model. このため、この実験を "トレーニング" 実験から "予測" 実験に変換するための準備をします。So we're going to do some preparation to convert this experiment from a training experiment to a predictive experiment.

これは 3 段階のプロセスです。This is a three-step process:

  1. モデルのいずれかを削除するRemove one of the models
  2. 作成した "トレーニング実験" を "予測実験" に変換Convert the training experiment we've created into a predictive experiment
  3. Web サービスとして予測実験をデプロイするDeploy the predictive experiment as a web service

モデルのいずれかを削除するRemove one of the models

最初に、この実験を少しスリム化する必要があります。First, we need to trim this experiment down a little. 現在、実験には 2 つの異なるモデルがありますが、Web サービスとしてデプロイするサービスでは、モデルは 1 つだけ使用します。We currently have two different models in the experiment, but we only want to use one model when we deploy this as a web service.

使用にあたってはブースト ツリー モデルの方が優れていると判断したとします。Let's say we've decided that the boosted tree model performed better than the SVM model. このため、最初に実行するのは、2 クラス サポート ベクター マシン モジュールと、それをトレーニングするために使用したモジュールの削除です。So the first thing to do is remove the Two-Class Support Vector Machine module and the modules that were used for training it. まずは実験キャンバスの下にある [名前を付けて保存] をクリックして実験のコピーを作成します。You may want to make a copy of the experiment first by clicking Save As at the bottom of the experiment canvas.

次のモジュールを削除する必要があります。We need to delete the following modules:

各モジュールを選択して Delete キーを押すか、モジュールを右クリックして [削除]を選択します。Select each module and press the Delete key, or right-click the module and select Delete.

SVM モデルを削除

これでモデルは次のようになるはずです。Our model should now look something like this:

SVM モデルを削除

これで、2 クラス ブースト デシジョン ツリーを使用するモデルをデプロイする準備ができました。Now we're ready to deploy this model using the Two-Class Boosted Decision Tree.

トレーニング実験を予測実験に変換するConvert the training experiment to a predictive experiment

このモデルをデプロイできるよう準備するには、このトレーニング実験を予測実験に変換する必要があります。To get this model ready for deployment, we need to convert this training experiment to a predictive experiment. これを行うには、3 つの手順を実行します。This involves three steps:

  1. トレーニングしたモデルを保存し、トレーニング モジュールを置き換えます。Save the model we've trained and then replace our training modules
  2. 実験をトリミングしてトレーニングのためのみに必要だったモジュールを削除します。Trim the experiment to remove modules that were only needed for training
  3. Web サービスが入力を受け取る場所と出力を生成する場所を定義しますDefine where the web service will accept input and where it generates the output

この 3 つの手順は手動でも実行できますが、幸いにも、実験キャンバスの下部にある [Web サービスの設定] をクリックすることですべての手順を完了できます ([予測 Web サービス] オプションを選択します)。We could do this manually, but fortunately all three steps can be accomplished by clicking Set Up Web Service at the bottom of the experiment canvas (and selecting the Predictive Web Service option).

ヒント

トレーニング実験を予測実験に変換するときの動作の詳細については、Azure Machine Learning Studio でのデプロイのためにモデルを準備する方法に関するページを参照してください。If you want more details on what happens when you convert a training experiment to a predictive experiment, see How to prepare your model for deployment in Azure Machine Learning Studio.

[Web サービスの設定]をクリックすると、次の動作が行われます。When you click Set Up Web Service, several things happen:

  • トレーニング済みのモデルが 1 つのトレーニング済みのモデル モジュールに変換され、実験キャンバスの左側にあるモジュール パレットに保存されます ([トレーニング済みのモデル] で見つけることができます)。The trained model is converted to a single Trained Model module and stored in the module palette to the left of the experiment canvas (you can find it under Trained Models)
  • トレーニングに使用したモジュールは削除されます。具体的には次のモジュールが削除されます。Modules that were used for training are removed; specifically:
  • 保存したトレーニング済みのモデルが実験に追加されます。The saved trained model is added back into the experiment
  • Web サービスの入力モジュールと Web サービスの出力モジュールが追加されます (これらは、ユーザーのデータがどこでモデルに入力されるか、どのようなデータが返されるか、いつ Web サービスにアクセスされるかを識別します)Web service input and Web service output modules are added (these identify where the user's data will enter the model, and what data is returned, when the web service is accessed)

注意

実験は、実験キャンバスの上部に追加された 2 つのタブに分かれて保存されます。You can see that the experiment is saved in two parts under tabs that have been added at the top of the experiment canvas. 元のトレーニング実験は [トレーニング実験] タブに、新しく作成された予測実験は [予測実験] タブに配置されます。The original training experiment is under the tab Training experiment, and the newly created predictive experiment is under Predictive experiment. Web サービスとしてデプロイするのは予測実験です。The predictive experiment is the one we'll deploy as a web service.

この特定の実験では、手順を 1 つ追加で実行する必要があります。We need to take one additional step with this particular experiment. データに重み関数を提供するために、2 つの R スクリプトの実行モジュールが追加されています。We added two Execute R Script modules to provide a weighting function to the data. この追加はトレーニングとテストを行うために必要な操作であるため、これらのモジュールは最終モデルから削除できます。That was just a trick we needed for training and testing, so we can take out those modules in the final model. Machine Learning Studio は、分割モジュールを削除する際に、R スクリプトの実行モジュールを 1 つ削除しています。Machine Learning Studio removed one Execute R Script module when it removed the Split module. ここで、もう 1 つのモジュールを削除し、メタデータ エディターモデルのスコア付けに直接接続できます。Now we can remove the other and connect Metadata Editor directly to Score Model.

現在、実験は以下のようになっています。Our experiment should now look like this:

Scoring the trained model

注意

UCI のドイツ語のクレジット カード データ データセットはどうして予測実験に残されたか疑問に思われるでしょう。You may be wondering why we left the UCI German Credit Card Data dataset in the predictive experiment. このサービスでは、元のデータセットではなくユーザーのデータを使用します。それにもかかわらずなぜ元のデータセットを残すのでしょうか?The service is going to score the user's data, not the original dataset, so why leave the original dataset in the model?

サービスで元のクレジット カード データを必要としないのは本当です。It's true that the service doesn't need the original credit card data. しかし、列がいくつあり、どの列が数値型であるかなどの情報を含むこのデータのスキーマが必要になります。But it does need the schema for that data, which includes information such as how many columns there are and which columns are numeric. このスキーマ情報は、ユーザーのデータを解釈するうえで必要になります。This schema information is necessary to interpret the user's data. そこで、これらのコンポーネントを接続したままにして、サービスが実行されているときにスコア付けモジュールがデータセット スキーマを利用できるようにしています。We leave these components connected so that the scoring module has the dataset schema when the service is running. データは使用されません。スキーマだけが使用されます。The data isn't used, just the schema.

最後にもう一度実験を実行します ( [実行]をクリックします)。モデルがまだ機能していることを確認するには、モデルのスコア付けモジュールをクリックし、[結果の表示] を選択します。Run the experiment one last time (click Run.) If you want to verify that the model is still working, click the output of the Score Model module and select View Results. 元のデータが、信用リスク値 ("スコア付けラベル") とスコア付け確率値 ("スコア付け確率") と共に表示されます。You can see that the original data is displayed, along with the credit risk value ("Scored Labels") and the scoring probability value ("Scored Probabilities".)

Web サービスをデプロイするDeploy the web service

従来の Web サービスまたは Azure Resource Manager に基づく新しい Web サービスのどちらかとして実験をデプロイできます。You can deploy the experiment as either a Classic web service, or as a New web service that's based on Azure Resource Manager.

従来の Web サービスとしてデプロイするDeploy as a Classic web service

実験から派生する従来の Web サービスをデプロイするには、キャンバスの下にある [Web サービスのデプロイ] をクリックし、[Deploy Web Service (Classic) (Web サービスのデプロイ [従来])] を選択します。To deploy a Classic web service derived from our experiment, click Deploy Web Service below the canvas and select Deploy Web Service [Classic]. Machine Learning Studio によって実験が Web サービスとしてデプロイされ、その Web サービス用のダッシュボードに移動します。Machine Learning Studio deploys the experiment as a web service and takes you to the dashboard for that web service. このページから実験に戻って ([スナップショットの表示] または [最新の表示] をクリック)、Web サービスの簡単なテストを実行できます (以下の「Web サービスをテストする」セクションを参照してください)。From this page you can return to the experiment (View snapshot or View latest) and run a simple test of the web service (see Test the web service below). この Web サービスにアクセスできるアプリケーションを作成するための情報も表示されます (詳細はこのチュートリアルの次の手順を参照してください)。There is also information here for creating applications that can access the web service (more on that in the next step of this walkthrough).

Web サービス ダッシュボード

サービスを構成するには、 [構成] タブをクリックします。このタブでは、サービス名 (既定で実験名が付けられます) を変更したり、説明を追加したりできます。You can configure the service by clicking the CONFIGURATION tab. Here you can modify the service name (it's given the experiment name by default) and give it a description. また、入力データと出力データにわかりやすいラベルを付けることもできます。You can also give more friendly labels for the input and output data.

Web サービスを構成する

新しい Web サービスとしてデプロイするDeploy as a New web service

注意

新しい Web サービスをデプロイするには、Web サービスのデプロイ先となるサブスクリプションで十分なアクセス許可を持っている必要があります。To deploy a New web service you must have sufficient permissions in the subscription to which you are deploying the web service. 詳細については、「Azure Machine Learning Web サービス ポータルを使用して Web サービスを管理する」を参照してください。For more information, see Manage a web service using the Azure Machine Learning Web Services portal.

実験から派生した新しい Web サービスをデプロイするには:To deploy a New web service derived from our experiment:

  1. キャンバスの下部の [Web サービスのデプロイ] をクリックし、[Deploy Web Service (New) (Web サービスのデプロイ (新規))] を選択します。Click Deploy Web Service below the canvas and select Deploy Web Service [New]. Machine Learning Studio から Azure Machine Learning Web サービスの [Deploy Experiment (実験のデプロイ)] ページに移動します。Machine Learning Studio transfers you to the Azure Machine Learning web services Deploy Experiment page.

  2. Web サービスの名前を入力します。Enter a name for the web service.

  3. [料金プラン] で、既存の価格プランを選択するか、[新規作成] を選択し、新しいプランに名前を付け、月額プラン オプションを選択します。For Price Plan, you can select an existing pricing plan, or select "Create new" and give the new plan a name and select the monthly plan option. プラン レベルは既定では既定のリージョンのプランになり、Web サービスはそのリージョンにデプロイされます。The plan tiers default to the plans for your default region and your web service is deployed to that region.

  4. [デプロイ]をクリックします。Click Deploy.

数分後に、Web サービスの [クイック スタート] ページが開きます。After a few minutes, the Quickstart page for your web service opens.

[構成] タブをクリックしてサービスを構成できます。ここで、サービスのタイトルを変更し、説明を入力できます。You can configure the service by clicking the Configure tab. Here you can modify the service title and give it a description.

Web サービスをテストするには、[テスト] タブをクリックします (以下の「Web サービスをテストする」を参照してください)。To test the web service, click the Test tab (see Test the web service below). Web サービスにアクセスできるアプリケーションの作成については、[Consume (使用)] タブをクリックします (詳細については、このチュートリアルの次の手順を参照してください)。For information on creating applications that can access the web service, click the Consume tab (the next step in this walkthrough will go into more detail).

ヒント

Web サービスをデプロイした後で更新できます。You can update the web service after you've deployed it. たとえばモデルを変更する場合は、トレーニング実験を編集し、モデルのパラメーターを調整した後で [Web サービスのデプロイ] をクリックし、[Deploy Web Service (Classic) (Web サービスのデプロイ (クラシック))] または [Deploy Web Service (New) (Web サービスのデプロイ (新規))].を選択します。For example, if you want to change your model, then you can edit the training experiment, tweak the model parameters, and click Deploy Web Service, selecting Deploy Web Service [Classic] or Deploy Web Service [New]. もう一度実験をデプロイすると、Web サービスが置き換えられ、更新済みのモデルが使用されるようになります。When you deploy the experiment again, it replaces the web service, now using your updated model.

Web サービスをテストするTest the web service

Web サービスがアクセスされると、ユーザーのデータは Web サービスの入力モジュールに入力され、そこからモデルのスコア付けモジュールに渡されてスコアが付けられます。When the web service is accessed, the user's data enters through the Web service input module where it's passed to the Score Model module and scored. 設定した予測実験の方法では、モデルのデータは、元の信用リスクデータ セットと同じ形式であることが期待されています。The way we've set up the predictive experiment, the model expects data in the same format as the original credit risk dataset. 結果は、Web サービスから Web サービスの出力モジュール経由でユーザーに返されます。The results are returned to the user from the web service through the Web service output module.

ヒント

構成した予測実験の方法では、モデルのスコア付けモジュールから結果全体が返されます。The way we have the predictive experiment configured, the entire results from the Score Model module are returned. これには、すべての入力データに加え、信用リスク値とスコア付け確率が含まれます。This includes all the input data plus the credit risk value and the scoring probability. ただし、必要に応じて、これとは異なる結果、たとえば信用リスク値のみを返すことができます。But you can return something different if you want - for example, you could return just the credit risk value. それには、列の投影モジュールを、モデルのスコア付けWeb サービスの出力の間に挿入して、Web サービスから返さない列を排除します。To do this, insert a Project Columns module between Score Model and the Web service output to eliminate columns you don't want the web service to return.

従来の Web サービスは、Machine Learning Studio または Azure Machine Learning Web サービス ポータルでテストできます。You can test a Classic web service either in Machine Learning Studio or in the Azure Machine Learning Web Services portal. 新しい Web サービスは、Machine Learning Web サービス ポータルでのみテストできます。You can test a New web service only in the Machine Learning Web Services portal.

ヒント

Azure Machine Learning Web サービス ポータルでテストするとき、要求 - 応答型のサービスをテストするために使用できるサンプル データをポータルに作成させることができます。When testing in the Azure Machine Learning Web Services portal, you can have the portal create sample data that you can use to test the Request-Response service. [構成] ページで、[Sample Data Enabled? (サンプル データを有効にしますか?)] で [はい] を選択します。On the Configure page, select "Yes" for Sample Data Enabled?. [テスト] ページの [要求 - 応答] タブを開くと、ポータルによって元の信用リスクデータセットから取得されたサンプル データが入力されます。When you open the Request-Response tab on the Test page, the portal fills in sample data taken from the original credit risk dataset.

従来の Web サービスをテストするTest a Classic web service

従来の Web サービスは、Machine Learning Studio または Machine Learning Web サービス ポータルでテストできます。You can test a Classic web service in Machine Learning Studio or in the Machine Learning Web Services portal.

Machine Learning Studio でのテストでテストするTest in Machine Learning Studio

  1. Web サービスの [ダッシュボード] ページで、[既定のエンドポイント][テスト] ボタンをクリックします。On the DASHBOARD page for the web service, click the Test button under Default Endpoint. サービスの入力データを要求するダイアログが表示されます。A dialog pops up and asks you for the input data for the service. これらは、元の信用リスク データセットに含まれるのと同じ列です。These are the same columns that appeared in the original credit risk dataset.

  2. データのセットを入力し、 [OK]をクリックします。Enter a set of data and then click OK.

Machine Learning Web サービス ポータルでテストするTest in the Machine Learning Web Services portal

  1. Web サービスの [ダッシュボード] ページで、[既定のエンドポイント][Test preview (プレビューのテスト)] リンクをクリックします。On the DASHBOARD page for the web service, click the Test preview link under Default Endpoint. Azure Machine Learning Web サービス ポータルで、Web サービス エンドポイント用のテスト ページが開き、サービスの入力データが求められます。The test page in the Azure Machine Learning Web Services portal for the web service endpoint opens and asks you for the input data for the service. これらは、元の信用リスク データセットに含まれるのと同じ列です。These are the same columns that appeared in the original credit risk dataset.

  2. [Test Request-Response (要求応答のテスト)] をクリックします。Click Test Request-Response.

新しい Web サービスをテストするTest a New web service

新しい Web サービスは、Machine Learning Web サービス ポータルでのみテストできます。You can test a New web service only in the Machine Learning Web Services portal.

  1. Azure Machine Learning Web サービス ポータルで、ページ上部の [テスト] をクリックします。In the Azure Machine Learning Web Services portal, click Test at the top of the page. [テスト] ページが開かれ、サービスのデータを入力することができます。The Test page opens and you can input data for the service. 表示される入力フィールドは、元の信用リスク データセットに含まれる列に対応しています。The input fields displayed correspond to the columns that appeared in the original credit risk dataset.

  2. データのセットを入力し、 [Test Request-Response (要求応答のテスト)]をクリックします。Enter a set of data and then click Test Request-Response.

テストの結果は、ページの右側の出力列に表示されます。The results of the test are displayed on the right-hand side of the page in the output column.

Web サービスを管理するManage the web service

デプロイした Web サービスは、従来の Web サービスでも新しい Web サービスでも、Microsoft Azure Machine Learning Web サービス ポータルから管理できます。Once you've deployed your web service, whether Classic or New, you can manage it from the Microsoft Azure Machine Learning Web Services portal.

Web サービスのパフォーマンスを監視するには:To monitor the performance of your web service:

  1. Microsoft Azure Machine Learning Web サービス ポータルにサインインしますSign in to the Microsoft Azure Machine Learning Web Services portal
  2. [Web サービス] をクリックします。Click Web services
  3. Web サービスをクリックしますClick your web service
  4. [ダッシュボード] をクリックします。Click the Dashboard

次: Web サービスにアクセスするNext: Access the web service