Arrête de classer : la technique de Simon Willison pour tagger du contenu avec un LLM à grande échelle

Tu as 1 856 catégories dans ta taxonomie. Tu demandes à ton LLM de choisir parmi elles. Il se plante, ou choisit au hasard parmi les 500 qu’il arrive à traiter dans son contexte. Simon Willison a publié le 14 août une technique qui inverse complètement le problème : plutôt que forcer l’IA à sélectionner, tu la laisses inventer. Et c’est souvent meilleur.

Le piège de la liste exhaustive

La classification traditionnelle avec un LLM ressemble à ça : tu mets toute ta liste de catégories dans le prompt, tu demandes au modèle de choisir la plus pertinente. Ça marche sur 50 catégories. Ça se dégrade à 200. À 1 856, c’est généralement une catastrophe de contexte : le modèle perd le fil, choisit par approximation, ou refuse de trancher.

Le problème est structurel. Les LLM ne sont pas conçus pour comparer 2 000 options en une passe. Leur fenêtre de contexte le permet techniquement, à coût élevé, mais leur attention se dilue avec la liste. Résultat : tu payes cher pour une classification médiocre.

La technique : halluciner d’abord, matcher ensuite

L’idée de Willison : ne pas demander au modèle de choisir. Lui demander d’inventer.

Tu lui donnes le contenu à classifier. Tu lui demandes de générer librement les catégories qu’il juge pertinentes, sans contrainte de liste. Il peut produire « Furniture / Living Room / Coffee Tables » même si cette catégorie n’existe pas exactement dans ta taxonomie. C’est voulu.

Ensuite, tu prends ses suggestions imaginées, tu les passes dans un modèle d’embeddings vectoriels, et tu fais un matching par similarité cosine avec tes catégories réelles. La catégorie réelle la plus proche sémantiquement gagne.

Le LLM travaille sur son terrain : la compréhension du sens. Le vecteur fait ce pour quoi il est fait : comparer à grande échelle. Chacun son rôle.

Ce que ça change concrètement pour toi

Trois cas pratiques où cette technique débloque des situations réelles :

  • Tagguer une archive historique. Tu as 3 000 articles publiés sur 8 ans, avec une taxonomie qui a évolué. Passer la liste entière au prompt à chaque article coûte cher et produit des résultats flous. Avec la technique Willison : le LLM comprend le sens de l’article, hallucine le bon tag, le vectoriseur trouve le plus proche dans ta taxonomie actuelle.
  • Organiser du contenu importé. Tu rapatries une base de données avec un système de catégories différent. Plutôt que de cartographier manuellement chaque item, tu laisses le modèle interpréter le contenu et le vecteur aligne sur ta taxonomie cible.
  • Gérer une taxonomie qui grandit. Tu ajoutes une catégorie. Avec la méthode classique, tu dois mettre à jour tous tes prompts. Avec la méthode vectorielle, la nouvelle catégorie est simplement disponible dans l’espace de matching : rien à réécrire.

La limite est réelle : ça ne fonctionne bien que si tes embeddings sont de qualité et que tes catégories ont des intitulés sémantiquement distincts. Si deux catégories se ressemblent trop (« Marketing digital » et « Stratégie digitale »), le matching sera incertain. À surveiller sur tes données.

Demande à l’IA de comprendre, au vecteur de comparer. Ne confonds pas les rôles.

Pourquoi cette source, et pas les autres

C’est le genre de technique qu’on ne trouve pas dans un blog de marketing IA avec des captures d’écran de ChatGPT. Simon Willison teste, mesure et écrit en source ouverte. Son blog reste l’une des rares sources builder-first sur les LLM en conditions réelles : pas de hype, du code fonctionnel, des résultats mesurés.

L’article du 14 août est court, dix minutes à lire, avec l’implémentation complète. Si tu gères du contenu en volume et que la classification te pose des problèmes, c’est directement applicable. Les embeddings nécessaires sont disponibles chez tous les providers principaux : OpenAI text-embedding-3-small, Cohere Embed, Voyage.

Lire l’article original : simonwillison.net

Choisir les bons outils pour ton activité et chiffrer leur coût réel, c’est le rôle de l’audit IA de départ.