Mitigating Errors in LLM-Generated Web API Invocations via Retrieval-Augmented Generation and Constrained Decoding
Cet article propose et évalue la génération augmentée par récupération (RAG) et le décodage contraint (CD) comme des stratégies complémentaires pour améliorer l'exactitude des invocations d'API Web générées par les LLM, constatant que si la RAG réduit efficacement les hallucinations dans la génération d'invocations complètes, le CD offre une prévention plus fiable des paramètres illégaux et augmente considérablement l'exactitude globale à travers différents scénarios.
Article original sous licence CC BY 4.0 (http://creativecommons.org/licenses/by/4.0/). Ceci est une explication générée par l'IA de l'article ci-dessous. Elle n'a pas été rédigée ni approuvée par les auteurs. Pour une précision technique, consultez l'article original. Lire la clause de non-responsabilité complète
Imaginez que vous essayiez de construire une maison, mais au lieu d'engager un maître architecte, vous demandez à un assistant très intelligent, cultivé, mais légèrement étourdi (le Grand Modèle de Langage, ou LLM) d'écrire les plans pour vous.
Le problème est que les « règles » pour construire cette maison ne sont pas dans la tête de l'assistant. Elles sont écrites dans un manuel massif et complexe appelé une Spécification OpenAPI (un document qui indique exactement quelles portes ouvrir, quelles clés utiliser et quelle taille de briques commander).
Si vous demandez simplement à l'assistant de « construire une porte », il pourrait deviner la mauvaise taille, utiliser la mauvaise clé ou inventer une porte qui n'existe pas dans le manuel. C'est ce qu'on appelle une hallucination.
Ce document traite de l'attribution de deux outils spécifiques à cet assistant pour l'empêcher d'inventer des règles et lui permettre de suivre parfaitement le manuel.
Le Problème : Le « Jeu des devinettes »
Les chercheurs ont découvert que lorsque les modèles d'IA étaient sollicités pour écrire du code permettant de se connecter à des services web (comme envoyer un message sur Slack ou consulter un Google Calendar), l'IA commettait constamment des erreurs.
- Elle choisissait la mauvaise « porte » (endpoint).
- Elle essayait d'utiliser une clé qui n'existait pas.
- Elle inventait des fonctionnalités qui ne figuraient pas dans le manuel.
La Solution : Deux nouveaux outils
L'article teste deux approches différentes pour corriger cela, en utilisant un ensemble de tâches de codage réelles.
Outil 1 : Le « Aide-mémoire » (Génération Augmentée par Récupération - RAG)
L'analogie : Imaginez que vous passez un examen, mais que vous avez le droit d'apporter une page spécifique du manuel dans la salle. Avant que l'IA n'écrive sa réponse, un robot bibliothécaire (le Récupérateur) cherche dans le manuel massif la page exacte concernant la « Porte » dont vous avez besoin, et la tend à l'IA.
- Comment cela a fonctionné : Les chercheurs ont construit un système qui récupère la partie pertinente du manuel de l'API et la colle dans l'invite (prompt) de l'IA.
- Le résultat : C'était mitigé.
- Bien : Quand l'IA ne savait pas quelle porte choisir, l'aide-mémoire l'aidait à trouver la bonne. Cela empêchait l'IA d'inventer de fausses portes.
- Mal : Quand l'IA savait déjà quelle porte choisir, l'aide-mémoire la confondait parfois. L'IA voyait une liste de 20 clés possibles dans l'aide-mémoire et se disait : « Je devrais probablement toutes les utiliser ! », même si la tâche n'en nécessitait qu'une seule. Cela rendait le code désordonné et incorrect.
- Verdict : Cela aide à trouver le bon chemin, mais cela peut rendre l'IA « trop enthousiaste » en l'incitant à utiliser des options supplémentaires dont elle n'a pas besoin.
Outil 2 : Les « Rails de train » (Décodage Contraint - CD)
L'analogie : Imaginez que l'IA est un train. Habituellement, le train peut aller n'importe où sur la carte, même hors des rails, dans un marécage (hallucinations). Le Décodage Contraint revient à poser des rails en acier qui ne mènent qu'à des destinations valides. Le train est physiquement incapable de quitter les rails.
- Comment cela a fonctionné : Les chercheurs ont pris le manuel et l'ont transformé en un ensemble de règles strictes (comme un labyrinthe). À mesure que l'IA tentait de taper le mot suivant du code, le système vérifiait : « Ce mot est-il autorisé par les règles ? ». Si l'IA tentait de taper une fausse porte ou une mauvaise clé, le système la bloquait et la forçait à choisir une option valide.
- Le résultat : Ce fut le grand gagnant.
- Zéro hallucination : L'IA ne pouvait inventer aucune URL, méthode ou argument fictif. Il était mathématiquement impossible pour elle de transgresser les règles.
- Meilleure précision : Comme elle ne pouvait pas inventer de choses, le code qu'elle écrivait était beaucoup plus susceptible d'être correct.
- Verdict : C'est l'outil le plus fiable. Il force l'IA à être obéissante au manuel.
Le Combo : « Aide-mémoire » + « Rails de train »
Les chercheurs ont essayé d'utiliser les deux outils en même temps.
- Le résultat : Cela a très bien fonctionné pour certains modèles, donnant les scores les plus élevés. Cependant, ce n'était pas constant. Parfois, l'« Aide-mémoire » poussait l'IA à essayer d'utiliser trop d'options, et même si les « Rails de train » l'empêchaient de faire des mouvements illégaux, elle faisait quand même des mouvements inutiles.
- Verdict : C'est puissant, mais les « Rails de train » seuls sont plus sûrs et plus cohérents.
L'essentiel à retenir
L'article conclut que bien que l'IA soit excellente pour écrire du code, elle est très mauvaise pour suivre des recueils de règles externes complexes par elle-même.
- Le RAG (l'Aide-mémoire) est comme donner un livre de référence à l'IA. Cela aide, mais l'IA peut être distraite par trop d'informations.
- Le CD (les Rails de train) est comme construire une cage autour de l'IA qui ne permet que des mouvements valides. C'est le moyen le plus efficace pour empêcher l'IA d'inventer des règles.
Les chercheurs affirment que si vous voulez qu'une IA écrive du code pour se connecter à des services web sans casser le système, vous ne devez pas simplement compter sur la mémoire de l'IA. Vous devez soit lui donner le bon manuel (RAG), ou mieux encore, la forcer à suivre strictement les règles (CD). L'approche des « Rails de train » est le moyen le plus fiable de garantir que le code fonctionne réellement.
Noyé(e) sous les articles dans votre domaine ?
Recevez des digests quotidiens des articles les plus récents correspondant à vos mots-clés de recherche — avec des résumés techniques, dans votre langue.