Comment apprendre l'EAD à un LLM : introduction (1/3)

Derrière cette question, c’est la perspective d’un système d’assistance par l’IA pour automatiser la génération d’instruments de recherche encodés en EAD/XML qui est posée, un système dont le déploiement pourrait idéalement s’envisager dans plusieurs environnements : - un chatbot qui permettrait de passer des instructions en langage naturel, telles que “crée un template minimal en EAD pour le fonds X qui comprend deux séries”; - un outil ou plugin d’auto-complétion dans un éditeur xml qui proposerait les éléments et attributs EAD pertinents au fur et à mesure de la saisie ; - un générateur d’inventaires archivistiques en EAD couplé à un système Speech-To-Text qui permettrait d’administrer la saisie d’inventaires par des commandes vocales ; - etc...

Le billet précédent sur l'extraction automatisée de données structurées se clôturait sur la génération automatisée d’une notice Marc à partir d’une image de page de titre via un système d’agents IA : reconnaissance et extraction du contenu textuel de l’image par un premier agent avec un VLM, puis conversion par un LLM du texte non structuré en notice Marc par le deuxième agent. De manière implicite dans cet exemple, la deuxième tâche de création de métadonnées structurées en Marc reposait sur le présupposé que le LLM utilisé non seulement connaissait le format Marc mais aussi qu’il en avait une compréhension sémantique suffisante pour se généraliser avec une précision satisfaisante à partir de différents contenus textuels. Un moyen de s’assurer de cette connaissance générale nécessaire et suffisante sur un formats de données spécialisé comme le Marc (et la logique est la même pour l’EAD) est de choisir un LLM assez gros et puissant pour être à peu près sûr qu’il intègre des informations sur le standard voulu dans ses données d’entraînement initiales. Le choix du modèle Llama3-70b permettait de le garantir dans l'exemple de la création de notices Marc, et c'est la même logique à l'oeuvre quand nous formulons des requêtes mobilisant des connaissances métiers spécifiques sur des LLM comme GPT-4o ou Mistral dans des chatbots en ligne.

Mais dans le cadre d’un véritable assistant IA pour la génération de données structurées en EAD qui est l’objectif ici, l’inférence en mode zero-shot (sans apprentissage ou contexte complémentaire) sur un gros LLM, et même si elle peut retourner des résultats plutôt conformes au schéma EAD, peut ne pas être envisageable en mode systématique pour au moins quatre raisons :

  • le coût d’usage et/ou d’infrastructure liés aux LLMs de grande taille,
  • l’impossibilité de contrôler le non-déterminisme de la réponse du modèle qui altère le niveau de confiance à accorder aux réponses,
  • les risques d’hallucinations qui ne peuvent être ni complètement écartés ni facilement monitorés (le modèle répondant avec de vrais éléments de l’EAD mais aussi parfois des balises “inventées”) ;
  • et enfin le manque de sécurisation relative aux requêtes utilisateurs dans le contexte de l'accès à un LLM distant.

Le challenge consiste donc à trouver une technique d’apprentissage qui permette à un modèle de s’aligner sur la structure et la sémantique de l’EAD/XML de manière à ce qu’il soit capable de générer de l’EAD/XML from scratch à partir d’une instruction (tâche de génération) ainsi que de compléter de manière cohérente des snippets de codes (tâche de complétion), et ce avec un niveau de confiance relativement élevé. La plupart du temps, qui dit entraînement d’un modèle afin de le calibrer sur les nuances et la terminologie d’un domaine métier peu ou mal connu, dit fine-tuning du modèle, mais l’option du RAG, bien que pouvant paraître surprenante dans ce contexte, peut aussi être envisagée comme modalité de personnalisation de l’output d’un modèle.

On rappelle que :

  1. Le RAG consiste à connecter un LLM à des connaissances externes pertinentes stockées dans une base de données afin de récupérer des données contextuelles pertinentes en préalable à la génération du texte. En intégrant dans le raisonnement du modèle des informations fiables qui viennent compléter son domaine de connaissances initial, le RAG permet d’améliorer les résultats du LLM qui combine alors sa capacité à comprendre le langage avec les connaissances pertinentes d’un domaine spécifique. Dans un système de RAG,la structure même du modèle (les layers, les poids…) n’est pas modifiée, il s’agit d’embarquer dans l’espace de vecteurs du modèle la question de l’utilisateur augmentée d’embeddings contextuels pertinents issus de la base de connaissance externe, ce qui permet d’orienter les calculs probabilistes génératifs du LLM pour un résultat plus fiable.
  2. Le fine-tuning d’un modèle consiste an contraire à post-entraîner un modèle pré-entraîné sur un dataset d’exemples spécialisés et étiquettés en touchant à la structure du modèle par la modification de ses paramètres. Le fine-tuning d’un LLM peut relever de l’adaptation du modèle à un domaine de connaissances (afin de réduire l’écart entre les informations générales sur lesquelles le modèle a été formé et les données plus ciblées liées au domaine) ou de l’adaptation du modèle à la réalisation d’une tâche spécifique (le calibrage d’un LLM sur un ensemble de données spécifique à une tâche s’effectue en attachant un layer spécifique à la tâche dans les layers existants du LLM).

Les deux billets suivants décrivent la mise en oeuvre de ces deux options pour l'apprentissage du format EAD sérialisé en XML à un modèle de langage pré-entraîné.

Deux applications permettent d'illustrer la validité de ces approches :

  • un chatbot d'inférence comparative : en mode zero-shot, un système de RAG et sur un nouveau modèle fine-tuné pour la génération d'EAD/XML

enter image description here


A noter : vu la complexité de la DTD XML/EAD, l’option du in-context learning par du few-shot prompting (qui consisterait à peupler un prompt avec des exemples d’outputs souhaités) paraît trop complexe. Néanmoins, sous réserve d’utiliser un modèle présentant une fenêtre de contexte de taille suffisante, on peut aussi s'amuser à tester un prompt contextualisé qui intègrerait la totalité du schéma XSD de l’EAD, et il se trouve que les résultats de l’inférence ne sont pas si mauvais !


  • un éditeur EAD/XML minimaliste alliant reconnaissance vocale via Whisper (tournant sur le GPU du navigateur) pour la transcription des instructions utilisateur puis automatisation de la création d'inventaires en EAD via l'inférence sur le nouveau modèle produit.

enter image description here

"> ');