Votre système RAG a l'air en bonne santé.
Jusqu'à ce que quelqu'un le mesure.

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.

Apache 2.0 CI au vert Python 3.10–3.12 Tourne sur vos machines FR · EN · AR · Darija
bench/run_bench.py — sortie réelle, pas une maquette
$
corpus: 157 chunks · questions: 24 x 5 languages
embedding corpus .......... done
Hit@1 Hit@3 Hit@5 MRR gold sim
French 83.3% 87.5% 91.7% 0.869 0.694
English 79.2% 87.5% 91.7% 0.855 0.664
Arabic (MSA) 87.5% 95.8% 95.8% 0.921 0.653
Darija (Arabic) 54.2% 79.2% 79.2% 0.680 0.550
Darija (Latin) 16.7% 50.0% 62.5% 0.354 0.475
 
Darija (Latin) vs French: Hit@1 -66.6 pts, Hit@3 -37.5 pts, MRR -0.515
Le problème

Trois questions, et personne n'a de chiffre

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é.

Est-ce que ça marche ?

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.

Est-ce que ça fuit ?

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.

Pouvez-vous le défendre ?

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.

Indépendance

Un fournisseur ne peut pas s'auditer lui-même

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.

Indépendant du modèle que vous avez acheté

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.

Un seuil, deux endroits

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.

Mesuré en FR, AR et darija

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é.

Preuves

À quoi ressemble une mesure

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çais83,3 %87,5 %0,8690,694
Anglais79,2 %87,5 %0,8550,664
Arabe standard87,5 %95,8 %0,9210,653
Darija, écriture arabe54,2 %79,2 %0,6800,550
Darija, écriture latine16,7 %50,0 %0,3540,475

Le résultat marquant

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.

La partie inconfortable

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.

Pourquoi publier un mauvais résultat

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.

Comment ça marche

Une commande. Tourne en CI. Entièrement hors ligne par défaut.

1

Installer

Un pip install. Aucun compte requis, aucune donnée ne quitte votre machine.

2

Pointer sur votre jeu de référence

Un fichier JSONL d'entrées, de sorties attendues et, pour les systèmes RAG, du contexte récupéré.

3

Bloquer le déploiement

Un code de sortie non nul bloque la fusion, comme un linter pour la qualité RAG.

4

Garder l'historique, si vous le voulez

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
Comparaison honnête

Pourquoi ne pas utiliser ce qui est gratuit ?

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.

Ce que l'outillage gratuit vous donne

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.

Ce que l'outillage d'un fournisseur ne peut pas vous donner

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.

Ce qu'aucun d'eux ne vous donne

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.

Travailler avec moi

L'outillage est gratuit. La lecture, c'est le travail.

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.

01
Mesure
Environ trois semaines
  • Qualité de récupération et de réponse sur votre propre corpus, par langue
  • Taux d'hallucination et de refus sur un jeu de questions construit avec votre équipe
  • Coût par requête et latence réelle
  • Un plan de correction priorisé et chiffré

Environ trois semaines. Se termine par un rapport que vous pouvez remettre à quelqu'un qui n'était pas dans les réunions.

03
Préparation gouvernance
Six à dix semaines
  • Inventaire et classification des risques de vos systèmes d'IA
  • Analyse d'écart ISO/IEC 42001 sur l'annexe A
  • Positionnement AI Act et preuves qui vous seront demandées
  • Registre loi 09-08 / CNDP et durées de conservation

Préparation et analyse d'écart. La certification elle-même est délivrée par un organisme accrédité — jamais par moi.

04
Rétainer
Quatre jours par mois
  • Dérive surveillée sur des échantillons réels de production
  • Évaluation revue avant chaque mise en production
  • Astreinte sur les incidents modèle
  • Revue trimestrielle de conformité

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.