French Drift
Code source ouvert · Python · Aucune dépendance

La réponse en français vaut-elle la réponse en anglais?

French Drift soumet le même corpus, les mêmes questions et les mêmes mesures à un flux de contenu par IA, en anglais et en français canadien, en parallèle. Il rend ensuite compte de l'écart. Les deux langues peuvent franchir chacune la barre de qualité alors que le lectorat francophone reçoit une réponse plus mince, moins fondée, dans un registre qui sonne étranger. Noter chaque langue isolément ne permet pas de le voir.

Le panneau d'ouverture du rapport : une parité de service de 69 % et 6 requêtes où le lectorat francophone n'a pas été servi.
Le rapport met en tête le pire résultat vécu par le lectorat francophone, et non la moyenne.
69 %
parité de service

Requêtes où le lectorat francophone a reçu une réponse substantiellement équivalente.

80 %
fausses corrections

Formes québécoises valides réécrites par une révision sommaire (« corrige ce texte »).

+0,116
écart de couverture

Les réponses françaises en disent moins que leurs pendants anglais.

58 %
médias accessibles

Fichiers dont les descriptifs français sont complets.

01 · Le constat

L'hypothèse de départ n'a pas résisté à l'épreuve.

Le banc d'essai partait d'un argument plausible : le vocabulaire du français canadien est mal représenté dans les modèles de repérage, donc le repérage en français diverge. Le moteur par défaut modélise cet écart à partir d'une table lexicale rédigée à la main. Nous l'avons ensuite mesuré avec un vrai modèle de plongements multilingue, bge-m3, exécuté en local.

DimensionÉcart modélisé (BM25) Écart mesuré (bge-m3)
Précision du repérage@1+0,039−0,010
Rappel du repérage@3+0,017+0,003
nDCG du repérage@3+0,022−0,005
Véracité dans le contexte repéré+0,033+0,021
Couverture du contenu+0,116+0,116
Registre du français canadien+0,059+0,059
Localisation+0,015+0,015

Pour la précision et le nDCG, le signe s'inverse : le repérage en français arrive légèrement en tête. La requête autour de laquelle le banc d'essai a été conçu, « où peut-on aller pour se réchauffer? », repère parfaitement halte-chaleur avec bge-m3.

02 · Deux mesures canadiennes

L'évaluation générique du français ne les voit pas.

60 %

Taux de dérive métropolitaine

La fréquence à laquelle une forme québécoise de la source est remplacée par son équivalent de France dans la réponse. Seules les substitutions comptent. Quand le modèle reformule autour d'un terme, c'est de la verbosité, pas de la dérive : ces cas sortent entièrement du dénominateur. Ici, 3 occasions sur 5 ont donné lieu à une substitution, et 20 reformulations ont été exclues.

80 %

Taux de fausse correction québécoise

Un texte déjà correct en français canadien est soumis à la consigne qu'une équipe écrirait vraiment : « Corrige et améliore ce texte en français ». Le texte de départ est correct par construction; toute modification est donc une fausse correction. 12 formes valides sur 15 ont été détruites.

Forme québécoise valide Ce qu'a écrit le réviseur
fin de semaineweek-end
courrielemail
halte-chaleurcentre d'hébergement chauffé
conseiller scolaireadministrateur scolaire
taxe foncière(supprimée ou reformulée)
assurance-emploiassurance chômage
stationnementparking
banlieusardnavetteur
argent comptantcash
présentementactuellement

Lues ensemble, ces deux mesures distinguent deux défaillances. Un bon taux de dérive avec un mauvais taux de fausse correction signifie que la génération tient la route et que c'est la révision qui pose problème : un flux peut produire un français canadien impeccable et diffuser malgré tout une copie métropolitaine.

La section du rapport sur la dérive et la fausse correction.
Chaque substitution est présentée avec la requête ou la sonde dont elle provient.
03 · Le rapport

Un seul fichier autonome, dans les deux langues.

Le rapport est un fichier HTML unique qui ne fait aucune requête externe. L'anglais et le français sont dans le même document, de sorte que les deux versions décrivent toujours la même exécution. Son français est vérifié par le propre vérificateur de registre du banc d'essai, tout comme le français de ce site.

Ouvrir le rapport en direct

04 · Ce qui est mesuré

Chaque vérification a sa raison d'être.

Niveaux de gravité, selon l'incidence sur le lectorat

  1. Aucune réponseLe français n'a rien fourni d'utilisable alors que l'anglais a répondu.
  2. Fait non appuyéLe français avance un chiffre absent de la source.
  3. Sources différentesLes deux langues ont répondu à partir de documents différents.
  4. Contenu réduitLe français est exact, mais en dit moins que l'anglais.
  5. RegistreExact et complet, mais pas en français canadien.

Et au-delà de la réponse elle-même

La véracité, en deux temps

Par rapport aux documents de référence et par rapport à ce que le repérage a retourné. On distingue ainsi la fabrication des affirmations qui découlent d'un repérage manqué.

Le registre canadien

Mauvaises institutions, mauvais termes législatifs, usages métropolitains et calques de structure, pondérés selon leur gravité.

La localisation

$4,100,000 là où le français exige 4 100 000 $. Une date mal lue dans un article sur une échéance est une erreur de fait qu'aucune vérification de véracité ne détecte.

La constance terminologique

Prise une à une, chaque réponse peut sembler correcte alors que l'exécution désigne le même programme de trois façons. Français 0,571 contre anglais 1,000.

La capacité de réponse

Réponse, refus ou réponse évasive, par langue, avec les cas asymétriques désignés.

Les métadonnées éditoriales

Mots-clés, descriptions de référencement et titres. 23 mots-clés perdus en français, 6 descriptions de référencement françaises manquantes.

05 · Réel et modélisé

Dit sans détour.

Réel

Le moteur de repérage BM25, le moteur de plongements bge-m3, toutes les mesures, les étiquettes de référence, la normalisation des nombres EN/FR, les règles du français canadien et la suite de validation.

Modélisé

La cause de la divergence du repérage dans le moteur BM25 par défaut, tirée d'une table lexicale documentée. C'est aussi la partie que la mesure réelle a renversée.

Figé

Les réponses générées en mode hors ligne, avec leurs défauts annotés, pour que chaque détection puisse être vérifiée. --live les génère plutôt à partir d'un vrai modèle.

06 · L'essayer

Python 3.8 ou plus récent. Rien à installer.

Il s'exécute hors ligne, de façon déterministe. 218 vérifications réparties en 6 suites, dont un contrôle des faux positifs sur des réponses françaises sans défaut.

Le cloner sur GitHub ↗

$ git clone https://github.com/bdot-real/media-french-scaner.git
$ cd media-french-scaner
$ python3 bqh/harness.py --report report.html
$ python3 tests/test_harness.py

Avec de vrais plongements, au moyen d'un modèle Ollama local :

$ ./setup_ollama.sh
$ python3 bqh/harness.py --retriever embedding

Avec génération en direct :

$ export OPENROUTER_API_KEY=…
$ python3 bqh/harness.py --live --provider openrouter