learn.chetana.fr

Le problème du non-déterminisme

10 min readIntro

Deux fois le même document, deux réponses

Tu passes un bon de commande dans ton pipeline. Il en sort 23 lignes. Tu le repasses : 22 lignes, une quantité change. Tu n'as rien touché. C'est normal — le cœur du pipeline est un LLM, et un LLM est non déterministe : même entrée, sortie qui varie.

Ce n'est pas un bug à corriger, c'est une propriété à assumer. Et elle a une conséquence brutale sur ta façon de travailler :

Tant que tu ne mesures pas, chaque « j'ai amélioré le prompt » est une croyance, pas un fait.

Tu changes une instruction, tu regardes trois exemples à la main, « ça a l'air mieux » — et tu déploies. Trois semaines plus tard, un cas que tu n'avais pas regardé s'est dégradé. Personne ne l'a vu, parce que personne ne mesurait.

Ce que l'éval transforme

Un harness d'évaluation fait une seule chose, mais elle change tout : il transforme une impression en chiffre reproductible.

  • tu prends un corpus de vrais cas (anonymisés) ;
  • tu as, pour chacun, le corrigé humain (la bonne réponse) ;
  • tu passes le corpus dans le pipeline, tu compares à la vérité, tu obtiens des scores ;
  • tu regardes ces scores monter (ou chuter) d'une version à l'autre.

À partir de là, « améliorer » devient falsifiable : line_f1 passe de 0,71 à 0,78, ou il ne le fait pas. Le débat s'arrête. C'est la même bascule que le jour où tu es passé du « ça marche sur ma machine » aux tests automatisés — sauf qu'ici la fonction testée est probabiliste, donc on ne teste pas une valeur exacte, on mesure une distribution de qualité sur un corpus.

Pourquoi c'est plus dur qu'un test unitaire

Un test unitaire vérifie add(2,2) === 4. Ici, la « bonne » sortie est floue (deux formulations d'un nom produit peuvent être correctes), non déterministe (elle varie), et coûteuse (chaque exécution appelle un LLM payant et lent). Le harness doit donc gérer : une vérité tolérante (pas juste l'égalité stricte), des exécutions rejouables sans exploser le budget, et des métriques agrégées plutôt que des assertions binaires.

C'est tout le sujet de ce cours : construire cet outil, proprement.

🧩 Quiz1/3

Pourquoi un pipeline LLM donne des sorties différentes pour la même entrée ?

🃏 Flashcards1/4