Conceptos: Operaciones de aprendizaje automático (MLOps) para flujos de trabajo de inteligencia artificial y aprendizaje automático

Se aplica a: ✔️ AKS Automatic ✔️ AKS Standard

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).

Modos de clúster de AKS para MLOps

AKS admite dos modos de clúster: AKS Automatic y AKS Standard. Elija AKS Automatic cuando desee una configuración base lista para producción con menos gestión operativa de la plataforma. Elija AKS Standard cuando necesite un mayor control sobre la configuración de la plataforma y la infraestructura del clúster.

Los conceptos del ciclo de vida de MLOps de este artículo se aplican a ambos modos. Sin embargo, la responsabilidad de implementación difiere según el modo: AKS Automatic proporciona más valores predeterminados preconfigurados, mientras que AKS Standard normalmente requiere una configuración de plataforma más explícita y propiedad del ciclo de vida.

Area AKS Automatic AKS Standard
Configuración del clúster de línea base Más valores predeterminados preconfigurados Opciones de configuración más explícitas
Operaciones del grupo de nodos del sistema Más comportamiento administrado por el servicio Más comportamiento administrado por el operador
Controles de base de referencia de seguridad Varios controles están preconfigurados en escenarios comunes Los operadores suelen habilitar y mantener los controles
Base de referencia de red Valores predeterminados basados en convenciones para patrones comunes Mayor flexibilidad de configuración de red
Operaciones y actualizaciones Comportamiento operativo más administrado Comportamiento más dirigido por el operador
Enfoque de implementación de MLOps Validar, controlar y ajustar los valores predeterminados Diseño y configuración de controles de plataforma

¿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 un ajuste fino o reentrenamiento, el proceso vuelve al bucle interno.

Estos pasos de ciclo de vida son coherentes en los modos de clúster de AKS. La principal diferencia es cuánta configuración de la plataforma y operativa gestionan directamente sus equipos.

Canalización de MLOps

Su flujo de trabajo de MLOps puede utilizar diversas herramientas y microservicios que se despliegan de forma secuencial 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 ingestión de vectores y/o reentrenamiento de modelos
  • 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

Estos componentes de canalización son relevantes para AKS Automatic y AKS Standard. La elección del modo afecta principalmente a los límites de titularidad de la plataforma, más que al propósito de la canalización.

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.

En AKS Automatic, los equipos a menudo pueden dedicar menos esfuerzo a la configuración común de la plataforma y mucho más sobre la directiva, la calidad y la orquestación del ciclo de vida del modelo. En AKS Standard, los equipos suelen realizar un diseño y una configuración más explícitos de la plataforma.

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).

Automatización

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. Mediante la automatización, también puedes aplicar medidas proactivas en el flujo de IA para garantizar que los datos cumplan las políticas de tu organización.

Por ejemplo, su flujo de trabajo 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 exposiciones (CVE) en imágenes de contenedor base extraídas de registros de contenedor externos para garantizar prácticas de seguridad seguras.

En ambos modos de clúster, incluya la automatización para la validación de directivas, la detección de desfases de configuración y la gobernanza de versiones, además de los desencadenadores de calidad del modelo.

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:

  • Refactorizar código exploratorio en cuadernos Jupyter para convertirlo en scripts de Python o R.
  • Validación de nuevos datos de entrada para detectar valores ausentes o erróneos.
  • 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.

En AKS Automatic, CI suele validar los artefactos comparándolos con los valores predeterminados esperados de la plataforma. En AKS Standard, CI a menudo valida suposiciones con respecto a las opciones de plataforma configuradas explícitamente.

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.

Las prácticas de promoción son similares en ambos modos de clúster de AKS, pero las canalizaciones estándar de AKS suelen incluir validaciones de infraestructura más específicas antes de la publicació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.

En AKS Automatic, IaC suele resaltar las definiciones de carga de trabajo, los controles de gobernanza y la coherencia del entorno. En AKS Standard, IaC suele incluir una configuración más amplia explícita de clústeres y plataformas.

Consulte los siguientes artículos para obtener información sobre los procedimientos recomendados para MLOps en sus aplicaciones inteligentes en AKS: