Apprivoiser le chaos de sortie LLM : un modèle de normalisation à 3 niveaux

DEV - 25/01
Vous demandez au LLM des relations "DRAINS". Vous obtenez : draine, épuise, épuise,...

Vous demandez au LLM des relations "DRAINS".

Vous obtenez :

draine, épuise, épuise, provoque_la fatigue, draine_émotionnellement, impact_négativement, draine_énergie, conduit_à_l'épuisement, saps_vitalité, s'use_out, provoque_drain...
Entrer en mode plein écran Quitter le mode plein écran

Onze variantes. Par concept. Par course.

Si votre application dépend d'une sortie cohérente d'un LLM, vous avez un problème. J'ai appris cela à mes dépens en créant Sentinel, un outil CLI qui utilise Cognee pour détecter les conflits énergétiques dans les plannings personnels.

Cet article partage le modèle que j'ai développé pour normaliser la sortie chaotique du LLM en données prévisibles et prêtes à l'application.

Le problème : les LLM ne suivent pas les instructions

Je construisais un graphe de connaissances où les activités pourraientVIDANGESl'énergie ouEXIGEse concentrer. Assez simple. J'ai écrit une invite d'extraction personnalisée :

**TYPES DE RELATIONS REQUIS** (utilisez UNIQUEMENT ces noms exacts) : - DRAINES : L'activité épuise l'énergie/la concentration/la motivation - EXIGE : L'activité a besoin d'énergie/de concentration/de ressources
Entrer en mode plein écran Quitter le mode plein écran

Le LLM a hoché la tête et a généré... ce que l'on ressentait.

Mon algorithme de détection de collision attenduVIDANGES. Le LLM de Cognee est revenuis_emotionally_draining. Mon parcours BFS n'a rien trouvé. Tests réussis (les moqueurs sont des menteurs). La production était interrompue.

La dure vérité : les invites seules vous permettent d'obtenir une cohérence d'environ 70 %. Pour les 30 % restants, vous avez besoin d’une couche de normalisation.

Pourquoi inciter ne suffit pas

J'ai essayé plus fort. J'ai ajouté des exemples. J'ai utilisé des invites à quelques tirs. J'ai crié en majuscules.

**CRITIQUE** : Utilisez UNIQUEMENT ces types de relation : - DRAINS (pas "épuise", pas "épuise", pas "cause_fatigue")
Entrer en mode plein écran Quitter le mode plein écran

Résultat : Le LLM désormais généréVIDANGES85% du temps. Mais aussidrains_énergie,vidange_d'énergie, et mon préféré :négativement_impacts_emotional_state.

Le LLM comprend la sémantique, pas la syntaxe. Il sait que ces concepts sont équivalents. Il ne se soucie pas de la correspondance de vos chaînes.

Mon taux de détection : 15 à 20 % des collisions réelles trouvées.

La solution : une normalisation à 3 niveaux

Le modèle sur lequel j'ai atterri traite la sortie LLM à travers trois niveaux de correspondance de plus en plus flous :

┌──────────────────────────── ─────────────────────────────┐ │ Sortie LLM │ │ "totally_exhausting_day" │ └─────────────────────┬────── ─────────────────────────────┘ │ ▼ ┌──────────────────────────── ─────────────────────────────┐ │ NIVEAU 1 : Correspondance exacte (O(...
[Courte citation de 8% de l'article original]
Loading...