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.object
ModelDataCollector

コンストラクター

ModelDataCollector(model_name, designation='default', feature_names=None, workspace='default/default/default', webservice_name='default', model_version='default', collection_name='default')

パラメーター

名前 説明
model_name
必須
str

データが収集されるモデルの名前。

designation
str

データ収集場所の一意の指定。 サポートされている指定は、"入力"、"予測"、"ラベル"、"シグナル"、"全般" です。

規定値: default
feature_names

指定された場合に csv ヘッダーになる機能名の一覧。

規定値: None
workspace
str

{subscription_id}/{resource_group}/{workspace_name} の形式の Azure Machine Learning ワークスペースの識別子。 これは、Azure Machine Learning を通じてモデルが運用化されるときに自動的に設定されます。

規定値: default/default/default
webservice_name
str

このモデルが現在デプロイされている Web サービスの名前。 これは、Azure Machine Learning を通じてモデルが運用化されるときに自動的に設定されます。

規定値: default
model_version
str

モデルのバージョン。 これは、Azure Machine Learning を通じてモデルが運用化されるときに自動的に設定されます。

規定値: default
collection_name
str

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
必須
str

このデータを後で関連付けるには、オプションの関連付け 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'