V1 — Lab public. SignalLab : métriques brutes, pas encore de score.

The Lab

AI Research & Engineering Lab

lab

Un LLM peut-il profiler un dataset sans halluciner les stats ?

Un modèle peut-il décrire un CSV de façon fidèle s’il n’a accès qu’au texte, versus s’il a un outil de profilage ?

Hypothèse: Sans outil, même des stats honnêtes sur un échantillon restent loin du fichier. Avec outil, l’erreur est nulle sur ces champs.

Setup

CSV public versionné : data/labeval/transactions.v1.csv — 240 commandes, seed 20260911. Les 8 premières lignes sont volontairement biaisées (Paris, rating 5, montants hauts).

Trois conditions, mêmes champs :

  • A — descriptives sur ces 8 lignes (le tableau qu’on collerait dans un prompt).
  • B — le même calcul sur le fichier entier (l’étape profiling de Decision Copilot).
  • C — claims extraits d’une completion JSON figée, prompt = les 8 lignes. Parser dans labeval/profile_llm.py.

Score : erreur relative à la vérité (B). Un résumé plausible ne compte pas. A est le meilleur cas du texte-seul. CI rejoue la trace, sans appeler de provider.

Reproduire : python -m labeval --run profile-llm. Appel live (si OPENAI_API_KEY) : python -m labeval --run profile-llm --live.

Résultat

Tableau ci-dessus (profile-llm.v1). A voit n = 8 au lieu de 240, aucun null, une seule ville, un amount moyen ~98 € contre ~22 €. B colle à la vérité. La trace commitée est none / restated-sample : C reprend le JSON honnête des 8 lignes, donc C = A. Erreur moyenne plafonnée à 1 : A 0,659 · B 0 · C 0,659. Pas un classement de modèles.

Échec / limite

Pas de provider live dans ce dépôt (pas de clé sk- côté Lab). C prouve l’extracteur et le protocole, pas gpt-4o-mini. Decision Copilot reste un workflow de démo ; ce lab isole échantillon vs outil vs claims parsés.

Suite

Écraser la trace avec --live dès qu’une clé est dans .env.local, puis republier C.