Angle mort: Pourquoi l'Intelligence Artificielle Générative n'arrive pas vraiment à travailler avec le langage HTML
Ça me fait vraiment plaisir de partager le premier épisode du podcast privé de Oui, mais je LLM. Pour y accéder, il te faut l'abonnement Je LLM pour de vrai !
Aujourd'hui, je te propose un épisode plus théorique que mes contenus habituels. Je te partage quelques réflexions que j'ai eues avec un collègue sur la capacité des modèles de langage de bien saisir certains types de contenus qui sont sous forme d'arborescences, comme le langage HTML et la pensée abstraite.
Voici quelques idées abordées dans l'épisode :
La difficulté avec les structures imbriquées
Les modèles sont excellents avec le texte linéaire (ex. : un récit ou un dialogue), mais ils peinent à gérer des formats comme le HTML ou le code, qui impliquent des hiérarchies et des structures imbriquées. Par exemple, comprendre une page web en HTML nécessite une logique de "pile" (premier entré, dernier sorti), un concept complexe pour un modèle basé sur des séquences linéaires. Notre cerveau aime ce concept, mais les algorithmes tels que les LLM vont préférer les files (premier entré, premier sorti)
Les modes "Mario Bros" vs "Donkey Kong" : Un traitement logique limité par l'architecture des réseaux de neurones
Imagine que le modèle avance en ligne droite, comme Mario dans son jeu. Il ne peut pas "revenir en arrière" pour corriger une erreur ou recontextualiser une information. Ça explique pourquoi les prompts doivent être clairs, directs et éviter les métaphores ou les structures hiérarchiques ou arborescentes. De plus en plus, les modèles de langage incluent des structures qui permettent une forme contrôlée de retour vers des couches antérieures, mais ce n'est pas une solution qui fonctionne encore très bien pour des arborescences profondes.
Le langage naturel vs le langage structuré
Les modèles maîtrisent bien le langage naturel (ex. : une histoire), mais leurs capacités avec des formats comme le code ou les balises HTML restent limitées. Pour éviter les erreurs, il faut choisir des structures simples comme le Markdown et donner des consignes explicites et simples.
Dans la génération de code, il faut vraiment faire attention à la fermeture des chaînes de caractères avec des guillemets et des sections de code avec des parenthèses, des crochets ou des accolades.