従来の Studio (クラシック) Web サービスの再トレーニングとデプロイRetrain and deploy a classic Studio (classic) web service

機械学習モデルの再トレーニングは、モデルが正確であり、利用できる最も関連性のあるデータに基づいていることを確認するための 1 つの方法です。Retraining machine learning models is one way to ensure they stay accurate and based on the most relevant data available. この記事では、従来の Studio (クラシック) Web サービスを再トレーニングする方法を示します。This article will show you how to retrain a classic Studio (classic) web service. 新しい Studio (クラシック) Web サービスを再トレーニングする方法のガイドについては、こちらのハウツー記事を参照してください。For a guide on how to retrain a new Studio (classic) web service, view this how-to article.

前提条件Prerequisites

この記事では、再トレーニング実験と予測実験の両方が既に用意されていることを前提としています。This article assumes you already have both a retraining experiment and a predictive experiment. これらの手順については、機械学習モデルの再トレーニングとデプロイに関する記事に説明があります。These steps are explained in Retrain and deploy a machine learning model. ただし、機械学習モデルを新しい Web サービスとしてのデプロイするのではなく、予測実験を従来の Web サービスとしてデプロイします。However, instead of deploying your machine learning model as a new web service, you will deploy your predictive experiment as a classic web service.

新しいエンドポイントを追加するAdd a new endpoint

デプロイした予測 Web サービスには、元のトレーニング実験とスコアリング実験のトレーニング済みモデルとの同期が維持された、既定のスコアリング エンドポイントが含まれます。The predictive web service that you deployed contains a default scoring endpoint that is kept in sync with the original training and scoring experiments trained model. 新しいトレーニング済みモデルで Web サービスを更新するには、新しいスコア付けエンドポイントを作成する必要があります。To update your web service to with a new trained model, you must create a new scoring endpoint.

新しいエンドポイントを Web サービスに追加する方法は 2 つあります。There are two ways in which you can add a new end point to a web service:

  • プログラムを使用するProgrammatically
  • Azure Web サービス ポータルを使用するUsing the Azure Web Services portal

注意

エンドポイントは、必ず予測 Web サービスに追加します。トレーニング Web サービスではありません。Be sure you are adding the endpoint to the Predictive Web Service, not the Training Web Service. トレーニング Web サービスと予測 Web サービスの両方を正しくデプロイすると、2 つの Web サービスが個別に表示されます。If you have correctly deployed both a Training and a Predictive Web Service, you should see two separate web services listed. 予測 Web サービスの末尾は "[predictive exp.]" です。The Predictive Web Service should end with "[predictive exp.]".

プログラムを使用してエンドポイントを追加するProgrammatically add an endpoint

GitHub リポジトリで提供されているサンプル コードを使用して、スコア付けエンドポイントを追加できます。You can add scoring endpoints using the sample code provided in this GitHub repository.

Azure Web サービス ポータルを使用してエンドポイントを追加するUse the Azure Web Services portal to add an endpoint

  1. Machine Learning Studio (クラシック) の左側のナビゲーション列で [Web サービス] をクリックします。In Machine Learning Studio (classic), on the left navigation column, click Web Services.
  2. Web サービス ダッシュボードの下部で、 [Manage endpoints preview (エンドポイント プレビューの管理)] をクリックします。At the bottom of the web service dashboard, click Manage endpoints preview.
  3. [追加] をクリックします。Click Add.
  4. 新しいエンドポイントの名前と説明を入力します。Type a name and description for the new endpoint. ログ レベルとサンプル データが有効になっているかどうかを選択します。Select the logging level and whether sample data is enabled. 詳細については、「 Machine Learning Web サービスのログ記録の有効化」を参照してください。For more information on logging, see Enable logging for Machine Learning web services.

追加エンドポイントのトレーニング済みモデルを更新するUpdate the added endpoint’s trained model

PATCH URL を取得するRetrieve PATCH URL

オプション 1:プログラムを使用するOption 1: Programmatically

適切な PATCH URL をプログラムで取得するには、次の手順に従います。To get the correct PATCH URL programmatically, follow these steps:

  1. AddEndpoint サンプル コードを実行します。Run the AddEndpoint sample code.

  2. AddEndpoint の出力から、 HelpLocation 値を見つけ、URL をコピーします。From the output of AddEndpoint, find the HelpLocation value and copy the URL.

    addEndpoint サンプルの出力での HelpLocation

  3. ブラウザーにこの URL を貼り付けて、Web サービスのヘルプ リンクを提供するページに移動します。Paste the URL into a browser to navigate to a page that provides help links for the web service.

  4. [Update Resource (リソースの更新)] リンクをクリックしてパッチ適用のヘルプ ページを開きます。Click the Update Resource link to open the patch help page.

オプション 2:Azure Machine Learning Web サービス ポータルを使用するOption 2: Use the Azure Machine Learning Web Services portal

適切な PATCH URL を Web ポータルを使用して取得するには、次の手順に従います。Follow these steps to get the correct PATCH URL using the web portal:

  1. Azure Machine Learning Web サービス ポータルにサインインします。Sign in to the Azure Machine Learning Web Services portal.
  2. 上部の [Web サービス] または [Classic Web Services](クラシック Web サービス) をクリックします。Click Web Services or Classic Web Services at the top.
  3. 作業中のスコアリング Web サービスをクリックします (Web サービスの既定の名前を変更しなかった場合、その名前の末尾は "[Scoring Exp.]" になります)。Click the scoring web service you're working with (if you didn't modify the default name of the web service, it will end in "[Scoring Exp.]").
  4. [+新規] をクリックします。Click +NEW.
  5. エンドポイントが追加されたら、エンドポイントの名前をクリックします。After the endpoint is added, click the endpoint name.
  6. パッチ URL の下で、 [API Help](API ヘルプ) をクリックして、パッチ適用のヘルプ ページを開きます。Under the Patch URL, click API Help to open the patching help page.

注意

エンドポイントを予測 Web サービスではなくトレーニング Web サービスに追加した場合は、 [リソースの更新] リンクをクリックすると、"この機能はサポートされていないか、このコンテキストでは使用できません。If you added the endpoint to the Training Web Service instead of the Predictive Web Service, you will receive the following error when you click the Update Resource link: "Sorry, but this feature is not supported or available in this context. この Web サービスには、更新可能なリソースがありません。This Web Service has no updatable resources. ご不便をおかけして申し訳ありません。現在、このワークフローの強化に取り組んでいます" というエラーが表示されます。We apologize for the inconvenience and are working on improving this workflow."

PATCH ヘルプ ページには、使用する必要のある PATCH URL が含まれており、これを呼び出すために使用できるサンプル コードが提供されています。The PATCH help page contains the PATCH URL you must use and provides sample code you can use to call it.

PATCH URL

エンドポイントを更新するUpdate the endpoint

これで、トレーニング済みモデルを使用して、前に作成したスコア付けエンドポイントを更新できます。You can now use the trained model to update the scoring endpoint that you created previously.

次のサンプル コードは、BaseLocationRelativeLocationSasBlobToken、および PATCH URL を使用して、エンドポイントを更新する方法を示しています。The following sample code shows you how to use the BaseLocation, RelativeLocation, SasBlobToken, and PATCH URL to update the endpoint.

private async Task OverwriteModel()
{
    var resourceLocations = new
    {
        Resources = new[]
        {
            new
            {
                Name = "Census Model [trained model]",
                Location = new AzureBlobDataReference()
                {
                    BaseLocation = "https://esintussouthsus.blob.core.windows.net/",
                    RelativeLocation = "your endpoint relative location", //from the output, for example: “experimentoutput/8946abfd-79d6-4438-89a9-3e5d109183/8946abfd-79d6-4438-89a9-3e5d109183.ilearner”
                    SasBlobToken = "your endpoint SAS blob token" //from the output, for example: “?sv=2013-08-15&sr=c&sig=37lTTfngRwxCcf94%3D&st=2015-01-30T22%3A53%3A06Z&se=2015-01-31T22%3A58%3A06Z&sp=rl”
                }
            }
        }
    };

    using (var client = new HttpClient())
    {
        client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", apiKey);

        using (var request = new HttpRequestMessage(new HttpMethod("PATCH"), endpointUrl))
        {
            request.Content = new StringContent(JsonConvert.SerializeObject(resourceLocations), System.Text.Encoding.UTF8, "application/json");
            HttpResponseMessage response = await client.SendAsync(request);

            if (!response.IsSuccessStatusCode)
            {
                await WriteFailedResponse(response);
            }

            // Do what you want with a successful response here.
        }
    }
}

この呼び出しの apiKeyendpointUrl は、エンドポイント ダッシュボードから取得できます。The apiKey and the endpointUrl for the call can be obtained from endpoint dashboard.

ResourcesName パラメーターは、予測実験で保存したトレーニング済みモデルのリソース名と一致する必要があります。The value of the Name parameter in Resources should match the Resource Name of the saved Trained Model in the predictive experiment. リソース名を取得するには:To get the Resource Name:

  1. Azure Portal にサインインします。Sign in to the Azure portal.
  2. 左側のメニューで [Machine Learning] をクリックします。In the left menu, click Machine Learning.
  3. [名前] でワークスペースをクリックし、 [Web サービス] をクリックします。Under Name, click your workspace and then click Web Services.
  4. [名前] で [Census Model [predictive exp.]] をクリックします。Under Name, click Census Model [predictive exp.].
  5. 追加した新しいエンドポイントをクリックします。Click the new endpoint you added.
  6. エンドポイント ダッシュボードで、 [リソースの更新] をクリックします。On the endpoint dashboard, click Update Resource.
  7. Web サービスの [Update Resource API Documentation (リソース API ドキュメントの更新)] ページで、 [Updatable Resource (更新可能なリソース)][リソース名] を確認します。On the Update Resource API Documentation page for the web service, you can find the Resource Name under Updatable Resources.

エンドポイントの更新が完了する前に SAS トークンの有効期限が切れる場合は、ジョブ ID を指定して GET を実行し、新しいトークンを取得する必要があります。If your SAS token expires before you finish updating the endpoint, you must perform a GET with the Job ID to obtain a fresh token.

コードが正常に実行すると、新しいエンドポイントは、約 30 秒後に再トレーニング済みモデルを使用し始めます。When the code has successfully run, the new endpoint should start using the retrained model in approximately 30 seconds.

次の手順Next steps

Web サービスの管理または複数の実験の実行の追跡を行う方法については、次の記事を参照してください。To learn more about how to manage web services or keep track of multiple experiments runs, see the following articles: