1 min read
Building Production MLOps Pipelines with Azure Machine Learning
MLOps brings DevOps practices to machine learning, enabling reliable model training, deployment, and monitoring. Azure Machine Learning provides the infrastructure for building production-grade ML pipelines.
Defining a Training Pipeline
from azure.ai.ml import MLClient, command, Input, Output
from azure.ai.ml.entities import Environment, BuildContext
from azure.identity import DefaultAzureCredential
# Connect to workspace
ml_client = MLClient(
credential=DefaultAzureCredential(),
subscription_id="your-subscription-id",
resource_group_name="your-rg",
workspace_name="your-workspace"
)
# Define training component
training_component = command(
name="train_model",
display_name="Train Classification Model",
inputs={
"training_data": Input(type="uri_folder"),
"learning_rate": Input(type="number", default=0.01),
"epochs": Input(type="integer", default=10)
},
outputs={
"model_output": Output(type="uri_folder")
},
code="./src",
command="python train.py --data ${{inputs.training_data}} --lr ${{inputs.learning_rate}} --epochs ${{inputs.epochs}} --output ${{outputs.model_output}}",
environment="AzureML-sklearn-1.0-ubuntu20.04-py38-cpu:1"
)
# Submit training job
job = ml_client.jobs.create_or_update(
command(
experiment_name="fraud-detection",
compute="gpu-cluster",
inputs={
"training_data": Input(
path="azureml://datastores/training/paths/fraud_data/"
)
},
**training_component
)
)
Model Registration and Deployment
from azure.ai.ml.entities import Model, ManagedOnlineEndpoint, ManagedOnlineDeployment
# Register the trained model
model = ml_client.models.create_or_update(
Model(
path=f"azureml://jobs/{job.name}/outputs/model_output",
name="fraud-detection-model",
type="mlflow_model"
)
)
# Create endpoint and deploy
endpoint = ManagedOnlineEndpoint(name="fraud-detection-endpoint")
ml_client.online_endpoints.begin_create_or_update(endpoint).result()
deployment = ManagedOnlineDeployment(
name="blue",
endpoint_name=endpoint.name,
model=model,
instance_type="Standard_DS3_v2",
instance_count=2
)
ml_client.online_deployments.begin_create_or_update(deployment).result()
Automated pipelines ensure reproducibility, enable A/B testing, and provide audit trails for model governance.