オンライン エンドポイントを使用して機械学習モデルをデプロイおよびスコア付けする
適用対象:Azure CLI ml extension v2 (現行)
Python SDK azure-ai-ml v2 (現行)
基になるインフラストラクチャを作成して管理する必要をなくすために、オンライン エンドポイントを使ってモデルをデプロイする方法について説明します。 まずローカル コンピューターにモデルをデプロイして、発生するエラーをデバッグした後、それを Azure にデプロイしてテストします。
ログを確認して、サービス レベル アグリーメント (SLA) を監視する方法についても説明します。 最初はモデルから開始し、最終的には、オンラインおよびリアルタイム スコアリングで使用できるスケーラブルな HTTPS/REST エンドポイントを完成させます。
オンライン エンドポイントは、オンライン (リアルタイム) の推論に使用されるエンドポイントです。 オンライン エンドポイントには、2 つの種類があります。マネージド オンライン エンドポイントと Kubernetes オンライン エンドポイントです。 エンドポイントの詳細、およびマネージド オンライン エンドポイントと Kubernetes オンライン エンドポイントの違いについては、「Azure Machine Learning エンドポイントとは」をご覧ください。
マネージド オンライン エンドポイントは、ターンキー MLモデルをデプロイするのに役立ちます。 マネージド オンライン エンドポイントは、スケーラブルでフル マネージドの方法で Azure の強力な CPU および GPU マシンと動作します。 マネージド オンライン エンドポイントは、モデルの提供、スケーリング、セキュリティ保護、監視を行います。基になるインフラストラクチャの設定と管理のオーバーヘッドがなくなります。
このドキュメントの主な例では、デプロイにマネージド オンライン エンドポイントを使用します。 代わりに Kubernetes を使用するには、このドキュメントのノートとマネージド オンライン エンドポイントに関する説明をインラインで参照してください。
ヒント
Azure Machine Learning スタジオでマネージド オンライン エンドポイントを作成するには、スタジオでのマネージド オンライン エンドポイントの使用に関するページをご覧ください。
前提条件
この記事の手順に従う前に、次の前提条件が満たされていることをご確認ください。
Azure サブスクリプション。 Azure サブスクリプションをお持ちでない場合は、開始する前に無料アカウントを作成してください。 無料版または有料版の Azure Machine Learning をお試しください。
Azure CLI と Azure CLI の
ml
拡張機能。 詳しくは、CLI (v2) のインストール、設定、使用に関するページをご覧ください。重要
この記事の CLI の例では、Bash (または互換性のある) シェルを使用していることを前提としています。 たとえば、Linux システムや Linux 用 Windows サブシステムなどです。
Azure Machine Learning ワークスペース。 お持ちでない場合は、CLI (v2) のインストール、セットアップ、使用に関する記事の手順を使用して作成します。
Azure ロールベースのアクセス制御 (Azure RBAC) は、Azure Machine Learning の操作に対するアクセスを許可するために使用されます。 この記事の手順を実行するには、ユーザー アカウントに、Azure Machine Learning ワークスペースの所有者か共同作成者ロール、または
Microsoft.MachineLearningServices/workspaces/onlineEndpoints/*
を許可するカスタム ロールを割り当てる必要があります。 詳細については、「Azure Machine Learning ワークスペースへのアクセスの管理」を参照してください。まだ Azure CLI の既定値を設定していない場合は、既定の設定を保存する必要があります。 サブスクリプション、ワークスペース、およびリソース グループの値を複数回渡さないようにするには、次のコードを実行します。
az account set --subscription <subscription ID> az configure --defaults workspace=<Azure Machine Learning workspace name> group=<resource group>
(省略可能) ロ―カルでデプロイするには、ローカル コンピューターに Docker エンジンをインストールする必要があります。 問題のデバッグを容易にするため、このオプションを "強くお勧めします"。
重要
このドキュメントの例では、Bash シェルを使用していることを想定しています。 たとえば、Linux システムや Linux 用 Windows サブシステムなどです。
システムを準備する
サンプル リポジトリをクローンする
この記事に従って作業を行うには、最初にサンプル リポジトリ (azureml-examples) をクローンします。 次に、次のコードを実行してサンプル ディレクトリに移動します。
git clone --depth 1 https://github.com/Azure/azureml-examples
cd azureml-examples
cd cli
ヒント
--depth 1
を使用すると、リポジトリに対する最新のコミットだけが複製されるので、操作の完了にかかる時間を短縮できます。
エンドポイント名を設定する
エンドポイント名を設定するには、次のコマンドを実行します (YOUR_ENDPOINT_NAME
を一意の名前に置き換えます)。
Unix の場合、次のコマンドを実行します。
export ENDPOINT_NAME="<YOUR_ENDPOINT_NAME>"
注意
エンドポイント名は Azure リージョン内で一意である必要があります。 たとえば、Azure westus2
リージョンでは、my-endpoint
という名前のエンドポイントは 1 つしか使用できません。
エンドポイントとデプロイを定義する
次のスニペットは、endpoints/online/managed/sample/endpoint.yml ファイルを示しています。
$schema: https://azuremlschemas.azureedge.net/latest/managedOnlineEndpoint.schema.json
name: my-endpoint
auth_mode: key
Note
YAML の完全な説明については、オンライン エンドポイント YAML リファレンスに関するページを参照してください。
エンドポイント YAML 形式のリファレンスを次の表で説明します。 これらの属性の指定方法については、「システムを準備する」またはオンライン エンドポイント YAML リファレンスに関するページの YAML サンプルを参照してください。 マネージド エンドポイント関連の制限の詳細については、「Azure Machine Learning を使用するリソースのクォータの管理と引き上げ」を参照してください。
Key | 説明 |
---|---|
$schema |
(省略可能) YAML スキーマ。 上の例のスキーマをブラウザーで表示すると、YAML ファイルで使用可能なすべてのオプションを確認できます。 |
name |
エンドポイントの名前。 Azure リージョンで一意である必要があります。 名前付け規則は、マネージド オンライン エンドポイントの制限に関する記事で定義されています。 |
auth_mode |
キーベースの認証に key を使用します。 Azure Machine Learning のトークン ベースの認証に aml_token を使用します。 key には有効期限がありませんが、aml_token には有効期限があります。 (az ml online-endpoint get-credentials コマンドを使用して最新のトークンを取得してください。) |
この例には、オンライン エンドポイントにモデルをデプロイするために必要なすべてのファイルが含まれています。 モデルをデプロイするには、次が必要です。
- モデル ファイル (または、ワークスペースに既に登録されているモデルの名前とバージョン)。 この例では、回帰を行う scikit-learn モデルを使用します。
- モデルのスコアに必要なコード。 このケースでは、score.py ファイルがあります。
- モデルが実行される環境。 ご覧のように、環境は Conda の依存関係を持つ Docker イメージか、Dockerfile である可能性があります。
- インスタンスの種類とスケーリング キャパシティを指定するための設定。
次のスニペットは、endpoints/online/managed/sample/blue-deployment.yml ファイルと、必要なすべての入力を示しています。
$schema: https://azuremlschemas.azureedge.net/latest/managedOnlineDeployment.schema.json
name: blue
endpoint_name: my-endpoint
model:
path: ../../model-1/model/
code_configuration:
code: ../../model-1/onlinescoring/
scoring_script: score.py
environment:
conda_file: ../../model-1/environment/conda.yml
image: mcr.microsoft.com/azureml/openmpi4.1.0-ubuntu20.04:latest
instance_type: Standard_DS3_v2
instance_count: 1
次の表では、deployment
の属性について説明します。
Key | 説明 |
---|---|
name |
デプロイの名前。 |
model |
この例では、モデルのプロパティ path をインラインで指定します。 モデル ファイルは自動的にアップロードされ、自動生成された名前で登録されます。 関連するベスト プラクティスについては、次のセクションのヒントを参照してください。 |
code_configuration.code.path |
モデルのスコアリングに使用されるすべての Python ソース コードを格納するローカル開発環境上のディレクトリ。 入れ子になったディレクトリとパッケージを使用できます。 |
code_configuration.scoring_script |
ローカル開発環境上の code_configuration.code.path スコアリング ディレクトリにある Python ファイル。 この Python コードには、init() 関数と run() 関数が含まれている必要があります。 init() 関数は、モデルの作成後または更新後に呼び出されます (これを使用して、モデルをメモリにキャッシュするなどの操作を実行できます)。 run() 関数は、実際のスコアリングおよび予測を実行するために、エンドポイントが呼び出されるたびに呼び出されます。 |
environment |
モデルとコードのホストとなる環境の詳細を含みます。 この例では、path を含むインライン定義を使用しています。 イメージには environment.docker.image を使用します。 イメージ上に conda_file 依存関係がインストールされます。 詳細については、次のセクションのヒントをご覧ください。 |
instance_type |
デプロイ インスタンスのホストとなる VM SKU。 詳細については、マネージド オンライン エンドポイントでサポートされる VM SKU に関するページを参照してください。 |
instance_count |
デプロイ内のインスタンスの数。 想定されるワークロードに基づく値を指定します。 高可用性を実現するには、instance_count を少なくとも 3 に設定することをお勧めします。 アップグレードを実行するために 20% 余分に予約されています。 詳細については、マネージド オンライン エンドポイントのクォータに関するページを参照してください。 |
デプロイ中に、スコアリング モデル用の Python ソースなどのローカル ファイルが開発環境からアップロードされます。
YAML スキーマの詳細については、オンライン エンドポイント YAML リファレンスに関するドキュメントを参照してください。
注意
コンピューティング先として、マネージド エンドポイントの代わりに Kubernetes を使用するには:
- Azure Machine Learning スタジオを使用して、Kubernetes クラスターを作成し、Azure Machine Learning ワークスペースにコンピューティング先としてアタッチします。
- Kubernetes をターゲットにするには、マネージド エンドポイント YAML の代わりに、エンドポイント YAML を使用します。
target
の値を、登録済みのコンピューティング先の名前に変更するには、YAML を編集する必要があります。 Kubernetes デプロイに適用できる追加のプロパティを持つこの deployment.yaml を使用できます。
この記事で使用されているコマンド (オプションの SLA 監視と Azure Log Analytics 統合を除く) はすべて、マネージド エンドポイントまたは Kubernetes エンドポイントで使用できます。
モデルと環境を別々に登録する
この例では、インラインで path
(ファイルのアップロード先) を指定します。 CLI によってファイルが自動的にアップロードされ、モデルと環境が登録されます。 運用環境ではベスト プラクティスとして、モデルと環境を登録し、登録する名前とバージョンを YAML で個別に指定することをお勧めします。 model: azureml:my-model:1
または environment: azureml:my-env:1
.の形式を使用します。
登録するためには、model
と environment
の YAML 定義を別々の YAML ファイルに抽出し、az ml model create
コマンドと az ml environment create
コマンドを使用します。 これらのコマンドの詳細については、az ml model create -h
と az ml environment create -h
を実行してください。
異なる CPU と GPU のインスタンス タイプを使用する
前述の YAML では、汎用タイプ (Standard_DS2_v2
) および非 GPU の Docker イメージが使用されています (YAML の image
属性を参照)。 GPU コンピューティングの場合は、GPU コンピューティング タイプの SKU と GPU の Docker イメージを選択します。
サポートされる汎用タイプと GPU インスタンス タイプについては、マネージド オンライン エンドポイントでサポートされる VM SKU に関するページを参照してください。 Azure Machine Learning CPU と GPU の基本イメージの一覧については、「Azure Machine Learning 基本イメージ」を参照してください。
注意
コンピューティング先として、マネージド エンドポイントの代わりに Kubernetes を使用する場合は、Kubernetes コンピューティング先の概要に関するページを参照してください
複数のモデルを使用する
現在、YAML で指定できるモデルは、デプロイごとに 1 つだけです。 複数のモデルがある場合には、モデルを登録するときに、すべてのモデルをファイルまたはサブディレクトリとして登録用のフォルダーにコピーします。 スコアリング スクリプトで、環境変数 AZUREML_MODEL_DIR
を使用して、モデル ルート フォルダーへのパスを取得します。 基になるディレクトリ構造は保持されます。 1 つのデプロイに複数のモデルをデプロイする例については、「1 つのデプロイに複数のモデルを デプロイする」を参照してください。
ヒント
登録するファイルが 1500 を超える場合は、モデルの登録時にファイルまたはサブディレクトリを .tar.gz として圧縮することを検討してください。 モデルを使用するには、スコアリング スクリプトから init() 関数のファイルまたはサブディレクトリを圧縮解除します。 または、モデルを登録するときに、 azureml.unpack
プロパティをTrue
に 設定します。これにより、自動圧縮解除が可能になります。 この場合、圧縮解除は初期化ステージで 1 回行われます。
スコアリング スクリプトを理解する
ヒント
オンライン エンドポイントのスコアリング スクリプトの形式は、前のバージョンの CLI や Python SDK で使用されている形式と同じです。
前に説明したように、code_configuration.scoring_script
で指定されているスクリプトには、init()
関数と run()
関数が必要です。
この例では、score.py ファイル: score.py を使用します
import os
import logging
import json
import numpy
import joblib
def init():
"""
This function is called when the container is initialized/started, typically after create/update of the deployment.
You can write the logic here to perform init operations like caching the model in memory
"""
global model
# AZUREML_MODEL_DIR is an environment variable created during deployment.
# It is the path to the model folder (./azureml-models/$MODEL_NAME/$VERSION)
# Please provide your model's folder name if there is one
model_path = os.path.join(
os.getenv("AZUREML_MODEL_DIR"), "model/sklearn_regression_model.pkl"
)
# deserialize the model file back into a sklearn model
model = joblib.load(model_path)
logging.info("Init complete")
def run(raw_data):
"""
This function is called for every invocation of the endpoint to perform the actual scoring/prediction.
In the example we extract the data from the json input and call the scikit-learn model's predict()
method and return the result back
"""
logging.info("model 1: request received")
data = json.loads(raw_data)["data"]
data = numpy.array(data)
result = model.predict(data)
logging.info("Request processed")
return result.tolist()
init()
関数は、コンテナーが初期化または起動された時に呼び出されます。 初期化は、通常、デプロイが作成または更新された直後に実行されます。 モデルをメモリにキャッシュするなど (この例のように)、グローバルな初期化処理を実行するロジックをここに記述します。 run()
関数は、エンドポイントが呼び出されるたびに呼び出され、実際のスコアリングと予測を実行します。 この例では、JSON 入力からデータを抽出し、scikit-learn モデルの predict()
メソッドを呼び出し、結果を返します。
ローカル エンドポイントを使用してデプロイとデバッグをローカルで行う
デバッグにかかる時間を短縮するために、エンドポイントはローカルでテスト実行することを "強くお勧め" します。 詳細については、「Visual Studio Code を使用してオンライン エンドポイントをローカルでデバッグする」をご覧ください。
注意
- ローカルにデプロイするには、Docker エンジンをインストールしておく必要があります。
- Docker エンジンは実行中である必要があります。 通常、Docker エンジンは、コンピューターの起動時に起動します。 起動しない場合は、Docker エンジンをトラブルシューティングします。
重要
ローカル エンドポイント デプロイの目的は、Azure へのデプロイ前にコードと構成を検証してデバッグすることです。 ローカル デプロイには、次の制限があります。
ヒント
Azure Machine Learning 推論 HTTP サーバー Python パッケージを使用して、Docker エンジンなしでスコアリング スクリプトをローカルでデバッグできます。 推論サーバーを使用したデバッグは、ローカル エンドポイントにデプロイする前にスコアリング スクリプトをデバッグするのに役立ちます。これにより、デプロイ コンテナーの構成の影響を受けることなくデバッグできます。
モデルをローカルにデプロイする
最初にエンドポイントを作成します。 必要に応じて、ローカル エンドポイントの場合は、この手順をスキップして直接デプロイを作成し (次の手順)、これにより必要なメタデータを作成します。 モデルをローカル環境にデプロイすると、開発とテストに役立ちます。
az ml online-endpoint create --local -n $ENDPOINT_NAME -f endpoints/online/managed/sample/endpoint.yml
ここで、エンドポイントの下に blue
という名前のデプロイを作成します。
az ml online-deployment create --local -n blue --endpoint $ENDPOINT_NAME -f endpoints/online/managed/sample/blue-deployment.yml
--local
フラグは、エンドポイントを Docker 環境にデプロイするよう CLI に命令するものです。
ヒント
お使いのエンドポイントをローカルでテストおよびデバッグするには、Visual Studio Code を使用します。 詳細については、Visual Studio Code でオンライン エンドポイントをローカルでデバッグする方法に関する記事を参照してください。
ローカル デプロイが成功したかどうかを確認する
状態を確認し、エラーなしでモデルがデプロイされたかどうかを確認します。
az ml online-endpoint show -n $ENDPOINT_NAME --local
出力は次の JSON のようになります。 provisioning_state
は Succeeded
です。
{
"auth_mode": "key",
"location": "local",
"name": "docs-endpoint",
"properties": {},
"provisioning_state": "Succeeded",
"scoring_uri": "http://localhost:49158/score",
"tags": {},
"traffic": {}
}
次の表は、provisioning_state
に指定できる値です。
状態 | 説明 |
---|---|
作成 | リソースを作成しています。 |
更新中 | リソースを更新しています。 |
削除中 | リソースは削除中です。 |
Succeeded | 作成/更新操作が成功しました。 |
失敗 | 作成/更新/削除操作が失敗しました。 |
ローカル エンドポイントを呼び出し、モデルを使用してデータをスコアリングする
エンドポイントを呼び出してモデルをスコアリングするには、便利な invoke
コマンドを使用して、JSON ファイルに格納されているクエリ パラメーターを渡します。
az ml online-endpoint invoke --local --name $ENDPOINT_NAME --request-file endpoints/online/model-1/sample-request.json
REST クライアント (curl など) を使用する場合は、スコアリング URI が必要です。 スコアリング URI を取得するには、az ml online-endpoint show --local -n $ENDPOINT_NAME
を実行します。 返された値で、scoring_uri
属性を探します。 curl ベースのサンプル コマンドは、このドキュメントの後の方にあります。
呼び出し操作からの出力をログで確認する
例の score.py ファイルでは、run()
メソッドがいくつかの出力をコンソールにログしています。
この出力は、get-logs
コマンドを使って確認できます。
az ml online-deployment get-logs --local -n blue --endpoint $ENDPOINT_NAME
オンライン エンドポイントを Azure にデプロイする
次に、オンライン エンドポイントを Azure にデプロイする
Deploy to Azure (Azure へのデプロイ)
クラウドにエンドポイントを作成するには、次のコードを実行します。
az ml online-endpoint create --name $ENDPOINT_NAME -f endpoints/online/managed/sample/endpoint.yml
エンドポイントの下に blue
という名前のデプロイを作成するには、次のコードを実行します。
az ml online-deployment create --name blue --endpoint $ENDPOINT_NAME -f endpoints/online/managed/sample/blue-deployment.yml --all-traffic
基になる環境またはイメージが初めて構築されるものであるかどうかに応じて、このデプロイには最大で 15 分かかる場合があります。 同じ環境を使用する後続のデプロイでは、処理がより迅速に完了します。
ヒント
- CLI コンソールをブロックしたくない場合は、コマンドに
--no-wait
フラグを追加してください。 ただし、この場合、デプロイ状態が対話的に表示されなくなります。
重要
az ml online-deployment create
上の --all-traffic
フラグは、新しく作成されたデプロイに対して、エンドポイントへのトラフィックの 100% を割り当てます。 これは開発とテストのために役立ちますが、運用環境では、明示的なコマンドを使用して、新しいデプロイへのトラフィックを開くことができます。 たとえば、az ml online-endpoint update -n $ENDPOINT_NAME --traffic "blue=100"
のように指定します。
ヒント
- エラーのデバッグについては、「オンライン エンドポイントのデプロイのトラブルシューティング」を参照してください。
エンドポイントの状態を確認する
show
コマンドには、provisioning_status
にエンドポイントとデプロイの情報が含まれます。
az ml online-endpoint show -n $ENDPOINT_NAME
list
コマンドを使用すると、ワークスペースのすべてのエンドポイントを表形式で一覧表示できます。
az ml online-endpoint list --output table
オンライン デプロイの状態を確認する
ログを確認し、エラーなしでモデルがデプロイされたかどうかを確認します。
az ml online-deployment get-logs --name blue --endpoint $ENDPOINT_NAME
既定では、ログが推論サーバーからプルされます。 ストレージ初期化子 (モデルやコードなどのアセットをコンテナーにマウントする) からのログを表示するには、--container storage-initializer
フラグを追加します。
デプロイのログについて詳しくは、「コンテナー ログを取得する」をご覧ください。
エンドポイントを呼び出し、モデルを使用してデータをスコアリングする
invoke
コマンドまたは任意の REST クライアントを使用してエンドポイントを呼び出し、データをスコアリングすることができます。
az ml online-endpoint invoke --name $ENDPOINT_NAME --request-file endpoints/online/model-1/sample-request.json
次の例は、エンドポイントに対する認証に使用されるキーを取得する方法を示しています。
ヒント
認証キーを取得できる Azure Active Directory セキュリティ プリンシパルは、Microsoft.MachineLearningServices/workspaces/onlineEndpoints/token/action
と Microsoft.MachineLearningServices/workspaces/onlineEndpoints/listkeys/action
を許可するカスタム ロールにそれを割り当てることで制御できます。 詳細については、「Azure Machine Learning ワークスペースへのアクセスの管理」を参照してください。
ENDPOINT_KEY=$(az ml online-endpoint get-credentials -n $ENDPOINT_NAME -o tsv --query primaryKey)
次に、curl を使用してデータをスコアリングします。
SCORING_URI=$(az ml online-endpoint show -n $ENDPOINT_NAME -o tsv --query scoring_uri)
curl --request POST "$SCORING_URI" --header "Authorization: Bearer $ENDPOINT_KEY" --header 'Content-Type: application/json' --data @endpoints/online/model-1/sample-request.json
認証資格情報を取得するには、show
コマンドと get-credentials
コマンドを使用します。 --query
フラグを使用して、必要な属性だけをフィルターしています。 --query
の詳細については、Azure CLI コマンドの出力のクエリに関するページを参照してください。
起動ログを表示するには、再度 get-logs
を実行します。
トークンを使った認証については、オンライン エンドポイントへの認証に関するページを参照してください。
(省略可能) デプロイを更新する
コード、モデル、または環境を更新する場合は、YAML ファイルを更新し、次に az ml online-endpoint update
コマンドを実行します。
注意
1 つの update
コマンドでインスタンス数と他のモデル設定 (コード、モデル、または環境) を更新する場合、 最初にスケーリング操作が実行され、その後、他の更新が適用されます。 運用環境では、これらの操作を個別に実行することをお勧めします。
update
の動作を理解するには:
ファイル online/model-1/onlinescoring/score.py を開きます。
init()
関数の最後の行を変更します。logging.info("Init complete")
の後に、logging.info("Updated successfully")
を追加してください。ファイルを保存します。
次のコマンドを実行します。
az ml online-deployment update -n blue --endpoint $ENDPOINT_NAME -f endpoints/online/managed/sample/blue-deployment.yml
注意
YAML を使用した更新は宣言型です。 つまり YAML の変更は、基になる Azure Resource Manager リソース (エンドポイントとデプロイ) に反映されます。 この宣言型アプローチによって GitOps が促進されます。つまり、エンドポイントとデプロイに対する "すべて" の変更は YAML を経由することになります (
instance_count
も含む)。ヒント
update
コマンドでは、Azure CLI の--set
パラメーターを使用して、YAML の属性をオーバーライドするか、"または" YAML ファイルを渡さずに特定の属性を設定することができます。 個別の属性に対する--set
の使用は、特に開発およびテストのシナリオで利便性を発揮します。 たとえば、最初のデプロイのinstance_count
値をスケールアップするのであれば、--set instance_count=2
フラグを使用できます。 ただし、YAML が更新されないため、この手法に GitOps を促進する効果はありません。init()
関数 (init()
はエンドポイントが作成または更新されると実行される) に変更を加えたため、Updated successfully
というメッセージがログに記録されます。 次を実行してログを取得します。az ml online-deployment get-logs --name blue --endpoint $ENDPOINT_NAME
update
コマンドは、ローカル デプロイでも動作します。 同じ az ml online-deployment update
コマンドを --local
フラグと共に使用します。
注意
上記は、インプレース ローリング更新の例です。
- マネージド オンライン エンドポイントの場合、同じデプロイが一度に 20 ノードずつ、新しい構成で更新されます。つまり、デプロイに 10 ノードある場合、一度に 2 ノードずつ更新されます。
- Kubernetes オンライン エンドポイントの場合、システムによって新しい構成で新しいデプロイ インスタンスが繰り返し作成され、古いデプロイ インスタンスが削除されます。
- 運用環境の使用では、より安全な代替手段として、 ブルーグリーン デプロイを検討することができます。
(省略可能) 自動スケーリングを構成する
自動スケールでは、アプリケーションの負荷を処理するために適切な量のリソースが自動的に実行されます。 マネージド オンライン エンドポイントでは、Azure Monitor 自動スケーリング機能との統合によって、自動スケーリングをサポートします。 自動スケールを構成するには、「オンライン エンドポイントを自動スケーリングする方法」をご覧ください。
(省略可能) Azure Monitor を使用して SLA を監視する
メトリックを表示し、SLA に基づいてアラートを設定するには、オンライン エンドポイントの監視に関するページの手順を実行します。
(省略可能) Log Analytics と統合する
CLI の get-logs
コマンドまたは SDK の get_logs
メソッドで取得できるのは、自動的に選ばれたインスタンスからのログの最後の数百行だけです。 一方、Log Analytics は、ログを永続的に保存して分析する手段となります。 ログの使用の詳細については、オンライン エンドポイントの監視に関するページを参照してください。
スタジオでメールを構成する方法
ジョブ、オンライン エンドポイント、またはバッチ エンドポイントが完了したとき、または問題 (失敗、キャンセル) が発生した場合のメールの受け取りを始めるには、次の手順のようにします。
- Azure ML スタジオで、歯車アイコンを選んで設定に移動します。
- [電子メール通知] タブを選択します。
- 特定のイベントの電子メール通知を有効または無効に切り替えます。
エンドポイントとデプロイを削除する
デプロイを今後使用する予定がない場合、次のコードを実行してデプロイを削除してください (エンドポイントと基になるすべてのデプロイが削除されます)。
az ml online-endpoint delete --name $ENDPOINT_NAME --yes --no-wait
次のステップ
次のステップとして、モデルの安全なロールアウトを試してください。
詳細については、次の記事を参照してください。