ModelDataCollector クラス
Azure Machine Learning AKS WebService デプロイ内のデータを BLOB ストレージに収集するために使用できるモデル データ コレクターを定義します。
ModelDataCollector クラスを使用すると、Azure Machine Learning AKS デプロイでモデルのデータ コレクターを定義できます。 データ コレクター オブジェクトを使用して、入力や予測などのモデル データをワークスペースの BLOB ストレージに収集できます。 デプロイでモデル データ収集が有効になっている場合、収集されたデータは csv ファイルとして次のコンテナー パスに表示されます:/modeldata/{workspace_name}/{webservice_name}/{model_name}/{model_version}/{name}/{year}/{month}/{day}/{collection_name}.csv
ModelDataCollector コンストラクター。
モデル データ収集が有効になっている場合、データは次のコンテナー パスに送信されます: /modeldata/{workspace}/{webservice_name}/{model_name}/{model_version}/{designation}/{year}/{month}/{day}/{collection_name}.csv
コンストラクター
ModelDataCollector(model_name, designation='default', feature_names=None, workspace='default/default/default', webservice_name='default', model_version='default', collection_name='default')
パラメーター
名前 | 説明 |
---|---|
model_name
必須
|
データが収集されるモデルの名前。 |
designation
|
データ収集場所の一意の指定。 サポートされている指定は、"入力"、"予測"、"ラベル"、"シグナル"、"全般" です。 規定値: default
|
feature_names
|
指定された場合に csv ヘッダーになる機能名の一覧。 規定値: None
|
workspace
|
{subscription_id}/{resource_group}/{workspace_name} の形式の Azure Machine Learning ワークスペースの識別子。 これは、モデルが Azure Machine Learning を通じて運用可能になったときに自動的に設定されます。 規定値: default/default/default
|
webservice_name
|
このモデルが現在デプロイされている Web サービスの名前。 これは、モデルが Azure Machine Learning を通じて運用可能になったときに自動的に設定されます。 規定値: default
|
model_version
|
モデルのバージョン。 これは、モデルが Azure Machine Learning を通じて運用可能になったときに自動的に設定されます。 規定値: default
|
collection_name
|
ModelDataCollector がデータを収集するファイルの名前。 このパラメーターは、'signals' および 'general' の指定に対してのみ考慮されます。 その他の種類の指定では、指定名がファイル名として使用されます。 規定値: default
|
注釈
現時点では、ModelDataCollector は Azure Machine Learning AKS デプロイでのみ機能します。 デプロイ内でモデル データを収集するには、次の手順を実行する必要があります。
Image entry_scriptを更新して ModelDataCollector オブジェクトを追加し、ステートメントを収集します。 1 つのスクリプト内に複数の ModelDataCollector オブジェクトを定義できます (入力用に 1 つ、同じモデルの予測用に 1 つなど)。 entry_scriptを定義して使用する方法の詳細については、次のクラスを参照してください。 InferenceConfig
AKS モデルのデプロイ 手順でenable_data_collectionフラグを設定します。 モデルがデプロイされたら、このフラグを使用して、entry_scriptを変更せずにモデル データ収集を有効または無効にすることができます。 モデル デプロイを構成する方法の詳細については、次のクラスを参照してください。 AksWebservice
次のコード スニペットは、ModelDataCollection でのentry_scriptの外観を示しています。
from azureml.monitoring import ModelDataCollector
def init():
global inputs_dc
# Define your models and other scoring related objects
# ...
# Define input data collector to model "bestmodel". You need to define one object per model and
# designation. For the sake of simplicity, we are only defining one object here.
inputs_dc = ModelDataCollector(model_name="bestmodel", designation="inputs", feature_names=["f1", "f2"])
def run(raw_data):
global inputs_dc
# Convert raw_data to proper format and run prediction
# ...
# Use inputs_dc to collect data. For any data that you want to collect, you need to call collect method
# on respective ModelDataCollector objects. For the sake of simplicity, we are only working on a single
# object.
inputs_dc.collect(input_data)
上の例は、ModelDataCollector に関するいくつかの点を示しています。 まず、オブジェクトはモデルごと、指定ごとに定義されます。この場合は "bestmodel" と "inputs" です。 次に、ModelDataCollector は表形式のデータを入力として受け取り、そのデータを csv ファイルとして保持します。 オプションの機能名を指定して、これらの csv ファイルのヘッダーを設定できます。
次のコード スニペットは、モデルのデプロイ時に ModelDataCollector を有効にする方法を示しています。
webservice_config = AksWebservice.deploy_configuration(collect_model_data=True)
Model.deploy(ws, "myservice", [model], inference_config, webservice_config, aks_cluster)
Azure Machine Learning AKS WebService がデプロイされ、サービスでスコア付けが実行されると、収集されたデータがワークスペースのストレージ アカウントに表示されます。 ModelDataCollector は、簡単にアクセスして使用するためにデータをパーティション分割します。 すべてのデータは、"modeldata" ストレージ コンテナーの下に収集されます。 パーティション形式を次に示します。
/modeldata/{workspace_name}/{webservice_name}/{model_name}/{model_version}/{name}/{year}/{month}/{day}/{collection_name}.csv
ファイル名のcollection_nameは、"シグナル" および "一般的" の指定に対してのみ考慮されることに注意してください。 "inputs"、"predictions"、および "labels" ファイル名は {designation}.csvとして設定されます。
メソッド
add_correlations |
指定された入力データに関連付けヘッダーと値を追加するヘルパー関数。 |
collect |
ストレージにデータを収集します。 |
add_correlations
指定された入力データに関連付けヘッダーと値を追加するヘルパー関数。
add_correlations(input_data, correlations)
パラメーター
名前 | 説明 |
---|---|
input_data
必須
|
関連付けヘッダーと値を追加するデータ。 |
correlations
必須
|
collect() 関数から返される相関ヘッダーと値。 |
戻り値
型 | 説明 |
---|---|
関連付けヘッダーと値が追加されたinput_data。 |
注釈
collect
が呼び出されると、関連付けヘッダーと値のセットが返されます。 これには、要求 ID、タイムスタンプ、ModelDataCollector によって生成された、またはパラメーターとして提供される一意の関連付け ID などのメタデータが含まれます。 これらの値は、後でさまざまな種類のデータを分析および関連付けるために使用できます。
次の例は、入力データと予測データの両方に相関関係を追加する方法を示しています。 "入力" 指定の種類には、既定で相関データがあることに注意してください。
# Define inputs_dc and predictions_dc for the same model and "inputs" and "predictions" designations
# respectively
# ...
correlations = inputs_dc.collect(input_data)
predictions_data = predictions_dc.add_correlations(predictions_data, correlations)
predictions_dc.collect(predictions_data)
collect
ストレージにデータを収集します。
collect(input_data, user_correlation_id='')
パラメーター
名前 | 説明 |
---|---|
input_data
必須
|
収集するデータ。 データフレーム型の場合、機能名を持つヘッダーが存在する場合、この情報は ModelDataCollector コンストラクターで特徴名を明示的に渡す必要なく、データ変換先に含まれます。 |
user_correlation_id
必須
|
オプションの関連付け ID は、後でこのデータを関連付けるために使用します。 |
戻り値
型 | 説明 |
---|---|
相関ヘッダーと値を含むディクショナリ。 |
属性
AML_DC_BOUNDARY_HEADER
AML_DC_BOUNDARY_HEADER = '$aml_dc_boundary'
AML_DC_CORRELATION_HEADER
AML_DC_CORRELATION_HEADER = '$aml_dc_correlation_id'
AML_DC_SCORING_TIMESTAMP_HEADER
AML_DC_SCORING_TIMESTAMP_HEADER = '$aml_dc_scoring_timestamp'
AML_MODEL_NAME_HEADER
AML_MODEL_NAME_HEADER = '$aml_model_name'
AML_MODEL_VERSION_HEADER
AML_MODEL_VERSION_HEADER = '$aml_model_version'
AML_REQUEST_ID_HEADER
AML_REQUEST_ID_HEADER = '$aml_request_id'
AML_SERVICE_NAME_HEADER
AML_SERVICE_NAME_HEADER = '$aml_service_name'
AML_WORKSPACE_HEADER
AML_WORKSPACE_HEADER = '$aml_workspace'
dllpath
dllpath = 'C:\\hostedtoolcache\\windows\\Python\\3.9.13\\x64\\lib\\site-packages\\azureml\\monitoring\\tools\\modeldatacollector\\lib\\native\\Windows'