ModelDataCollector Clase
Define un recopilador de datos de modelo que se puede usar para recopilar datos en una implementación Webservice de Azure Machine Learning en AKS en un almacenamiento de blobs.
La clase ModelDataCollector permite definir un recopilador de datos para los modelos en las implementaciones de Azure Machine Learning en AKS. El objeto recopilador de datos se puede usar para recopilar datos del modelo, como entradas y predicciones, en el almacenamiento de blobs del área de trabajo. Cuando la recopilación de datos del modelo está habilitada en la implementación, los datos recopilados se mostrarán en la siguiente ruta de acceso del contenedor como archivos csv: /modeldata/{workspace_name}/{webservice_name}/{model_name}/{model_version}/{designation}/{year}/{month}/{day}/{collection_name}.csv
Constructor ModelDataCollector.
Cuando la recopilación de datos del modelo está habilitada, los datos se enviarán a la siguiente ruta de acceso del contenedor: /modeldata/{workspace}/{webservice_name}/{model_name}/{model_version}/{designación}/{año}/{mes}/{día}/{collection_name}.csv
- Herencia
-
builtins.objectModelDataCollector
Constructor
ModelDataCollector(model_name, designation='default', feature_names=None, workspace='default/default/default', webservice_name='default', model_version='default', collection_name='default')
Parámetros
Nombre | Description |
---|---|
model_name
Requerido
|
Nombre del modelo para el que se recopilan los datos. |
designation
|
Designación única para la ubicación de la recopilación de datos. Las designaciones admitidas son "entradas", "predicciones", "etiquetas", "señales" y "general". Valor predeterminado: default
|
feature_names
|
Lista de nombres de características que se convierten en el encabezado csv cuando se proporcionan. Valor predeterminado: None
|
workspace
|
Identificador del área de trabajo de Azure Machine Learning en forma de {subscription_id}/{resource_group}/{workspace_name}. Esto se rellena automáticamente cuando los modelos se operacionalizan a través de Azure Machine Learning. Valor predeterminado: default/default/default
|
webservice_name
|
Nombre del servicio web en el que se implementa actualmente este modelo. Esto se rellena automáticamente cuando los modelos se operacionalizan a través de Azure Machine Learning. Valor predeterminado: default
|
model_version
|
Versión del modelo. Esto se rellena automáticamente cuando los modelos se operacionalizan a través de Azure Machine Learning. Valor predeterminado: default
|
collection_name
|
Nombre del archivo en el que ModelDataCollector recopila datos. Este parámetro solo se considera para las designaciones "señales" y "generales". Para los otros tipos de designaciones, el nombre de designación se usa como nombre de archivo. Valor predeterminado: default
|
Comentarios
Actualmente, ModelDataCollector solo funciona en las implementaciones de Azure Machine Learning de AKS. Para recopilar datos del modelo dentro de una implementación, debe realizar los siguientes pasos:
Actualice la imagen entry_script para agregar objetos ModelDataCollector y recopilar instrucciones. Puede definir varios objetos ModelDataCollector dentro de un script, por ejemplo, uno para las entradas y otro para la predicción para el mismo modelo. Consulte la clase siguiente para obtener más detalles sobre cómo definir y usar un entry_script: InferenceConfig
Establezca la marca enable_data_collection en el paso de implementación del modelo de AKS. Una vez implementado un modelo, esta marca se puede usar para activar o desactivar la recopilación de datos del modelo sin modificar el entry_script. Consulte la clase siguiente para obtener más detalles sobre cómo configurar la implementación del modelo: AksWebservice
El siguiente fragmento de código muestra cómo sería un entry_script con 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)
En el ejemplo anterior se muestran un par de cosas sobre ModelDataCollector. En primer lugar, se define un objeto por modelo y por designación, en este caso "bestmodel" y "inputs". En segundo lugar, ModelDataCollector espera datos tabulares como entrada y mantiene los datos como archivos CSV. Se pueden proporcionar nombres de características opcionales para establecer el encabezado de estos archivos CSV.
El siguiente fragmento de código muestra cómo se puede habilitar ModelDataCollector durante la implementación del modelo:
webservice_config = AksWebservice.deploy_configuration(collect_model_data=True)
Model.deploy(ws, "myservice", [model], inference_config, webservice_config, aks_cluster)
Una vez que se implementa Webservice en Azure Machine Learning en AKS y se ejecuta la puntuación en el servicio, los datos recopilados se mostrarán en la cuenta de almacenamiento del área de trabajo. ModelDataCollector dividirá los datos para facilitar el acceso y el uso. Todos los datos se recopilarán en el contenedor de almacenamiento "modeldata". Este es el formato de partición:
/modeldata/{workspace_name}/{webservice_name}/{model_name}/{model_version}/{designation}/{year}/{month}/{day}/{collection_name}.csv
Tenga en cuenta que collection_name en el nombre de archivo solo se tendrá en cuenta para designaciones de "signals" y "general". Para el nombre de archivo "inputs", "predictions" y "labels" se establecerá como {designación}.csv.
Métodos
add_correlations |
Función auxiliar para agregar encabezados de correlación y valores a los datos de entrada proporcionados. |
collect |
Recopilar datos en el almacenamiento. |
add_correlations
Función auxiliar para agregar encabezados de correlación y valores a los datos de entrada proporcionados.
add_correlations(input_data, correlations)
Parámetros
Nombre | Description |
---|---|
input_data
Requerido
|
Datos a los que se agregarán encabezados y valores de correlación. |
correlations
Requerido
|
Encabezados de correlación y valores que se devuelven de la función collect(). |
Devoluciones
Tipo | Description |
---|---|
input_data con encabezados y valores de correlación agregados. |
Comentarios
Una vez que se llama a collect
, devolverá un conjunto de encabezados y valores de correlación. Estos incluyen metadatos como el identificador de solicitud, la marca de tiempo y un identificador de correlación único generado por ModelDataCollector o proporcionado como parámetro. Estos valores se pueden usar para analizar y correlacionar distintos tipos de datos más adelante.
En el ejemplo siguiente se muestra cómo agregar correlaciones a los datos de entrada y a los datos de predicción. Tenga en cuenta que el tipo de designación "inputs" tiene los datos de correlación de manera predeterminada.
# 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
Recopilar datos en el almacenamiento.
collect(input_data, user_correlation_id='')
Parámetros
Nombre | Description |
---|---|
input_data
Requerido
|
Datos que se recopilarán. Para los tipos dataframe, si existe un encabezado con nombres de características, esta información se incluirá en el destino de los datos (sin necesidad de pasar los nombres de las características de manera explícita en el constructor de ModelDataCollector). |
user_correlation_id
Requerido
|
Un identificador de correlación opcional que se utiliza para correlacionar estos datos posteriormente. |
Devoluciones
Tipo | Description |
---|---|
Diccionario que contiene valores y encabezados de correlación. |
Atributos
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'