Intelligence artificielle

AutoGen : Alimentation des prochaines générations d’applications de modèles de langage à grande échelle

mm
The AutoGen Framework

Les modèles de langage à grande échelle (LLM) sont actuellement l’un des sujets les plus discutés dans l’IA mainstream. Les développeurs du monde entier explorent le potentiel des applications des LLM. Ces modèles sont des algorithmes d’IA qui utilisent des techniques d’apprentissage profond et de grandes quantités de données d’entraînement pour comprendre, résumer, prédire et générer une large gamme de contenus, notamment du texte, de l’audio, des images, des vidéos et plus encore.

Les modèles de langage à grande échelle sont des algorithmes d’IA complexes. Développer un tel modèle est une tâche exhaustive, et construire une application qui exploite les capacités d’un LLM est tout aussi difficile. Cela nécessite une expertise, des efforts et des ressources considérables pour concevoir, mettre en œuvre et optimiser un flux de travail capable de tirer parti du potentiel d’un modèle de langage à grande échelle pour obtenir les meilleurs résultats. Compte tenu du temps et des ressources nécessaires pour établir des flux de travail pour les applications qui utilisent le pouvoir des LLM, l’automatisation de ces processus présente une grande valeur. C’est particulièrement vrai dans la mesure où les flux de travail devraient devenir encore plus complexes dans un avenir proche, les développeurs créant des applications de plus en plus sophistiquées basées sur les LLM. De plus, l’espace de conception nécessaire pour ces flux de travail est à la fois complexe et vaste, ce qui accroît les défis de création d’un flux de travail optimal et robuste qui répond aux attentes de performance.

AutoGen est un cadre développé par l’équipe de Microsoft qui vise à simplifier l’orchestration et l’optimisation des flux de travail LLM en introduisant l’automatisation dans le pipeline de flux de travail. Le cadre AutoGen propose des agents conversables et personnalisables qui exploitent le pouvoir des LLM avancés comme GPT-3 et GPT-4, et qui répondent en même temps à leurs limites actuelles en intégrant les LLM avec des outils et des entrées humaines en utilisant des discussions automatisées pour initier des conversations entre plusieurs agents.

Lorsque vous utilisez le cadre AutoGen, il suffit de deux étapes pour développer un système de conversation multi-agent complexe.

Étape 1 : Définir un ensemble d’agents, chacun avec ses rôles et ses capacités.

Étape 2 : Définir le comportement d’interaction entre les agents, c’est-à-dire qu’un agent doit savoir quoi répondre lorsqu’il reçoit un message d’un autre agent.

Les deux étapes ci-dessus sont modulaires et intuitives, ce qui rend ces agents composites et réutilisables. La figure ci-dessous illustre un exemple de flux de travail qui répond à la question de la résolution de problèmes de code dans l’optimisation de la chaîne d’approvisionnement. Comme on le voit, l’auteur écrit d’abord le code et l’interprétation, le Safeguard assure la confidentialité et la sécurité du code, et le code est ensuite exécuté par le Commander après avoir reçu les autorisations nécessaires. Si le système rencontre des problèmes pendant l’exécution, le processus est répété jusqu’à ce qu’il soit résolu complètement. Le déploiement du cadre ci-dessous entraîne une réduction du nombre d’interactions manuelles de 3 à 10 fois lorsqu’il est déployé dans des applications telles que l’optimisation de la chaîne d’approvisionnement. De plus, l’utilisation d’AutoGen réduit également les efforts de codage jusqu’à quatre fois.

AutoGen pourrait être un jeu de changement, car il vise à transformer le processus de développement de applications complexes qui exploitent le pouvoir des LLM. L’utilisation d’AutoGen peut non seulement réduire le nombre d’interactions manuelles nécessaires pour obtenir les résultats souhaités, mais elle peut également réduire les efforts de codage nécessaires pour créer de telles applications complexes. L’utilisation d’AutoGen pour créer des applications basées sur les LLM peut non seulement accélérer considérablement le processus, mais elle aidera également à réduire le temps, les efforts et les ressources nécessaires pour développer ces applications complexes.

Dans cet article, nous allons plonger plus profondément dans le cadre AutoGen et explorer les composants essentiels et l’architecture du cadre AutoGen, ainsi que ses applications potentielles. Alors, commençons.

Introduction à AutoGen : Alimentation des prochaines générations d’applications de modèles de langage à grande échelle

AutoGen est un cadre open-source développé par l’équipe de Microsoft qui équipe les développeurs avec le pouvoir de créer des applications qui exploitent le pouvoir des LLM en utilisant plusieurs agents qui peuvent avoir des conversations les uns avec les autres pour exécuter avec succès les tâches souhaitées. Les agents dans AutoGen sont conversables, personnalisables et peuvent fonctionner dans différents modes qui utilisent la combinaison d’outils, d’entrées humaines et de LLM. Les développeurs peuvent également utiliser le cadre AutoGen pour définir le comportement d’interaction des agents, et les développeurs peuvent utiliser à la fois du code informatique et du langage naturel pour programmer des modèles de conversation flexibles déployés dans diverses applications. Étant un cadre open-source, AutoGen peut être considéré comme un cadre générique que les développeurs peuvent utiliser pour construire des applications et des cadres de différentes complexités qui exploitent le pouvoir des LLM.

Les modèles de langage à grande échelle jouent un rôle crucial dans le développement d’agents qui utilisent les cadres LLM pour s’adapter à de nouvelles observations, à l’utilisation d’outils et à la raison dans de nombreuses applications du monde réel. Mais développer ces applications qui peuvent exploiter pleinement le potentiel des LLM est une affaire complexe, et compte tenu de la demande et des applications croissantes des LLM, ainsi que de l’augmentation de la complexité des tâches, il est essentiel de renforcer le pouvoir de ces agents en utilisant plusieurs agents qui travaillent en harmonie les uns avec les autres. Mais comment une approche multi-agent peut-elle être utilisée pour développer des applications basées sur les LLM qui peuvent ensuite être appliquées à une large gamme de domaines avec des complexités variables ? Le cadre AutoGen tente de répondre à la question ci-dessus en utilisant des conversations multi-agents.

AutoGen : Composants et Cadre

Dans une tentative pour réduire les efforts que les développeurs doivent consacrer pour créer des applications complexes qui utilisent les capacités des LLM sur une large gamme de domaines, le principe fondamental d’AutoGen est de consolider et de rationaliser les flux de travail multi-agents en utilisant des conversations multi-agents, ce qui maximise également la réutilisation de ces agents mis en œuvre. AutoGen utilise plusieurs agents qui peuvent avoir des conversations les uns avec les autres pour exécuter avec succès les tâches souhaitées, et le cadre est construit sur deux concepts fondamentaux : Agents conversables et Programmation de conversation.

Agents conversables

Un agent conversable dans AutoGen est une entité avec un rôle prédéfini qui peut passer des messages pour envoyer et recevoir des informations à et de autres agents conversables. Un agent conversable maintient son contexte interne en fonction des messages reçus ou envoyés, et les développeurs peuvent configurer ces agents pour avoir un ensemble unique de capacités comme être activé par des outils LLM, ou prendre des entrées humaines.

Capacités d’agent alimentées par des humains, des outils et des LLM

Les capacités d’un agent sont directement liées à la façon dont il traite et répond aux messages, ce qui est la principale raison pour laquelle les agents dans le cadre AutoGen permettent aux développeurs de doter diverses capacités à leurs agents. AutoGen prend en charge de nombreuses capacités composites courantes pour les agents qui incluent

  1. LLM : Les agents soutenus par LLM exploitent les capacités des cadres LLM avancés comme l’interférence d’état implicite, le jeu de rôle, la fourniture de rétroaction et même la codification. Les développeurs peuvent utiliser des techniques de sollicitation novatrices pour combiner ces capacités afin d’augmenter l’autonomie ou la compétence d’un agent.
  2. Humains : Plusieurs applications nécessitent ou souhaitent un certain degré d’implication humaine, et le cadre AutoGen permet aux applications basées sur les LLM de faciliter la participation humaine dans les conversations d’agent en utilisant des agents soutenus par des humains qui pourraient solliciter des entrées humaines pendant certaines rondes de conversation sur la base de la configuration de l’agent.
  3. Outils : Les agents soutenus par des outils ont généralement la capacité d’utiliser l’exécution de code ou l’exécution de fonction pour exécuter des outils.

Coopération et personnalisation d’agent

Sur la base des besoins et des exigences spécifiques d’une application, les développeurs peuvent configurer des agents individuels pour avoir une combinaison de types de backend essentiels pour afficher le comportement complexe impliqué dans les conversations multi-agents. Le cadre AutoGen permet aux développeurs de créer facilement des agents ayant des rôles et des capacités spécialisés en étendant ou en réutilisant les agents intégrés. La figure ci-dessous illustre la structure de base des agents intégrés dans le cadre AutoGen. La classe ConversableAgent peut utiliser des humains, des outils et des LLM par défaut, car c’est la plus haute abstraction d’agent. Les classes UserProxyAgent et AssistantAgent sont des classes prédéfinies de ConversableAgent, et chacune d’elles représente un mode d’utilisation courant, c’est-à-dire que chacun de ces deux agents agit comme un assistant IA (lorsqu’il est soutenu par des LLM), et sollicite des entrées humaines ou exécute des appels de fonction ou de code (lorsqu’il est soutenu par des outils et/ou des humains) en agissant comme un proxy humain.

La figure ci-dessous illustre comment les développeurs peuvent utiliser le cadre AutoGen pour développer un système à deux agents qui a une fonction de réponse personnalisée, ainsi qu’une illustration de la conversation d’agent automatisée qui utilise le système à deux agents pendant l’exécution du programme.

En permettant l’utilisation d’agents personnalisés qui peuvent converser les uns avec les autres, ces agents conversables servent de bloc de construction fondamental dans le cadre AutoGen. Cependant, les développeurs doivent spécifier et façonner ces conversations multi-agents pour développer des applications où ces agents peuvent faire des progrès significatifs sur les tâches spécifiées.

Programmation de conversation

Pour résoudre le problème ci-dessus, le cadre AutoGen utilise la programmation de conversation, un paradigme de calcul construit sur deux concepts essentiels : le calcul, les actions prises par les agents dans une conversation multi-agent pour calculer leur réponse et le contrôle du flux, les conditions ou la séquence sous laquelle ces calculs ont lieu. La capacité de programmer ces permet aux développeurs de mettre en œuvre de nombreux modèles de conversation flexibles. De plus, dans le cadre AutoGen, les calculs sont centrés sur la conversation. Les actions prises par un agent sont pertinentes par rapport aux conversations dans lesquelles l’agent est impliqué, et les actions prises par les agents donnent ensuite lieu à l’envoi de messages pour des conversations consécutives jusqu’au point où une condition de terminaison est satisfaite. De plus, le contrôle du flux dans le cadre AutoGen est piloté par les conversations, car c’est la décision des agents participants de savoir quels agents enverront des messages à et de la procédure de calcul.

La figure ci-dessus illustre une illustration simple de la façon dont les agents individuels effectuent des opérations spécifiques au rôle, et des calculs centrés sur la conversation pour générer les réponses souhaitées comme l’exécution de code et les appels d’interférence LLM. La tâche progresse avec l’aide des conversations qui sont affichées dans la boîte de dialogue.

Pour faciliter la programmation de conversation, le cadre AutoGen présente les modèles de conception suivants.

  • Mécanismes de réponse automatique et interface unifiée pour les discussions d’agent automatisées

Le cadre AutoGen a une interface unifiée pour effectuer le calcul correspondant qui est centré sur la conversation, y compris une fonction “recevoir ou envoyer” pour recevoir ou envoyer des messages, ainsi qu’une fonction “générer une réponse” qui génère une réponse en fonction du message reçu, et prend les actions requises. Le cadre AutoGen introduit et déploie également le mécanisme de réponse automatique de l’agent par défaut pour réaliser le contrôle piloté par la conversation.

  • Contrôle par combinaison de langage naturel et de programmation

Le cadre AutoGen facilite l’utilisation du langage naturel et de la programmation dans divers modèles de gestion du contrôle du flux, qui incluent : contrôle du langage naturel en utilisant des LLM, contrôle du langage de programmation, et transition de contrôle entre la programmation et le langage naturel.

En poursuivant, en plus des conversations statiques qui sont généralement accompagnées d’un flux prédéfini, le cadre AutoGen prend également en charge les flux de conversation dynamiques en utilisant plusieurs agents, et le cadre fournit aux développeurs deux options pour atteindre cela

  1. En utilisant des appels de fonction.
  2. En utilisant une fonction de réponse personnalisée.

Applications d’AutoGen

Pour illustrer le potentiel du cadre AutoGen dans le développement d’applications multi-agents complexes, voici six applications potentielles d’AutoGen qui sont sélectionnées sur la base de leur pertinence dans le monde réel, de leurs capacités de résolution de problèmes améliorées par le cadre AutoGen, et de leur potentiel d’innovation.

Ces six applications du cadre AutoGen sont

  1. Résolution de problèmes mathématiques.
  2. Discussions augmentées de récupération.
  3. Discussions ALF.
  4. Codage multi-agent.
  5. Discussion de groupe dynamique.
  6. Échecs conversationnels.

Applications du cadre AutoGen

Application 1 : Résolution de problèmes mathématiques

Les mathématiques sont l’une des disciplines fondamentales pour exploiter les modèles de langage pour aider à résoudre des problèmes mathématiques complexes, ce qui ouvre un monde de possibilités d’applications, notamment l’assistance à la recherche en IA et la formation personnalisée en IA.

La figure ci-dessus illustre l’application du cadre AutoGen pour atteindre des performances concurrentielles dans la résolution de problèmes mathématiques.

Application 2 : Questions et réponses et génération de code avec récupération augmentée

Ces derniers mois, la génération de code avec récupération augmentée est apparue comme une approche efficace et pratique pour surmonter les limites des LLM dans l’intégration de documents externes. La figure ci-dessous illustre l’application du cadre AutoGen pour une récupération efficace et l’amélioration des performances sur les tâches de questions et réponses.

Application 3 : Prise de décision dans les environnements de monde de texte

Le cadre AutoGen peut être utilisé pour créer des applications qui fonctionnent avec la prise de décision en ligne ou interactive. La figure ci-dessous illustre comment les développeurs peuvent utiliser le cadre AutoGen pour concevoir un système de conversation à trois agents avec un agent de référence pour améliorer considérablement les performances.

Application 4 : Codage multi-agent

Les développeurs qui travaillent sur le cadre AutoGen peuvent utiliser le cadre OptiGuide pour construire un système de codage multi-agent capable d’écrire du code pour mettre en œuvre des solutions optimisées et répondre aux questions des utilisateurs. La figure ci-dessous illustre que l’utilisation du cadre AutoGen pour créer une conception multi-agent aide à améliorer considérablement les performances, en particulier dans l’exécution de tâches de codage qui nécessitent un safeguard.

Application 5 : Discussion de groupe dynamique

Le cadre AutoGen prend en charge un modèle de communication qui tourne autour des discussions de groupe dynamiques dans lesquelles les agents multiples participants partagent le contexte, et au lieu de suivre un ensemble d’ordres prédéfinis, ils conversent les uns avec les autres de manière dynamique. Ces discussions de groupe dynamiques s’appuient sur des conversations en cours pour guider le flux d’interaction au sein des agents.

La figure ci-dessus illustre comment le cadre AutoGen prend en charge les discussions de groupe dynamiques entre les agents en utilisant un GroupChatManager, un agent spécial.

Application 6 : Échecs conversationnels

Les développeurs du cadre AutoGen l’ont utilisé pour développer une application d’échecs conversationnels qui est un jeu d’interférence naturel qui comporte des agents intégrés pour les joueurs qui peuvent être un LLM ou un humain, et il y a également un agent tiers qui fournit des informations pertinentes et valide les mouvements sur le plateau sur la base d’un ensemble de règles standard prédéfinies. La figure ci-dessous illustre les échecs conversationnels, un jeu d’interférence naturel construit à l’aide du cadre AutoGen, qui permet aux joueurs d’utiliser des blagues, des jeux de rôle ou même des références à des mèmes pour exprimer leurs mouvements de manière créative, ce qui rend le jeu d’échecs plus intéressant non seulement pour les joueurs, mais également pour le public et les observateurs.

Conclusion

Dans cet article, nous avons parlé d’AutoGen, un cadre open-source qui utilise les concepts de programmation de conversation et d’agents conversables pour simplifier l’orchestration et l’optimisation des flux de travail LLM en introduisant l’automatisation dans le pipeline de flux de travail. Le cadre AutoGen propose des agents conversables et personnalisables qui exploitent le pouvoir des LLM avancés comme GPT-3 et GPT-4, et qui répondent en même temps à leurs limites actuelles en intégrant les LLM avec des outils et des entrées humaines en utilisant des discussions automatisées pour initier des conversations entre plusieurs agents.

Bien que le cadre AutoGen soit encore dans ses premiers stades expérimentaux, il ouvre la voie à des explorations et des opportunités de recherche futures dans le domaine, et AutoGen pourrait être l’outil qui aide à améliorer la vitesse, les fonctionnalités et la facilité de développement des applications qui exploitent les capacités des LLM.

Un ingénieur de profession, un écrivain de cœur. Kunal est un rédacteur technique avec une profonde affection et une compréhension de l'IA et du ML, dédié à simplifier les concepts complexes dans ces domaines grâce à sa documentation engageante et informative.