Registro de un modelo de MLflow

Completado

En Azure Machine Learning, los modelos se entrenan en trabajos. Cuando desee encontrar los artefactos del modelo, puede hacerlo en las salidas del trabajo. Para administrar más fácilmente los modelos, también puede almacenar un modelo en el registro de modelos de Azure Machine Learning.

El registro de modelo facilita organizar y mantener un seguimiento de los modelos entrenados. Al registrar un modelo, almacena y versiona el modelo en el área de trabajo.

Los modelos registrados se identifican por el nombre y la versión. Cada vez que registra un modelo con el mismo nombre que uno existente, el registro incrementa la versión. También puede agregar más etiquetas de metadatos para buscar más fácilmente un modelo específico.

Sugerencia

También puede registrar modelos entrenados fuera de Azure Machine Learning proporcionando la ruta de acceso local a los artefactos del modelo.

Hay tres tipos de modelos que puede registrar:

  • MLflow: modelo entrenado y seguido con MLflow. Recomendado para casos de uso estándar.
  • Personalizado: tipo de modelo con un estándar personalizado no compatible actualmente con Azure Machine Learning.
  • Triton: tipo de modelo para cargas de trabajo de aprendizaje profundo. Se usa normalmente para las implementaciones del modelo TensorFlow y PyTorch.

Azure Machine Learning se integra bien con MLflow, por lo que registrar un modelo de MLflow es un procedimiento recomendado. Trabajar con modelos de MLflow facilita la administración e implementación de modelos en Azure Machine Learning. Durante la implementación, por ejemplo, el entorno y el script de puntuación se crean automáticamente al usar un modelo de MLflow.

Registro de un modelo de MLflow

Para registrar un modelo de MLflow, puede usar Studio, la CLI de Azure o el SDK de Python.

Como científico de datos, es posible que le resulte más cómodo trabajar con el SDK de Python.

Para entrenar el modelo, puede enviar un script de entrenamiento como un trabajo de comando mediante el siguiente código:

from azure.ai.ml import command

# configure job

job = command(
    code="./src",
    command="python train-model-signature.py --training_data diabetes.csv",
    environment="AzureML-sklearn-0.24-ubuntu18.04-py37-cpu@latest",
    compute="aml-cluster",
    display_name="diabetes-train-signature",
    experiment_name="diabetes-training"
    )

# submit job
returned_job = ml_client.create_or_update(job)
aml_url = returned_job.studio_url
print("Monitor your job at", aml_url)

Una vez que se haya completado el trabajo y se haya entrenado el modelo, use el nombre del trabajo para buscar la ejecución del trabajo y registrar el modelo a partir de sus salidas.

from azure.ai.ml.entities import Model
from azure.ai.ml.constants import AssetTypes

job_name = returned_job.name

run_model = Model(
    path=f"azureml://jobs/{job_name}/outputs/artifacts/paths/model/",
    name="mlflow-diabetes",
    description="Model created from run.",
    type=AssetTypes.MLFLOW_MODEL,
)
# Uncomment after adding required details above
ml_client.models.create_or_update(run_model)

Todos los modelos registrados aparecen en la página Modelos del Estudio de Azure Machine Learning. El modelo registrado incluye el directorio de salida del modelo. Al registrar un modelo de MLflow, puede encontrar el archivo MLmodel en los artefactos del modelo registrado.