learn.chetana.fr

Observabilité découplée et best-effort

11 min de lectureEssentiel

L'outil d'observabilité amplifie, il ne commande pas

Un outil d'éval LLM (Langfuse, par exemple) offre trois choses précieuses : empiler les runs sous un dataset, les comparer visuellement doc par doc, et garder l'historique. Utile. Mais un principe d'architecture doit rester gravé :

L'observabilité est un amplificateur best-effort, jamais le maître de la mesure.

Concrètement, le calcul des scores ne dépend pas de l'outil. Si les clés d'API sont absentes, le harness bascule sur un chemin local : il calcule et affiche les scores dans le terminal, il ne pousse simplement rien. L'éval n'échoue jamais à cause de l'observabilité. C'est ce qui te permet de la lancer en CI, hors-ligne, ou sur la machine d'un nouveau venu sans configuration.

Ce qui est poussé, et comment

Quand les clés sont là, le flux type d'un run complet :

  1. charger les golds depuis le disque (la vérité locale) ;
  2. synchroniser le dataset : upsert du dataset + un item par gold (id stable → pas de doublon). On pousse un expected_output nettoyé des champs d'échafaudage (le « comment on a bâti la vérité » ne fait pas partie de la vérité) ;
  3. lancer l'expérience : pour chaque item, exécuter le pipeline, relier la trace à l'item, attacher les scores ;
  4. seuls quelques scores de tête sont poussés comme scores normalisés (F1, precision, recall, top-1, taux d'hallucination) ; les compteurs bruts vont dans la sortie de la trace, pour le debug fin.

La distinction 2/3 est le reflet direct de la leçon Dataset ≠ Run : on upserte la vérité, on empile un run.

Traces ≠ scores

Deux registres à ne pas mélanger, encore une fois :

  • une trace = le détail d'exécution (appels LLM, nœuds, durées), taguée pour être filtrable (surface:eval). C'est de l'observabilité de debug.
  • un score = une note attachée à un item de dataset, comparable entre runs. C'est la mesure.

Passer un document dans l'UI de correction produit des traces (utile pour comprendre) mais aucun score ni item de dataset. Seule la commande d'éval pousse la mesure.

🧩 Quiz1/4

Que se passe-t-il si les clés de l'outil d'observabilité sont absentes ?

🃏 Flashcards1/4