Mejorar la velocidad y la eficiencia energética de los agentes de IA | Noticias del MIT

Los flujos de trabajo agentes son sistemas de software impulsados ​​por inteligencia artificial que encadenan múltiples modelos y herramientas externas para abordar tareas complicadas, como analizar un video y responder preguntas al respecto.

Pero la forma en que se diseñan e implementan estos sistemas altamente fragmentados a menudo causa ineficiencias que pueden conducir a un desperdicio de computación, energía y costos.

Para mejorar la eficiencia, investigadores del MIT y Microsoft desarrollaron un sistema inteligente que agiliza el proceso de diseño de flujos de trabajo agentes y optimiza automáticamente cómo se implementan esos flujos de trabajo.

Con este nuevo método, un desarrollador puede describir lo que quiere que haga el flujo de trabajo agente en un lenguaje sencillo, sin necesidad de especificar todos los detalles de su aplicación por adelantado.

El sistema determina automáticamente los mejores modelos y herramientas a utilizar, así como la configuración de hardware ideal y la asignación de recursos computacionales cuando el flujo de trabajo lo ejecuta un proveedor de la nube.

Ajusta esas configuraciones sobre la marcha en función de las prioridades de cada usuario, como minimizar costes o maximizar la velocidad.

Cuando se probó en varias cargas de trabajo agentes, este nuevo sistema redujo la cantidad de unidades computacionales necesarias para la implementación, lo que redujo significativamente los requisitos y costos de energía en comparación con los enfoques tradicionales sin obstaculizar el rendimiento.

“Los flujos de trabajo agentes se están volviendo muy complicados y rápidamente se están convirtiendo en la columna vertebral de lo que hacen los proveedores de la nube. El uso de energía es una gran preocupación, por lo que debemos tener mucho cuidado con la eficiencia de estos flujos de trabajo. Es muy fácil sobreasignar recursos, desperdiciando energía y dinero. Permitir que un proveedor de la nube haga que estos flujos de trabajo sean más óptimos para los recursos es una victoria para todos los involucrados”, dice Gohar Chaudhry, estudiante graduado en ingeniería eléctrica e informática (EECS) y autor principal de un artículo sobre este tema. sistema.

En el artículo lo acompañan Adam Belay, profesor asociado de EECS y miembro del Laboratorio de Ciencias de la Computación e Inteligencia Artificial del MIT; el autor principal Ricardo Bianchini, miembro técnico y vicepresidente corporativo de Microsoft Azure; y otros en Microsoft Azure. El artículo se presentará en el Simposio USENIX sobre diseño e implementación de sistemas operativos.

Un enigma de configuración

Un flujo de trabajo agente es un sistema compuesto por varios agentes de IA autónomos que utilizan de forma colaborativa varios modelos y herramientas, como bases de datos o programas Python, para completar dinámicamente una tarea de varios pasos, como el procesamiento de datos o la generación de código.

Estos flujos de trabajo pueden servir como procesos detrás de escena que impulsan las aplicaciones orientadas al usuario.

Normalmente, los desarrolladores deben codificar todas las opciones técnicas por adelantado. Necesitan definir qué agentes, modelos y herramientas de IA utilizar, y el orden en el que utilizarlos. También deben especificar el hardware que ejecuta el flujo de trabajo y cómo equilibrar ventajas como la velocidad y el costo.

Esto es especialmente desafiante porque los flujos de trabajo agentes reúnen múltiples modelos de caja negra y diversas herramientas, cada una con sus propias opciones de configuración, que pueden ser ofrecidas por diferentes empresas.

Si se lanza un nuevo modelo de IA que mejoraría la precisión o eficiencia de la aplicación, el desarrollador tendría que empezar desde cero para implementarlo.

“Incluso si quisieras hacer todo esto manualmente, es poco probable que puedas configurar el flujo de trabajo de manera óptima porque el espacio de configuraciones posibles es muy grande”, dice Chaudhry.

Además, el centro de datos en la nube que implementa la aplicación para los clientes no puede ver el flujo de trabajo para asignar sus recursos de hardware de la manera más eficiente en el momento de la solicitud del usuario.

Con este nuevo sistema, llamado Murakkab (palabra urdu que significa composición de cosas), los investigadores buscaron optimizar todo el proceso de flujo de trabajo agente.

Toma de decisiones dinámica

En primer lugar, Murakkab permite a los desarrolladores crear un flujo de trabajo agente describiendo su intención para la aplicación en términos de alto nivel, en lugar de detallar cómo se deben combinar los numerosos componentes de ese flujo de trabajo.

Por ejemplo, un desarrollador podría describir una aplicación de preguntas y respuestas en vídeo que extraiga fotogramas clave, genere una transcripción y luego responda las consultas de los usuarios sobre el vídeo.

“Hay muchas maneras de hacer esto, y todos estos diferentes modelos y herramientas tienen implicaciones sobre la rapidez con la que la aplicación puede finalizar la tarea”, afirma.

Murakkab toma las sencillas especificaciones del desarrollador e identifica automáticamente los mejores modelos y herramientas existentes para integrarlos en el flujo de trabajo.

También determina qué componentes deben ejecutarse secuencialmente y cuáles pueden ejecutarse en paralelo para mejorar el rendimiento.

“La plataforma toma decisiones de configuración de forma dinámica a lo largo del tiempo, por lo que si mañana sale un nuevo modelo o acelerador de GPU, el desarrollador no necesita preocuparse por eso”, afirma.

Cuando el proveedor de la nube implementa esa aplicación para un cliente, Murakkab optimiza el flujo de trabajo configurando sus componentes para cumplir con las limitaciones del usuario, como priorizar la precisión y al mismo tiempo cumplir con un requisito de latencia.

Identifica de forma adaptativa las asignaciones de hardware y los cronogramas de implementación ideales para maximizar la eficiencia en tiempo real y luego genera un flujo de trabajo que está listo para que lo ejecute el proveedor de la nube.

“Nuestro sistema también brinda a los proveedores de nube visibilidad de múltiples cargas de trabajo, de modo que el proveedor pueda compartir recursos computacionales de la manera más eficiente y al mismo tiempo satisfacer las limitaciones de los usuarios”, afirma.

Cuando se probó en diversos flujos de trabajo agentes para preguntas y respuestas en video y generación de código, Murakkab cumplió con los requisitos del usuario y utilizó solo alrededor del 35 por ciento del cálculo requerido por otros métodos. Consumía sólo alrededor del 27 por ciento de la energía por menos del 25 por ciento del costo.

La naturaleza dinámica de Murakkab también permite a los usuarios equilibrar las compensaciones. En un caso, el sistema redujo el consumo de energía de un flujo de trabajo agente en más de un orden de magnitud con solo una caída del 2 por ciento en la precisión para el cliente.

El sistema también pudo identificar una configuración inesperadamente ideal para un modelo que selecciona cuadros de video, optimizando el rendimiento para una tarea de preguntas y respuestas en video. Este tipo de optimización sería casi imposible de realizar manualmente para un desarrollador, afirma Chaudhry.

A continuación, los investigadores planean expandir su sistema a flujos de trabajo más complejos y grupos informáticos más grandes mientras exploran oportunidades para optimizar nuevas aplicaciones agentes.

“Existe un gran potencial para hacer que estos flujos de trabajo optimicen los recursos y consuman mucha menos energía, pero debemos pensar en esto a la escala de las principales plataformas en la nube”, dice Chaudhry.

Esta investigación fue apoyada, en parte, por Semiconductor Research Corporation y la Agencia de Proyectos de Investigación Avanzada de Defensa de EE. UU.