Note
Access to this page requires authorization. You can try signing in or changing directories.
Access to this page requires authorization. You can try changing directories.
No-code model deployment is currently in preview and supports the following machine learning frameworks:
TensorFlow SavedModel format
TensorFlow models need to be registered in SavedModel format to work with no-code model deployment.
See this link for information on how to create a SavedModel.
We support any TensorFlow version that is listed under "Tags" at the TensorFlow Serving DockerHub.
from azureml.core import Model
model = Model.register(workspace=ws,
model_name='flowers', # Name of the registered model in your workspace.
model_path='./flowers_model', # Local Tensorflow SavedModel folder to upload and register as a model.
model_framework=Model.Framework.TENSORFLOW, # Framework used to create the model.
model_framework_version='1.14.0', # Version of Tensorflow used to create the model.
description='Flowers model')
service_name = 'tensorflow-flower-service'
service = Model.deploy(ws, service_name, [model])
ONNX models
ONNX model registration and deployment is supported for any ONNX inference graph. Preprocess and postprocess steps are not currently supported.
Here is an example of how to register and deploy an MNIST ONNX model:
from azureml.core import Model
model = Model.register(workspace=ws,
model_name='mnist-sample', # Name of the registered model in your workspace.
model_path='mnist-model.onnx', # Local ONNX model to upload and register as a model.
model_framework=Model.Framework.ONNX , # Framework used to create the model.
model_framework_version='1.3', # Version of ONNX used to create the model.
description='Onnx MNIST model')
service_name = 'onnx-mnist-service'
service = Model.deploy(ws, service_name, [model])
To score a model, see Consume an Azure Machine Learning model deployed as a web service. Many ONNX projects use protobuf files to compactly store training and validation data, which can make it difficult to know what the data format expected by the service. As a model developer, you should document for your developers:
- Input format (JSON or binary)
- Input data shape and type (for example, an array of floats of shape [100,100,3])
- Domain information (for instance, for an image, the color space, component order, and whether the values are normalized)
If you're using Pytorch, Exporting models from PyTorch to ONNX has the details on conversion and limitations.
Scikit-learn models
No code model deployment is supported for all built-in scikit-learn model types.
Here is an example of how to register and deploy a sklearn model with no extra code:
from azureml.core import Model
from azureml.core.resource_configuration import ResourceConfiguration
model = Model.register(workspace=ws,
model_name='my-sklearn-model', # Name of the registered model in your workspace.
model_path='./sklearn_regression_model.pkl', # Local file to upload and register as a model.
model_framework=Model.Framework.SCIKITLEARN, # Framework used to create the model.
model_framework_version='0.19.1', # Version of scikit-learn used to create the model.
resource_configuration=ResourceConfiguration(cpu=1, memory_in_gb=0.5),
description='Ridge regression model to predict diabetes progression.',
tags={'area': 'diabetes', 'type': 'regression'})
service_name = 'my-sklearn-service'
service = Model.deploy(ws, service_name, [model])
Note
Models that support predict_proba will use that method by default. To override this to use predict you can modify the POST body as below:
import json
input_payload = json.dumps({
'data': [
[ 0.03807591, 0.05068012, 0.06169621, 0.02187235, -0.0442235,
-0.03482076, -0.04340085, -0.00259226, 0.01990842, -0.01764613]
],
'method': 'predict' # If you have a classification model, the default behavior is to run 'predict_proba'.
})
output = service.run(input_payload)
print(output)
Note
These dependencies are included in the prebuilt scikit-learn inference container:
- dill
- azureml-defaults
- inference-schema[numpy-support]
- scikit-learn
- numpy
- joblib
- pandas
- scipy
- sklearn_pandas
Next steps
- Troubleshoot a failed deployment
- Deploy to Azure Kubernetes Service
- Create client applications to consume web services
- Update web service
- How to deploy a model using a custom Docker image
- Use TLS to secure a web service through Azure Machine Learning
- Monitor your Azure Machine Learning models with Application Insights
- Collect data for models in production
- Create event alerts and triggers for model deployments