# Azure Machine Learning Model Monitoring SDK
The `azure-ai-mlmonitoring` package provides an SDK to enable Model Data Collector (MDC) for custom logging allows customers to collect data at arbitrary points in their data pre-processing pipeline. Customers can leverage SDK in `score.py` to log data to desired sink before, during, and after any data transformations.
Start by importing the `azure-ai-mlmonitoring` package in `score.py`
```
import pandas as pd
import json
from azure.ai.mlmonitoring 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):
# convert json to python object and convert to pandas Dataframe
input_df = pd.DataFrame(json.loads(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 predict(input_df):
# process input and return with outputs
...
return output_df
```
Create environment with base image `mcr.microsoft.com/azureml/openmpi4.1.0-ubuntu20.04` and conda dependencies, then build the environment.
```
channels:
- conda-forge
dependencies:
- python=3.8
- numpy=1.23.5
- pandas=1.5.2
- pip=22.3.1
- pip:
- azureml-defaults==1.38.0
- requests==2.28.1
- azure-ai-mlmonitoring
name: model-env
```
Create deployment with custom logging enabled (model_inputs and model_outputs are enabled) and the environment you just built, please update the yaml according to your scenario.
```
#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:1 #unchanged
data_collector:
model_inputs:
enabled: true
model_outputs:
enabled: true
```
# Change Log
## [v0.1.0a2](https://pypi.org/project/azure-ai-mlmonitoring/0.1.0a2/) (2023.1.16)
**Improvements**
- Refine README.md.
## [v0.1.0a1](https://pypi.org/project/azure-ai-mlmonitoring/0.1.0a1/) (2023.1.4)
**New Features**
- Support model data collection for pandas Dataframe.
Raw data
{
"_id": null,
"home_page": "",
"name": "azure-ai-mlmonitoring",
"maintainer": "",
"docs_url": null,
"requires_python": "",
"maintainer_email": "",
"keywords": "AzureMachineLearning,ModelMonitoring",
"author": "Microsoft Corporation",
"author_email": "azuremlsdk@microsoft.com",
"download_url": "",
"platform": "any",
"description": "# Azure Machine Learning Model Monitoring SDK\n\nThe `azure-ai-mlmonitoring` package provides an SDK to enable Model Data Collector (MDC) for custom logging allows customers to collect data at arbitrary points in their data pre-processing pipeline. Customers can leverage SDK in `score.py` to log data to desired sink before, during, and after any data transformations. \n\nStart by importing the `azure-ai-mlmonitoring` package in `score.py`\n\n```\nimport pandas as pd\nimport json\nfrom azure.ai.mlmonitoring import Collector\n\ndef init():\n global inputs_collector, outputs_collector\n\n # instantiate collectors with appropriate names, make sure align with deployment spec\n inputs_collector = Collector(name='model_inputs') \n outputs_collector = Collector(name='model_outputs')\n\ndef run(data): \n # convert json to python object and convert to pandas Dataframe\n input_df = pd.DataFrame(json.loads(data))\n\n # collect inputs data, store correlation_context\n context = inputs_collector.collect(input_df) \n\n # perform scoring with pandas Dataframe, return value is also pandas Dataframe\n output_df = predict(input_df) \n\n # collect outputs data, pass in correlation_context so inputs and outputs data can be correlated later\n outputs_collector.collect(output_df, context)\n \n return output_df.to_dict()\n \ndef predict(input_df):\n # process input and return with outputs\n ...\n \n return output_df\n```\n\nCreate environment with base image `mcr.microsoft.com/azureml/openmpi4.1.0-ubuntu20.04` and conda dependencies, then build the environment.\n\n```\nchannels:\n - conda-forge\ndependencies:\n - python=3.8\n - numpy=1.23.5\n - pandas=1.5.2\n - pip=22.3.1\n - pip:\n - azureml-defaults==1.38.0\n - requests==2.28.1\n - azure-ai-mlmonitoring\nname: model-env\n```\n\nCreate deployment with custom logging enabled (model_inputs and model_outputs are enabled) and the environment you just built, please update the yaml according to your scenario.\n\n```\n#source ../configs/model-data-collector/data-storage-basic-OnlineDeployment.YAML\n$schema: http://azureml/sdk-2-0/OnlineDeployment.json\n\nendpoint_name: my_endpoint #unchanged\nname: blue #unchanged\nmodel: azureml:my-model-m1:1 #azureml:models/<name>:<version> #unchanged\nenvironment: azureml:custom-logging-env:1 #unchanged\ndata_collector:\n model_inputs:\n enabled: true\n model_outputs:\n enabled: true\n```\n\n# Change Log\n\n## [v0.1.0a2](https://pypi.org/project/azure-ai-mlmonitoring/0.1.0a2/) (2023.1.16)\n\n**Improvements**\n\n- Refine README.md.\n\n## [v0.1.0a1](https://pypi.org/project/azure-ai-mlmonitoring/0.1.0a1/) (2023.1.4)\n\n**New Features**\n\n- Support model data collection for pandas Dataframe.\n",
"bugtrack_url": null,
"license": "MIT License",
"summary": "Azure Machine Learning Model Monitoring SDK V2",
"version": "0.1.0a2",
"split_keywords": [
"azuremachinelearning",
"modelmonitoring"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "ecccfea2445a79bf5dc2fe071127cfe9fd1e463d1d842e4854e6734f8b2b215f",
"md5": "e19ace31941b70be593559d1b9e47068",
"sha256": "52aa541b66827d67a572b12b384b95fe998868dc1f7e14fda930d4dcbdd74402"
},
"downloads": -1,
"filename": "azure_ai_mlmonitoring-0.1.0a2-py3-none-any.whl",
"has_sig": false,
"md5_digest": "e19ace31941b70be593559d1b9e47068",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": null,
"size": 17471,
"upload_time": "2023-01-16T09:53:16",
"upload_time_iso_8601": "2023-01-16T09:53:16.997859Z",
"url": "https://files.pythonhosted.org/packages/ec/cc/fea2445a79bf5dc2fe071127cfe9fd1e463d1d842e4854e6734f8b2b215f/azure_ai_mlmonitoring-0.1.0a2-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2023-01-16 09:53:16",
"github": false,
"gitlab": false,
"bitbucket": false,
"lcname": "azure-ai-mlmonitoring"
}