ModelDataCollector Класс
Определяет сборщик данных модели, который можно использовать для сбора данных в развертывании веб-службы AKS Машинного обучения Azure в хранилище BLOB-объектов.
Класс ModelDataCollector позволяет определить сборщик данных для моделей в развертываниях AKS Машинного обучения Azure. Объект сборщика данных может использоваться для сбора данных модели, таких как входные данные и прогнозы, в хранилище 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 value: default
|
feature_names
|
Список имен компонентов, которые становятся заголовком CSV при указании. Default value: None
|
workspace
|
Идентификатор рабочей области Машинного обучения Azure в формате {subscription_id}/{resource_group}/{workspace_name}. Она заполняется автоматически при вводе моделей в эксплуатацию с помощью Машинного обучения Azure. Default value: default/default/default
|
webservice_name
|
Имя веб-службы, в которой в настоящее время развернута эта модель. Она заполняется автоматически при вводе моделей в эксплуатацию с помощью Машинного обучения Azure. Default value: default
|
model_version
|
Версия модели. Она заполняется автоматически при вводе моделей в эксплуатацию с помощью Машинного обучения Azure. Default value: default
|
collection_name
|
Имя файла, в который ModelDataCollector собирает данные. Этот параметр учитывается только для обозначения "сигналы" и "общие". Для других типов обозначений в качестве имени файла используется имя обозначения. Default value: default
|
Комментарии
Сейчас ModelDataCollector работает только в развертываниях AKS Машинного обучения Azure. Чтобы собрать данные модели в развертывании, необходимо выполнить следующие действия.
Обновите entry_script образа, чтобы добавить объекты ModelDataCollector и операторы сбора. В скрипте можно определить несколько объектов ModelDataCollector, например один для входных данных и один для прогноза для одной и той же модели. Дополнительные сведения об определении и использовании entry_script, см. в следующем классе: InferenceConfig
Установите флаг enable_data_collection на этапе развертывания модели AKS. После развертывания модели этот флаг можно использовать для включения или отключения сбора данных модели без изменения 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. Сначала определяется объект для каждой модели и для каждого назначения, в данном случае "Лучшая модель" и "Входные данные". Во-вторых, ModelDataCollector принимает табличные данные в качестве входных данных и хранит их в виде CSV-файлов. Для задания заголовка CSV-файлов можно указать дополнительные имена функций.
В следующем фрагменте кода показано, как можно включить ModelDataCollector во время развертывания модели:
webservice_config = AksWebservice.deploy_configuration(collect_model_data=True)
Model.deploy(ws, "myservice", [model], inference_config, webservice_config, aks_cluster)
После развертывания веб-службы AKS Машинного обучения Azure и выполнения оценки в службе, собранные данные будут отображаться в учетной записи хранения рабочей области. ModelDataCollector будет секционировать данные для удобства доступа и использования. Все данные будут собраны в контейнере хранилища "modelata". Ниже приведен формат раздела:
/modeldata/{workspace_name}/{webservice_name}/{model_name}/{model_version}/{designation}/{year}/{month}/{day}/{collection_name}.csv
Обратите внимание, что collection_name в имени файла будет учитываться только для обозначений "сигналы" и "общее". Для "входных данных", "прогнозов" и "меток" имя файла будет выглядеть как {designation}.csv.
Методы
add_correlations |
Вспомогательная функция для добавления заголовков и значений корреляции к заданным входным данным. |
collect |
Сбор данных в хранилище. |
add_correlations
Вспомогательная функция для добавления заголовков и значений корреляции к заданным входным данным.
add_correlations(input_data, correlations)
Параметры
Имя | Описание |
---|---|
input_data
Обязательно
|
Данные, в которые добавляются заголовки и значения корреляции. |
correlations
Обязательно
|
Заголовки и значения корреляции, возвращаемые функцией collect(). |
Возвращаемое значение
Тип | Описание |
---|---|
input_data с добавленными заголовками и значениями корреляции. |
Комментарии
После вызова collect
будет возвращен набор заголовков и значений корреляции. К ним относятся такие метаданные, как идентификатор запроса, метка времени и уникальный идентификатор корреляции, созданный ModelDataCollector или заданный в качестве параметра. Эти значения потом можно использовать для анализа и корреляции различных типов данных.
В следующем примере показано, как добавить корреляции как к входным, так и к прогнозируемым данным. Обратите внимание, что тип назначения "входные данные" по умолчанию имеет корреляцию.
# 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
Обязательно
|
Необязательный идентификатор корреляции, используемый для последующей корреляции этих данных. |
Возвращаемое значение
Тип | Описание |
---|---|
Словарь, содержащий заголовки и значения корреляции. |
Атрибуты
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'