C’est la question de terrain sur le sujet, et elle se rate presque toujours de la même façon : en proposant de réécrire l’invite. La bonne réponse commence par une mesure.
Prenez une vingtaine de questions qui échouent et, pour chacune, regardez si le passage contenant la réponse figure parmi ceux qui ont été fournis au modèle.
Cette séparation vaut d’être énoncée explicitement en entretien. Sans elle, on optimise à l’aveugle.
Dans l’ordre où j’enquête :
Le découpage. La cause la plus fréquente. Des passages trop courts coupent la réponse en deux ; trop longs, ils diluent le signal du plongement. Un tableau découpé au milieu perd son en-tête, et le passage devient inexploitable. Vérifiez à l’œil une dizaine de passages réels de votre index — cela révèle en dix minutes ce que des semaines de réglage d’invite ne montrent pas.
Le vocabulaire hors distribution. La recherche vectorielle échoue sur les identifiants, références produit, codes d’erreur et sigles maison : ce sont des chaînes rares que le plongement ne place nulle part de sensé. Le correctif est une recherche hybride, lexicale et vectorielle combinées. C’est le correctif à connaître, parce qu’il est efficace et sous-utilisé.
Le décalage question-document. Les questions d’utilisateurs sont courtes et parlées, les documents longs et formels. Selon le modèle de plongement, il faut préfixer requêtes et passages différemment ; certains modèles perdent beaucoup si on oublie ce préfixe.
L’absence de réordonnancement. Récupérer trente candidats puis les trier avec un modèle d’encodage croisé, plus lent mais bien plus précis, remonte souvent nettement la qualité pour un coût modeste.
Le document n’est pas dans l’index. À vérifier avant tout le reste : PDF non extrait, page derrière une authentification, texte dans une image sans reconnaissance de caractères. On perd des journées sur du réglage quand la source manque.
Trop de passages. Quinze passages dont deux pertinents produisent souvent une pire réponse que trois bien choisis, à cause du milieu perdu. Réduisez.
Passages contradictoires. Deux versions d’une politique interne, l’ancienne et la nouvelle, sans date. Le modèle en choisit une, arbitrairement. Le correctif est en amont : versionner et filtrer, ou fournir les dates et instruire la préférence pour la plus récente.
Le modèle ignore les sources et répond de mémoire. Symptôme d’une consigne trop faible. Exiger la citation par passage, et refuser en sortie toute affirmation non citée.
Le modèle refuse alors que la réponse est là. Souvent un problème de format : le passage pertinent est enfoui dans un bloc mal structuré. Numéroter les passages et les délimiter clairement aide plus qu’on ne le croit.
Un jeu d’évaluation de cinquante à cent questions avec le passage attendu, et deux métriques suivies séparément : le rappel de la récupération — le bon passage est-il dans les k remontés — et la justesse de la réponse quand il l’est. Sans ces deux nombres, toute modification est un pari, et l’on ne sait jamais si un changement d’invite a amélioré le système ou simplement déplacé les erreurs.
Dans la grande majorité des RAG que j’ai vus décevoir, le problème était dans la récupération, et la mesure n’existait pas. Le réflexe de commencer par réécrire l’invite, c’est chercher ses clés là où la lumière est bonne.