ModelDataCollector 클래스

Blob Storage에 대한 Azure Machine Learning AKS WebService 배포에서 데이터를 수집하는 데 사용할 수 있는 모델 데이터 수집기를 정의합니다.

ModelDataCollector 클래스를 사용하면 Azure Machine Learning AKS 배포에서 모델에 대한 데이터 수집기를 정의할 수 있습니다. 데이터 수집기 개체는 입력 및 예측과 같은 모델 데이터를 작업 영역의 Blob Storage로 수집하는 데 사용할 수 있습니다. 배포에서 모델 데이터 컬렉션이 사용하도록 설정되면 컬렉션된 데이터는 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
list
기본값: None

제공될 때 csv 헤더가 되는 기능 이름 목록입니다.

workspace
str
기본값: default/default/default

{subscription_id}/{resource_group}/{workspace_name}의 형식으로 된 Azure Machine Learning 작업 영역의 식별자입니다. Azure Machine Learning을 통해 모델을 운영할 때 자동으로 채워집니다.

webservice_name
str
기본값: default

이 모델이 현재 배포된 웹 서비스의 이름입니다. Azure Machine Learning을 통해 모델을 운영할 때 자동으로 채워집니다.

model_version
str
기본값: default

모델의 버전입니다. Azure Machine Learning을 통해 모델을 운영할 때 자동으로 채워집니다.

collection_name
str
기본값: default

ModelDataCollector가 데이터를 수집하는 파일의 이름입니다. 이 매개 변수는 '신호' 및 '일반' 지정에 대해서만 고려됩니다. 다른 유형의 지정의 경우 지정 이름이 파일 이름으로 사용됩니다.

설명

현재 ModelDataCollector는 Azure Machine Learning AKS 배포에서만 작동합니다. 배포 내에서 모델 데이터를 수집하려면 다음 단계를 수행해야 합니다.

  • ModelDataCollector 개체를 추가하고 문을 수집하도록 이미지 entry_script를 업데이트합니다. 스크립트 내에서 여러 ModelDataCollector 개체를 정의할 수 있습니다(예: 입력용 및 동일한 모델에 대한 예측용). 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}/{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
list, array, DataFrame, DataFrame
필수

상관 관계 헤더 및 값을 추가할 데이터입니다.

correlations
dict
필수

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
list, array, DataFrame, 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.8.10\\x64\\lib\\site-packages\\azureml\\monitoring\\tools\\modeldatacollector\\lib\\native\\Windows'