Desplegar un modelo para predicciones en tiempo real y de baja latencia (<100ms) con alta disponibilidad.
→Despliegue el modelo en un punto de conexión en línea administrado (Managed Online Endpoint) de Azure ML.
Por qué: Los puntos de conexión en línea administrados son un servicio completamente gestionado optimizado para inferencia en tiempo real, proporcionando autoescalado, balanceo de carga, despliegues azul-verde y monitoreo integrado.
Referencia↗
Puntuar un gran volumen de datos (millones de registros) de forma asíncrona, priorizando la eficiencia de costos.
→Despliegue el modelo en un punto de conexión por lotes (Batch Endpoint) de Azure ML.
Por qué: Los puntos de conexión por lotes están diseñados para la puntuación asíncrona y de alto rendimiento de grandes conjuntos de datos. Pueden usar clústeres de computación escalables que se reducen a cero cuando están inactivos, optimizando los costos.
Desplegar una nueva versión de modelo minimizando el riesgo. Es necesario desviar gradualmente el tráfico a la nueva versión y permitir una fácil reversión.
→Utilice un único punto de conexión en línea administrado con dos despliegues (por ejemplo, "azul" para el modelo antiguo, "verde" para el nuevo). Utilice la división de tráfico para controlar el porcentaje de solicitudes que van a cada despliegue.
Por qué: Este patrón de despliegue azul-verde permite despliegues seguros y sin tiempo de inactividad. Puede validar el nuevo modelo en una pequeña porción del tráfico en vivo antes de comprometerse a un cambio completo.
Empaquetar un modelo con sus dependencias y artefactos de manera estandarizada e independiente del framework para su despliegue.
→Utilice el formato de modelo MLflow. Al registrar el modelo, incluya el archivo conda.yaml o requirements.txt y cualquier artefacto de código necesario.
Por qué: MLflow proporciona una convención estándar de empaquetado de modelos que Azure ML entiende de forma nativa. Esto simplifica el despliegue, ya que Azure ML puede construir automáticamente el entorno requerido.
Un modelo desplegado tiene alta latencia porque carga archivos auxiliares grandes (por ejemplo, un featurizer grande) en cada solicitud de predicción.
→Mueva la lógica de carga de archivos de la función `run()` a la función `init()` en el script de puntuación.
Por qué: La función `init()` se ejecuta solo una vez cuando el contenedor se inicia. Cargar los activos aquí los hace globalmente disponibles para todas las llamadas a `run()`, evitando cargas redundantes en cada solicitud.
Un punto de conexión en tiempo real experimenta tráfico variable (picos altos, valles bajos). Es necesario mantener el rendimiento de manera rentable.
→Configure el autoescalado en el despliegue del punto de conexión en línea administrado. Establezca un número mínimo y máximo de instancias y defina una regla de escalado basada en la utilización de CPU o la latencia de la solicitud.
Por qué: El autoescalado ajusta automáticamente el número de instancias de computación para igualar la carga de tráfico, asegurando el rendimiento durante los picos y ahorrando costos durante los períodos de calma.
Un despliegue de modelo requiere bibliotecas de sistema específicas, versiones personalizadas de CUDA o un servidor de inferencia personalizado no presente en las imágenes predeterminadas de Azure ML.
→Cree un Dockerfile personalizado que extienda una imagen base de inferencia de Azure ML, agregue las dependencias requeridas, constrúyalo y súbalo a Azure Container Registry. Referencie esta imagen en el entorno de despliegue.
Por qué: Extender una imagen base proporciona control total sobre el entorno de ejecución, manteniendo la compatibilidad con la infraestructura de servicio de Azure ML.
Automatizar el ciclo de vida de ML de extremo a extremo, incluyendo reentrenamiento, evaluación y despliegue, activado por cambios en el código o los datos.
→Utilice Azure DevOps o GitHub Actions integrados con la CLI v2 de Azure ML para crear un pipeline de CI/CD. El pipeline debe incluir una puerta de calidad que compare el nuevo modelo con una línea base antes de desplegarlo.
Por qué: Este patrón de MLOps automatiza el flujo de trabajo de ML, asegurando consistencia, calidad e iteración rápida. La puerta de calidad previene regresiones en el rendimiento del modelo.
El rendimiento de un modelo en producción se está degradando debido a cambios en la distribución de los datos de entrada. El modelo necesita ser reentrenado automáticamente cuando se detecta una deriva significativa.
→Configure un monitor de deriva de datos de Azure ML en el punto de conexión. Establezca una alerta que active una Azure Logic App o Azure Function, la cual a su vez iniciará el pipeline de reentrenamiento.
Por qué: Esto crea un sistema MLOps de ciclo cerrado que mantiene automáticamente la relevancia del modelo en respuesta a los patrones de datos cambiantes, sin intervención manual.
Se descubre que una versión de modelo recién desplegada es defectuosa en producción. Es necesario revertir rápidamente a la versión estable anterior.
→Si utiliza un despliegue azul-verde, desvíe el 100% del tráfico de vuelta al despliegue estable. Alternativamente, actualice el punto de conexión para redesplegar la versión anterior del modelo desde el registro de modelos.
Por qué: El desvío de tráfico proporciona una reversión instantánea. Redesplegar una versión desde el registro también es una forma rápida y confiable de restaurar un estado conocido y bueno.
Es necesario monitorear tanto la salud operativa (latencia, errores) como la calidad predictiva (deriva de datos, precisión) de un modelo desplegado.
→Habilite la integración de Application Insights en el punto de conexión para métricas operativas. Configure la recopilación de datos y el monitoreo de deriva de datos de Azure ML para métricas de calidad del modelo.
Por qué: Este enfoque de dos frentes proporciona una vista completa de la salud del modelo. App Insights rastrea el rendimiento del sistema, mientras que la recopilación de datos/monitoreo de deriva rastrea el rendimiento predictivo del modelo.
El punto de conexión del modelo está fallando debido a datos de entrada mal formados o inesperados de los clientes.
→Implemente la lógica de validación de entrada dentro de la función `run()` del script de puntuación. Verifique tipos de datos, rangos y estructuras, y devuelva un error significativo (por ejemplo, HTTP 400) para solicitudes inválidas.
Por qué: La validación del lado del servidor protege el modelo de fallas y proporciona retroalimentación clara e inmediata a los consumidores de la API, haciendo el servicio más robusto.