A medida que los flujos de trabajo de inteligencia artificial y aprendizaje automático (AI/ML) crecen en escala y complejidad, a los profesionales les resulta más difícil organizar e implementar sus modelos. Los proyectos de IA a menudo tienen dificultades para pasar del piloto a la producción. Los proyectos de IA a menudo fracasan no porque los modelos sean malos, sino porque la infraestructura y los procesos están fragmentados y frágiles, y la base del código piloto original a menudo se ve obligada a inflarse debido a estos requisitos adicionales. Esto dificulta que los científicos e ingenieros de datos pasen rápidamente de la computadora portátil al clúster (del desarrollo local a la implementación de producción) y reproduzcan los resultados exactos que habían visto durante el piloto.
En esta publicación, explicamos cómo puede utilizar el SDK de Flyte Python para organizar y escalar flujos de trabajo de IA/ML. Exploramos cómo el sistema Union.ai 2.0 permite la implementación de Flyte en Amazon Elastic Kubernetes Service (Amazon EKS), integrándose perfectamente con servicios de AWS como Amazon Simple Storage Service (Amazon S3), Amazon Aurora, AWS Identity and Access Management (IAM) y Amazon CloudWatch. Exploramos la solución a través de un ejemplo de flujo de trabajo de IA, utilizando el nuevo servicio Amazon S3 Vectors.
Desafíos comunes al ejecutar flujos de trabajo de IA/ML en Kubernetes
Los flujos de trabajo de IA/ML que se ejecutan en Kubernetes presentan varios desafíos de orquestación:
Complejidad de la infraestructura: aprovisionamiento dinámico de los recursos informáticos adecuados (CPU, GPU, memoria) en los clústeres de Kubernetes. Brecha entre experimento y producción: pasar de la experimentación a la producción a menudo requiere reconstruir canalizaciones en diferentes entornos. Reproducibilidad: seguimiento del linaje de datos, versiones de modelos y parámetros de experimentos para facilitar resultados confiables. Gestión de costos: utilizar eficientemente instancias puntuales, escalamiento automático y evitar el aprovisionamiento excesivo. Confiabilidad: manejar fallas con elegancia con reintentos automáticos. mecanismos de control y recuperación
Las herramientas de IA/ML diseñadas específicamente son esenciales para orquestar flujos de trabajo complejos y ofrecen capacidades especializadas como almacenamiento en caché inteligente, control de versiones automático y asignación dinámica de recursos que agilizan los ciclos de desarrollo e implementación.
Por qué Flyte/Union para Amazon EKS
Los flujos de trabajo de Flyte en Amazon EKS Python escalan desde la computadora portátil hasta el clúster con ejecución dinámica, reproducibilidad y orquestación basada en computación. Estos flujos de trabajo, junto con la implementación administrada de Union.ai, facilitan operaciones fluidas y a prueba de fallas que utilizan completamente Amazon EKS sin la sobrecarga de infraestructura. Flyte transforma la forma en que puede orquestar cargas de trabajo de IA/ML en Amazon EKS, simplificando la creación de flujos de trabajo. Algunos factores clave incluyen:
Flujos de trabajo de Python puro: escriba lógica de orquestación en Python con un 66 % menos de código que los orquestadores tradicionales, lo que alivia la necesidad de aprender lenguajes específicos de dominio y elimina barreras para los ingenieros de aprendizaje automático y desarrolladores de IA que migran el código existente Ejecución dinámica: tome decisiones en tiempo real en tiempo de ejecución con ramificaciones, bucles y lógica condicional flexibles, lo cual es esencial para los sistemas de IA agentes Reproducibilidad de forma predeterminada: cada ejecución se versiona, se almacena en caché y se realiza un seguimiento con un linaje de datos completo Orquestación con reconocimiento de computación: dinámicamente Proporcione los recursos informáticos adecuados para cada tarea, desde CPU para procesamiento de datos hasta GPU para entrenamiento de modelos. Robustez: las canalizaciones pueden recuperarse rápidamente de fallas, aislar errores y administrar puntos de control sin intervención manual.
Union.ai 2.0 se basa en Flyte, el sistema de orquestación de flujo de trabajo de código abierto basado en Kubernetes desarrollado originalmente en Lyft para impulsar sistemas de aprendizaje automático de misión crítica, como la predicción, los precios y el mapeo de ETA. Después de que Flyte fuera de código abierto en 2020 y se convirtiera en un proyecto de datos e inteligencia artificial de la Fundación Linux, el equipo central de ingeniería fundó Union.ai 2.0 para ofrecer un servicio de nivel empresarial diseñado específicamente para equipos que ejecutan cargas de trabajo de IA/ML en Amazon EKS. Union.ai 2.0 reduce la complejidad de administrar la infraestructura de Kubernetes a través de operaciones administradas, un plano de control de múltiples nubes y una administración de infraestructura abstracta, al tiempo que proporciona capacidades basadas en ML que ayudan a los científicos e ingenieros de datos a centrarse en la creación de modelos con escala, velocidad, seguridad y confiabilidad mejoradas.
Los beneficios adicionales de usar Union.ai 2.0 incluyen:
Escalabilidad mejorada: los flujos de trabajo responden en tiempo de ejecución con ramificaciones flexibles, distribución de tareas y escalamiento de infraestructura en tiempo real. Fiabilidad a prueba de fallos: los reintentos automáticos, los puntos de control y la recuperación de fallos permiten que los flujos de trabajo se mantengan resistentes sin intervención manual. Tiempo de ejecución de IA agente: Union.ai está diseñado para sistemas de IA agente de larga duración, que admiten agentes con estado y una orquestación verdaderamente duradera. Cumplimiento: para las industrias reguladas, el linaje integrado, la auditabilidad y la ejecución segura (SOC2, RBAC, SSO) son fundamentales. La orquestación en Amazon EKS y Union.ai ayuda a facilitar el cumplimiento. Conocimiento de recursos: ofrece soporte de primera clase para el aprovisionamiento informático, instancias puntuales y escalado automático.
Los beneficios de Flyte y Union.ai 2.0 elevan la orquestación moderna a un requisito de primera clase: la ejecución dinámica, la tolerancia a fallas y el conocimiento de los recursos ahora están integrados, lo que brinda una experiencia más amigable para los desarrolladores en comparación con la versión 1.0.
Amazon EKS proporciona su columna vertebral de computación, almacenamiento y redes. Flyte (el proyecto de código abierto) se encarga de la orquestación del flujo de trabajo. Union.ai amplía Flyte con orquestación consciente de la infraestructura, seguridad de nivel empresarial y escalabilidad llave en mano, lo que le brinda Flyte listo para producción sin la configuración de bricolaje. Tanto Flyte como Union.ai 2.0 se ejecutan en Amazon EKS, pero satisfacen necesidades diferentes, como se detalla en la siguiente tabla.
Característica Código abierto Implementación de Flyte Union.ai 2.0 Autoadministrado en su clúster EKS Opciones completamente administradas o BYOC Lo mejor para equipos con experiencia en Kubernetes Equipos que desean operaciones administradas Rendimiento Escala estándar Escala, velocidad, distribución de tareas y paralelismo entre 10 y 100 veces mayores Infraestructura Usted administra actualizaciones y escalamiento Infraestructura administrada de guante blanco Funciones empresariales Sin control de acceso basado en roles Control de acceso detallado basado en roles, inicio de sesión único, secretos administrados, costo paneles Soporte SLA empresarial impulsado por la comunidad con el equipo de Union.ai Servicio en tiempo real Cree el suyo propio Inferencia en tiempo real integrada e inferencia casi en tiempo real con contenedores reutilizables
Empresas como Woven Toyota, Lockheed Martin, Spotify y Artera orquestan millones de dólares en computación anualmente con Flyte y Union, acelerando la experimentación 25 veces más rápido y reduciendo los ciclos de iteración en un 96%.
Ambas opciones (Flyte de código abierto y Union.ai 2.0) se integran con la comunidad de código abierto, lo que facilita la rápida implementación de funciones y la mejora continua.
Descripción general de la solución
Aunque Flyte de código abierto proporciona poderosas capacidades de orquestación, Union.ai 2.0 ofrece la misma tecnología central con administración de nivel empresarial, lo que elimina la sobrecarga operativa para que su equipo pueda concentrarse en crear aplicaciones de IA en lugar de administrar la infraestructura. Esto se logra a través de una arquitectura híbrida que combina la simplicidad administrada con un control total de los datos. El plano de control regional maneja los metadatos y la coordinación del flujo de trabajo, mientras que el operador sindical se implementa directamente en sus clústeres de EKS, manteniendo sus datos, códigos y secretos completamente dentro de su perímetro de AWS.
La siguiente figura ilustra el flujo operativo entre el plano de control de Union y su plano de datos. El plano de control administrado por Union (izquierda) organiza flujos de trabajo a través de Elastic Load Balancing (ELB), almacenando datos de tareas en Amazon S3 y metadatos de ejecución en Aurora. Dentro de su entorno de Amazon EKS (derecha), el plano de datos ejecuta flujos de trabajo que extraen código de cliente de su registro de contenedores, acceden a secretos de AWS Secrets Manager y leen/escriben datos en sus depósitos de S3; los registros de ejecución fluyen tanto a CloudWatch como al plano de control de Union para su observabilidad.
La arquitectura de integración de AWS de Union.ai 2.0 se basa en seis componentes de servicio clave que brindan gestión del flujo de trabajo de un extremo a otro:
Plano de control y plano de datos: el plano de control opera dentro de la cuenta de Union.ai AWS y sirve como interfaz de administración central, brindando a los usuarios capacidades de autenticación y autorización, funciones de observación y monitoreo, y herramientas de administración del sistema. También organiza la ubicación de la ejecución en clústeres del plano de datos y maneja las operaciones de gestión y control del clúster. Union.ai 2.0 mantiene un plano de control por región de AWS, administrando los planos de datos regionales. Las regiones disponibles para la implementación del plano de datos incluyen EE.UU. Oeste, EE.UU. Este, UE-Oeste y UE-Central, con expansión continua a regiones adicionales. Almacén de objetos del plano de datos: este componente almacena datos que comprenden archivos, directorios, marcos de datos, modelos y tipos seleccionados de Python, que se pasan como referencias y se leen en el plano de control. Registro de contenedores: este componente contiene datos de registro que incluyen nombres de flujos de trabajo, tareas, planes de lanzamiento y artefactos; tipos de entrada y salida para flujos de trabajo y tareas; estado de ejecución, hora de inicio, hora de finalización y duración de los flujos de trabajo y tareas; información de versión para flujos de trabajo, tareas, planes de lanzamiento y artefactos; y definiciones de artefactos. Con la arquitectura Union.ai 2.0, puede conservar la propiedad total de sus datos y recursos informáticos mientras administra las operaciones de la infraestructura. El operador Union.ai 2.0 reside en el plano de datos y maneja las tareas de administración con permisos de privilegios mínimos. Permite las operaciones del ciclo de vida del clúster y proporciona a los ingenieros de soporte acceso a registros a nivel de sistema y capacidades de implementación de cambios, sin exponer secretos ni datos. La seguridad se fortalece aún más mediante la comunicación unidireccional: el operador del plano de datos inicia las conexiones con el plano de control, y no al revés. Registro y monitoreo: CloudWatch proporciona registro y monitoreo centralizados a través de una profunda integración con Flyte. El sistema crea automáticamente enlaces de registro para cada ejecución y los muestra en la consola, con enlaces que apuntan directamente a la consola de administración de AWS y al flujo de registro específico para esa ejecución, una característica que acelera significativamente la resolución de problemas durante las fallas. Seguridad: la seguridad se maneja a través de roles de IAM para cuentas de servicio (IRSA), que asignan la identidad entre los recursos de Kubernetes y los servicios de AWS de los que dependen. Estas configuraciones permiten un control de acceso más seguro y detallado para los servicios backend, y Union.ai 2.0 agrega control de acceso basado en roles (RBAC) empresarial para el control de acceso de los usuarios además de estas características de seguridad de AWS. Capa de almacenamiento: Amazon S3 sirve como capa de almacenamiento duradera para flujos de trabajo y datos. Cuando registra un flujo de trabajo con Flyte, su código se compila en una representación independiente del idioma que captura la definición del flujo de trabajo, los tipos de entrada y salida. Esta representación se empaqueta y almacena en Amazon S3, donde FlytePropeller, el motor de ejecución de Flyte, la recupera para indicar al marco informático respectivo (como Kubernetes o Spark) que ejecute flujos de trabajo e informe el estado. Los datos de entrada sin procesar utilizados para entrenar y validar modelos también se almacenan en Amazon S3. Union.ai 2.0 ahora incluye una nueva integración con Amazon S3 Vectors, lo que permite el almacenamiento de vectores para recuperación de generación aumentada (RAG), búsqueda semántica y flujos de trabajo de IA agente.
Con esta sólida infraestructura implementada, Union.ai 2.0 en Amazon EKS se destaca en la orquestación de una amplia gama de cargas de trabajo de IA/ML. Maneja el entrenamiento de modelos a gran escala mediante la orquestación de canales de entrenamiento distribuidos en clústeres de GPU con aprovisionamiento automático de recursos y soporte de instancias puntuales. Para el procesamiento de datos, puede procesar conjuntos de datos a escala de petabytes con paralelismo dinámico y distribución eficiente de tareas, escalando a 100 000 distribuciones de tareas con 50 000 acciones simultáneas en Union.ai 2.0. Al utilizar Union.ai 2.0 y Flyte en Amazon EKS, puede crear e implementar sistemas de IA agentes: agentes de IA con estado y de larga duración que toman decisiones autónomas en tiempo de ejecución. Para implementaciones de producción, admite inferencia en tiempo real con servicio de modelos de baja latencia, utilizando contenedores reutilizables para tiempos de inicio de tareas inferiores a 100 milisegundos. A lo largo de todo el proceso, Union.ai 2.0 proporciona MLOps integral y gestión del ciclo de vida del modelo, automatizando todo, desde la experimentación hasta la implementación de producción con capacidades integradas de control de versiones y reversión.
Estas capacidades se ejemplifican en implementaciones especializadas como la capacitación distribuida en instancias de AWS Trainium, donde Flyte organiza cargas de trabajo de capacitación a gran escala en Amazon EKS.
Opciones de implementación para Union.ai 2.0 en Amazon EKS
Union.ai 2.0 y Flyte ofrecen tres modelos de implementación flexibles para Amazon EKS, cada uno de los cuales equilibra la conveniencia administrada con el control operativo. Seleccione el enfoque que mejor se adapte a la experiencia, los requisitos de cumplimiento y la velocidad de desarrollo de su equipo:
Union BYOC (totalmente gestionado): el camino más rápido hacia la producción. Union.ai 2.0 administra la infraestructura, las actualizaciones y el escalado mientras sus cargas de trabajo se ejecutan en su cuenta de AWS. Esta opción es ideal para equipos que desean centrarse completamente en el desarrollo de IA en lugar de en operaciones de infraestructura. Union Self Managed: puede implementar el plano de control administrado de Union.ai 2.0 mientras mantiene el control de sus datos y recursos informáticos en su cuenta de AWS. Esta opción combina los beneficios de los servicios gestionados con los requisitos de gobernanza y soberanía de los datos. Flyte OSS en Amazon EKS: puede implementar y operar Flyte de código abierto directamente en su clúster EKS utilizando el kit de desarrollo en la nube de AWS (AWS CDK). Esta opción proporciona el máximo control y es ideal para equipos con una sólida experiencia en Kubernetes que desean personalizar su implementación. (editado)
El complemento Amazon EKS Blueprints para AWS CDK Union ayuda a los clientes de AWS a implementar, escalar y optimizar cargas de trabajo de IA/ML mediante Union en Amazon EKS. Proporciona infraestructura modular como código (IaC), plantillas de AWS CDK y planos de implementación seleccionados para ejecutar cargas de trabajo de IA escalables, que incluyen:
Capacitación de modelos y canalizaciones de ajuste fino Inferencia y servicio de modelos de lenguaje grande (LLM) Implementación y gestión de múltiples modelos Orquestación de canalizaciones de IA agente
Union.ai 2.0 y Flyte proporcionan plantillas de IaC para implementar en Amazon EKS:
Módulos Terraform: módulos preconfigurados para implementar Flyte en Amazon EKS con mejores prácticas para redes, seguridad y observabilidad. Compatibilidad con AWS CDK: construcciones de AWS CDK para integrar Union en la infraestructura de AWS existente. Flujos de trabajo GitOps: compatibilidad con Flux y ArgoCD para la gestión de infraestructura declarativa.
El complemento Union está disponible mediante publicación de blog y el complemento Flyte está disponible; siga mirando el repositorio de GitHub.
Estas plantillas automatizan el aprovisionamiento de clústeres EKS, grupos de nodos (incluidas instancias de GPU), funciones de IAM, depósitos S3, bases de datos Aurora y los componentes Flyte necesarios.
Requisitos previos
Para comenzar a utilizar esta solución, debe tener los siguientes requisitos previos:
Una cuenta de AWS con los permisos adecuados. Versión de Amazon EKS con soporte estándar. Roles de IAM requeridos. Al utilizar roles de IAM para cuentas de servicio, Flyte puede asignar identidad entre los recursos de Kubernetes y los servicios de AWS de los que depende. Estas configuraciones son para el backend y no interfieren con la comunicación del plano de control del usuario.
Cómo Union.ai 2.0 es compatible con Amazon S3 Vectors
A medida que las aplicaciones de IA dependen cada vez más de incrustaciones de vectores para la búsqueda semántica y RAG, Union.ai 2.0 permite a los equipos integrar Amazon S3 Vectors, simplificando la gestión de datos vectoriales a escala. Esta función, integrada en Flyte 2.0, está disponible hoy. Amazon S3 Vectors ofrece almacenamiento vectorial diseñado específicamente y con costos optimizados para aplicaciones de búsqueda semántica y de inteligencia artificial. Con elasticidad y durabilidad del nivel de Amazon S3 para almacenar conjuntos de datos vectoriales con un rendimiento de consultas de menos de un segundo, Amazon S3 Vectors es ideal para aplicaciones que necesitan crear y hacer crecer índices vectoriales a escala. Union.ai 2.0 brinda soporte para Amazon S3 Vectors para RAG, búsqueda semántica y sistemas multiagente. Si utiliza Union.ai 2.0 hoy con Amazon S3 como almacén de objetos, puede comenzar a utilizar Amazon S3 Vectors inmediatamente con cambios mínimos de configuración.
Para configurarlo, utilice las API dedicadas de Boto para almacenar y consultar vectores. Sus funciones de IAM de Amazon S3 ya están implementadas. Simplemente actualice los permisos.
Al combinar la orquestación de Flyte 2.0 con la compatibilidad con Amazon S3 Vector, las simulaciones comerciales de múltiples agentes pueden escalar a cientos de agentes que aprenden de datos históricos, comparten conocimientos de la industria y ejecutan estrategias coordinadas en tiempo real. Estas ventajas arquitectónicas admiten aplicaciones sofisticadas de IA, como sistemas multiagente que requieren tanto memoria semántica como coordinación en tiempo real.
Para obtener más información, consulte el caso de uso de ejemplo de una simulación comercial de múltiples agentes utilizando Flyte 2.0 con Amazon S3 Vectors. En este ejemplo, aprenderá a crear una simulación comercial con múltiples agentes que representan a los miembros del equipo en una empresa, ilustrando sus interacciones, planificación estratégica y actividades comerciales colaborativas.
Considere una simulación comercial de múltiples agentes en la que los agentes de IA interactúan, prueban estrategias y aprenden continuamente de sus experiencias. Para que el comportamiento de un agente sea realista, cada agente debe retener el contexto de interacciones anteriores, esencialmente construyendo una memoria de artefactos semánticos que informan decisiones futuras. El proceso incluye los siguientes pasos:
Después de cada ronda de simulación, incorpore los aprendizajes del agente en representaciones vectoriales utilizando modelos de incrustación. Almacene incrustaciones en Amazon S3 utilizando Amazon S3 Vectors con metadatos y etiquetas adecuados. Durante ejecuciones posteriores, recupere recuerdos relevantes mediante la búsqueda semántica para fundamentar las decisiones de los agentes en experiencias pasadas.
Con Flyte 2.0, sus agentes ya se ejecutan en un entorno consciente de la orquestación. Amazon S3 se convierte en tu tienda de vectores. Es económico, rápido y totalmente integrado, lo que alivia la necesidad de bases de datos vectoriales independientes. Para conocer los pasos y el código asociado para implementar la simulación comercial de múltiples agentes, consulte el repositorio de GitHub.
En resumen, esta arquitectura ayuda a ofrecer ventajas mensurables para los sistemas de IA de producción:
Complejidad operativa reducida: consolide su orquestación de IA/ML y almacenamiento vectorial en un único entorno, aliviando la necesidad de aprovisionar, mantener y proteger una infraestructura de base de datos vectorial independiente. Ahorros de costos significativos: Amazon S3 Vectors ofrece costos de almacenamiento significativamente más bajos en comparación con las bases de datos vectoriales especialmente diseñadas, al mismo tiempo que proporciona un rendimiento de búsqueda de similitudes inferior a un segundo a escala. Integración de AWS sin fricción: use su infraestructura existente de Amazon S3, su configuración IRSA y su red de nube privada virtual (VPC): no se requieren capas de autenticación ni configuraciones de red adicionales. Probado en batalla. Escalabilidad: aproveche la durabilidad del 99,999999999 % y la escalabilidad elástica de Amazon S3 para admitir conjuntos de datos vectoriales desde gigabytes hasta petabytes sin necesidad de realizar una nueva arquitectura.
Éxito del cliente: tejido por Toyota
La rama de conducción autónoma de Toyota, Woven by Toyota, enfrentó desafíos al orquestar cargas de trabajo complejas de IA para su tecnología de conducción autónoma, lo que requería procesamiento de datos a escala de petabytes y procesos de capacitación intensivos en GPU. Después de superar su implementación de Flyte de código abierto, migraron al servicio administrado de Union.ai en AWS en 2023. El impacto fue transformador: ciclos de iteración de aprendizaje automático más 20 veces más rápidos, millones de dólares en ahorros de costos anuales a través de la optimización de instancias puntuales y miles de trabajadores paralelos que permitieron una escala masiva.
"La gran experiencia de Union.ai nos ha permitido centrar nuestros esfuerzos en funcionalidades clave relacionadas con ADAS, actuar con rapidez y confiar en Union.ai para entregar datos a escala".
– Alborz Alavian, director senior de ingeniería de Woven by Toyota.
Lea el estudio de caso completo sobre la migración de Woven by Toyota a Union.ai.
Conclusión
Union.ai y Flyte proporcionan la base para una IA confiable y escalable en Amazon EKS para sus flujos de trabajo de IA/ML, como la creación de sistemas autónomos, la capacitación de LLM u la orquestación de canales de datos complejos. Para comenzar, elija su camino:
Sobre los autores
ND Ngoka es arquitecto senior de soluciones en AWS y se especializa en IA/ML y tecnologías de almacenamiento. Guía a los clientes a través de decisiones arquitectónicas complejas, permitiéndoles crear soluciones resilientes y escalables que impulsen los resultados comerciales.
Samhita Alla es ingeniera senior de soluciones para asociaciones en Union.ai, donde dirige la ejecución técnica de integraciones estratégicas en toda la pila de IA, desde capacitación distribuida y seguimiento de experimentos hasta integraciones de plataformas de datos. Trabaja en estrecha colaboración con socios y equipos multifuncionales para evaluar la viabilidad, crear soluciones listas para producción y ofrecer contenido técnico que impulse la adopción en el mundo real.
Kristy Cook es jefa de asociaciones en Union.ai, donde construye alianzas estratégicas en todo el ecosistema de IA/ML centradas en el crecimiento sostenido. Después de haber forjado asociaciones impactantes en Meta, Yahoo y Neustar, aporta una profunda experiencia en la puesta en funcionamiento de soluciones de IA a escala.
Jim Fratantoni es gerente de cuentas GenAI en AWS y se centra en ayudar a las nuevas empresas de IA a escalar y realizar ventas conjuntas con AWS. Le apasiona trabajar con fundadores para salir al mercado de forma conjunta e impulsar el éxito de los clientes empresariales.
Theo Rashid es un científico aplicado en Amazon que construye modelos probabilísticos de pronóstico y aprendizaje automático. Es un colaborador activo de código abierto y le apasionan las herramientas de código abierto en toda la pila de aprendizaje automático, desde bibliotecas de programación probabilística hasta la orquestación de flujos de trabajo. Tiene un doctorado en Epidemiología y Bioestadística del Imperial College de Londres.
Alex Fabisiak es un científico aplicado senior en Amazon que trabaja en pronósticos aplicados y problemas de la cadena de suministro. Se especializa en modelos probabilísticos y causales en su relación con decisiones políticas óptimas. Tiene un doctorado en Finanzas de UCLA.