Extensions de la suggestion
Les techniques que nous avons discutées jusqu'à présent peuvent être extrêmement complexes, impliquant de nombreuses étapes et itérations. Cependant, nous pouvons aller plus loin dans le domaine de la suggestion en ajoutant un accès à des outils externes (agents) et des algorithmes d'évaluation complexes pour juger de la validité des sorties des LLMs.
4.1 Agents
Définition des agents
À mesure que les LLMs ont rapidement progressé en termes de capacités (Zhang et al., 2023c), les entreprises comme Adept (2023) et les chercheurs comme Karpas et al. (2022) ont exploré comment permettre aux LLMs d'utiliser des systèmes externes. Cette nécessité est née des limites des LLMs dans des domaines tels que les calculs mathématiques, le raisonnement et la véracité des informations. Cela a conduit à des innovations significatives dans les techniques de suggestion ; ces systèmes sont souvent pilotés par des suggestions et des chaînes de suggestions, fortement conçues pour permettre un comportement similaire à celui des agents (Figure 4.1).
Dans le contexte de l'IA générative (GenAI), nous définissons les agents comme des systèmes GenAI qui atteignent les objectifs de l'utilisateur en interagissant avec des systèmes extérieurs à l'IA elle-même. Cette IA générative est généralement un LLM. Par exemple, considérons un LLM chargé de résoudre le problème mathématique suivant :
Si Annie a 4 939 raisins et qu'elle en donne exactement 39 % à Amy, combien lui reste-t-il ?
Si correctement incité, le LLM pourrait produire la chaîne CALC(4,939 * 0,39). Cette sortie pourrait ensuite être extraite et insérée dans une calculatrice pour obtenir la réponse finale.
Ceci est un exemple d'agent : le LLM produit un texte qui utilise ensuite un outil externe. Les LLMs agents peuvent impliquer un seul système externe (comme dans l'exemple ci-dessus) ou doivent résoudre le problème de routage pour choisir quel système externe utiliser. De tels systèmes impliquent également fréquemment la mémoire et la planification, en plus des actions (Zhang et al., 2023c).
Des exemples d'agents incluent des LLMs capables d'appeler des API pour utiliser des outils externes comme une calculatrice (Karpas et al., 2022), des LLMs capables de générer des chaînes de caractères provoquant des actions dans un environnement similaire à un simulateur (Brockman et al., 2016 ; Towers et al., 2023 ; Yao et al., 2022), ainsi que plus largement des LLMs écrivant et enregistrant des plans, écrivant et exécutant du code, parcourant Internet, etc. (Significant Gravitas, 2023 ; Yang et al., 2023c ; Osika, 2023). OpenAI Assistants (OpenAI, 2023), LangChain Agents (Chase, 2022) et LlamaIndex Agents (Liu, 2022) sont d'autres exemples.
4.1.1 Agents utilisant des outils
L'utilisation d'outils est un composant crucial pour les agents GenAI. Les outils externes symboliques (par exemple, calculatrice, interprète de code) et neuronaux (par exemple, un autre LLM) sont couramment utilisés. Les outils sont parfois appelés "experts" (Karpas et al., 2022) ou modules.
-
Système MRKL (Modular Reasoning, Knowledge, and Language)
Karpas et al. (2022) est l'une des formulations les plus simples d'un agent. Il contient un routeur LLM offrant un accès à plusieurs outils. Le routeur peut effectuer plusieurs appels pour obtenir des informations telles que la météo ou la date actuelle. Il combine ensuite ces informations pour générer une réponse finale. Toolformer (Schick et al., 2023), Gorilla (Patil et al., 2023), Act-1 (Adept, 2023) et d'autres (Shen et al., 2023 ; Qin et al., 2023b ; Hao et al., 2023) proposent des techniques similaires, dont la plupart impliquent un certain ajustement fin. -
Auto-correction avec critique interactive (CRITIC)
Gou et al. (2024a) génèrent d'abord une réponse sans faire appel à des outils externes. Ensuite, le même LLM critique cette réponse pour détecter d'éventuelles erreurs. Enfin, il utilise des outils (par exemple, recherche sur Internet ou interprète de code) pour vérifier ou corriger certaines parties de la réponse.
4.1.2 Agents de génération de code
L'écriture et l'exécution de code constituent une autre capacité importante de nombreux agents.
-
Modèle linguistique assisté par programme (PAL)
Gao et al. (2023b) traduisent directement un problème en code, qui est envoyé à un interprète Python pour générer une réponse. -
Agent de raisonnement intégrant des outils (ToRA)
Gou et al. (2024b) est similaire au PAL, mais au lieu d'une seule étape de génération de code, il alterne entre des étapes de code et de raisonnement autant que nécessaire pour résoudre le problème. -
TaskWeaver
Qiao et al. (2023) est également similaire au PAL, transformant les demandes utilisateur en code, mais peut également utiliser des plugins définis par l'utilisateur.
4.1.3 Agents basés sur l'observation
Certains agents sont conçus pour résoudre des problèmes en interagissant avec des environnements simulés (Brockman et al., 2016 ; Towers et al., 2023). Ces agents basés sur l'observation reçoivent des observations insérées dans leurs suggestions.
-
Raisonnement et Action (ReAct)
(Yao et al., 2022) génère une pensée, prend une action, reçoit une observation (et répète ce processus) lorsqu'il est confronté à un problème à résoudre. Toutes ces informations sont insérées dans la suggestion afin qu'il conserve une mémoire des pensées, actions et observations passées. -
Réflexion (Reflexion)
Shinn et al. (2023) s'appuie sur ReAct en ajoutant une couche d'introspection. Il obtient une trajectoire d'actions et d'observations, puis reçoit une évaluation de succès/échec. Ensuite, il génère une réflexion sur ce qu'il a fait et ce qui s'est mal passé. Cette réflexion est ajoutée à sa suggestion comme mémoire de travail, et le processus se répète.
4.1.3.1 Agents d'apprentissage continu
Les travaux sur les agents Minecraft intégrés à des LLMs ont donné des résultats impressionnants, avec des agents capables d'acquérir de nouvelles compétences tout en naviguant dans cet univers de jeu vidéo ouvert. Nous considérons ces agents non seulement comme des applications de techniques d'agents à Minecraft, mais plutôt comme de nouveaux cadres d'agents pouvant être explorés dans des tâches du monde réel nécessitant un apprentissage continu.
-
Voyager
Wang et al. (2023a) est constitué de trois parties. Premièrement, il propose des tâches à accomplir pour en apprendre davantage sur le monde. Deuxièmement, il génère du code pour exécuter ces actions. Enfin, il sauvegarde ces actions pour les récupérer ultérieurement, comme partie d'un système de mémoire à long terme. Ce système pourrait être appliqué à des tâches du monde réel où un agent doit explorer et interagir avec un outil ou un site web (par exemple, tests d'intrusion, tests d'usabilité). -
Ghost in the Minecraft (GITM)
Zhu et al. (2023) commence avec un objectif arbitraire, le décompose en sous-objectifs de manière récursive, puis planifie et exécute des actions de manière itérative en produisant du texte structuré (par exemple, "equip(sword)") au lieu d'écrire du code. GITM utilise une base de connaissances externe sur les objets Minecraft pour aider à la décomposition ainsi qu'une mémoire des expériences passées.
4.1.4 Génération augmentée par la recherche (RAG)
Dans le contexte des agents GenAI, le RAG est un paradigme dans lequel des informations sont récupérées à partir d'une source externe et insérées dans la suggestion. Cela peut améliorer les performances dans des tâches nécessitant des connaissances approfondies (Lewis et al., 2021). Lorsque la recherche elle-même est utilisée comme outil externe, les systèmes RAG sont considérés comme des agents.
-
Vérifier et Éditer (Verify-and-Edit)
Zhao et al. (2023a) améliore l'auto-consistance en générant plusieurs chaînes de pensée, puis en sélectionnant certaines pour les modifier. Ils procèdent en récupérant des informations pertinentes (externes) pour les CoT, permettant ainsi au LLM de les enrichir en conséquence. -
Démontrer-Rechercher-Prédire (Demonstrate-Search-Predict)
Khattab et al. (2022) décompose d'abord une question en sous-questions, puis utilise des requêtes pour les résoudre et combiner leurs réponses dans une réponse finale. Il utilise des suggestions Few-Shot pour décomposer le problème et combiner les réponses. -
Récupération guidée par Chaîne de Pensée (IRCoT)
Trivedi et al. (2023) est une technique de réponse à des questions multi-étapes qui alterne entre Chaîne de Pensée et récupération. IRCoT utilise la Chaîne de Pensée pour guider la récupération des documents et la récupération pour planifier les étapes de raisonnement de la Chaîne de Pensée. -
Augmentation de récupération itérative
Des techniques comme FLARE (Jiang et al., 2023) et IRP (Balepur et al., 2023) effectuent plusieurs récupérations pendant la génération longue. Ces modèles suivent généralement un processus itératif en trois étapes : 1) générer une phrase temporaire servant de plan de contenu pour la prochaine phrase de sortie ; 2) récupérer des connaissances externes en utilisant cette phrase temporaire comme requête ; 3) injecter les connaissances récupérées dans la phrase temporaire pour créer la prochaine phrase de sortie. Ces phrases temporaires se sont révélées être de meilleures requêtes de recherche comparées aux titres de documents fournis dans les tâches de génération longue.
4.2 Évaluation
Le potentiel des LLMs à extraire, raisonner et comprendre les intentions de l'utilisateur les rend de solides candidats pour être des évaluateurs. Par exemple, il est possible d'inciter un LLM à évaluer la qualité d'un essai ou même d'une sortie précédente d'un LLM selon des métriques définies dans la suggestion. Nous décrivons quatre composantes des cadres d'évaluation importantes pour construire des évaluateurs robustes : les techniques de suggestion, le format de sortie de l'évaluation, le cadre du pipeline d'évaluation et d'autres décisions méthodologiques (Figure 4.2).
4.2.1 Techniques de suggestion
La technique de suggestion utilisée dans la suggestion d'évaluation (par exemple, instruction simple vs Chaîne de Pensée) est essentielle pour construire un évaluateur robuste. Les suggestions d'évaluation bénéficient souvent de techniques de suggestion textuelle classiques, y compris un rôle, des instructions pour la tâche, des définitions des critères d'évaluation et des exemples contextuels. Trouvez une liste complète des techniques en Annexe A.6.
-
Apprentissage contextuel
Il est fréquemment utilisé dans les suggestions d'évaluation, de la même manière qu'il est utilisé dans d'autres applications (Dubois et al., 2023 ; Kocmi et Federmann, 2023a ; Brown et al., 2020). -
Évaluation basée sur le rôle
C'est une technique utile pour améliorer et diversifier les évaluations (Wu et al., 2023b ; Chan et al., 2024). En créant des suggestions avec les mêmes instructions d'évaluation mais des rôles différents, il est possible de générer efficacement des évaluations variées. De plus, les rôles peuvent être utilisés dans un cadre multi-agent où les LLMs débattent de la validité du texte à évaluer (Chan et al., 2024). -
Chaîne de Pensée
Peut encore améliorer les performances d'évaluation (Lu et al., 2023c ; Fernandes et al., 2023). -
Directives générées par le modèle
Liu et al. (2023d, h) incitent un LLM à générer des directives d'évaluation. Cela réduit le problème de suggestions insuffisantes résultant de lignes directrices de notation mal définies et d'espaces de sortie, qui peuvent entraîner des évaluations incohérentes et mal alignées. Liu et al. (2023d) génèrent une Chaîne de Pensée des étapes d'évaluation détaillées que le modèle doit exécuter avant de produire une évaluation qualitative. Liu et al. (2023h) proposent AutoCalibrate, qui dérive des critères de notation à partir d'annotations humaines expertes et utilise un sous-ensemble affiné de critères générés par le modèle comme partie de la suggestion d'évaluation.
4.2.2 Format de sortie
Le format de sortie du LLM peut affecter significativement les performances d'évaluation (Gao et al., 2023c).
-
Style
Formater la réponse du LLM en utilisant XML ou JSON a également été montré pour améliorer l'exactitude du jugement généré par l'évaluateur (Hada et al., 2024 ; Lin et Chen, 2023 ; Dubois et al., 2023). -
Échelle linéaire
Un format de sortie très simple est une échelle linéaire (par exemple, de 1 à 5). De nombreux travaux utilisent des évaluations de 1 à 10 (Chan et al., 2024), 1 à 5 (Araújo et Aguiar, 2023) ou même 0 à 1 (Liu et al., 2023f). Le modèle peut être incité à produire une note discrète (Chan et al., 2024) ou continue (Liu et al., 2023f) dans ces limites. -
Score binaire
Inciter le modèle à produire des réponses binaires comme Oui/Non (Chen et al., 2023c) ou Vrai/Faux (Zhao et al., 2023b) est un autre format de sortie fréquemment utilisé. -
Échelle de Likert
Inciter le GenAI à utiliser une échelle de Likert (Bai et al., 2023b ; Lin et Chen, 2023 ; Peskoff et al., 2023) peut lui donner une meilleure compréhension du sens de l'échelle.
4.2.3 Cadres de suggestion
-
LLM-EVAL
Lin et Chen (2023) est l'un des cadres d'évaluation les plus simples. Il utilise une seule suggestion contenant un schéma de variables à évaluer (par exemple, grammaire, pertinence, etc.), une instruction indiquant au modèle de produire des notes pour chaque variable dans une certaine plage, et le contenu à évaluer. -
G-EVAL
Liu et al. (2023d) est similaire à LLM-EVAL, mais inclut des étapes AutoCoT dans la suggestion elle-même. Ces étapes sont générées selon les instructions d'évaluation et insérées dans la suggestion finale. Elles pondèrent les réponses en fonction des probabilités de jetons. -
ChatEval
Chan et al. (2024) utilise un cadre de débat multi-agent, chaque agent ayant un rôle distinct.
4.2.4 Autres méthodologies
Bien que la plupart des approches incitent directement le LLM à produire une évaluation de qualité (méthode explicite), certains travaux utilisent également une notation implicite où une note de qualité est dérivée à partir de la confiance du modèle dans sa prédiction (Chen et al., 2023g) ou de la probabilité de génération de la sortie (Fu et al., 2023a), ou encore via les explications du modèle (par exemple, compter le nombre d'erreurs comme dans Fernandes et al., 2023 ; Kocmi et Federmann, 2023a) ou via des tâches de proxy (par exemple, inconsistances factuelles via l'entraînement comme dans Luo et al., 2023).
-
Suggestions par lot (Batch Prompting)
Pour améliorer l'efficacité en termes de calcul et de coût, certaines œuvres utilisent des suggestions par lot pour l'évaluation, où plusieurs instances sont évaluées simultanément (Lu et al., 2023c ; Araújo et Aguiar, 2023 ; Dubois et al., 2023) ou la même instance est évaluée selon des critères ou des rôles différents (Wu et al., 2023b ; Lin et Chen, 2023). Cependant, évaluer plusieurs instances en un seul lot diminue souvent les performances (Dubois et al., 2023). -
Évaluation par paires
Chen et al. (2023g) montrent que comparer directement la qualité de deux textes peut conduire à des résultats sous-optimaux et que demander explicitement au LLM de générer une note pour chaque résumé individuel est la méthode la plus efficace et fiable. L'ordre des entrées pour les comparaisons par paires peut également avoir un impact important sur l'évaluation (Wang et al., 2023h, b).