Sommaire
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"
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, 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. À 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
# Ontologie au format Excel
Posté par Blackknight (site web personnel, Mastodon) . Évalué à 4 (+2/-0).
Bon, j'ai regardé vite fait, y a même pas d'ontologie OWL et rien au format RDF. Quelle tristesse :)
On a le droit à de l'Excel, du XML et du JSON.
De mon point de vue, c'est plus une nomenclature qu'une ontologie au sens du Web sémantique qu'on pourrait peut-être formaliser avec un thésaurus SKOS.
[^] # Re: Ontologie au format Excel
Posté par Ontologia (site web personnel) . Évalué à 3 (+1/-0).
Oulala, faut pas trop leur en demander… Si tu leur demande ce qu'est le W3C, ils vont te demander si c'est pas un groupe de Rap américain…
Encore faudrait-il qu'on leur mette à dispo un outil pour éditer l'ontologie, que le DSI soit d'accord pour autoriser, le logiciel, etc.
Mais une fois mis dans une BDD, ça se passe très bien ;-)
« Il n’y a pas de choix démocratiques contre les Traités européens » - Jean-Claude Junker
[^] # Re: Ontologie au format Excel
Posté par Blackknight (site web personnel, Mastodon) . Évalué à 3 (+1/-0).
Si j'ai le temps, je regarderai ce qu'on peut faire avec OpenRefine, c'est justement son terrain de jeu.
[^] # Re: Ontologie au format Excel
Posté par Ontologia (site web personnel) . Évalué à 2 (+0/-0). Dernière modification le 01 juillet 2025 à 16:20.
Merci pour la ref, je ne connaissais pas, ça a l'air très intéressant ! J'ai souvent des données en bordel et on passe des heures à nettoyer ça comme on peut…
« Il n’y a pas de choix démocratiques contre les Traités européens » - Jean-Claude Junker
[^] # Re: Ontologie au format Excel
Posté par Blackknight (site web personnel, Mastodon) . Évalué à 2 (+0/-0). Dernière modification le 01 juillet 2025 à 14:41.
Du coup, rien à voir mais pour le coup, l'UE fait des trucs pas mal bien que compliqués en publiant ses vocabulaires
# Ontologie
Posté par ǝpɐןƃu∀ nǝıɥʇʇɐW-ǝɹɹǝıԀ (site web personnel) . Évalué à 3 (+1/-0).
Quelque chose me dit que ce mot n'est pas employé dans le journal et les commentaire dans un sens documenté par les dictionnaires classiques [*]. Me tromperais-je ? Ça rend le journal légèrement hermétique. Peut-être qu'avec une définition… ?
[*] exemple : « Partie de la philosophie qui a pour objet l'être en tant qu'être, qui étudie les propriétés générales de l'être. » (ac. n°9)
« IRAFURORBREVISESTANIMUMREGEQUINISIPARETIMPERAT » — Odes — Horace
[^] # Re: Ontologie
Posté par Ontologia (site web personnel) . Évalué à 5 (+3/-0). Dernière modification le 01 juillet 2025 à 15:52.
Une clarification s'impose effectivement.
Dictionnaire Le Robert :
2: Informatique
Ensemble structuré de concepts permettant de donner un sens aux informations.
Et sinon Wikipédia Ontologie_(informatique)
« Il n’y a pas de choix démocratiques contre les Traités européens » - Jean-Claude Junker
[^] # Re: Ontologie
Posté par BAud (site web personnel) . Évalué à 5 (+3/-0).
en clair : une ontologie ajoute de la sémantique à une taxonomie o_O /o\
en gros, ajouter du sens à un simple ensemble de faits catégorisés (recensés par catégorie).
# Recherche ?
Posté par Thomas (site web personnel) . Évalué à 1 (+0/-0).
Merci !
Question connexe : sais-tu si les LLM ont mené à des avancées intéressantes dans la recherche académique ? Ils servent à créer de superbes outils bavard et des sortes d'interfaces en langage naturel, mais sont-ils utiles théoriquement ?
[^] # Re: Recherche ?
Posté par Pol' uX (site web personnel) . Évalué à 4 (+3/-1).
Je pense qu'ils contribuent à énormément de sujets d'étude en sciences sociales autour de la post-vérité.
Adhérer à l'April, ça vous tente ?
# levain
Posté par Krunch (site web personnel) . Évalué à 5 (+3/-0).
Moi je préfère nourrir mon levain, le rendement me semble bien meilleur.
pertinent adj. Approprié : qui se rapporte exactement à ce dont il est question.
Envoyer un commentaire
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.