Mesure indépendante des systèmes RAG et LLM — précision de la récupération, hallucination, fuites de données personnelles, injection de prompt, dérive. Sur votre corpus, dans vos langues, avec des chiffres que vous pouvez poser devant un comité des risques. L'outillage est open source ; la lecture est indépendante de celui qui vous a vendu le modèle.
Par El Mahdi El Aimani — ingénieur, Rabat et Casablanca. Systèmes de récupération, de vision et de parole en production dans l'industrie et la banque au Maroc.
Vos tests passent. Votre démo fonctionne. Puis quelqu'un de senior demande si le système marche vraiment, s'il fuit, et si vous pouvez le défendre — et la réponse honnête est que personne n'a mesuré.
Le modèle répond avec assurance à partir d'un contexte qu'il n'a jamais eu, et la récupération rate silencieusement dans les langues que vos utilisateurs tapent réellement. La fidélité chute. Rien ne l'enregistre comme une erreur.
Une réponse contient l'IBAN d'un client. Un document récupéré contient une instruction que le modèle suit. Une ligne de log contient un secret. Rien de tout cela ne déclenche d'alerte.
Personne n'a rien déployé, et pourtant la production a dérivé de ce qui avait été validé. Quand le comité des risques, un client européen ou un auditeur demande des preuves, une capture d'écran du tableau de bord du fournisseur n'en est pas une.
Les fournisseurs de modèles livrent désormais leurs propres évaluations et garde-fous. Utile, et pas la même chose : personne ne corrige sa propre copie. Chaque affirmation ci-dessous est vérifiable dans le dépôt open source avant de me parler.
Le moteur est sous licence Apache 2.0 et tourne sur vos machines, contre le fournisseur que vous utilisez — hébergé, auto-hébergé, ou plusieurs à la fois comparés sur les mêmes questions. La lecture ne vient pas de celui qui vous a vendu le système.
Le même servexguard.yaml bloque votre CI et alimente le score de production. Ce que vous testez et ce que vous surveillez ne peuvent pas diverger, parce que ce sont les mêmes chiffres.
Pas affirmé — mesuré, sur un corpus bancaire marocain réel, et publié ci-dessous. Le résultat n'était pas flatteur, et c'est précisément l'intérêt de mesurer.
Pour être clair sur ce que ce n'est pas : ServeX Guard ne bloque pas les attaques en temps réel. Il tourne à côté de votre pipeline, pas devant votre modèle. S'il vous faut un pare-feu applicatif pour le trafic LLM, achetez-en un, et gardez ceci pour prouver que ce que vous avez livré se comporte toujours comme ce que vous avez validé.
Un système de récupération que j'ai construit sur des pages bancaires marocaines publiques — 157 passages, 24 questions, chacune posée de cinq façons. Même question, même passage attendu ; seule la langue change. Pour être précis : ceci mesure une chaîne de récupération sur du contenu public. Ce n'est l'audit du système d'aucune banque.
| Langue tapée par l'utilisateur24 questions, 157 passages | Hit@1bon passage, premier résultat | Hit@3 | MRR | Similarité à l'attenducosinus |
|---|---|---|---|---|
| Français | 83,3 % | 87,5 % | 0,869 | 0,694 |
| Anglais | 79,2 % | 87,5 % | 0,855 | 0,664 |
| Arabe standard | 87,5 % | 95,8 % | 0,921 | 0,653 |
| Darija, écriture arabe | 54,2 % | 79,2 % | 0,680 | 0,550 |
| Darija, écriture latine | 16,7 % | 50,0 % | 0,354 | 0,475 |
Une question qui arrive au rang 1 en français arrive au rang 65 sur 157 quand le même client la tape en darija en caractères latins. Rien dans le produit ne l'enregistre comme une erreur. L'utilisateur reçoit simplement une mauvaise réponse et s'en va.
Le français seul est à 83,3 %. Quatre questions sur vingt-quatre ratent le rang 1, trois d'entre elles enterrées aux rangs 5, 10 et 15 — dans la langue pour laquelle le système a été construit. « Nous ne supportons que le français et l'anglais » ne fait pas disparaître le problème.
Parce que c'est le résultat. Une mesure qui ne fait que confirmer ce qu'on espérait n'est pas une mesure. Celle-ci a été exécutée deux fois, sur un jeu de questions doublé, et l'écart s'est creusé.
Méthode complète, jeu de questions, rangs par question et cas d'échec.
Un pip install. Aucun compte requis, aucune donnée ne quitte votre machine.
Un fichier JSONL d'entrées, de sorties attendues et, pour les systèmes RAG, du contexte récupéré.
Un code de sortie non nul bloque la fusion, comme un linter pour la qualité RAG.
L'envoi est toujours optionnel. Le drapeau --upload peut envoyer le rapport terminé vers un tableau de bord hébergé — disponible sur demande, pas vendu en libre-service. Sans le drapeau rien ne quitte votre machine, et un échec d'envoi ne change jamais votre code de sortie CI.
# installer pip install servex-guard # lancer une porte qualité en CI servexguard check \ --dataset golden.jsonl \ --min-faithfulness 0.85 # activer le tableau de bord (optionnel) export SERVEXGUARD_API_KEY=sxg_xxxxx servexguard check \ --dataset golden.jsonl \ --upload --project my-rag
Vous devriez. Je le fais. RAGAS, Presidio, promptfoo, DeepEval et Langfuse auto-hébergé sont open source et bons ; Braintrust vend des portes qualité CI ; OpenAI livre la détection d'hallucination et des garde-fous dans son propre SDK, sans frais. Ce CLI appelle les briques open source plutôt que de les remplacer.
Des métriques. Fidélité, pertinence, rappel, détections de données personnelles, signaux d'injection, traces. Tout cela exécutable cet après-midi par un ingénieur qui lit la documentation. Rien de tout cela n'est la partie difficile.
Une lecture indépendante de ce fournisseur. Les garde-fous d'OpenAI évaluent les sorties d'OpenAI. Utile en production ; pas une preuve qu'un comité des risques, un client européen ou un auditeur ISO/IEC 42001 acceptera comme tierce partie.
Un jeu de questions construit à partir de votre corpus, dans les langues que vos utilisateurs tapent vraiment, exécuté sur les fournisseurs que vous utilisez vraiment, lu par quelqu'un qui ne vous en vend aucun — et qui met son nom sur la conclusion.
Si vous avez un ingénieur avec deux mois devant lui et aucune échéance de conformité, construisez-le vous-même à partir des briques ci-dessus. L'argument honnête, c'est que la plupart des équipes ne l'ont pas, et que ce que personne ne budgète n'est pas la détection mais la lecture : ce que les chiffres veulent dire sur ce système, quoi corriger en premier, et un document sur lequel quelqu'un d'extérieur à l'équipe peut s'appuyer.
Le CLI est sous Apache 2.0 et vous pouvez l'utiliser sans parler à personne. Ce que les équipes demandent réellement, c'est quelqu'un pour le pointer sur leur système, interpréter ce qui en sort, et mettre un nom sur la conclusion.
Environ trois semaines. Se termine par un rapport que vous pouvez remettre à quelqu'un qui n'était pas dans les réunions.
Exécuté sur votre environnement, pas sur une copie. Les constats sont reproductibles ou ils ne sont pas rapportés.
Préparation et analyse d'écart. La certification elle-même est délivrée par un organisme accrédité — jamais par moi.
Pour une équipe qui a compris qu'un système d'IA se surveille comme une infrastructure. Quelqu'un qui en répond, pas un tableau de bord.
Ni organisme de certification, ni cabinet d'avocats, ni pare-feu applicatif. Je suis El Mahdi El Aimani, un ingénieur qui mesure des systèmes et met son nom sur le chiffre.
Ça commence par trente minutes d'appel, sans frais, pour voir s'il y a quelque chose qui vaut la peine d'être mesuré. En français, en anglais ou en arabe.