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.objectModelDataCollector
생성자
ModelDataCollector(model_name, designation='default', feature_names=None, workspace='default/default/default', webservice_name='default', model_version='default', collection_name='default')
매개 변수
- workspace
- str
{subscription_id}/{resource_group}/{workspace_name}의 형식으로 된 Azure Machine Learning 작업 영역의 식별자입니다. Azure Machine Learning을 통해 모델을 운영할 때 자동으로 채워집니다.
- webservice_name
- str
이 모델이 현재 배포된 웹 서비스의 이름입니다. Azure Machine Learning을 통해 모델을 운영할 때 자동으로 채워집니다.
- collection_name
- str
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입니다.
반환 형식
설명
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='')
매개 변수
수집할 데이터입니다. 데이터 프레임 형식의 경우, 기능 이름의 헤더가 존재할 경우 데이터 대상에 이 정보가 포함됩니다(ModelDataCollector 생성자에 기능 이름을 명시적으로 제공할 필요가 없음).
반환
상관 헤더 및 값을 포함하는 사전입니다.
반환 형식
특성
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'
피드백
https://aka.ms/ContentUserFeedback
출시 예정: 2024년 내내 콘텐츠에 대한 피드백 메커니즘으로 GitHub 문제를 단계적으로 폐지하고 이를 새로운 피드백 시스템으로 바꿀 예정입니다. 자세한 내용은 다음을 참조하세요.다음에 대한 사용자 의견 제출 및 보기