Deux problèmes différents
Un modèle de langage peut faillir de deux façons. Il peut manquer de connaissances : il ne connaît ni vos produits, ni vos politiques, ni vos contrats, ni ce qui a changé la semaine dernière. Ou il peut mal se comporter : il en sait assez, mais répond dans le mauvais format, sur le mauvais ton, ou répète le même genre d’erreur sur une tâche.
La génération augmentée par la recherche, qu’on appelle souvent RAG, règle le premier problème. L’affinage règle le second. Utiliser l’un pour régler l’autre est l’erreur la plus courante, et la plus coûteuse, des projets d’IA.
La confusion se comprend, parce que les deux sont présentés comme une façon de donner vos données au modèle. La différence, c’est l’endroit où les données aboutissent. Avec la recherche augmentée, elles restent dans vos documents et sont récupérées fraîches à chaque question. Avec l’affinage, elles sont absorbées dans les poids du modèle, où elles façonnent sa manière d’écrire, mais ne peuvent être ni pointées, ni corrigées, ni retirées sans un nouvel entraînement.
| Symptôme | Problème probable | Solution probable |
|---|---|---|
| Il ne connaît pas nos produits, nos prix ni nos politiques | Connaissances | La recherche augmentée |
| Il donne des réponses qui étaient vraies l’an dernier | Connaissances | La recherche augmentée |
| Nous devons voir d’où vient chaque réponse | Connaissances | La recherche augmentée |
| Il ignore notre format de rapport, peu importe comment on le demande | Comportement | De meilleures consignes, puis l’affinage |
| Il étiquette les billets de façon incohérente | Comportement | L’affinage sur des exemples étiquetés |
| Il a raison, mais ne nous ressemble pas du tout | Comportement | L’affinage sur des exemples de nos textes |
Ce que fait la recherche augmentée
Avec la recherche augmentée, le modèle ne mémorise pas vos documents. Quand une question arrive, le système cherche dans vos documents les passages les plus susceptibles d’y répondre et les remet au modèle avec la question. Le modèle répond à partir de ce qu’on lui a donné, et l’application montre quels passages il a utilisés.
L’approche a été décrite dans un article de recherche de 2020 qui constatait que, pour les modèles qui ne s’appuient que sur ce qu’ils ont appris à l’entraînement, fournir la provenance de leurs réponses et mettre à jour leurs connaissances restaient des problèmes ouverts, et qui associait un modèle à une mémoire explicite et consultable pour y remédier [1]. Ce sont exactement les deux propriétés qui comptent pour une entreprise : des réponses vérifiables, et des connaissances à jour dès qu’un document change.
- 01
Rassembler et nettoyer
Réunissez les documents à partir desquels le modèle doit répondre, et décidez qui peut voir quoi. Les documents périmés ou en double sont la principale cause de mauvaises réponses.
- 02
Découper et indexer
Découpez les documents en passages et conservez une représentation numérique de chacun pour la recherche. pgvector, par exemple, ajoute la recherche par similarité vectorielle à Postgres, pour que l’index puisse vivre dans une base de données que vous exploitez déjà [4].
- 03
Chercher
Pour chaque question, trouvez les meilleurs passages, habituellement en combinant recherche par le sens et par mots-clés, en respectant les permissions de la personne qui demande.
- 04
Répondre avec les sources
Donnez les passages au modèle avec la consigne de répondre uniquement à partir d’eux et de les citer, et montrez les citations à l’utilisateur.
- 05
Garder à jour
Réindexez les documents quand ils changent, et retirez-les quand ils sont périmés.
Ce qui rend la recherche bonne ou mauvaise
Quand un système de recherche augmentée donne une mauvaise réponse, le modèle est rarement en cause. Bien plus souvent, le bon passage n’a jamais été trouvé, ou l’a été au milieu de plusieurs mauvais. Le travail qui améliore les réponses est surtout un travail de recherche.
- Découper les documents intelligemment : par section et par titre plutôt que selon une longueur fixe, pour qu’un passage porte son propre contexte.
- Garder les métadonnées : le titre, la date, le responsable et le public du document, pour que la recherche privilégie la politique actuelle plutôt que celle de l’an dernier.
- Combiner les méthodes de recherche : la recherche par le sens trouve les paraphrases, la recherche par mots-clés trouve les numéros de pièces et les noms. La plupart des bons systèmes utilisent les deux.
- Reclasser : une deuxième passe, plus soignée, sur les meilleurs résultats avant qu’ils arrivent au modèle.
- Savoir dire « je ne sais pas » : quand rien de pertinent n’est trouvé, l’assistant devrait le dire et proposer une personne, plutôt que de répondre de mémoire.
Ce que fait l’affinage
L’affinage entraîne davantage un modèle existant sur des exemples de la tâche : des entrées associées aux sorties voulues. Le guide d’OpenAI cite des usages comme obtenir un format de réponse constant, la classification, la production de contenu dans un format précis, la correction d’instructions mal suivies et l’adoption d’un ton et d’un style, et il note que les consignes seules peuvent suffire [2]. Ce dernier point compte. Essayez des instructions claires et quelques bons exemples dans la requête avant d’entraîner quoi que ce soit.
L’affinage est devenu beaucoup plus léger qu’avant. Des méthodes comme LoRA entraînent de petits poids supplémentaires plutôt que le modèle entier; ses auteurs rapportent une réduction de 10 000 fois du nombre de paramètres entraînables et de 3 fois de la mémoire GPU nécessaire, par rapport à l’affinage complet d’un très grand modèle [3]. Affiner un modèle ouvert sur vos propres exemples devient ainsi un projet pratique plutôt qu’un programme de recherche.
- Il faut des exemples : quelques centaines à quelques milliers de bonnes paires d’entrées et de sorties, vérifiées par des gens qui connaissent la tâche.
- Il n’enseigne pas les faits de façon fiable. Un modèle affiné peut encore inventer des détails, et il ne peut pas dire d’où vient une réponse.
- Il doit être refait quand la tâche change, ou quand vous passez à un modèle de base plus récent.
Comment choisir
- 01
Écrivez l’évaluation d’abord
Rassemblez de vraies questions ou tâches avec de bonnes réponses. Sans elles, impossible de savoir si un changement a aidé.
- 02
Essayez les consignes
Des instructions claires, un format de sortie défini et quelques exemples règlent plus de problèmes de comportement qu’on le croit.
- 03
Ajoutez la recherche si les réponses demandent vos connaissances
Si le modèle a besoin de faits sur lesquels il n’a jamais été entraîné, ou de faits qui changent, la recherche augmentée est la solution. Mesurez de nouveau.
- 04
Affinez si le comportement reste mauvais
Si le modèle a la bonne information, mais se trompe encore de format, d’étiquettes ou de ton, et que vous avez les exemples, affinez. Mesurez de nouveau.
- 05
Arrêtez quand l’évaluation le dit
Chaque étape demande un effort à construire et à entretenir. Arrêtez-vous à la première qui atteint la barre que vous avez fixée.
Quand il vous faut les deux
Certains projets ont besoin à la fois de connaissances et de comportement. Un assistant de soutien peut devoir répondre à partir du centre d’aide actuel (recherche augmentée) dans le ton de l’entreprise et selon une structure stricte que le système de soutien peut lire (affinage). Un outil de revue de contrats peut devoir trouver les clauses pertinentes (recherche augmentée) et les classer selon un guide, comme le fait l’équipe du client (affinage).
Dans ces cas, nous construisons d’abord la recherche augmentée, parce qu’elle corrige la plus grande part des erreurs et qu’elle se modifie plus facilement, puis nous affinons un modèle pour qu’il utilise les passages trouvés comme la tâche l’exige. Le jeu d’évaluation couvre les deux : a-t-il trouvé les bons passages, et les a-t-il bien utilisés?
Vivre avec chaque choix
Les deux approches diffèrent aussi après le lancement. Un système de recherche augmentée s’entretient comme un moteur de recherche : les documents sont ajoutés, modifiés et retirés, et l’index suit. Quiconque modifie les documents sources met en fait l’assistant à jour, ce qui est habituellement ce que veut une entreprise. Son coût d’exploitation, c’est le modèle plus une base de données modeste.
Un modèle affiné s’entretient comme un collègue formé : quand la tâche change, il lui faut de nouveaux exemples et un nouvel entraînement, et la nouvelle version doit réussir l’évaluation avant de remplacer l’ancienne. Si c’est un modèle ouvert, il lui faut aussi des GPU pour le servir, chaque mois. Rien de difficile, mais ce sont des engagements différents, et les exemples ci-dessous montrent l’écart de coût d’exploitation.
Trois projets, chiffrés selon notre grille
Les exemples ci-dessous montrent la fourchette selon notre grille tarifaire d’aujourd’hui, avec le développement et le coût mensuel d’exploitation. Ils sont chiffrés à l’ouverture de la page.
Exemple chiffré en direct
La recherche augmentée sur un modèle de pointe
Un assistant pour le personnel qui répond à partir des documents de l’entreprise en citant ses sources, sur un modèle de pointe par son API. Téléversement, recherche et permissions compris.
- Développement
- ≈ 66 700 USD à 102 000 USD, livré en 18 semaines au plus95 000 $ CA à 145 300 $ CA
Les prix dans votre devise sont des estimations au taux du jour de la Banque du Canada. Toute la facturation se fait en CAD ou en USD.
Exploitation
- Hébergement
- ≈ 558 USD par mois795 $ CA par mois
- Soutien
- ≈ 1 000 USD par mois1 425 $ CA par mois
- Coût d’exploitation du modèle
- ≈ 383 USD par mois545 $ CA par mois
Exemple chiffré en direct
Un modèle affiné pour une tâche
Un modèle ouvert affiné sur les exemples étiquetés de l’entreprise pour classer et acheminer les demandes entrantes dans un format fixe, servi sur des GPU loués et relié au système de billets existant.
- Développement
- ≈ 104 000 USD à 159 000 USD, livré en 29 semaines au plus148 300 $ CA à 226 200 $ CA
Les prix dans votre devise sont des estimations au taux du jour de la Banque du Canada. Toute la facturation se fait en CAD ou en USD.
Exploitation
- Hébergement
- ≈ 4 360 USD par mois6 210 $ CA par mois
- Soutien
- ≈ 1 000 USD par mois1 425 $ CA par mois
- Coût d’exploitation du modèle
- ≈ 4 190 USD par mois5 960 $ CA par mois
Exemple chiffré en direct
La recherche augmentée et l’affinage ensemble
Un assistant de soutien sur un modèle ouvert affiné, qui répond à partir du centre d’aide actuel en citant ses sources, dans le ton de l’entreprise et selon une structure que le système de soutien peut lire.
- Développement
- ≈ 128 000 USD à 195 000 USD, livré en 33 semaines au plus182 100 $ CA à 277 900 $ CA
Les prix dans votre devise sont des estimations au taux du jour de la Banque du Canada. Toute la facturation se fait en CAD ou en USD.
Exploitation
- Hébergement
- ≈ 4 360 USD par mois6 210 $ CA par mois
- Soutien
- ≈ 1 000 USD par mois1 425 $ CA par mois
- Coût d’exploitation du modèle
- ≈ 4 190 USD par mois5 960 $ CA par mois
Comparez les lignes mensuelles. L’exemple de recherche augmentée paie des jetons selon l’usage; les deux exemples affinés paient un serveur GPU, qu’il soit occupé ou non. Pour une équipe de quelques dizaines de personnes qui posent des questions, la recherche augmentée sur un modèle de pointe est habituellement le point de départ raisonnable. Ouvrez un exemple dans l’estimateur pour changer le trafic ou le mode de service et voir où l’équilibre bascule pour vous.
Les pièges à éviter
- Affiner sur vos documents en s’attendant à ce que le modèle les cite. Il apprendra le style de vos documents, pas leur contenu de façon fiable.
- Tout indexer. Une recherche sur tous les fichiers d’un lecteur partagé trouve des passages vieux, en double et contradictoires. Faites le tri d’abord.
- Ignorer les permissions. Si une personne n’a pas le droit d’ouvrir un document, l’assistant ne doit pas le lui citer. Filtrez au moment de la recherche.
- Aucun jeu d’évaluation. Sans lui, chaque changement est un pari, et une mise à niveau du modèle peut tout empirer sans bruit.
- Oublier l’entretien. La recherche augmentée exige des documents à jour; l’affinage exige un réentraînement quand la tâche ou le modèle de base change.