Operaciones de Machine Learning (MLOps) con Azure Machine Learning

MLOps con Azure Machine Learning

La Operación de Aprendizaje Automático (MLOps) puede acelerar significativamente cómo los científicos de datos e ingenieros de aprendizaje automático satisfacen las necesidades organizativas. Un proceso de MLOps bien implementado no solo acelera la transición de las pruebas a la producción, sino que también ofrece propiedad, linaje y datos históricos sobre los artefactos de aprendizaje automático utilizados dentro del equipo. Se espera que el equipo de ciencia de datos esté equipado con habilidades de CI/CD para mantener la inferencia continua con ciclos de entrenamiento y implementaciones automáticas de modelos. Muchos profesionales de aprendizaje automático siguen teniendo que ejecutar MLOps manualmente y esto reduce el tiempo en el que pueden centrarse en agregar más valor al negocio.

Para abordar estos problemas, muchas personas y grupos han estado desarrollando aceleradores específicos y material de capacitación para satisfacer sus necesidades individuales o las de sus clientes. Esto dio lugar a una gran cantidad de aceleradores, repositorios de código o incluso productos completos que se construyeron utilizando o sobre la plataforma Azure Machine Learning (Azure ML). Recopilamos y evaluamos más de 20 aceleradores de soluciones de MLOps y bases de código de toda la organización. Con el tiempo, la falta de mantenimiento en algunos de estos repositorios ‘populares’ dio lugar a experiencias frustrantes por diversas razones. Los repositorios sufrían una amplia variedad de patrones de codificación o utilizaban ejemplos que solo replicaban una pequeña parte de la carga de trabajo de producción de la vida real.

Basándonos en nuestro análisis de estos aceleradores, identificamos patrones de diseño y código que podríamos aprovechar.

Reunimos a más de 30 recursos de diversos países y funciones, incluido el equipo de producto e ingeniería de Azure ML, para alinear los esfuerzos y desarrollar el acelerador MLOps v2, en línea con el desarrollo de la plataforma Azure Machine Learning v2, la interfaz de línea de comandos (CLI) y el kit de desarrollo de software (SDK). Ahora tenemos una base de código que contiene flujos de trabajo y patrones repetibles, automatizados y colaborativos que incluyen las mejores prácticas para implementar modelos de aprendizaje automático en producción.

Para el cliente, esto les ayuda a reducir el tiempo que lleva iniciar un nuevo proyecto de ciencia de datos y llevarlo a producción. Nuestro acelerador proporciona plantillas que se pueden reutilizar para establecer un enfoque estándar que funcione con varios patrones de implementación. El acelerador incorpora las decisiones clave de MLOps, como los componentes del repositorio, la estructura del repositorio, el vínculo entre el desarrollo del modelo y la implementación del modelo, y las opciones tecnológicas para cada fase del proceso de ciencia de datos. Actualmente, admitimos 24 patrones de implementación diferentes. El acelerador brinda al cliente flexibilidad, seguridad, modularidad y escalabilidad, junto con facilidad de uso que les ayuda a pasar del desarrollo a la producción con alta velocidad. 

Arquitectura del Acelerador de Soluciones

El patrón arquitectónico MLOps v2 se compone de cuatro elementos modulares que representan las fases del ciclo de vida de MLOps para un escenario de ciencia de datos dado, las relaciones y el flujo de procesos entre esos elementos, y las personas asociadas con la propiedad de esos elementos. A continuación se muestra la arquitectura MLOps v2 para un escenario de Aprendizaje Automático Clásico en datos tabulares junto con una explicación de cada elemento.

Figura 1: Arquitectura de Aprendizaje Automático Clásico MLOps utilizando AML

1. Patrimonio de Datos: Este elemento representa el patrimonio de datos organizativos, las posibles fuentes de datos y los objetivos para un proyecto de ciencia de datos. Los ingenieros de datos serían los propietarios principales de este elemento del ciclo de vida MLOps v2. Las plataformas de datos de Azure en este diagrama no son exhaustivas ni prescriptivas. Sin embargo, se destacarán las fuentes de datos y los objetivos que representen las mejores prácticas recomendadas según los casos de uso del cliente y sus relaciones con otros elementos de la arquitectura.

2. Administración/Configuración: Este elemento inicia la implementación del Acelerador MLOps v2. Consiste en todas las tareas relacionadas con la creación y gestión de recursos y roles asociados con el proyecto. Estos pueden incluir, pero no limitarse a:

a. Creación de repositorios de código fuente del proyecto. b. Creación de espacios de trabajo de Azure Machine Learning para el proyecto. c. Creación/modificación de conjuntos de datos y recursos informáticos utilizados para experimentación y implementación de modelos. d. Definición de usuarios del equipo del proyecto, sus roles y controles de acceso a otros recursos. e. Creación de canalizaciones de CI/CD (Integración Continua y Entrega Continua). f. Creación de monitores para la recopilación y notificación de métricas de modelos e infraestructura.

Las personas asociadas con esta fase pueden ser principalmente el equipo de infraestructura, pero también pueden incluir a todos los ingenieros de datos, ingenieros de aprendizaje automático y científicos de datos.

3. Desarrollo del modelo (bucle interno): El elemento de bucle interno consiste en tu flujo de trabajo iterativo de ciencia de datos. Un flujo de trabajo típico se ilustra aquí, desde la ingestión de datos, el análisis exploratorio de datos (EDA), la experimentación, el desarrollo y la evaluación del modelo, hasta el registro de un modelo candidato para producción. Este elemento modular, implementado en el acelerador MLOps v2, es agnóstico y adaptable al proceso que tu equipo puede utilizar para desarrollar modelos.

Las personas asociadas con esta fase incluyen a los científicos de datos e ingenieros de aprendizaje automático.

4. Implementación (bucle externo): La fase de bucle externo consta de pruebas de implementación previa a la producción, implementación en producción y monitoreo en producción, desencadenadas por canalizaciones de integración continua al registrar un modelo de producción candidato por el equipo del bucle interno. Las canalizaciones de implementación continua promoverán el modelo y los activos relacionados a través de la producción y el monitoreo en producción a medida que se satisfacen las pruebas apropiadas para tu organización y caso de uso. El monitoreo en entornos de prueba y producción facilita la recolección de datos y la acción sobre problemas relacionados con el rendimiento del modelo, el cambio de datos y el rendimiento de la infraestructura, lo que potencialmente requiere una revisión humana, un nuevo entrenamiento automatizado y una reevaluación del modelo, o volver al bucle de desarrollo o la administración/configuración para el desarrollo de un nuevo modelo o la modificación de los recursos de infraestructura. Las personas asociadas con esta fase son principalmente ingenieros de aprendizaje automático.

El repositorio también incluye una arquitectura diseñada específicamente para casos de uso de Visión por Computadora (CV) y Procesamiento del Lenguaje Natural (NLP). También se están desarrollando arquitecturas adicionales adaptadas para Azure ML + Spark y escenarios de IoT (Internet de las cosas) Edge.

Implementación Técnica

El repositorio MLOps contiene las mejores prácticas que hemos recopilado para permitir a los usuarios pasar del desarrollo a la producción con el mínimo esfuerzo. También nos hemos asegurado de no quedar bloqueados en una única pila tecnológica o en ejemplos codificados en duro. Sin embargo, hemos intentado asegurarnos de que los ejemplos sean fáciles de trabajar y extensibles cuando sea necesario. El repositorio MLOps incluye la siguiente matriz de tecnologías en la pila. Los usuarios podrán elegir cualquier combinación de elementos en la pila para satisfacer sus necesidades.

El repositorio Azure/mlops-v2: Azure MLOps (v2) solution accelerators. (github.com) es un repositorio mono que los usuarios pueden configurar con cualquiera de los patrones arquitectónicos para comenzar. Los usuarios pueden seleccionar un elemento de cada columna para configurar un repositorio personalizado para sus necesidades. Por ejemplo, pueden seleccionar la infraestructura que se puede crear utilizando Terraform mientras usan GitHub como su plataforma de CI/CD. El científico de datos puede elegir su problema de aprendizaje automático y cómo desea implementar su canalización en el lenguaje de su elección.

Tabla 1: Patrones Arquitectónicos

Los elementos marcados en negrita están disponibles en este momento.

Estos patrones se pueden implementar tanto en modo en línea como por lotes (puntuación). Se pueden implementar de forma segura o no segura, lo que puede incluir un solo o múltiples espacios de trabajo de Azure Machine Learning. Los espacios de trabajo múltiples a menudo encuentran un lugar en algunos clientes para separar las cargas de trabajo de desarrollo, prueba y producción. En este último caso, también mostramos ejemplos de cómo se puede realizar la promoción del modelo y/o el código como parte del flujo de trabajo de control de origen o se puede configurar opcionalmente como un paso de aprobación en la canalización de implementación.

El acelerador MLOps v2 incluye bloques de construcción adicionales que se pueden configurar opcionalmente para incluirlos en el flujo de trabajo. Estos incluyen:

1. IA responsable: Aunque estos forman parte del espacio de trabajo regular de Azure ML, ahora incluimos estos componentes como un paso que puede ser revisado por un humano. Este paso manual puede garantizar que el modelo desarrollado cumple con los principios de IA responsable.

2. Seguridad: Hemos incluido pasos y mejores prácticas de la seguridad avanzada de GitHub y la detección de credenciales (también disponibles en Azure DevOps) que se pueden incorporar en el flujo de trabajo. Por ejemplo, hay un ejemplo de cómo se puede trabajar con conda.yml y requirements.txt para habilitar análisis de seguridad en los paquetes de Python instalados. Esto no habría sido posible con la forma actual en que configuramos el entorno y los contenedores de inferencia. Tenemos documentación sobre cómo los usuarios de GitHub pueden configurar el repositorio para realizar el escaneo de paquetes temprano en el proceso para evitar que los problemas de seguridad se conviertan en un obstáculo para implementar el modelo en producción.

La seguridad es una preocupación primordial y para garantizarla, hemos introducido el soporte para espacios de trabajo seguros. Esto ayudará a los equipos a mantener la confidencialidad de sus proyectos y datos. Además, entendemos la importancia de validar rápidamente los conceptos. Por lo tanto, hemos creado ejemplos de implementación rápida con Azure DevOps (ADO), GitHub y Microsoft Learn para ayudarte a probar tus ideas en poco tiempo.

Figura 2: Un ejemplo de la configuración de alertas de Dependabot de GitHub en el repositorio

3. Integración de Feathr Feature Store: Nos complace anunciar la integración de Feathr como un almacén de características a escala empresarial en las arquitecturas extendidas de MLOps V2. La implementación de Feathr se facilita mediante un script de Terraform y proporcionamos un ejemplo simple de aprendizaje automático clásico para guiarlo en su implementación.

4. Registro de múltiples conjuntos de datos y soporte de contenedores de terceros: En respuesta a las solicitudes de los usuarios, hemos incorporado la capacidad de registrar múltiples conjuntos de datos en el acelerador de MLOps V2. Creemos que esto añadirá mucha flexibilidad a los científicos de datos e ingenieros de aprendizaje automático para trabajar con diversos conjuntos de datos en sus proyectos. Además, hemos añadido soporte para contenedores de terceros o externos. Incluso hemos añadido soporte para análisis de paquetes de Python confiables a través de pip install en un contenedor de Docker.

5. Observabilidad del modelo: Para ser eficaz en el seguimiento e identificación de la deriva del modelo y los datos, es necesario contar con una forma de capturar y analizar los datos, especialmente del sistema de producción. Hemos implementado Azure Data Explorer (ADX) como una plataforma para ingerir y analizar datos. El archivo score.py típico se modifica para enviar los datos a ADX.

6. Deriva del modelo y de los datos: Tenemos dos patrones para la deriva del modelo y de los datos. Uno de los patrones se basa en ADX, mientras que el otro se basa en realizar los cálculos como parte de las canalizaciones de Azure ML. La elección de la implementación se basa en la preferencia del cliente. Ambos enfoques incluyen diversas pruebas estadísticas para estimar la deriva entre el objetivo y las predicciones. Además, planeamos expandirnos para incluir análisis de correlación y otras pruebas estadísticas como la divergencia de Jensen-Shannon, etc., para conjuntos de datos más grandes (pero con pocos valores únicos de objetivo).

7. Contenedores: Los patrones incluidos también demuestran cómo los usuarios pueden utilizar sus propios contenedores en el espacio de trabajo de Azure ML para el entrenamiento y la inferencia que están construidos fuera del Azure Container Repository (ACR). Estamos en conversaciones con los equipos de Producto e Ingeniería para incluir ejemplos basados en DeepSpeed y ONNX que ayuden a los usuarios finales a entrenar e inferir sus modelos de manera más rápida.

Características adicionales

El repositorio contiene ejemplos de cómo se puede trabajar de manera efectiva con modelos de MLFlow que permiten la implementación de API sin necesidad de código, no solo para modelos tabulares, sino también para modelos de aprendizaje profundo como los de visión por computadora.

El repositorio está estructurado de tal manera que la organización del cliente puede impulsar la consistencia y la reutilización de los patrones en toda la organización. Para hacer esto, creamos un repositorio separado que contiene los pasos individuales, por ejemplo, para instalar la interfaz de línea de comandos de Azure o implementar el modelo. Estos se pueden luego ensamblar en la canalización del repositorio principal del proyecto como bloques de construcción que se pueden adaptar según sea necesario. Esto también ayuda a que la canalización sea legible mientras se asegura de que los pasos incluyan los patrones que han sido comunes (y aprobados) en toda la organización.

Repositorio principal: Azure/mlops–project–template (github.com)

Repositorio de plantillas: Azure/mlops–templates (github.com)

Ejemplo: Los dos ejemplos de código demuestran cómo se puede reutilizar una plantilla en el repositorio de la canalización.

Con el apoyo del equipo de Microsoft Learn, tenemos contenido que ofrece contenido en línea a ritmo propio y práctico para familiarizarse con las diversas tecnologías involucradas. Hemos desarrollado contenido de OpenHack, una prueba piloto que se entregó internamente en junio de 2022. Actualmente estamos incorporando los comentarios de la sesión y mejorando el contenido, que está planeado para su lanzamiento a principios del próximo año.

Conclusión

El acelerador MLOps v2 es la solución de facto de MLOps de Microsoft en el futuro. A medida que el acelerador continúa evolucionando, seguirá siendo un punto de partida para que los clientes comiencen con Azure. El acelerador MLOps v2 proporciona flexibilidad, escalabilidad, modularidad, facilidad de uso y seguridad para pasar rápidamente del desarrollo a la producción, y es un must-consume para cualquier proyecto de IA/AP en Azure. MLOps v2 no solo unifica MLOps en Microsoft, sino que establece nuevos estándares para cualquier carga de trabajo de IA que se ejecute en Azure.

Agradecimientos

El desarrollo del acelerador es un esfuerzo en equipo a nivel mundial que ha contribuido de muchas maneras al repositorio.

Sobre los Autores

Scott Donohoo: Líder técnico en Ciencia de Datos y MLOps enfocado en ayudar a las organizaciones de ciencia de datos a obtener valor comercial al operacionalizar sus modelos de aprendizaje automático. Más de veinte años de experiencia en IT en el lugar y en la nube, big data, aprendizaje automático y análisis, y desarrollo de software empresarial.

 

 

Setu Chokshi: Soy un líder técnico senior, innovador y especialista en aprendizaje automático e inteligencia artificial. También soy un líder que ha ganado el respeto de mi equipo a través de la escucha activa y la delegación de tareas alineadas con los talentos. Mi trayectoria se ha desarrollado de manera orgánica a medida que los triunfos técnicos han llevado a mayores oportunidades. He tenido la suerte de haber trabajado con gigantes de la industria como General Electric y Nielsen.

We will continue to update Zepes; if you have any questions or suggestions, please contact us!

Share:

Was this article helpful?

93 out of 132 found this helpful

Discover more

Inteligencia Artificial

Por qué importa el Hype Pensar de manera práctica sobre la IA

ELIZA era un chatbot temprano que compartía algunas similitudes con ChatGPT. ¿Por qué importa esta emoción? Bueno, cu...

Inteligencia Artificial

Computación de siguiente nivel NVIDIA y AMD ofrecen potentes estaciones de trabajo para acelerar la IA, el renderizado y la simulación.

Para permitir a profesionales de todo el mundo construir y ejecutar aplicaciones de inteligencia artificial desde sus...

Inteligencia Artificial

El gemelo malévolo de ChatGPT, 'WormGPT', está entrando silenciosamente en correos electrónicos y saqueando bancos.

SlashNext dice que WormGPT es un ejemplo de la amenaza que representan los modelos de IA generadores de lenguaje.