Améliorer la capacité de ChatGPT à comprendre les requêtes ambiguës
Cet article a été initialement publié dans The New Stack et est republié ici avec autorisation.
La technique d’ingénierie des prompts aide les grands modèles de langage (LLM) à gérer les pronoms et autres coréférences complexes dans les systèmes de génération augmentée par récupération (RAG).
Dans le domaine en constante expansion de l’IA, les grands modèles de langage (LLM) comme ChatGPT stimulent la recherche et les applications innovantes à une vitesse sans précédent. Une avancée majeure est l’émergence de la génération augmentée par récupération (RAG). Cette technique combine la puissance des LLM avec une base de données vectorielle agissant comme une mémoire à long terme afin d’améliorer la précision des réponses générées. Une manifestation exemplaire de l’approche RAG est le projet open source Akcio, qui offre un système robuste de questions-réponses.
Architecture d’Akcio
Dans l’architecture d’Akcio, les connaissances propres à un domaine sont intégrées de manière fluide dans un magasin vectoriel, tel que Milvus ou Zilliz (Milvus entièrement géré), à l’aide d’un chargeur de données. Le magasin vectoriel récupère les Top-K résultats les plus pertinents pour la requête de l’utilisateur et les transmet au LLM, fournissant au LLM le contexte de la question de l’utilisateur. Ensuite, le LLM affine ses réponses sur la base des connaissances externes.
Par exemple, si un utilisateur demande : « Quels sont les cas d’utilisation des grands modèles de langage en 2023 ? » à propos d’un article intitulé « Rapport d’analyse sur les progrès des grands modèles de langage en 2023 » qui a été importé dans Akcio, le système récupère habilement les trois passages les plus pertinents du rapport :
1. En 2023, les cas d’utilisation des LLM peuvent être divisés en deux catégories : l’IA générative et la prise de décision. Les scénarios de prise de décision devraient avoir une plus grande valeur commerciale.
2. Le scénario d’IA générative comprend principalement l’interaction conversationnelle, le développement de code, les agents intelligents, etc.
3. Les applications de NLP comprennent la classification de texte, la traduction automatique, l’analyse des sentiments, le résumé automatique, etc.
Akcio combine ces passages avec la requête initiale et les transmet au LLM, générant une réponse nuancée et précise :
Les scénarios d’application de l’industrie des grands modèles peuvent être divisés en scénarios de génération et de prise de décision.
Le défi de la résolution des coréférences dans la RAG
Cependant, malgré les progrès accomplis, la mise en œuvre de systèmes RAG introduit des défis, en particulier dans les conversations à plusieurs tours impliquant la résolution des coréférences. Considérez cette séquence de questions :
Q1 : Quels sont les cas d’utilisation du grand modèle de langage en 2023 ?
A1 : Les cas d’utilisation des grands modèles de langage peuvent être divisés en IA générative et prise de décision.
Q2 : Quelles sont leurs différences, et pouvez-vous fournir des exemples ?
Le pronom « leurs » dans Q2 renvoie à « IA générative et prise de décision ». Pourtant, le LLM pourrait générer des résultats non pertinents à cette question, ce qui compromettrait la cohérence de la conversation :
1. BERT et GPT sont des modèles importants dans le domaine du NLP, mais ils présentent des différences significatives dans leur conception et leurs scénarios d’application.
2. La différence entre les grands modèles et les petits modèles réside dans leur échelle et leur complexité. Les grands modèles ont généralement davantage de paramètres et des structures plus complexes, nécessitant plus de ressources informatiques et de temps pour l’entraînement et l’inférence. Les petits modèles, quant à eux, sont relativement simples, avec moins de paramètres et des vitesses d’entraînement et d’inférence plus rapides.
3. Cependant, il n’existe pas d’informations supplémentaires permettant de distinguer ces deux produits, car ils semblent très similaires.
Utilisation de ChatGPT pour la résolution de coréférence
Les méthodes traditionnelles, telles que la tokenisation, la lemmatisation et le remplacement de mots-clés à l’aide de réseaux neuronaux récurrents, sont souvent insuffisantes pour résoudre les références complexes. Par conséquent, les chercheurs se sont tournés vers des LLM comme ChatGPT pour les tâches de résolution de coréférence. Cette approche consiste à demander à ChatGPT de remplacer les pronoms ou de conserver la question originale en fonction du contexte fourni. Bien que cette méthode soit prometteuse, elle produit parfois des réponses directes au lieu de suivre les instructions du prompt, ce qui indique la nécessité d’une stratégie plus affinée.
Exemples testés
Nous avons expérimenté avec des commandes simples incitant ChatGPT à remplacer les pronoms en utilisant le format de prompt suivant :
prompt = f'''Veuillez générer une nouvelle question en respectant les consignes suivantes :
1. Complétez tout pronom ou toute condition manquants dans la question en fonction du contexte.
2. Conservez la question originale si elle est déjà complète.
{history}
Question : {question}'''
Exemple 1
Requête :
history = ''' Qu’est-ce que le NLP ?
NLP signifie Natural Language Processing. C’est un domaine de l’informatique et de l’intelligence artificielle qui se concentre sur l’interaction entre les ordinateurs et les humains au moyen du langage naturel. '''
question = 'Quel problème résout-il ?'
Réponse de ChatGPT :
Quel problème le Natural Language Processing (NLP) résout-il ?
Dans ce cas, ChatGPT a fait un excellent travail, en remplaçant « il » par « Natural Language Processing (NLP) ».
Exemple 2
Requête :
history = '''Quand GPT4 a-t-il été publié ?
GPT4 a été publié en 2023'''
question = 'Quels progrès ont été réalisés en vision par ordinateur cette année ?'
Réponse de ChatGPT :
Quels progrès ont été réalisés en vision par ordinateur cette année ?
Dans ce cas, ChatGPT a eu des difficultés à remplacer « cette année », ce qui a conduit à une résolution incomplète.
Exemple 3
Requête :
history = '''Qu’est-ce que GPT3 ?
GPT-3 (Generative Pre-trained Transformer 3) est un modèle de traitement du langage de pointe développé par OpenAI.
Quand GPT4 a-t-il été publié ?
GPT4 a été publié en 2023'''
question = 'Quelle est la différence entre eux ? Quels sont les avantages du second ?'
Réponse de ChatGPT :
Désolé, les informations fournies concernant la date de publication de GPT-4 ne sont pas exactes, car elle n’a pas été officiellement annoncée par OpenAI. Par conséquent, il n’est pas possible de répondre à la question sur la différence entre GPT-3 et GPT-4 ou sur les avantages du second.
Malheureusement, ChatGPT s’écarte des instructions, possiblement en raison de son processus décisionnel complexe. Malgré nos efforts pour renforcer le prompt, ChatGPT tend parfois vers des réponses directes, ce qui complique la tâche de résolution de coréférence.
Prompt few-shot avec Chain of Thought : une approche affinée
L’ingénierie de prompt joue un rôle essentiel dans l’exploitation efficace des LLMs . Nous avons décidé de tester la combinaison de prompts few-shot avec la méthode Chain of Thought (CoT) comme stratégie prometteuse. Les prompts few-shot présentent aux LLMs plusieurs exemples de référence, les guidant pour qu’ils imitent ces exemples dans leurs réponses. Le CoT améliore les performances des LLMs dans les tâches de raisonnement complexes en encourageant un raisonnement étape par étape dans leurs réponses.
En intégrant ces techniques, nous avons développé un format de prompt pour guider ChatGPT dans la résolution de coréférences. Le format de prompt révisé inclut un historique de conversation vide, des exemples de base, des remplacements de pronoms ayant échoué et des cas impliquant plusieurs pronoms, afin d’offrir à ChatGPT des instructions plus explicites et des exemples de référence. Les cas où ChatGPT renvoie NEED COREFERENCE RESOLUTION: Yes sont cruciaux, car ils indiquent que ChatGPT doit remplacer les pronoms ou les références ambiguës pour produire une réponse cohérente.
Voici un format de prompt affiné :
REWRITE_TEMP = f'''
HISTORY:
[]
NOW QUESTION: Hello, how are you?
NEED COREFERENCE RESOLUTION: No => THOUGHT: Consequently, the output question mirrors the current query. => OUTPUT QUESTION: Hello, how are you?
-------------------
HISTORY:
[Q: Is Milvus a vector database?
A: Yes, Milvus is a vector database.]
NOW QUESTION: How to use it?
NEED COREFERENCE RESOLUTION: Yes => THOUGHT: I must substitute 'it' with 'Milvus' in the current question. => OUTPUT QUESTION: How to use Milvus?
-------------------
HISTORY:
[]
NOW QUESTION: What are its features?
NEED COREFERENCE RESOLUTION: Yes => THOUGHT: Although 'it' requires substitution, there's no suitable reference in the history. Thus, the output question remains unchanged. => OUTPUT QUESTION: What are its features?
-------------------
HISTORY:
[Q: What is PyTorch?
A: PyTorch is an open-source machine learning library for Python. It provides a flexible and efficient framework for building and training deep neural networks.
Q: What is Tensorflow?
A: TensorFlow is an open-source machine learning framework. It provides a comprehensive set of tools, libraries, and resources for building and deploying machine learning models.]
NOW QUESTION: What is the difference between them?
NEED COREFERENCE RESOLUTION: Yes => THOUGHT: 'Them' should be replaced with 'PyTorch and Tensorflow' in the current question. => OUTPUT QUESTION: What is the difference between PyTorch and Tensorflow?
-------------------
HISTORY:
[{history}]
NOW QUESTION: {question}
NEED COREFERENCE RESOLUTION: '''
Exemples testés et réponses affinées
Voici quelques résultats de nos expériences avec des prompts affinés :
Exemple 1
Requête :
history = '''When was GPT-4 released?
GPT-4 was released in 2023'''
question = 'What progress has been made in computer vision this year?'
Réponse affinée de ChatGPT :
Yes => THOUGHT: I need to replace "this year" with "2023" in the now question. => OUTPUT QUESTION: What progress has been made in computer vision in 2023?
Exemple 2 :
Requête :
history = '''What is GPT-3?
GPT-3 (Generative Pre-trained Transformer 3) is a state-of-the-art language processing model developed by OpenAI.
When was GPT-4 released?
GPT-4 was released in 2023'''
question = 'What is the difference between the two? What are the advantages of the latter?'
Réponse affinée de ChatGPT :
Yes => THOUGHT: I need to replace 'the two' with 'GPT-3 and GPT-4' and 'the latter' with 'GPT-4' in the now question. => OUTPUT QUESTION: What is the difference between GPT-3 and GPT-4? What are the advantages of GPT-4?
Le format de prompt affiné améliore considérablement la capacité de ChatGPT à gérer des tâches complexes de résolution de coréférences. Les questions impliquant plusieurs entités, qui posaient auparavant des difficultés, sont désormais traitées efficacement. ChatGPT remplace habilement les pronoms et les références ambiguës, fournissant des réponses précises et contextuellement pertinentes.
Conclusion
L’ingénierie de prompts joue un rôle essentiel dans la résolution des problèmes de coréférence dans les systèmes RAG utilisant des LLM. En intégrant des techniques innovantes telles que les prompts few-shot et les méthodes CoT, nous avons considérablement amélioré la gestion des références complexes dans les systèmes RAG, permettant à des LLM comme ChatGPT de remplacer précisément les pronoms et les références ambiguës, ce qui aboutit à des réponses cohérentes.
Continuer à lire

Why I’m Against Claude Code’s Grep-Only Retrieval? It Just Burns Too Many Tokens
Learn how vector-based code retrieval cuts Claude Code token consumption by 40%. Open-source solution with easy MCP integration. Try claude-context today.

8 Latest RAG Advancements Every Developer Should Know
Explore eight advanced RAG variants that can solve real problems you might be facing: slow retrieval, poor context understanding, multimodal data handling, and resource optimization.

Vector Databases vs. Hierarchical Databases
Use a vector database for AI-powered similarity search; use a hierarchical database for organizing data in parent-child relationships with efficient top-down access patterns.



