Conceptos: Operaciones de aprendizaje automático (MLOps) para flujos de trabajo de inteligencia artificial y aprendizaje automático
En este artículo, obtendrá información sobre las operaciones de aprendizaje automático (MLOps), incluidos los tipos de procedimientos y herramientas implicados, y cómo puede simplificar y acelerar los flujos de trabajo de inteligencia artificial y aprendizaje automático en Azure Kubernetes Service (AKS).
¿Qué es MLOps?
Las operaciones de aprendizaje automático (MLOps) abarcan prácticas que facilitan la colaboración entre científicos de datos, operaciones de TI y partes interesadas empresariales, lo que garantiza que los modelos de aprendizaje automático se desarrollan, implementan y mantienen de forma eficaz. MLOps aplica principios de DevOps a proyectos de aprendizaje automático, con el objetivo de automatizar y simplificar el ciclo de vida de aprendizaje automático de un extremo a otro. Este ciclo de vida incluye entrenamiento, empaquetado, validación, implementación, supervisión y reentrenamiento de modelos.
MLOps requiere varios roles y herramientas para trabajar conjuntamente de forma eficaz. Los científicos de datos se centran en tareas relacionadas con el entrenamiento del modelo, lo que se conoce como bucle interno. Los ingenieros de aprendizaje automático y los equipos de operaciones de TI controlan el bucle externo, donde aplican prácticas de DevOps para empaquetar, validar, implementar y supervisar modelos. Cuando el modelo necesita ajustar o volver a entrenar, el proceso vuelve a recorrer el bucle interno.
Canalización de MLOps
La canalización de MLOps puede aprovechar varias herramientas y microservicios que se implementan secuencialmente o en paralelo. A continuación se muestran ejemplos de componentes clave de la canalización que se benefician de la implementación de los siguientes procedimientos recomendados para reducir la sobrecarga y permitir una iteración más rápida:
- Almacén de datos no estructurado para los nuevos datos que fluyen a la aplicación
- Base de datos vectorial para almacenar y consultar datos estructurados y procesados previamente
- Marco de indización e ingesta de datos
- Flujos de trabajo de reentrenamiento de modelos o ingesta de vectores
- Herramientas de recopilación y alertas de métricas (seguimiento del rendimiento del modelo, volumen de datos ingeridos, etc.)
- Herramientas de administración del ciclo de vida
DevOps y MLOps
DevOps es una combinación de herramientas y prácticas que permiten crear aplicaciones sólidas y reproducibles. El objetivo de usar DevOps es entregar rápidamente valor a los usuarios finales. La creación, implementación y supervisión de modelos sólidos y reproducibles para ofrecer valor a los usuarios finales es el objetivo principal de MLOps.
Hay tres procesos esenciales para MLOps:
- Cargas de trabajo de aprendizaje automático para las que un científico de datos es responsable, incluido el análisis exploratorio de datos (EDA), la ingeniería de características y el entrenamiento y el ajuste del modelo.
- Prácticas de desarrollo de software incluyendo la planificación, el desarrollo, las pruebas y el empaquetado del modelo para la implementación.
- Aspectos operativos de la implementación y mantenimiento del modelo en producción, incluida la publicación, la configuración de recursos y la supervisión del modelo.
Principios de DevOps que se aplican a MLOps
MLOps aprovecha varios principios de DevOps para mejorar el ciclo de vida de aprendizaje automático, como automatización, integración y entrega continuas (CI/CD), control de código fuente, planeamiento ágily infraestructura como código (IaC).
Automation
Al automatizar las tareas, puede reducir los errores manuales, aumentar la eficacia y garantizar la coherencia en el ciclo de vida de ML. La automatización se puede aplicar a varias fases, incluida la recopilación de datos, el entrenamiento del modelo, la implementación y la supervisión. A través de la automatización, también puede aplicar medidas proactivas en la canalización de inteligencia artificial para garantizar el cumplimiento de los datos con las directivas de la organización.
Por ejemplo, la canalización puede automatizar:
- Ajuste de modelos o reentrenamiento en intervalos de tiempo regulares o cuando se recopila una determinada cantidad de datos nuevos en la aplicación.
- Detección de la degradación del rendimiento para iniciar el ajuste correcto o volver a entrenar en un subconjunto diferente de datos.
- Examen común de vulnerabilidades y exposición (CVE) en imágenes de contenedor base extraídas de registros de contenedor externos para garantizar prácticas de seguridad seguras.
Integración continua (CI)
La integración continua abarca la creación y comprobación de aspectos del proceso de desarrollo del modelo. El objetivo de CI es crear el código y comprobar la calidad del código y el modelo antes de la implementación. Esto incluye pruebas en una variedad de conjuntos de datos de ejemplo para asegurarse de que el modelo funciona según lo previsto y cumple los estándares de calidad.
En MLOps, la ci podría implicar lo siguiente:
- Refactorización de código exploratorio en cuadernos de Jupyter Notebook en scripts de Python o R.
- Validar los nuevos datos de entrada para los valores de error o que faltan.
- Pruebas unitarias y pruebas de integración en la canalización de un extremo a otro.
Para realizar pruebas unitarias y linting, puede usar herramientas de automatización como Azure Pipelines en Azure DevOps o Acciones de GitHub.
Entrega continua (CD)
La entrega continua implica los pasos necesarios para implementar de forma segura un modelo en producción. El primer paso es empaquetar e implementar el modelo en entornos de preproducción, como entornos de desarrollo y pruebas. La portabilidad de los parámetros, hiperparámetros y otros artefactos de modelo es un aspecto importante que se debe mantener a medida que promueve el código a través de estos entornos. Esta portabilidad es especialmente importante cuando se trata de modelos de lenguaje grandes (LLM) y modelos de difusión estables. Una vez que el modelo supera las pruebas unitarias y las pruebas de control de calidad (QA), puede aprobarla para su implementación en el entorno de producción.
Control de código fuente
El control de código fuente, o control de versiones, es esencial para administrar los cambios en el código y los modelos. En un sistema de ML, esto hace referencia al control de versiones de datos, el control de versiones de código y el control de versiones del modelo, lo que permite a los equipos entre funciones colaborar de forma eficaz y realizar un seguimiento de los cambios a lo largo del tiempo. El uso de un sistema de control de código fuente basado en Git, como Azure Repos en Azure DevOps o un repositorio de GitHub, le permite mantener mediante programación un historial de cambios, revertir a versiones anteriores y administrar ramas para diferentes experimentos.
Planeamiento ágil
La planeación ágil implica aislar el trabajo en sprints, que son períodos de tiempo cortos para completar tareas específicas. Este enfoque permite a los equipos adaptarse a los cambios rápidamente y ofrecer mejoras incrementales en el modelo. El entrenamiento del modelo puede ser un proceso continuo y la planeación de Agile puede ayudar a definir el ámbito del proyecto y a mejorar la alineación del equipo.
Puede usar herramientas como Azure Boards en Azure DevOps o problemas de GitHub para administrar la planeación de Agile.
Infraestructura como código (IaC)
La infraestructura se usa como código para repetir y automatizar la infraestructura necesaria para entrenar, implementar y atender los modelos. En un sistema de ML, IaC ayuda a simplificar y definir los recursos de Azure adecuados necesarios para el tipo de trabajo específico en el código y el código se mantiene en un repositorio. Esto le permite controlar las versiones de la infraestructura y realizar cambios en la optimización de recursos, la rentabilidad, etc. según sea necesario.
Pasos siguientes
Consulte los siguientes artículos para obtener información sobre los procedimientos recomendados para MLOps en sus aplicaciones inteligentes en AKS:
- Procedimientos recomendados de operaciones de aprendizaje automático en AKS
- Implementar un modelo de IA con el operador de cadena de herramientas de IA
- Procedimientos recomendados de administración de recursos en AKS
- Exigir la seguridad de pods en el clúster de AKS como desarrollador de aplicaciones
Azure Kubernetes Service