AutoGen: La nueva generación de aplicaciones de modelos de lenguaje

AutoGen: La nueva generación de aplicaciones de modelos de lenguaje

Recursos como AutoGen están a punto de transformar radicalmente lo que son capaces de hacer los grandes modelos de lenguaje.

Autogen es uno de los avances más emocionantes en la IA recientes.

AutoGen permite flujos de trabajo complejos basados en LLM mediante conversaciones multiagente.
AutoGen permite flujos de trabajo complejos basados en LLM mediante conversaciones multiagente. (Izquierda) Los agentes de AutoGen son personalizables y pueden basarse en LLM, herramientas, humanos e incluso una combinación de ellos. (Arriba-derecha) Los agentes pueden conversar para resolver tareas. (Abajo-derecha) El framework admite muchos patrones de conversación complejos adicionales.

Diseñar, implementar y optimizar un flujo de trabajo que pueda aprovechar todo el potencial de los grandes modelos lingüísticos (LLM) requiere mucho esfuerzo y experiencia. La automatización de estos flujos de trabajo tiene un enorme valor. A medida que los desarrolladores empiecen a crear aplicaciones basadas en LLM cada vez más complejas, los flujos de trabajo se volverán inevitablemente más intrincados. El espacio de diseño potencial para dichos flujos de trabajo podría ser vasto y complejo, lo que aumenta el reto de orquestar un flujo de trabajo óptimo con un rendimiento robusto.

AutoGen es un entorno para simplificar la orquestación, optimización y automatización de flujos de trabajo LLM. Ofrece agentes personalizables y conversables que aprovechan las capacidades más potentes de los LLM más avanzados, como GPT-4, al tiempo que abordan sus limitaciones mediante la integración con humanos y herramientas y la celebración de conversaciones entre varios agentes a través del chat automatizado.

Con AutoGen, construir un complejo sistema de conversación multiagente se reduce a:

  • Definir un conjunto de agentes con capacidades y roles especializados.
  • Definir el comportamiento de interacción entre agentes, es decir, qué responder cuando un agente recibe mensajes de otro agente.

Ambos pasos son intuitivos y modulares, lo que hace que estos agentes sean reutilizables. Por ejemplo, para construir un sistema de respuesta a preguntas basado en código, se pueden diseñar los agentes y sus interacciones como en el siguiente diagrama.

  • Se ha demostrado que un sistema de este tipo reduce el tiempo de respuesta de los agentes.
  • Se ha demostrado que un sistema de este tipo reduce el número de interacciones manuales necesarias de 3 a 10 veces en aplicaciones como la optimización de la cadena de suministro.

El uso de AutoGen reduce en más de 4 veces el esfuerzo de codificación.

Un ejemplo de flujo de trabajo para abordar la respuesta a preguntas basadas en códigos en la optimización de la cadena de suministro. El Comandante recibe las preguntas de los usuarios y se coordina con el Redactor y el Salvaguarda. El redactor elabora el código y la interpretación, el salvaguarda garantiza la seguridad y el comandante ejecuta el código. Si surgen problemas, el proceso puede repetirse hasta que se resuelva. Los círculos sombreados representan pasos que pueden repetirse varias veces.

Agentes capaces, conversables y personalizables: integración de LLM, humanos y herramientas

Los agentes AutoGen tienen capacidades habilitadas por LLMs, humanos, herramientas o una mezcla de estos elementos. Por ejemplo:

  • Uno puede configurar fácilmente el uso y los roles de los LLMs en un agente (resolución automatizada de tareas complejas mediante chat en grupo) con características avanzadas de inferencia (por ejemplo, optimizar el rendimiento con el ajuste de parámetros de inferencia).
  • La inteligencia y supervisión humanas pueden lograrse a través de un agente proxy con diferentes niveles y patrones de implicación (por ejemplo, resolución automatizada de tareas con GPT-4 + múltiples usuarios humanos).
  • Los agentes disponen de soporte nativo para la ejecución de código/función basada en LLM (por ejemplo, resolución automatizada de tareas con generación, ejecución y depuración de código, uso de herramientas proporcionadas como funciones).

Una forma sencilla de utilizar los agentes incorporados de AutoGen es invocar el chat automatizado entre un agente asistente y un agente proxy de usuario. Como ejemplo, se puede construir fácilmente una versión mejorada de ChatGPT + Code Interpreter + plugins, con un grado de automatización personalizable, utilizable en un entorno personalizado e integrable en un sistema mayor. También es fácil ampliar su comportamiento para soportar diversos escenarios de aplicación, como añadir personalización y adaptabilidad basadas en interacciones pasadas (por ejemplo, aprendizaje continuo automatizado(, enseñar a los agentes nuevas habilidades).

Se puede utilizar un agente proxy de usuario y un agente asistente de AutoGen para construir una versión mejorada de ChatGPT + Code Interpreter + plugins. El agente asistente desempeña el papel de un asistente de IA como Bing Chat. El agente proxy de usuario desempeña el papel de un usuario y simula el comportamiento de los usuarios, como la ejecución de código. AutoGen automatiza el chat entre los dos agentes, al tiempo que permite la retroalimentación o intervención humana. El proxy de usuario interactúa sin problemas con los humanos y utiliza herramientas cuando es necesario.

El diseño centrado en la conversación del agente tiene numerosas ventajas, entre ellas que:

  • Maneja con naturalidad la ambigüedad, la retroalimentación, el progreso y la colaboración.
  • Permite la realización de tareas de codificación eficaces, como el uso de herramientas para la resolución de problemas.
  • Permite a los usuarios darse de alta o de baja sin problemas a través de un agente en el chat.
  • Logra un objetivo colectivo con la cooperación de múltiples especialistas.

AutoGen admite el chat automatizado y diversos patrones de comunicación, lo que facilita orquestar un flujo de trabajo complejo y dinámico y experimentar con la versatilidad. El siguiente diagrama ilustra un nuevo juego, el ajedrez conversacional, habilitado por AutoGen.

Un ejemplo de una nueva aplicación habilitada por AutoGen: el ajedrez conversacional. Admite varios escenarios, ya que cada jugador puede ser una IA potenciada por LLM, un humano o un híbrido de ambos. Permite a los jugadores expresar sus jugadas de forma creativa, por ejemplo con chistes, referencias a memes y personajes, lo que hace que las partidas de ajedrez sean más entretenidas tanto para los jugadores como para los observadores.

El siguiente diagrama ilustra cómo AutoGen admite chats de grupo entre varios agentes utilizando otro agente especial llamado «GroupChatManager»:

Visión general de cómo AutoGen permite chats dinámicos en grupo para resolver tareas: Utilizamos un agente especial llamado Manager que repite los tres pasos siguientes: seleccionar un único interlocutor (en este caso Bob), pedirle que responda y transmitir el mensaje del interlocutor seleccionado a todos los demás agentes.

¿Cómo empezar con Autogen?

AutoGen está disponible gratuitamente como paquete Python aquí.

AutoGen es un proyecto open source, impulsado por la comunidad y en desarrollo activo (como un spinoff de FLAML, una biblioteca para el aprendizaje automático de máquinas), que fomenta las contribuciones de individuos de todos los orígenes. AutoGen pretende ofrecer un marco eficaz y fácil de usar para que los desarrolladores creen aplicaciones de nueva generación, y ya demuestra oportunidades prometedoras para crear aplicaciones creativas y ofrecer un amplio espacio para la innovación.

¿Quieres saber más sobre Microsoft Autogen? En DQS/ te asesoramos. ¿Por qué no nos preguntas cómo podemos ayudarte?

Esta información está basada la información técnica publicada por Microsoft en: «AutoGen: Enabling next-generation large language model applications«, la web oficial de Autogen en GitHub «Autogen: Enable Next-Gen Large Language Model Applications» y el proyecto FLAML en GitHub.

Publicaciones Similares

¿Te ha parecido interesante? ¿Tienes dudas sobre el contenido?
Para cualquier pregunta ponte en contacto conmigo.