Compartir a través de


Operaciones de carga de trabajo de IA en Azure

Al compilar y realizar la transición de las cargas de trabajo de IA a producción, es importante que los equipos de operaciones estén totalmente equipados para admitir estas cargas de trabajo como harían con cualquier otra carga de trabajo de producción. Dado que los equipos de operaciones pueden tener una experiencia limitada con las tecnologías de inteligencia artificial, es esencial entrenarlas en estas tecnologías e integrar las cargas de trabajo de inteligencia artificial en sus flujos de trabajo al principio del proceso. Reúna los equipos de operaciones y datos al principio del desarrollo de la carga de trabajo de inteligencia artificial para fomentar la comprensión mutua de los procesos de cada equipo. Esta colaboración temprana es fundamental porque ambos equipos deben trabajar estrechamente para admitir la carga de trabajo de inteligencia artificial de forma eficaz. Los equipos de datos dependen de los equipos de operaciones para proporcionar señales de estado confiables y alertas accionables. Los equipos de operaciones dependen de los equipos de datos para ayudar a diagnosticar posibles problemas y a resolver problemas reales según los estándares operativos. Esta asociación ayuda a garantizar un rendimiento del sistema sin problemas y eficiente.

En esta guía se proporcionan recomendaciones sobre cómo desarrollar mecanismos operativos y prácticas para mejorar la compatibilidad con las cargas de trabajo de IA. Destaca la colaboración eficaz entre operaciones y equipos de datos.

Recomendaciones

Este es el resumen de las recomendaciones proporcionadas en este artículo.

Recomendación Descripción
Supervise todos los aspectos de la carga de trabajo. Aunque muchos problemas generales de supervisión y observabilidad también se aplican a las cargas de trabajo de inteligencia artificial, hay consideraciones específicas que debe realizar para asegurarse de que toda la carga de trabajo se supervisa correctamente en todo momento. Para crear la estrategia de supervisión y observabilidad, es posible que tenga que trabajar en diferentes equipos para obtener la experiencia adecuada y cubrir todos los modos y métricas pertinentes.

Ampliación de la plataforma de observabilidad
Aplique prácticas de implementación seguras a la carga de trabajo de IA. Siga los pasos necesarios para garantizar el mayor nivel de seguridad en torno a los datos confidenciales de producción y alinee los enfoques de implementación con requisitos de tiempo de inactividad cero. Use las herramientas adecuadas cuando sea necesario y ponga énfasis en no reinventar herramientas y procesos que ya existen. A menudo, podrá usar los servicios establecidos para lograr un alto nivel de eficiencia, al tiempo que habilitará implementaciones seguras.

Incluir componentes de carga de trabajo de IA en los procedimientos de implementación seguros
Adopte prácticas de DevOps en pruebas y automatización. Aplique prácticas de DevOps al compilar, implementar y operar la carga de trabajo de IA en producción. La carga de trabajo debe permitir la observabilidad y las pruebas con la entrada real del usuario en producción. Esto solo se puede proporcionar de forma segura si un proceso de DevOps seguro y una automatización simplificada permiten implementaciones rápidas, corrección de errores y pruebas A/B.

Compatibilidad con pruebas en producción
Automatización de prácticas operativas siempre que sea posible
Adopción de prácticas de DevOps
Documente el progreso. Cree buenos hábitos de documentación desde el principio para permitir la captura de decisiones estratégicas, el historial de cambios y la información clave sobre los datos que usa la carga de trabajo.

Adopción de procedimientos recomendados de documentación

Ampliación de la plataforma de observabilidad

Para lograr la excelencia operativa, la observabilidad sólida es esencial. Cuando su organización adopta tecnologías de inteligencia artificial, es fundamental mejorar la plataforma de observabilidad para ayudar a garantizar una supervisión completa del estado de la carga de trabajo. Las organizaciones nuevas en ia podrían carecer de experiencia en macrodatos, ciencia de datos y DataOps en su equipo de operaciones. Por lo tanto, el entrenamiento sobre los procedimientos recomendados operativos es un primer paso importante para mejorar la plataforma de observabilidad. Por este motivo, las operaciones y los equipos de datos deben colaborar para determinar los modos correctos de supervisión y métricas para capturar y analizar.

Para evaluar el estado de un modelo, se requiere una visión general completa de sus métricas de calidad específicas. Las medidas de calidad suelen incluir métricas como la actualización del modelo, la corrección de salida y la latencia de respuesta. Sin embargo, debe colaborar con científicos de datos e ingenieros para establecer las métricas específicas que definen la calidad de la carga de trabajo. La naturaleza no determinista de las cargas de trabajo de inteligencia artificial hace que la supervisión vigilante de la calidad sea especialmente importante, ya que esas medidas pueden cambiar inesperadamente en cualquier momento después de la implementación. Entre las recomendaciones para la observabilidad se incluyen las siguientes:

  • Trabaje con científicos de datos e ingenieros para determinar las métricas de calidad.

  • Compile o extienda paneles para evaluar el estado general de la carga de trabajo. Este enfoque debe incluir métricas de disponibilidad de componentes y métricas de calidad.

  • Implemente alertas de calidad y disponibilidad bien diseñadas en las que los equipos de operaciones puedan comprender y tomar medidas.

  • Codifique procedimientos operativos estándar que definan cómo los equipos de operaciones responden a las alertas de calidad, como trabajar con equipos de datos para investigar y corregir posibles errores de funcionamiento.

  • Preste mucha atención a las métricas de uso, ya que puede ser rentable ejecutar cargas de trabajo de IA. Los costos pueden crecer rápidamente si el equipo de cargas de trabajo no cierra, reduce verticalmente o desasigna los recursos cuando no están en uso. Las operaciones pueden ayudar a garantizar que los costos permanezcan dentro de los parámetros esperados mediante la supervisión del uso.

Incluir componentes de carga de trabajo de IA en los procedimientos de implementación seguros

Las cargas de trabajo de IA dependen de los datos de producción, que a menudo incluyen información confidencial. Por lo tanto, es importante mantener el mayor nivel de seguridad en torno a estas cargas de trabajo. Para ayudar a proteger los datos, amplíe las prácticas de implementación seguras para incluir todo el código relacionado con los componentes de inteligencia artificial de la carga de trabajo. Si tiene requisitos de tiempo de inactividad cero para la carga de trabajo, diseñe el enfoque de implementación para los componentes de inteligencia artificial en consecuencia.

  • Para los puntos de conexión de inferencia, use implementaciones azul-verde o controladas con o sin creación de reflejo del tráfico, en función del modelo de implementación.

  • Para la servicio de índices, use un modelo de implementación en paralelo con actualizaciones de alias para cortar el tráfico.

  • Para el código de orquestación, use marcas de características o implementaciones de color azul-verde.

En función de la aplicación, la plataforma de datos y la topología de red específica, es posible que tenga que usar una solución de puerta de enlace, como App de Azure lication Gateway o Azure Front Door.

Herramientas

Azure Machine Learning admite implementaciones azul-verde de forma nativa con división de tráfico integrada.

No reinvente la rueda.

Dado que los puntos de conexión de inferencia en línea son básicamente microservicios, funcionan como componentes de carga de trabajo totalmente independientes con sus propios datos y código que sirven a una función específica en el flujo de trabajo. Por este motivo, trate los puntos de conexión de inferencia en línea, como otros microservicios críticos que tienen sus propios ciclos de vida. Puede actualizar los puntos de conexión de inferencia en línea individualmente. Sin embargo, al igual que otros microservicios de una carga de trabajo mayor, deben trabajar juntos sin problemas. Por lo tanto, debe priorizar las pruebas de integración al implementar actualizaciones. Asegúrese de que las implementaciones no afectan negativamente a otros servicios, como el servicio de modelos y el orquestador. Como alternativa, los puntos de conexión de inferencia por lotes suelen estar estrechamente unidos al proceso de procesamiento de trabajos y se incluyen en la canalización de datos. En estos casos, los trata como parte de una solución más grande en lugar de como microservicios.

Compatibilidad con pruebas en producción

Es probable que los equipos de operaciones no diseñen ni realicen pruebas de carga de trabajo de IA. Sin embargo, deben admitir pruebas de carga de trabajo de IA a través de la supervisión, las alertas y la investigación, ya que se necesitan pruebas en producción. Debido a la naturaleza no determinista de la inteligencia artificial, es necesario realizar pruebas en producción para ayudar a garantizar que la carga de trabajo funciona según lo previsto con el tiempo. El equipo de operaciones debe asociarse estrechamente con el equipo de carga de trabajo para capturar y diagnosticar resultados de pruebas anómalos de forma eficaz y según los estándares operativos. Para asegurarse de que las operaciones pueden admitir pruebas y que los equipos de carga de trabajo puedan realizar pruebas, ambos equipos deben alinearse con sus procesos para trabajar juntos. El entrenamiento sobre las actividades de prueba en entornos que no son de producción ayuda a familiarizar al equipo con el orden de las operaciones.

Automatización de prácticas operativas siempre que sea posible

Automatice todas las prácticas operativas relacionadas con la carga de trabajo, incluidos los procesos de supervisión, alertas y pruebas. La automatización es una estrategia principal para mantener los procesos repetibles, eficientes y coherentes. Al diseñar las estrategias de automatización, se requiere supervisión humana de las actividades, como diagnosticar correctamente las incoherencias del modelo y otras señales de calidad. Esto es especialmente cierto en las versiones iniciales. Los procesos relacionados con el mantenimiento del modelo son nuevos para los equipos de operaciones, por lo que el riesgo de respuestas incorrectas a las señales de calidad es mayor en esta fase. A medida que la carga de trabajo madura, es posible que pueda usar la automatización para identificar falsas alarmas con puertas de calidad bien diseñadas, pero llegar a ese punto puede ser un proceso largo y complejo.

Cuando sea posible, reutilice las herramientas de automatización existentes para realizar nuevas tareas de automatización para la carga de trabajo de IA. Por ejemplo, si ya usa Flujos de trabajo de Azure Pipelines o GitHub, siga usándolas para implementar código de orquestación en lugar de usar una herramienta independiente. Sin embargo, evite la ingeniería excesiva en un esfuerzo por usar solo una herramienta de automatización. Si ciertas tareas o trabajos no son adecuados para la herramienta elegida, elija una herramienta más adecuada en lugar de crear una solución personalizada que agregue complejidad innecesaria.

Nota:

Para admitir completamente la carga de trabajo, se requieren muchos roles y tecnologías de intersección. Los equipos de datos, infraestructura, seguridad y operaciones dependen de la automatización en cierta medida. Use las herramientas más sencillas posibles y estandarícelas para ayudar a mantener la estrategia de automatización manejable y más fácil de entrenar.

Adopción de prácticas de DevOps

Al principio del desarrollo de cargas de trabajo, normalice el uso de prácticas de DevOps en los procesos de desarrollo. Para todos los entornos además de los entornos de espacio aislado, los estándares estrictamente definidos y aplicados deben controlar todo el ciclo de vida de desarrollo. Aplique estos estándares mediante la prohibición estricta de cualquier actividad de implementación manual. Todas las implementaciones, tanto si son actualizaciones, revisiones o nuevas implementaciones de recursos, deben realizarse a través de una canalización de integración continua e implementación continua que cumpla los procedimientos de implementación seguros. Las buenas prácticas de higiene de DevOps deben incluir:

  • Control de versiones: use el control de versiones para todos los recursos de código tanto como sea posible. El control de versiones es una piedra angular de DevOps y buenas prácticas de administración de cambios y es fundamental para una colaboración sin problemas. Aplique el control de versiones a los paquetes de biblioteca, incluidos los SDK y las imágenes de contenedor. Sea coherente en el uso de una versión específica de los paquetes de biblioteca en el ciclo de vida de desarrollo de software (SDLC). Diferentes versiones de bibliotecas como XGBoost o scikit-learn en varios entornos de desarrollo pueden provocar variaciones en el comportamiento de la carga de trabajo. Lo mismo sucede con el control de versiones del modelo. Asegúrese de que las versiones del modelo sean coherentes en el SDLC para que no pruebe una versión del modelo en un entorno de preproducción y publique una versión diferente en producción.

  • Esquema de nomenclatura de versiones simple: use un esquema de nomenclatura de versiones simple para ayudar a garantizar que siempre use la versión aprobada más recientemente de un recurso determinado. Los recursos específicos de la inteligencia artificial pueden incluir:

    • Código del cuaderno.
    • Código de orquestador.
    • Código de trabajo de procesamiento de datos.
    • Código de trabajo de Machine Learning.
    • El modelo de .
  • Herramientas que puede poner en funcionamiento: algunas herramientas son excelentes para la experimentación, pero no están diseñadas para la operacionalización. Esta limitación puede dificultar o imposible integrarlas en la automatización operativa. Por ejemplo, los cuadernos son una buena herramienta para el trabajo de experimentación y análisis de datos exploratorios, pero no son una buena herramienta para el trabajo de desarrollo de canalizaciones de producción. Cuando complete la experimentación, extraiga la lógica de esas herramientas y colóquela en un paquete de Python que puede usar para el código de trabajo.

Adopción de procedimientos recomendados de documentación

Los buenos hábitos de documentación son importantes para todos los tipos de cargas de trabajo. La complejidad de las cargas de trabajo de inteligencia artificial hace que esos hábitos sean aún más importantes. Asegúrese de que tiene un repositorio específico del equipo de cargas de trabajo en el que la documentación se almacena y controla la versión de forma segura. Al igual que con otras cargas de trabajo, debe documentar la información estándar. Esta información estándar incluye todas las herramientas que se usan en la carga de trabajo, las configuraciones de seguridad, los diseños de red y las guías de configuración. Considere la posibilidad de documentar la siguiente información de carga de trabajo específica de ia:

  • Información de administración de índices de datos de entrenamiento y puesta a tierra del modelo: documente orígenes de datos, propietario de orígenes de datos, frecuencia de actualización y procesos de eliminación de sesgos para establecer cómo entrenar el modelo y cómo controlar los datos en tierra.

  • Historial del proceso de entrenamiento: detalla cómo llegó a la configuración aprobada actual documentando por qué eligió hiperparámetros, temperaturas, pesos y otros parámetros específicos. Incluya qué otras configuraciones ha probado y los cambios de comportamiento observados durante el proceso de entrenamiento. Esta información ayuda a evitar la repetición de configuraciones incorrectas o ineficaces.

  • Información del almacén de características: documente qué características tienen la mejor potencia predictiva y cómo ha tomado esa determinación.

  • Configuración de estación de trabajo científico de datos: documente las configuraciones de estación de trabajo exhaustivamente para simplificar el proceso de incorporación para los científicos de datos. Especifique las bibliotecas y dependencias necesarias necesarias para usar entornos de Conda.

  • Información de transformación de datos: documente todo el proceso desde el principio hasta el final cuando se produce la transformación de datos. Documente cómo aparecen los datos en la ingesta y cómo se presenta después de la transformación.

Herramientas

Aproveche la configuración automatizada y la captura del historial a través de MLFlow y Machine Learning.

Pasos siguientes