(+351) 21 24 10006  ·  info@bconcepts.pt
Carnaxide, Lisboa
Azure AI & Machine Learning
Azure AI & Machine Learning 2 min

Azure Machine Learning: registrar modelos, endpoints y MLOps en producción

João Barros 10 de March de 2025 2 min de lectura

Azure Machine Learning es la plataforma MLOps de Microsoft que cubre el ciclo de vida completo de los modelos: experimentación, registro, despliegue y monitorización. Para equipos que necesitan gobernanza y reproducibilidad en producción.

Conectar al workspace

from azure.ai.ml import MLClient
from azure.identity import DefaultAzureCredential

ml_client = MLClient(
    credential=DefaultAzureCredential(),
    subscription_id=os.environ["AZURE_SUBSCRIPTION_ID"],
    resource_group_name="rg-ml-prod",
    workspace_name="aml-bconcepts"
)

Enviar un job de entrenamiento

from azure.ai.ml import command
from azure.ai.ml.entities import Environment

job = command(
    code="./src",                            # carpeta con el código
    command="python train.py --data ${{inputs.training_data}} --output ${{outputs.model}}",
    inputs={"training_data": Input(type="uri_folder", path="azureml://datastores/workspaceblobstore/paths/data/")},
    outputs={"model": Output(type="mlflow_model")},
    environment="AzureML-sklearn-1.0-ubuntu20.04-py38-cpu@latest",
    compute="gpu-cluster",
    display_name="Entrenamiento_Churn_v3"
)

returned_job = ml_client.jobs.create_or_update(job)
ml_client.jobs.stream(returned_job.name)    # seguir los logs

Registrar y desplegar el modelo

from azure.ai.ml.entities import Model, ManagedOnlineEndpoint, ManagedOnlineDeployment

# Registrar el modelo
model = ml_client.models.create_or_update(Model(
    path=f"azureml://jobs/{returned_job.name}/outputs/model",
    name="churn-prediction",
    type="mlflow_model"
))

# Crear el endpoint
endpoint = ml_client.online_endpoints.begin_create_or_update(
    ManagedOnlineEndpoint(name="churn-endpoint", auth_mode="key")
).result()

# Desplegar con auto-scaling
deployment = ManagedOnlineDeployment(
    name="blue",
    endpoint_name="churn-endpoint",
    model=f"churn-prediction:{model.version}",
    instance_type="Standard_DS3_v2",
    instance_count=1
)
ml_client.online_deployments.begin_create_or_update(deployment).result()

Invocar el endpoint

import json, urllib.request

data = json.dumps({"input_data": {"columns": ["feature1","feature2"], "data": [[0.5, 1.2]]}})
req  = urllib.request.Request(endpoint.scoring_uri, data.encode(), {"Authorization": f"Bearer {api_key}"})
resp = urllib.request.urlopen(req)
print(json.loads(resp.read()))

Conclusión

Azure ML consolida todo el ciclo MLOps en una plataforma con RBAC, registro de modelos versionado, endpoints gestionados con auto-scaling y monitorización. Para equipos que necesitan reproducibilidad y gobernanza en ML de producción, es la alternativa gestionada a las soluciones self-hosted.

Compartir: