ModelDataCollector 类
定义可用于将 Azure 机器学习 AKS Web 服务部署中的数据收集到 Blob 存储的模型数据收集器。
使用 ModelDataCollector 类可以为 Azure 机器学习 AKS 部署中的模型定义数据收集器。 数据收集器对象可用于将模型数据(例如输入和预测)收集到工作区的 Blob 存储中。 在部署中启用模型数据收集后,收集的数据将在以下容器路径中显示为 csv 文件:/modeldata/{workspace_name}/{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
- feature_names
- workspace
- webservice_name
- model_version
- collection_name
注解
目前,ModelDataCollector 仅适用于 Azure 机器学习 AKS 部署。 若要在部署中收集模型数据,需要执行以下步骤:
更新 entry_script 映像来添加 ModelDataCollector 对象和 collect 语句。 可以在一个脚本中定义多个 ModelDataCollector 对象,例如,一个用于输入,一个用于同一模型的预测。 若要更详细地了解如何定义和使用 entry_script息,请参阅以下类:InferenceConfig
在 AKS 模型部署步骤中设置 enable_data_collection 标志。 部署模型后,此标志可用于打开/关闭模型数据收集,无需修改 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)
部署 Azure 机器学习 AKS Web 服务并在服务上运行评分后,收集的数据将显示在工作区的存储帐户中。 为便于访问和使用ModelDataCollector 将对数据进行分区。 所有数据都将收集到“modeldata”存储容器下。 下面是分区格式:
/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。
返回类型
注解
调用 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='')
参数
要收集的数据。 对于数据帧类型,如果存在包含特征名称的标头,则数据目标中将包含此信息,无需在 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.7.9\\x64\\lib\\site-packages\\azureml\\monitoring\\tools\\modeldatacollector\\lib\\native\\Windows'
反馈
提交和查看相关反馈