
Pourquoi nous avons refusé un chat IA deux fois plus rapide : latence du RAG contre précision
Début octobre, j'avais sous la main deux façons de rendre Attlas presque deux fois plus rapide. La première tenait en une ligne de code. La seconde consistait à changer de modèle d'IA. Je n'ai activé ni l'une ni l'autre.
La première, coupait le temps de réflexion que le modèle s'accorde avant d'écrire. Le premier mot de la réponse arrivait en à peine plus d'une demi-seconde. Puis j'ai lu les réponses. Un visiteur demandait quelle formule choisir pour une soirée de 80 invités. La version rapide lui conseillait la formule « jusqu'à 75 personnes ».
La seconde, Claude Haiku 5.5, répondait 35 % plus vite que notre modèle actuel, pour environ quatre fois moins cher par réponse. Mais sur une partie des questions, au lieu de répondre, il renvoyait la question au visiteur en lui demandant quel sujet l'intéressait...

J'explique ici pourquoi ces deux refus, et les dix jours de mesures qui les ont précédés:
- 13 pistes ouvertes
- 4 changements en production
- 7 idées abandonnées
Les abandons sont la partie dont je suis le plus fier
La règle du jeu : mesurer avant de toucher
Un chat IA ne répond jamais deux fois exactement de la même façon. Si on change un réglage et qu'on teste trois questions à la main, on finit par voir ce qu'on a envie de voir. J'ai donc fixé trois règles avant de modifier quoi que ce soit.
- Pas de changement sans mesure de départ. Chaque idée commence par un chiffre de référence, pris sur la version en ligne.
- La note de passage est écrite avant l'examen. Par exemple : « on garde si la précision ne baisse pas de plus d'un point ». Si le résultat tombe juste à côté, on n'adopte pas. On ne relance pas le test pour voir si ça passe la deuxième fois.
- On teste sur de vraies questions, à côté de la production. J'ai constitué un jeu de 120 vraies questions de visiteurs, tirées de 26 chats clients. Elles restent hors du code source et ne sortent pas de mon poste.
Pour noter la pertinence des réponses à grande échelle, j'utilise une IA « juge ». Je ne lui ai pas fait confiance d'emblée. Je l'ai vérifiée sur des cas dont je connaissais la bonne note, puis comparée à un second juge d'une autre famille de modèles. Les deux étaient d'accord dans 95 % des cas.
Dernière contrainte, très concrète : Attlas est autofinancé, et sa base de données tourne avec un plafond de transfert mensuel. Chaque test devait rester léger. Cette contrainte m'a obligé à faire calculer la base elle-même plutôt que de rapatrier des données, ce qui a rendu les tests plus propres.
Ce que la mesure a révélé en premier
Avant de gagner la moindre milliseconde, mesurer m'a fait trouver des bugs que personne ne voyait. Ni moi, ni les utilisateurs.
Les corrections n'étaient pas prioritaires. Elles devenaient un passage ordinaire, parmi d'autres. Mais une fonctionnalité promise ne faisait pas ce qu'elle disait. C'est réparé.
Les doublons poussaient les bonnes réponses dehors. Pour chaque question, Attlas reçoit un nombre limité de passages à lire, comme un budget de lecture. Quand des doublons occupent la place, le passage qui contient la réponse peut se retrouver hors du budget. Après le nettoyage, la part des questions où le bon passage arrive bien jusqu'à l'IA est passée de 96,4 % à 98,8 %.
Ce qui est parti en production
Deux optimisations de vitesse ont passé leur examen, plus les réparations décrites plus haut. Aucune ne touche à la qualité des réponses.
Le premier message n'attend plus la base de données
Pour retrouver les bons passages, Attlas compare la question du visiteur à des questions préparées à l'avance. Chacune est stockée sous la forme d'un embedding, une longue suite de nombres qui représente son sens : 1 536 nombres par question.
Au total, ces fiches faisaient leur poids... C'est plus que la mémoire rapide du serveur, qui doit aussi tout contenir d'autre. Résultat : quand un chat n'avait pas servi depuis un moment, sa première recherche allait chercher les fiches sur le disque. Le visiteur pouvait attendre 2 à 5 secondes avant qu'Attlas ne puisse commencer à "travailler".
Les modèles d'embedding d'OpenAI qu'on utilise rangent l'essentiel du sens dans les premiers nombres. J'ai vérifié qu'en ne gardant que les 512 premiers, on obtient exactement ce que l'API renverrait en version courte. Les fiches passent de 223 à 30 Mo et tiennent en mémoire.
Imaginez une boîte à outils qu'on était obligé de trimballer partout, jusqu'au jour où l'on découvre le couteau suisse : il fait le même travail et tient dans la poche.
- Précision : inchangée, même légèrement meilleure sur nos 120 questions.
- Premier accès à un chat : 95 % des recherches durent moins de 40 ms, contre 205 ms avant, soit 5x plus rapide.
- Pire cas mesuré sur les plus gros chats : de 2,6 à 0,33s.
La même idée devait s'appliquer aux suggestions de questions qui s'affichent sous chaque réponse.
Les clics sur les boutons ne recalculent plus rien
Sur une page Attlas, le visiteur peut taper sa question ou cliquer sur une question proposée par le propriétaire. Ces clics représentent la moitié des messages. Avant, chaque clic déclenchait un appel à OpenAI pour transformer le texte en embeddings, environ 400ms à chaque fois, alors que le texte du bouton ne change pas.
Désormais, le calcul se fait au premier clic et Attlas le garde. Les clics suivants ne font plus aucun appel. Sur nos mesures, la réponse démarre environ 190 ms plus tôt dans le cas typique.
Ce qu'on a abandonné, et pourquoi c'est une bonne nouvelle
7 idées sur 13 n'ont pas passé leur examen. Chacune semblait évidente sur le papier.
| Idée | Ce qu'on espérait | Ce qu'on a mesuré |
|---|---|---|
| Couper la réflexion du modèle | Une réponse deux fois plus rapide | Deux fois plus rapide, oui. Mais sur 80 duels de réponses, la version rapide en perd 39 et n'en gagne que 23. Elle oublie aussi d'aller consulter la documentation quand il le faut. |
| Passer à Claude Haiku 5.5 | Plus rapide et moins cher | 35 % plus rapide, mais 19 duels perdus pour 11 gagnés. Il relance souvent le visiteur au lieu de répondre. |
| Une recherche par mots-clés plus souple | 3 points de précision en plus | 2 points au mieux, avec un recul sur les clics de boutons. |
| Mettre les instructions du chat en cache chez OpenAI | Un premier mot plus rapide | Le cache fonctionne, mais le premier mot n'arrive pas plus tôt. |
| Réordonner les étapes du serveur | Au moins 50 ms de gagnées | 35 ms. Pas assez pour compliquer le code. |
| Garder en mémoire les suggestions cliquées | Un appel en moins par clic | Aucun clic sur une suggestion en 90 jours. Rien à gagner. |
La première ligne compte pour deux tests : on a d'abord essayé de couper la réflexion partout, puis seulement sur les chats sans outil. Dans les deux cas, la qualité baissait. Les erreurs n'étaient pas des questions de style. C'étaient de vraies erreurs de raisonnement, comme la formule pour 75 personnes proposée à 80 invités. Garder la réflexion coûte environ une demi-seconde. Elle évite ce genre d'erreur, et je préfère payer cette demi-seconde.
Chaque abandon est aussi du code en moins. Une optimisation qui ne rapporte rien reste dans le produit pour toujours, à maintenir, à comprendre, à déboguer. Ne pas l'ajouter, c'est un gain.
Et certains échecs apprennent quelque chose. En creusant la recherche par mots-clés, j'ai regardé de près les questions auxquelles le chat ne trouvait rien. Presque toutes portaient sur des informations absentes de la base du client. Le problème n'était pas la recherche, c'était le contenu. La bonne réponse n'est donc pas de chercher plus fort, mais de signaler ces trous au propriétaire du chat. C'est la prochaine piste que je veux creuser.

Ce que ça change pour vous
Si vous avez un chat sur Attlas, voici ce qui a changé:
- Le premier message d'un visiteur ne reste plus bloqué plusieurs secondes, même sur un gros chat
- Les clics sur vos questions proposées partent plus vite
- Vos corrections l'emportent enfin sur le reste de la base, comme promis
- Une précision de 98,8 % révélée par les tests.
- Attlas prend toujours le temps de réfléchir avant de répondre. C'est un choix, chiffré.
Il y a beaucoup de démonstrations d'IA impressionnantes. Beaucoup moins de produits IA dont on sait dire, chiffres à l'appui, s'ils répondent juste. La différence entre les deux, c'est la mesure : une référence avant de toucher, une note de passage écrite à l'avance, et l'honnêteté de dire non quand le résultat ne suit pas. Même quand la piste est séduisante, et même quand elle fait gagner une demi-seconde.

Fondateur d'Attlas. Il combine la réflexion produit, les outils low-code et le design pour permettre à chacun de créer des conversations IA à partir de ses propres données.