MLOps: administración de modelos, implementación y supervisión con Azure Machine LearningMLOps: model management, deployment, and monitoring with Azure Machine Learning

En este artículo, obtendrá información sobre cómo usar Azure Machine Learning para administrar el ciclo de vida de los modelos.In this article, learn about how to use Azure Machine Learning to manage the lifecycle of your models. Azure Machine Learning usa un enfoque de Operaciones de Machine Learning (MLOps).Azure Machine Learning uses a Machine Learning Operations (MLOps) approach. MLOps mejora la calidad y la coherencia de las soluciones de aprendizaje automático.MLOps improves the quality and consistency of your machine learning solutions.

Azure Machine Learning ofrece las siguientes funcionalidades de MLOps:Azure Machine Learning provides the following MLOps capabilities:

  • Creación de canalizaciones de ML reproducibles.Create reproducible ML pipelines. Las canalizaciones permiten definir pasos repetibles y reutilizables para los procesos de preparación de datos, entrenamiento y puntuación.Pipelines allow you to define repeatable and reusable steps for your data preparation, training, and scoring processes.
  • Registro, empaquetado e implementación de modelos desde cualquier lugar y seguimiento de los metadatos asociados necesarios para usar el modelo.Register, package, and deploy models from anywhere and track associated metadata required to use the model.
  • Captura de los datos de gobernanza necesarios para capturar un ciclo de vida de ML de un extremo a otro, que incluye quién publica los modelos, el motivo por el que se realizan los cambios y el momento en que los modelos se implementan o usan en producción.Capture the governance data required for capturing the end-to-end ML lifecycle, including who is publishing models, why changes are being made, and when models were deployed or used in production.
  • Notificación y alerta sobre eventos del ciclo de vida de ML, como la finalización de experimentos, el registro de modelos, la implementación de modelos y la detección de desfase de datos.Notify and alert on events in the ML lifecycle such as experiment completion, model registration, model deployment, and data drift detection.
  • Supervisión de las aplicaciones de ML para las incidencias relacionadas con ML y operativas.Monitor ML applications for operational and ML-related issues. Compare las entradas del modelo durante el entrenamiento y la inferencia, explore las métricas de un modelo específico e incluya supervisión y alertas en su infraestructura de ML.Compare model inputs between training and inference, explore model-specific metrics, and provide monitoring and alerts on your ML infrastructure.
  • Automatización del ciclo de vida de ML completo con Azure Machine Learning y Azure DevOps para actualizar con frecuencia los modelos, probar los modelos nuevos e implementar continuamente nuevos modelos de ML junto con sus otras aplicaciones y servicios.Automate the end-to-end ML lifecycle with Azure Machine Learning and Azure DevOps to frequently update models, test new models, and continuously roll out new ML models alongside your other applications and services.

Creación de canalizaciones de ML reproduciblesCreate reproducible ML pipelines

Utilice canalizaciones de ML desde Azure Machine Learning para unir todos los pasos implicados en el proceso de entrenamiento del modelo.Use ML pipelines from Azure Machine Learning to stitch together all of the steps involved in your model training process.

Una canalización de ML puede contener pasos que van desde la preparación de datos hasta la extracción de características, el ajuste de hiperparámetros o la evaluación del modelo.An ML pipeline can contain steps from data preparation to feature extraction to hyperparameter tuning to model evaluation. Para obtener más información, consulte el artículo canalizaciones de aprendizaje automático.For more information, see ML pipelines.

Registro, empaquetado e implementación de modelos desde cualquier lugarRegister, package, and deploy models from anywhere

Registro y supervisión de modelos de aprendizaje automáticoRegister and track ML models

El registro del modelo permite almacenar y versionar los modelos en la nube de Azure, en su área de trabajo.Model registration allows you to store and version your models in the Azure cloud, in your workspace. El registro de modelo facilita organizar y mantener un seguimiento de los modelos entrenados.The model registry makes it easy to organize and keep track of your trained models.

Sugerencia

Un modelo registrado es un contenedor lógico para uno o varios archivos que componen el modelo.A registered model is a logical container for one or more files that make up your model. Por ejemplo, si tiene un modelo que se almacena en varios archivos, puede registrarlos como un único modelo en el área de trabajo de Azure Machine Learning.For example, if you have a model that is stored in multiple files, you can register them as a single model in your Azure Machine Learning workspace. Después del registro, puede descargar o implementar el modelo registrado y recibir todos los archivos que se registraron.After registration, you can then download or deploy the registered model and receive all the files that were registered.

Los modelos registrados se identifican por el nombre y la versión.Registered models are identified by name and version. Cada vez que registra un modelo con el mismo nombre que uno existente, el registro incrementa la versión.Each time you register a model with the same name as an existing one, the registry increments the version. Se pueden proporcionar etiquetas de metadatos adicionales durante el registro.Additional metadata tags can be provided during registration. Después, estas etiquetas se usan al buscar un modelo.These tags are then used when searching for a model. Azure Machine Learning admite cualquier modelo que pueda cargarse mediante Python 3.5.2 o posterior.Azure Machine Learning supports any model that can be loaded using Python 3.5.2 or higher.

Sugerencia

También puede registrar modelos entrenados fuera de Azure Machine Learning.You can also register models trained outside Azure Machine Learning.

No se puede eliminar un modelo registrado que se esté usando en una implementación activa.You can't delete a registered model that is being used in an active deployment. Para más información, consulte la sección de registro de modelos de Implementación de modelos.For more information, see the register model section of Deploy models.

Empaquetado y depuración de modelosPackage and debug models

Antes de implementar un modelo en producción, se empaqueta en una imagen de Docker.Before deploying a model into production, it is packaged into a Docker image. En la mayoría de los casos, la creación de imágenes se produce automáticamente en segundo plano durante la implementación.In most cases, image creation happens automatically in the background during deployment. Se puede especificar la imagen manualmente.You can manually specify the image.

Si experimenta problemas con la implementación, puede implementarla en su entorno de desarrollo local para solucionar problemas y depurarla.If you run into problems with the deployment, you can deploy on your local development environment for troubleshooting and debugging.

Para obtener más información, consulte implementación de modelos y solución problemas en implementaciones.For more information, see Deploy models and Troubleshooting deployments.

Validación y generación de perfiles de modelosValidate and profile models

Azure Machine Learning puede utilizar la generación de perfiles para determinar la configuración de CPU y memoria ideal que se usará al implementar el modelo.Azure Machine Learning can use profiling to determine the ideal CPU and memory settings to use when deploying your model. La validación del modelo se produce como parte de este proceso con ayuda de los datos que proporcione para el proceso de generación de perfiles.Model validation happens as part of this process, using data that you supply for the profiling process.

Conversión y optimización de modelosConvert and optimize models

Si convierte el modelo a Open Neural Network Exchange (ONNX), puede mejorar el rendimiento.Converting your model to Open Neural Network Exchange (ONNX) may improve performance. En promedio, la conversión a ONNX puede duplicar el rendimiento.On average, converting to ONNX can yield a 2x performance increase.

Para más información sobre ONNX con Azure Machine Learning, consulte el artículo sobre creación y aceleración de los modelos de aprendizaje automático.For more information on ONNX with Azure Machine Learning, see the Create and accelerate ML models article.

Uso de modelosUse models

Los modelos de Machine Learning entrenados se implementan como servicios web en la nube o localmente.Trained machine learning models are deployed as web services in the cloud or locally. También puede implementar en dispositivos Azure IoT Edge.You can also deploy models to Azure IoT Edge devices. Las implementaciones utilizan matrices de puertas programable (FPGA) por CPU, GPU o campos para las inferencias.Deployments use CPU, GPU, or field-programmable gate arrays (FPGA) for inferencing. También puede usar modelos de Power BI.You can also use models from Power BI.

Cuando use un modelo como servicio web o dispositivo de IoT Edge, proporcione los siguientes elementos:When using a model as a web service or IoT Edge device, you provide the following items:

  • Los modelos que se usan para puntuar los datos enviados al servicio o dispositivo.The model(s) that are used to score data submitted to the service/device.
  • Un script de entrada.An entry script. Este script acepta las solicitudes, usa los modelos para puntuar los datos y devuelve una respuesta.This script accepts requests, uses the model(s) to score the data, and return a response.
  • Un archivo de entorno de conda que describa las dependencias requeridas por el script de entrada y los modelos.A conda environment file that describes the dependencies required by the model(s) and entry script.
  • Los recursos adicionales, como texto, datos, etc. requeridos por el script de entrada y los modelos.Any additional assets such as text, data, etc. that are required by the model(s) and entry script.

También debe proporcionar la configuración de la plataforma de implementación de destino.You also provide the configuration of the target deployment platform. Por ejemplo, el tipo de familia de la máquina virtual, la memoria disponible y número de núcleos cuando se implemente en Azure Kubernetes Service.For example, the VM family type, available memory, and number of cores when deploying to Azure Kubernetes Service.

Cuando se crea la imagen, también se agregan los componentes requeridos por Azure Machine Learning.When the image is created, components required by Azure Machine Learning are also added. Por ejemplo, los recursos necesarios para ejecutar el servicio web e interactuar con IoT Edge.For example, assets needed to run the web service and interact with IoT Edge.

Puntuación de BatchBatch scoring

La puntuación por lotes son compatibles con las canalizaciones de ML.Batch scoring is supported through ML pipelines. Para obtener más información, vea Predicciones por lotes de macrodatos.For more information, see Batch predictions on big data.

Servicios web en tiempo realReal-time web services

Puede usar los modelos en servicios web con los siguientes destinos de proceso:You can use your models in web services with the following compute targets:

  • Azure Container InstancesAzure Container Instance
  • Azure Kubernetes ServiceAzure Kubernetes Service
  • Entorno de desarrollo localesLocal development environment

Para implementar el modelo como un servicio web, debe proporcionar los siguientes elementos:To deploy the model as a web service, you must provide the following items:

  • El modelo o un conjunto de modelos.The model or ensemble of models.
  • Las dependencias necesarias para usar el modelo.Dependencies required to use the model. Por ejemplo, un script que acepta solicitudes e invoca el modelo, las dependencias de conda, etcétera.For example, a script that accepts requests and invokes the model, conda dependencies, etc.
  • La configuración de implementación que describe cómo y dónde implementar el modelo.Deployment configuration that describes how and where to deploy the model.

Para obtener más información, consulte Implementación de modelos.For more information, see Deploy models.

Dispositivos de IoT EdgeIoT Edge devices

Puede usar modelos con dispositivos IoT a través de los módulos de Azure IoT Edge.You can use models with IoT devices through Azure IoT Edge modules. Los módulos de IoT Edge se implementan en un dispositivo de hardware, lo que permite la inferencia o puntuación de modelos en el dispositivo.IoT Edge modules are deployed to a hardware device, which enables inference, or model scoring, on the device.

Para obtener más información, consulte Implementación de modelos.For more information, see Deploy models.

AnálisisAnalytics

Microsoft Power BI admite el uso de modelos de Machine Learning para el análisis de datos.Microsoft Power BI supports using machine learning models for data analytics. Para obtener más información, consulte la integración de Azure Machine Learning en Power BI (versión preliminar).For more information, see Azure Machine Learning integration in Power BI (preview).

Captura de los datos de gobernanza necesarios para capturar el ciclo de vida de ML de un extremo a otroCapture the governance data required for capturing the end-to-end ML lifecycle

Azure Machine Learning ofrece la capacidad de realizar un seguimiento del registro de auditoría de un extremo a otro de todos los recursos de ML.Azure ML gives you the capability to track the end-to-end audit trail of all of your ML assets. Concretamente:Specifically:

  • Azure Machine Learning se integra con Git para realizar un seguimiento de la información sobre el repositorio, rama o commit del que procede el código.Azure ML integrates with Git to track information on which repository / branch / commit your code came from.
  • Los conjuntos de datos de Azure Machine Learning ayudan a realizar un seguimiento, generar perfiles y realizar versiones de sus datos.Azure ML Datasets help you track, profile, and version data.
  • El historial de ejecución de Azure Machine Learning almacena una instantánea del código, los datos y los procesos utilizados para entrenar un modelo.Azure ML Run history stores a snapshot of the code, data, and compute used to train a model.
  • El registro de modelos de Azure Machine Learning captura todos los metadatos asociados al modelo (el experimento que lo entrenó, dónde se está implementando, si las implementaciones son correctas).The Azure ML Model Registry captures all of the metadata associated with your model (which experiment trained it, where it is being deployed, if its deployments are healthy).

Notificación, automatización y alerta sobre eventos en el ciclo de vida de MLNotify, automate, and alert on events in the ML lifecycle

Azure Machine Learning publica eventos clave en Azure EventGrid, que se puede usar para notificar y automatizar eventos en el ciclo de vida de ML.Azure ML publishes key events to Azure EventGrid, which can be used to notify and automate on events in the ML lifecycle. Para obtener más información, vea este documento.For more information, please see this document.

Supervisión de problemas operativos y de Machine LearningMonitor for operational & ML issues

La supervisión permite comprender qué datos se envían a su modelo y las predicciones que devuelve.Monitoring enables you to understand what data is being sent to your model, and the predictions that it returns.

Esta información le ayudará a comprender cómo se usa el modelo.This information helps you understand how your model is being used. Los datos de entrada recopilados también pueden ser útiles para entrenar versiones futuras del modelo.The collected input data may also be useful in training future versions of the model.

Para más información, consulte cómo habilitar la recopilación de datos de un modelo.For more information, see How to enable model data collection.

Automatización del ciclo de vida de Machine LearningAutomate the ML lifecycle

Puede usar GitHub y Azure Pipelines para crear un proceso de integración continua que entrene un modelo.You can use GitHub and Azure Pipelines to create a continuous integration process that trains a model. En un escenario común, cuando un científico de datos comprueba un cambio en el repositorio de Git para un proyecto, Azure Pipelines inicia una ejecución de entrenamiento.In a typical scenario, when a Data Scientist checks a change into the Git repo for a project, the Azure Pipeline will start a training run. A continuación, se pueden inspeccionar los resultados de la ejecución para ver las características de rendimiento del modelo entrenado.The results of the run can then be inspected to see the performance characteristics of the trained model. También puede crear una canalización que implemente el modelo como un servicio web.You can also create a pipeline that deploys the model as a web service.

La extensión de Azure Machine Learning facilita el trabajo con Azure Pipelines.The Azure Machine Learning extension makes it easier to work with Azure Pipelines. Ofrece las siguientes mejoras a Azure Pipelines:It provides the following enhancements to Azure Pipelines:

  • Habilita la selección de áreas de trabajo al definir una conexión de servicio.Enables workspace selection when defining a service connection.
  • Permite que los modelos entrenados creados con una canalización de entrenamiento desencadenen las canalizaciones de versión.Enables release pipelines to be triggered by trained models created in a training pipeline.

Para más información sobre el uso de Azure Pipelines con Azure Machine Learning, consulte el artículo sobre integración continua e implementación de modelos de Machine Learning con Azure Pipelines y el repositorio de MLOps de Azure Machine Learning.For more information on using Azure Pipelines with Azure Machine Learning, see the Continuous integration and deployment of ML models with Azure Pipelines article and the Azure Machine Learning MLOps repository.

Pasos siguientesNext steps

Para más información, lea y explore los siguientes recursos:Learn more by reading and exploring the following resources: