ModelDataCollector クラス
Azure Machine Learning の AKS WebService の BLOB ストレージへのデプロイで、データを収集するために使用できるモデル データ コレクターを定義します。
ModelDataCollector クラスを使用すると、Azure Machine Learning の AKS デプロイで、モデル用のデータ コレクターを定義できます。 データ コレクター オブジェクトを使用して、入力や予測などのモデル データをワークスペースの BLOB ストレージに収集できます。 デプロイでモデル データの収集が有効になっている場合、収集されたデータは、次のコンテナー パスに csv ファイルとして表示されます: /modeldata/{workspace_name}/{webservice_name}/{model_name}/{model_version}/{designation}/{year}/{month}/{day}/{collection_name}.csv
ModelDataCollector コンストラクター。
モデル データ収集が有効になっている場合、データは次のコンテナー パスに送信されます: /modeldata/{workspace}/{webservice_name}/{model_name}/{model_version}/{designation}/{year}/{month}/{day}/{collection_name}.csv
- 継承
-
builtins.objectModelDataCollector
コンストラクター
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 のデプロイでのみ機能します。 デプロイ内でモデル データを収集するには、次の手順を実行する必要があります。
ModelDataCollector オブジェクトと collect ステートメントを追加するために、イメージ entry_script を更新します。 スクリプト内に複数の ModelDataCollector オブジェクトを定義できます。たとえば、同じモデルの入力用に 1 つ、予測用に 1 つなどです。 entry_script を定義および使用する方法の詳細については、次のクラスを参照してください: InferenceConfig
AKS モデル デプロイ手順で enable_data_collection フラグを設定します。 モデルがデプロイされたら、このフラグを使用して、entry_script を変更せずにモデル データの収集をオンまたはオフにすることができます。 モデル デプロイを構成する方法の詳細については、次のクラスを参照してください: AksWebservice
次のコード スニペットは、entry_script が ModelDataCollection でどのように表示されるかを示しています。
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}/{designation}/{year}/{month}/{day}/{collection_name}.csv
ファイル名の collection_name は、"signals" と "general" の指定でのみ考慮されます。 "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 などのメタデータが含まれます。 これらの値は、後でさまざまな種類のデータを分析し、関連付ける場合に使用できます。
次の例では、入力データと予測データの両方に相関関係を追加する方法を示しています。 "inputs" の指定の種類には、既定で関連付けデータがあります。
# 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
必須
|
収集するデータ。 DataFrame 型の場合、特徴名を持つヘッダーがあると、この情報がデータの格納先に含められます (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'