次の方法で共有


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
必須
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 デプロイでのみ機能します。 デプロイ内でモデル データを収集するには、次の手順を実行する必要があります。

  • 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
必須
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'