URL: https://linuxfr.org/users/montaigne/journaux/comment-nourrir-un-llm-pour-qu-il-soit-efficace Title: Comment nourrir un LLM pour qu'il soit efficace ? Authors: Ontologia Date: 2025年07月01日T13:12:54+02:00 License: CC By-SA Tags: intelligence_artificielle et grands_modèles_de_langage Score: 12 Passionné par les ontologies depuis le début des années 2000, j'ai toujours été fasciné par les graphes sémantiques. Leur construction était alors difficile et fastidieuse, jusqu'à qu'apparaisse les LLM. Mais comment nourrir un LLM pour qu'il soit efficace ? # LLM et création automatique de graphes sémantiques Les LLMs nous ont grandement surpris, lors de leur avènement, par leur capacité de "compréhension" sémantique qui ont remisé au placard plusieurs décennies de recherches linguistique. Un linguiste témoignait avec distance et un certain amusement, [auprès de Paul Jorion, que "[c]es recherches n'avaient servis à rien"](https://www.youtube.com/watch?v=2_G9yi2lmA8) Lorsqu'on observe les points communs entre les jeux de donnés soumis aux LLM pour leur entraînement, que ce soit du texte, du code, ou plus spécifiquement de la chimie, on discerne un point commun à toutes ces structures de données : Leur point commun est l’existence sous-jacente d'un graphe sémantique. ## La sémantique dans un texte Dans un texte plusieurs graphes sémantiques co-existent, de diverses natures. Assez prosaïquement, l'ordre des mots est un graphe. La nature grammaticale de chaque mot est une propriété des mots en tant que sommet dans le graphe. Certains tokens, formant préfixes et suffixes composent aussi un graphe, participant à ce que l'on appelle en linguistique la morphologie du mot : les affixes a/re/de et les suffixes correspondant la conjugaison ou au pluriel sont déterminant dans la construction du sens. Les noms communs sont liés entre eux par liens de sens, comme l'a démontré l'ontologie Wordnet depuis la fin des années 1990. Wordnet relies les sens des mots par méronymie (Pneu fait partie de Voiture), antonymie (Beaucoup est le contraire de Peu), synonymie. Ce graphe est fondamental et créé du sens à lui tout seul. Je vais faire une petite digression sur ce sujet en contant une expérience que j'ai faite il y a quelques années : À Pôle-Emploi, j'ai construit un moteur de recherche sémantique sur le référentiel de métier ROME v4. J'ai construit ce moteur en PostgreSQL, en utilisant de vieux algorithmes de l'IA des années 1990, [présent dans PostgreSQL](https://docs.postgresql.fr/17/textsearch.html), basées sur des techniques comme la lemmatisation, le calcul de radical de mots (qui marche moyen en français), le TF-IDF, etc. Le concept central de ce système était de ramener autour de chaque mot du texte - du titre, du texte d'une fiche métier - tous les mots reliés par une relation sémantique dans Wordnet. Avec un jeu de poids ad-hoc, on faisait ressortir le sens de chaque phrase. Avec ce système, j'ai obtenu des performances similaires à un LLM, avec parfois de moins bon résultats, mais d'autres fois de meilleurs résultats. À noter que cette manière de faire consomme considérablement moins d'énergie que les LLM. Cette technique marcherai très bien sur un ordinateur de 1997. Votre serviteur mal coiffé rend compte de cette expérience [lors d'une conférence au PgDay en 2023](https://www.youtube.com/watch?v=9ghlaX2OUq4&list=PL8hcbCbHVHQlHn2NWJ_h6eA869X0AU0lR&index=9). À la fin de ma présentation, je montre que le système était capable de lister tous les métiers impliquant de travailler en extérieur lorsqu'on lui entrait "dehors". Et je vous promet que je n'ai pas cherché des heures un exemple qui marche, c'est le premier qui m'est venu à l'esprit lors de l'écriture des slides. Vous imaginez que le mot "dehors" ne se trouve pas dans le ROMEv4, on y trouvera que des formulations plus _formelles_. Cette expérience m'a appris une leçon fondamentale : la structure de graphe sous-jacente des données est absolument fondamentale pour la bonne qualité du système. Le ROMEv4 de Pôle-Emploi/France-Travail, à regarder de près, est une ontologie extrêmement bien pensée. Construite pas à pas depuis plus de 40ans, elle recèle un graphe sémantique très bien conçu et fortement connecté. C'est cette nature de graphe sémantique qui rend le système pertinent et efficace. Lorsque j'ai testé ce système sur des données beaucoup moins structurées, les performances de qualités de recherches s'effondrent. Revenons à la sémantique d'un texte. L'IA des années 90 avait beaucoup plus de mal à capturer ce qu'un LLM fait excellemment, à savoir capturer des liens entre concepts (par exemple en exploitant le graphe de concept de Wikipédia (ou de Wordnet qui a forcément été aspiré par les LLMs), les relations entre phrases, entre paragraphe sont aussi capturées. ## La sémantique dans le code Le code d'un programme est par nature un graphe. À la base, un arbre sémantique est un arbre, donc un graphe. Mais cet arbre peut être enrichie de multiples manières pour construire un graphe du code. Lorsque j'étais ingénieur R&D, j'avais conçu des logiciels permettant de construire ce graphe sémantique à partir de l'arbre syntaxique du code. Les relations qui peuvent être construites permettent d'enrichir la compréhension du code, et sont à la base des algorithmes d'assistance dans les IDEs : typage de variables (et donc relation avec leur définition pour éventuelle décomposition), relations entre variables, leur définition, leurs modifications, graphe d'appel, etc. À l'époque, il s'agissait de trouver les 400 lignes les plus consommatrices de ressources sur base de code de 1 000 000 de lignes. Est qu'un LLM sait faire ça ? ## La sémantique dans la chimie Comment créer de nouvelles molécules ? Tout dépend de la manière de représenter les molécules. Le langage openSmiles a été initialement conçu pour représenter des molécules sous forme de texte. Par exemple le  sera écrit CC(C)C(=O)C(C)C et le  [NH4+].[NH4+].[O-]S(=O)(=O)[S-] ### Une molécule est un graphe Vous voyez visuellement tout de suite qu'une molécule est elle aussi un graphe. Si on ajoute des propriétés et la définition de caractéristiques typiques (liaison hydrogène, niveau d'énergie, stabilité, réactivité), on sémantise là encore le graphe # Les Transformers Les transformers ont été inventé par une équipe de Google Labs pour mettre au point de la traduction automatique par LLM, dans le fameux papier "All you need is Attention". Un transformer consiste à créer une matrice de relation entre tokens de la fenêtre de contexte via un mécanisme de clé/valeur et query, améliorant drastiquement la qualité de l'embedding. Je vous renvoi aux articles expliquant ce concept. Dans un LLM, c'est le tranformers qui est à la base de la construction d'un graphe sémantique dans les poids et matrices des transformers du LLM. # Conclusion Ce que je vous raconte n'a rien de nouveau, j'ai depuis découvert un article de 2019 qui en parle : https://graphdeeplearning.github.io/post/transformers-are-gnns/ , comme quoi tous les chemins mènent à Rome (encore un graphe). On tire la conclusion de qui précède, la réponse à notre question initiale : un LLM se nourrit de données qui recèle un graphe de manière sous-jacente. Structuré ainsi, le LLM et particulièrement les transformers vont construire automatiquement le graphe sous-jacent à parti d'un volume suffisant de données