リソースMachine Learningを使用して Studio (クラシック) モデルを更新します。

適用対象: Azure Data Factory Azure Synapse Analytics

ヒント

企業向けのオールインワン分析ソリューション、Microsoft Fabric の Data Factory をお試しください。 Microsoft Fabric は、データ移動からデータ サイエンス、リアルタイム分析、ビジネス インテリジェンス、レポートまで、あらゆるものをカバーしています。 無料で新しい試用版を開始する方法について説明します。

重要

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

2021 年 12 月 1 日の時点で、新しい Machine Learning Studio (クラシック) リソース (ワークスペースと Web サービス プラン) を作成することはできません。 2024 年 8 月 31 日まで、既存の Machine Learning スタジオ (クラシック) の実験と Web サービスを引き続き使用できます。 詳細については、以下を参照してください:

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

Note

2021年10月1日以降は Machine Learning Studio (クラシック) のリソースを作成できなくなるため、リソース更新アクティビティを使用するのではなく、Machine Learning パイプラインの実行アクティビティAzure Machine Learning を使用して、Machine Learning Studio (クラシック) モデルを更新することをお勧めします。

この記事は、Machine Learning スタジオ (クラシック) の統合に関するメインの記事である Machine Learning スタジオ (クラシック) を使用した予測パイプラインの作成に関する記事を補完するものです。 メインの記事をまだ呼んでいない場合は、この記事を読む前にお読みください。

概要

Machine Learning スタジオ (クラシック) モデルの運用化プロセスの一環として、モデルがトレーニングされ、保存されます。 その後、このモデルを使用して、予測 Web サービスを作成します。 これによって、Web サイト、ダッシュボード、モバイル アプリでこの Web サービスを使用できます。

Machine Learning スタジオ (クラシック) を使用して作成したモデルは、通常、静的ではありません。 新しいデータが使用可能になるか、API のコンシューマーに独自のデータがある場合は、モデルを再トレーニングする必要があります。

再トレーニングは頻繁に発生する可能性があります。 Batch Execution アクティビティとリソースの更新アクティビティを使用すると、再トレーニングと予測 Web サービスの更新によって Machine Learning スタジオ (クラシック) モデルを運用化できます。

次の図は、トレーニングと予測 Web サービスの関係を示しています。

Web services

Machine Learning Studio (クラシック) のリソースの更新アクティビティ

次の JSON スニペットでは、Machine Learning スタジオ (クラシック) の Batch Execution アクティビティを定義しています。

{
    "name": "amlUpdateResource",
    "type": "AzureMLUpdateResource",
    "description": "description",
    "linkedServiceName": {
        "type": "LinkedServiceReference",
        "referenceName": "updatableScoringEndpoint2"
    },
    "typeProperties": {
        "trainedModelName": "ModelName",
        "trainedModelLinkedServiceName": {
                    "type": "LinkedServiceReference",
                    "referenceName": "StorageLinkedService"
                },
        "trainedModelFilePath": "ilearner file path"
    }
}
プロパティ 内容 必須
name パイプラインのアクティビティの名前。 はい
description アクティビティの動作を説明するテキスト。 いいえ
type Machine Learning Studio (クラシック) 更新リソース アクティビティの場合、アクティビティの種類はAzureMLUpdateResource です はい
linkedServiceName updateResourceEndpoint プロパティを含む、Machine Learning スタジオ (クラシック) のリンク サービス。 はい
trainedModelName Web サービスの実験で更新されるようにトレーニング済みのモデル モジュールの名前 はい
trainedModelLinkedServiceName 更新操作によってアップロードされる iLearner ファイルを保持する Azure Storage のリンクされたサービスの名前 はい
trainedModelFilePath 更新操作によってアップロードされる iLearner ファイルを表す trainedModelLinkedService 内の相対ファイル パス はい

エンド ツー エンド ワークフロー

モデルの再トレーニングと予測 Web サービスの更新を運用可能にするプロセス全体では、次の手順を実行する必要があります。

  • バッチ実行アクティビティを使用して、トレーニング Web サービスを呼び出します。 トレーニング Web サービスの呼び出しは、Machine Learning スタジオ (クラシック) と Batch Execution アクティビティを使用した予測パイプラインの作成に関する記事で説明する予測 Web サービスの呼び出しと同じです。 トレーニング Web サービスの出力は、予測 Web サービスの更新に使用できる iLearner ファイルです。
  • 更新リソース アクティビティを使用して予測 Web サービス更新リソース エンドポイントを呼び出し、新しくトレーニングを行ったモデルでこの Web サービスを更新します。

Machine Learning スタジオ (クラシック) のリンク サービス

前述のエンド ツー エンドのワークフローを機能させるには、Machine Learning スタジオ (クラシック) の 2 つのリンク サービスを作成する必要があります。

  1. トレーニング Web サービスへの Machine Learning スタジオ (クラシック) のリンク サービス。このリンク サービスは、Machine Learning スタジオ (クラシック) と Batch Execution アクティビティを使用した予測パイプラインの作成に関する記事で説明している方法と同様に、バッチ実行アクティビティで使用されます。 相違点は、トレーニング Web サービスの出力が、予測 Web サービスを更新する更新リソース アクティビティでその後に使用される iLearner ファイルであることです。
  2. 予測 Web サービスのリソース更新エンドポイントへの Machine Learning スタジオ (クラシック) のリンク サービス。 このリンクされたサービスは、上記の手順から返された iLearner ファイルを使用して予測 Web サービスを更新する更新リソース アクティビティで使用されます。

Machine Learning スタジオ (クラシック) の 2 つ目のリンク サービスの場合、Machine Learning スタジオ (クラシック) Web サービスが従来の Web サービスであるか、新しい Web サービスであるかによって構成が異なります。 相違点については、以降のセクションで個別に説明します。

Web サービスが新しい Azure Resource Manager Web サービスである

Web サービスが、Azure Resource Manager エンドポイントを公開する新しい種類の Web サービスである場合は、2 番目の既定以外のエンドポイントを追加する必要はありません。 リンクされたサービスの updateResourceEndpoint の形式は次のとおりです。

https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resource-group-name}/providers/Microsoft.MachineLearning/webServices/{web-service-name}?api-version=2016-05-01-preview

Machine Learning スタジオ (クラシック) Web サービス ポータルで Web サービスに対してクエリを実行するときに、URL 内のプレースホルダーの値を取得できます。

新しい種類の更新リソース エンドポイントでは、サービス プリンシパルの認証が必要です。 サービス プリンシパル認証を使うには、Microsoft Entra ID にアプリケーション エンティティを登録し、サブスクリプション、または Web サービスが属しているリソース グループの共同作成者または所有者ロールを付与します。 サービス プリンシパルを作成し、Azure リソースを管理するためのアクセス許可を割り当てる方法に関するページをご覧ください。 次の値を記録しておきます。リンクされたサービスを定義するときに使います。

  • アプリケーション ID
  • アプリケーション キー
  • テナント ID

リンクされたサービス定義のサンプルを次に示します。

{
    "name": "AzureMLLinkedService",
    "properties": {
        "type": "AzureML",
        "description": "The linked service for AML web service.",
        "typeProperties": {
            "mlEndpoint": "https://ussouthcentral.services.azureml.net/workspaces/0000000000000000	000000000000000000000/services/0000000000000000000000000000000000000/jobs?api-version=2.0",
            "apiKey": {
                "type": "SecureString",
                "value": "APIKeyOfEndpoint1"
            },
            "updateResourceEndpoint": "https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resource-group-name}/providers/Microsoft.MachineLearning/webServices/{web-service-name}?api-version=2016-05-01-preview",
            "servicePrincipalId": "000000000-0000-0000-0000-0000000000000",
            "servicePrincipalKey": {
                "type": "SecureString",
                "value": "servicePrincipalKey"
            },
            "tenant": "mycompany.com"
        }
    }
}

次のシナリオで詳細を説明します。 これには、パイプラインから Machine Learning スタジオ (クラシック) モデルを再トレーニングおよび更新する例が含まれています。

サンプル: Machine Learning スタジオ (クラシック) モデルの再トレーニングと更新

このセクションでは、Azure Machine Learning Studio (classic) バッチ実行アクティビティを使用してモデルの再トレーニングを行うサンプル パイプラインを示します。 このパイプラインでは、Azure Machine Learning Studio (classic) 更新リソース アクティビティを使用して、スコア付け Web サービスのモデルの更新も行います。 このセクションでは、すべてのリンクされたサービス、データ セット、およびパイプラインの JSON スニペットも提供されます。

Azure BLOB ストレージのリンクされたサービス:

Azure Storage には次のデータが格納されています。

  • トレーニング データ。 Machine Learning スタジオ (クラシック) トレーニング Web サービス用の入力データです。
  • iLearner ファイル。 Machine Learning スタジオ (クラシック) トレーニング Web サービスからの出力です。 このファイルは更新リソース アクティビティへの入力としても使用します。

リンクされたサービスのサンプルの JSON 定義を次に示します。

{
    "name": "StorageLinkedService",
    "properties": {
        "type": "AzureStorage",
        "typeProperties": {
            "connectionString": "DefaultEndpointsProtocol=https;AccountName=name;AccountKey=key"
        }
    }
}

Machine Learning スタジオ (クラシック) トレーニング エンドポイント用のリンク サービス

次の JSON スニペットでは、トレーニング Web サービスの既定のエンドポイントを参照する、Machine Learning スタジオ (クラシック) のリンク サービスを定義しています。

{
    "name": "trainingEndpoint",
    "properties": {
        "type": "AzureML",
        "typeProperties": {
            "mlEndpoint": "https://ussouthcentral.services.azureml.net/workspaces/xxx/services/--training experiment--/jobs",
            "apiKey": "myKey"
        }
    }
}

Azure Machine Learning Studio (クラシック) で、次の操作を実行して mlEndpointapiKey の値を取得します。

  1. 左側のメニューで [Web サービス] をクリックします。
  2. Web サービスの一覧で、 [トレーニング Web サービス] をクリックします。
  3. [API キー] ボックスの隣にあるコピー ボタンをクリックします。 クリップボードにコピーされた API キーを Data Factory JSON エディターに貼り付けます。
  4. Azure Machine Learning Studio (クラシック) で、[バッチ実行] リンクをクリックします。
  5. [要求] セクションから要求 URI をコピーし、それを JSON エディターに貼り付けます。

Azure Machine Learning Studio (classic) の更新可能なスコア付けエンドポイント用のリンクされたサービス:

次の JSON スニペットは、スコア付け Web サービスの更新可能なエンドポイントを示す Azure Machine Learning Studio (classic) のリンクされたサービスを定義します。

{
    "name": "updatableScoringEndpoint2",
    "properties": {
        "type": "AzureML",
        "typeProperties": {
            "mlEndpoint": "https://ussouthcentral.services.azureml.net/workspaces/00000000eb0abe4d6bbb1d7886062747d7/services/00000000026734a5889e02fbb1f65cefd/jobs?api-version=2.0",
            "apiKey": "sooooooooooh3WvG1hBfKS2BNNcfwSO7hhY6dY98noLfOdqQydYDIXyf2KoIaN3JpALu/AKtflHWMOCuicm/Q==",
            "updateResourceEndpoint": "https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/Default-MachineLearning-SouthCentralUS/providers/Microsoft.MachineLearning/webServices/myWebService?api-version=2016-05-01-preview",
            "servicePrincipalId": "fe200044-c008-4008-a005-94000000731",
            "servicePrincipalKey": "zWa0000000000Tp6FjtZOspK/WMA2tQ08c8U+gZRBlw=",
            "tenant": "mycompany.com"
        }
    }
}

パイプライン

パイプラインには、AzureMLBatchExecutionAzureMLUpdateResource の 2 つのアクティビティが含まれています。 バッチ実行アクティビティはトレーニング データを入力として使用し、iLearner ファイルを出力として作成します。 更新リソース アクティビティは次に、この iLearner ファイルを取得し、予測 Web サービスの更新に使用します。

{
    "name": "LookupPipelineDemo",
    "properties": {
        "activities": [
            {
                "name": "amlBEGetilearner",
                "description": "Use AML BES to get the ileaner file from training web service",
                "type": "AzureMLBatchExecution",
                "linkedServiceName": {
                    "referenceName": "trainingEndpoint",
                    "type": "LinkedServiceReference"
                },
                "typeProperties": {
                    "webServiceInputs": {
                        "input1": {
                            "LinkedServiceName":{
                                "referenceName": "StorageLinkedService",
                                "type": "LinkedServiceReference"
                            },
                            "FilePath":"azuremltesting/input"
                        },
                        "input2": {
                            "LinkedServiceName":{
                                "referenceName": "StorageLinkedService",
                                "type": "LinkedServiceReference"
                            },
                            "FilePath":"azuremltesting/input"
                        }
                    },
                    "webServiceOutputs": {
                        "output1": {
                            "LinkedServiceName":{
                                "referenceName": "StorageLinkedService",
                                "type": "LinkedServiceReference"
                            },
                            "FilePath":"azuremltesting/output"
                        }
                    }
                }
            },
            {
                "name": "amlUpdateResource",
                "type": "AzureMLUpdateResource",
                "description": "Use AML Update Resource to update the predict web service",
                "linkedServiceName": {
                    "type": "LinkedServiceReference",
                    "referenceName": "updatableScoringEndpoint2"
                },
                "typeProperties": {
                    "trainedModelName": "ADFV2Sample Model [trained model]",
                    "trainedModelLinkedServiceName": {
                        "type": "LinkedServiceReference",
                        "referenceName": "StorageLinkedService"
                    },
                    "trainedModelFilePath": "azuremltesting/output/newModelForArm.ilearner"
                },
                "dependsOn": [
                    {
                        "activity": "amlbeGetilearner",
                        "dependencyConditions": [ "Succeeded" ]
                    }
                ]
            }
        ]
    }
}

別の手段でデータを変換する方法を説明している次の記事を参照してください。