跳转到主要内容

Microsoft Azure Machine Learning Python SDK v2 用于在运营期间收集模型数据

项目描述

Microsoft Azure Machine Learning Data Collection SDK v2 for model monitoring

azureml-ai-monitoring 软件包提供了一个SDK,用于启用模型数据收集器(MDC),允许客户在数据预处理管道的任意点收集数据。客户可以利用SDK在 score.py 中记录数据,在数据转换之前、期间和之后记录到所需的目标。

快速入门

首先,在 score.py 中导入 azureml-ai-monitoring 软件包

import pandas as pd
import json
from azureml.ai.monitoring import Collector

def init():
  global inputs_collector, outputs_collector

  # instantiate collectors with appropriate names, make sure align with deployment spec
  inputs_collector = Collector(name='model_inputs')                    
  outputs_collector = Collector(name='model_outputs')

def run(data): 
  # json data: { "data" : {  "col1": [1,2,3], "col2": [2,3,4] } }
  pdf_data = preprocess(json.loads(data))
  
  # tabular data: {  "col1": [1,2,3], "col2": [2,3,4] }
  input_df = pd.DataFrame(pdf_data)

  # collect inputs data, store correlation_context
  context = inputs_collector.collect(input_df)

  # perform scoring with pandas Dataframe, return value is also pandas Dataframe
  output_df = predict(input_df) 

  # collect outputs data, pass in correlation_context so inputs and outputs data can be correlated later
  outputs_collector.collect(output_df, context)
  
  return output_df.to_dict()
  
def preprocess(json_data):
  # preprocess the payload to ensure it can be converted to pandas DataFrame
  return json_data["data"]

def predict(input_df):
  # process input and return with outputs
  ...
  
  return output_df

创建一个带有基本镜像 mcr.microsoft.com/azureml/openmpi4.1.0-ubuntu20.04 和 conda 依赖项的环境,然后构建该环境。

channels:
  - conda-forge
dependencies:
  - python=3.8
  - pip=22.3.1
  - pip:
      - azureml-defaults==1.38.0
      - azureml-ai-monitoring
name: model-env

创建一个带有自定义日志记录功能(已启用 model_inputs 和 model_outputs)以及您刚刚构建的环境的部署,请根据您的场景更新yaml文件。

#source ../configs/model-data-collector/data-storage-basic-OnlineDeployment.YAML
$schema: http://azureml/sdk-2-0/OnlineDeployment.json

endpoint_name: my_endpoint #unchanged
name: blue #unchanged
model: azureml:my-model-m1:1 #azureml:models/<name>:<version> #unchanged
environment: azureml:custom-logging-env@latest #unchanged
data_collector:
  collections:
    model_inputs:
      enabled: 'True'
    model_outputs:
      enabled: 'True'

可配置的错误处理器

默认情况下,当出现意外行为(如未启用自定义日志记录、未启用收集、不支持的数据类型)时,我们将引发异常,如果您想要可配置的 on_error,您可以使用以下方法进行操作

collector = Collector(name="inputs", on_error=lambda e: logging.info("ex:{}".format(e)))

变更日志

v1.0.0 (2024.4.25)

公告

  • 发布官方版本 v1.0.0。

v0.1.0b4 (2023.8.21)

改进

  • 当队列满时改进错误信息。
  • 增加消息队列以处理更多请求。

v0.1.0b3 (2023.5.15)

改进

  • 修复 install_requires
  • 修复分类器
  • 修复 README

v0.1.0b2 (2023.5.9)

新特性

  • 支持本地捕获

v0.1.0b1 (2023.4.25)

新特性

  • 支持为 pandas Dataframe 收集模型数据。

项目详情


下载文件

下载适用于您平台的文件。如果您不确定选择哪个,请了解更多关于 安装软件包 的信息。

源代码分布

此版本没有可用的源代码分布文件。请参阅 生成分布存档 的教程。

构建分布

azureml_ai_monitoring-1.0.0-py3-none-any.whl (17.5 kB 查看哈希值)

上传时间 Python 3

由...支持