Recherche d'information et graphes de données
Résumé de section
-
L'objectif de ce cours est d'acquérir des compétences sur la recherche d'information et l'utilisation du graphe des données sur le Web
Ce cours est composé de trois parties :
- Les technologies XML pour représenter, transformer et valider syntaxiquement l'information;
- Les moteurs de recherche, les métadonnées, les embbedings de mots et de phrases, les LLM et les RAG pour indexer et retrouver l'information;
- Les graphes des données sur le Web pour permettre au programme d'utiliser des données structurées sur le Web.
Évaluation : la note finale est constituée d'une note d'examen pratique (50%) et d'une note de projet (50%). Durant l'examen pratique les supports de cours annotés sont autorisés.-
Forum
-
-
Voici une description de trois projets. Le livrable de chaque projet sera un dépot gitlab, dont je serai aussi propriétaire, avec à la racine du projet un README qui contiendra les informations suivantes :
- procédure d'installation et d'exécution;
- présentation des résultats (avec un regard critique).
De plus le mardi 28 avril vous ferez une présentation de 20 min.
Projet 1 : Amélioration du chatbot ITI (2 étudiants)
Le département ITI dispose d’un serveur (https://iti-llm.insa-rouen.fr) sur lequel sont installés des modèles de langage. Ce serveur propose deux outils web à vocation pédagogique :
-
/prochain_token.html, qui permet de comprendre qu’un LLM ne répond pas réellement à des questions, mais identifie uniquement les prochains tokens les plus probables ;
-
/chatbot, qui permet de comprendre le fonctionnement d’un chatbot utilisant un LLM, en offrant la possibilité de modifier certains paramètres (le modèle, la température et la prise en compte de l’historique).
En plus de ces deux outils, ce serveur permet d’accéder aux LLM via l’API OpenAI tout en contrôlant les accès.
Le code de ce serveur est disponible sur GitLab (https://gitlab.insa-rouen.fr/delestre/proxy-llm). L’objectif de ce projet est triple :
-
Refactorer le code : le code étant monolithique, l’objectif est de le décomposer en plusieurs modules cohérents ;
-
Améliorer l’outil prochain_token : l’objectif est de le rendre plus ergonomique et de faire apparaître visuellement les tokens (par exemple en alternant les couleurs de fond), qu'ils soient ou non imprimable (retour chariot, tabulation, etc.);
-
Améliorer l’outil chatbot : l’objectif est de revoir l’IHM afin de la rendre plus ergonomique et d’ajouter de nouveaux paramètres (prompt système, taille de l’historique, nombre maximal de tokens).
Projet 2 : Segmentation sémantique de support de cours et proposition d'AAD (3 étudiants)
Avec la mise en place de l’approche par compétences, le département ITI demande aux enseignants d’identifier, dans leurs cours, les Attendus d’Apprentissage Disciplinaire (savoirs, savoir-faire et savoir-être), ou AAD, enseignés. Certains enseignants ont déjà réalisé ce travail (voir les descriptions des cours disponibles sur https://gitlab.insa-rouen.fr/iti/syllabus). Cependant, cette tâche est chronophage.
Une aide aux enseignants consisterait à extraire automatiquement ces AAD à partir des supports de cours. Une hypothèse est que, pour un support de cours donné, un ou plusieurs transparents présentent la même idée ou le même concept, et qu’en fournissant le contenu de ces transparents à un LLM, celui-ci serait capable de produire un AAD correspondant.
L’objectif de ce projet est donc de développer un outil qui, à partir d’un support de cours au format PDF, produise en sortie un document XML contenant les différentes parties du document, accompagnées de propositions d’AAD. Cet outil pourra utiliser l’un des LLM du département.
Projet 3 : ITI dans le Web des données (2 étudiants)
Comme nous le verrons en cours et en TD, il existe un Web à destination des machines, appelé Web des données. Ce Web des données repose sur l’utilisation de schémas décrivant des classes d’entités ainsi que les relations qui les lient. L’un des schémas les plus connus est schema.org, qui propose des classes et des relations permettant notamment de décrire des offres de formation.
Le site web https://iti.pages.insa-rouen.fr/syllabus propose des fichiers PDF décrivant les spécialités enseignées dans le département. La production de ces PDF est générée automatiquement par le pipeline de CI/CD du projet https://gitlab.insa-rouen.fr/iti/syllabus. Ce pipeline exécute des programmes Python qui génèrent ces documents PDF.
L'objectif de ce projet est que ce site Web propose en plus des PDF des ressources pour le Web des données. Ces données seront générées aussi par le CICD du projet gitlab mais à l'aide de feuilles XSL-T en utilisant de bons URI déréférençable (cf. le cours) pour désigner les entités.
-