Promoción y Gestión de Modelos en Azure con MLflow
Clase 14 de 35 • Curso de MLOPS: Despliegue de Modelos de Machine Learning
Resumen
¿Por qué son importantes las pruebas de integridad?
Las pruebas de integridad son fundamentales para asegurar la eficacia y la calidad de los modelos de Machine Learning. Estas pruebas permiten la trazabilidad del proceso desde la adquisición hasta la transformación de datos. A menudo se pasa por alto la calidad de los datos, lo cual es crucial, ya que determinar la calidad garantiza que los datos sean funcionales y efectivos para las soluciones de Machine Learning. Sin las pruebas adecuadas, existe el riesgo de que los datos no sean lo suficientemente buenos para producir resultados precisos.
¿Cómo promover un modelo en un flujo de trabajo automatizado?
Es necesario evaluar la infraestructura y el comportamiento del sistema antes de promover un modelo. La búsqueda de Azure Runs utilizando el método search_runs
permite filtrar por características específicas, como ID de experimentos o etiquetas, facilitando la selección de ejecuciones relevantes. Por ejemplo, se puede limitar la búsqueda a ejecuciones activas y ordenarlas según métricas específicas como el precision test
.
search_runs(experiment_id='1', filter_string='', order_by=['metrics.precision DESC'], top=5)
Posteriormente, la promoción de un modelo incluye la actualización de su estado, como transición de staging
a production
, utilizando el método transition_model_version_stage
.
transition_model_version_stage(model_name='tickets_classifier', version=2, stage='Production')
¿Cómo registrar y versionar modelos?
Registrar un modelo es esencial para controlarlo y versionarlo en un entorno de producción. Esto se realiza vinculando un run ID
y un modelo previamente registrado. La vinculación y el registro de un nuevo modelo crea una nueva versión si ya existía un registro anterior. En este ejemplo, se generó una versión 3 para el tickets_classifier
.
model_uri = f"runs:/{run_id}/model"
mlflow.register_model(model_uri=model_uri, name="tickets_classifier")
Cada registro de modelo incluye el nombre del modelo y el número de versión, lo que facilita su rastreo y gestión.
¿Cuál es el esquema para manejar las versiones de los modelos?
Obtener las últimas versiones de un modelo asegurará que trabajes con la más reciente y optimizada. Al utilizar métodos como get_latest_versions
, puedes identificar las versiones actuales y gestionar sus estados.
mlflow_client = mlflow.tracking.MlflowClient()
latest_versions = mlflow_client.get_latest_versions("tickets_classifier")
Además, es vital automatizar las tareas de transición utilizando scripts para no depender de interfaces gráficas, aumentando así la eficiencia operativa.
¿Cómo optimizar la métrica de un modelo en un entorno productivo?
El éxito de un modelo en producción depende de seleccionar la métrica adecuada que alinee con las necesidades del negocio. Identificar y optimizar las mejores métricas garantiza que el modelo tenga un mejor rendimiento. Los pasos mencionados, desde conectar con un cliente de MLflow hasta ejecutar pruebas en un entorno productivo, contribuyen a una gestión eficaz del modelo en su ciclo de vida.
La práctica continua de pruebas permitirá mantener un flujo de trabajo automático y fluido, adaptándose a las circunstancias cambiantes y los requerimientos específicos del negocio.