← Retour au blog
EngineeringBuild in PublicVideo

J'ai demandé à un LLM de corriger les noms mal orthographiés. Il a renommé le produit.

Mon clipper IA corrige les noms propres dans les transcripts. Sur une vidéo, il a remplacé un modèle inconnu par celui d'un concurrent. Pourquoi, et le correctif.

28 septembre 2026

J'ai demandé à un LLM de corriger les noms mal orthographiés. Il a renommé le produit.

Créé le 28 septembre 2026 · Mis à jour le 28 septembre 2026

Katto est un outil de clipping vidéo par IA. Vous déposez une vidéo longue, il en découpe les bons moments en formats verticaux, et il écrit les sous-titres. Je le construis seul, en public. Voici l'histoire d'une fonctionnalité que je vends sur ma page tarifs, et que j'ai surprise en train de faire exactement l'inverse de son travail.

Le problème que je voulais résoudre

La reconnaissance vocale est excellente sur les mots et mauvaise sur les noms. Whisper entend une marque qu'il n'a jamais croisée et l'écrit phonétiquement. « Trump » devient « trompe ». « Suárez » devient « Suares ». « ChatGPT » devient « chatgépété ». Sur une vidéo de foot en français, j'en ai compté quatre-vingt-dix-huit dans un seul transcript.

Des sous-titres avec des noms massacrés font négligé, et c'est la partie la plus visible d'un clip. J'ai donc ajouté une passe de correction : après la transcription, le texte part vers un petit modèle de langage avec une seule consigne, trouver les noms propres écrits phonétiquement et corriger l'orthographe. Ça coûte environ un centime par vidéo. Ça a corrigé les quatre-vingt-dix-huit.

Ce qui est réellement sorti

La semaine dernière, un utilisateur a clippé une vidéo française sur les grands modèles de langage. L'intervenant parlait d'un modèle appelé JEV. Whisper l'a entendu et a écrit « Jev », ce qui est assez proche pour que personne ne tique.

Les clips sont sortis titrés « Pourquoi Jamba est surcoté » et « Jamba : révolution et surcoté à la fois ». Les sous-titres disaient Jamba. Les descriptions disaient Jamba.

Jamba est un vrai grand modèle de langage, développé par AI21. Ce n'est simplement pas celui dont parle la vidéo.

Je suis allé regarder ce que le pipeline avait stocké. Le transcript archivé disait « Jev » deux fois et « Jamba » zéro fois. Toutes les étapes suivantes disaient « Jamba » et jamais « Jev » : les candidats scorés, les métadonnées des clips, la réserve de clips, vingt-quatre occurrences au total. La transcription avait raison. C'est la chose que j'avais ajoutée pour la protéger qui l'a cassée.

Pourquoi le modèle a fait ça

Il a fait exactement ce que fait un assistant serviable. La vidéo parle de modèles de langage. « Jev » n'est pas un modèle qu'il connaît. « Jamba » en est un, et les deux ne sont pas si éloignés si on plisse les yeux. Dans ce contexte, remplacer l'un par l'autre ressemble à une correction, pas à une invention.

C'est le mode de défaillance dont personne ne vous prévient sur ce type de tâche. Un correcteur orthographique qui ne reconnaît pas un mot le laisse tranquille. Un modèle de langage qui ne reconnaît pas un mot attrape le mot le plus proche qu'il connaît, et plus il a de culture du domaine, plus ce geste est assuré et faux. Mon correcteur était mauvais sur les noms rares précisément parce qu'il était bon sur les noms courants.

Ce qui pique

J'y avais déjà pensé. Le prompt disait, en capitales :

ONLY fix spelling and capitalization. NEVER replace a name with a DIFFERENT name. Inventing a plausible-but-wrong name is WORSE than leaving an unusual one unchanged. […] Do NOT guess a better-known name from context.

Trois phrases, sans ambiguïté, écrites précisément pour empêcher ce qui est arrivé. Le modèle les a lues et a renommé le produit quand même.

Je ne pense pas que le prompt était mal formulé, et je ne crois plus qu'un meilleur aurait changé quoi que ce soit. Demander à un modèle de ne pas faire ce vers quoi il penche, c'est une requête, pas une contrainte. Ça tient la plupart du temps, ce qui est pire que de ne jamais tenir, parce qu'on arrête de vérifier.

Ce que j'ai fait à la place

La règle est sortie du prompt pour entrer dans le code. Le modèle propose toujours des corrections ; une fonction décide désormais si chacune est une correction orthographique ou un renommage, et jette les renommages.

Le test est volontairement grossier : on retire la casse et les accents des deux chaînes, puis on mesure ce qui survit de l'original dans le remplacement. Au-dessus de 0,6, c'est le même nom autrement orthographié. En dessous, c'est un autre nom.

Toutes les corrections de mon jeu de test passent. Certaines corrections légitimes ne passeront pas : la cinquième ligne en est une vraie. Un francophone qui dit « Nguyen » est entendu « nouillène », les deux chaînes ne partagent presque rien une fois les accents retirés, et le garde-fou jette cette correction. Il en ira de même pour les noms japonais romanisés et pour les sigles épelés lettre par lettre dans une autre langue.

C'est le côté que j'ai choisi. Un nom inhabituel laissé tel quel se voit, et un lecteur peut deviner ce qui était dit. Un nom faux ne se voit pas, et personne ne le peut. Les rejets sont journalisés avec les deux chaînes, parce qu'un rejet signifie que le modèle vient d'essayer de renommer quelque chose, et ça mérite d'être vu.

Les leçons

Une règle qu'un modèle peut ignorer n'est pas une règle. Si une contrainte compte, sa place est dans du code qui s'exécute après le modèle, pas dans un paragraphe que le modèle lit. Un prompt exprime une intention. Il ne l'impose pas.

Surveillez la direction d'une correction, pas seulement son existence. J'avais des métriques sur cette passe : le nombre de corrections par vidéo. Quatre-vingt-dix-huit, ça ressemblait à un bon chiffre. Rien ne mesurait si une correction rapprochait le texte de la vérité ou l'en éloignait, et une mauvaise correction est indiscernable d'une bonne quand on ne compte que le total.

Un pipeline qui stocke l'entrée et livre la sortie peut vous mentir deux fois. Le transcript archivé disait « Jev » pendant que chaque clip livré disait « Jamba ». Si je n'avais lu que l'archive, j'aurais conclu que tout allait bien. Le contrôle qui compte porte sur ce qui est sorti.

L'assurance fait partie de la panne. Un correcteur qui laisse un nom inconnu tranquille produit une bizarrerie visible et inoffensive. Celui qui le remplace produit un texte propre, fluide et faux, que personne ne remet en question, moi compris, jusqu'au jour où la personne qui a fait la vidéo lit ses propres sous-titres.

Le garde-fou est parti en production le jour même. Si vous clippez une vidéo sur un sujet pointu et que Katto laisse un nom inhabituel exactement comme il l'a entendu, c'est désormais délibéré.

Articles liés

Prêt à transformer vos vidéos en clips viraux ?

Katto découpe, sous-titre et recadre automatiquement vos vidéos longues en contenu court.

Essayer Katto gratuitement →
J'ai demandé à un LLM de corriger les noms mal orthographiés. Il a renommé le produit. | Katto