🚀 PIR18 - Extraction de données contextuelles pour les ODD à l'aide des LLM et des graphes de connaissances
Ce dépôt regroupe l'ensemble des codes, ressources et documents liés au Projet d'Initiation à la Recherche 18 (PIR18). L'objectif principal de ce projet est de développer une méthode avancée d'extraction de données contextuelles basée sur les Grands Modèles de Langage (LLM) et de les structurer sous forme de graphes de connaissances. Cette approche vise à faciliter l'analyse et la visualisation des relations entre les Objectifs de Développement Durable (ODD), leurs cibles et leurs indicateurs.
- 🏆 Objectifs principaux
- 🗂️ Structure du dépôt
- 🛠️ Prérequis pour l'installation
- 📈 Méthodologie utilisée
- ✨ Fonctionnalités principales
- 🚀 Prochaines étapes
- 💡 Contributeurs
- 📫 Contact
-
Extraction de données contextuelles
- Utiliser des LLM pour identifier et extraire des topics, entités et mots-clés pertinents à partir de métadonnées textuelles liées aux ODD.
-
Généralisation de l'approche
- Adapter les algorithmes d'extraction pour couvrir l'ensemble des 17 ODD et leurs 169 cibles, en prenant en compte les différences de structure et de format des données.
-
Création et visualisation des graphes de connaissances
- Modéliser les données extraites sous forme de nœuds et relations, et les intégrer dans des graphes de connaissances interactifs.
-
Analyse des relations complexes
- Étudier les interconnexions entre les objectifs, cibles, indicateurs et données externes grâce à des outils de visualisation avancés (ex. Neo4j).
-
/MetaData/
Contient des fichiers de métadonnées extraits de format .docx sur le site https://unstats.un.org/sdgs/metadata et convertis en formats txt. Ces metadonnées sont classées par ODD. -
/Other/
Contient tous les documents annexes utilisés dans des scripts -
/Output/
Dossiers contenant les résultats générés. Ce sont les mots-clés extraits par les LLM et les LM, organisés comme suit :/DataLLM/
/llama/
- Mots-clés extraits par le modèle LLaMA, classés selon les ODD, cibles et indicateurs.
/mistral/
- Mots-clés extraits par le modèle Mistral, classés selon les ODD, cibles et indicateurs.
/DataLM/
- Tous les mots-clés classés par ODD, cibles et indicateur et regroupé dans le dossier spécifié.
-
/Scripts/
Répertoire des scripts actifs actuellement utilisés pour :- Le téléchargement des métadonnées
- L'extraction des mots-clés.
- La création et la visualisation des graphes de connaissances.
- L'extraction des noms et des descriptions des SDGs
- Le traitement de question
-
/Tests/
Contient des scripts expérimentaux et des algorithmes en cours de test. -
requirements.txt
Liste des dépendances Python nécessaires pour l’exécution du projet.
-
Cloner le dépôt
git clone https://github.com/MarcelAssie/PIR18.git
-
Installer les dépendances
Assurez-vous que Python 3.9 ou une version ultérieure est installé :pip install -r requirements.txt
-
Configurer Neo4j
- Installer Neo4j (https://neo4j.com/use-cases/knowledge-graph/).
- Créer votre DBMS (Database Management System)
- Les identifiants de votre DBMS doivent être remplacés dans les scripts suivants :
.\Scripts\graph_construction.ipynb
(Dans la 3ᵉ cellule).\Scripts\response_toolbox.py
(De la ligne 25 à la ligne 27).\Scripts\interface.py
(De la ligne 71 à la ligne 74)
- Activer le plugin APOC pour bénéficier de fonctionnalités avancées.
-
Configurer LM Studio
- Télécharger et installer l'application LM Studio (https://lmstudio.ai/)
- Télécharger les modèles Mistral 7B et LLaMA 2-7B dans la section Discover.
-
Lancer l'interaction
python .\Scripts\start.py
NB : Pour un lancement du programme depuis le début, voici les scripts que vous devez exécuter dans l'ordre suivant :
- Chargement et organisation des métadonnées : -
.\Scripts\get_manage_metadata.py
- Téléchargement des descriptions des ODD, cibles et indicateurs :
.\Scripts\get_sdg_names.ipynb
- Extraction des mots-clés des métadonnées :
.\Scripts\extraction_entities_llama.ipynb
(Pour l'extraction avec le modèle llama).\Scripts\extraction_entities_mistral.ipynb
(Pour l'extraction avec le modèle mistral).\Scripts\extraction_entities_lm.ipynb
(Pour l'extraction avec les LM)- Construction du graphe de Connaissance :
.\Scripts\graph_construction.ipynb
- Interaction :
.\Scripts\start.py
N'oubliez pas d'exécuter chaque script dans cet ordre pour garantir un lancement correct du programme.
-
Revue de la littérature
Étudier les approches actuelles pour :- L'extraction de données contextuelles.
- La création et l'optimisation de graphes de connaissances (KG).
-
Collecte et préparation des données
Préparer les métadonnées disponibles sur UN SDG Metadata pour une exploitation optimale. -
Développement de modèles LLM
Adapter et tester des modèles comme Mistral 7B et LLaMA 2-7B Chat pour l'extraction de topics et d'entités liés aux ODD. -
Construction des graphes de connaissances
- Structurer les données extraites sous forme de nœuds et relations dans Neo4j.
- Exemple de relations :
- Goal → contains → Target
- Target → contains → Indicator
- Indicator → measuredBy → Keyword
-
Validation et visualisation
Manipuler et interroger les graphes à travers des cas pratiques pour valider l'approche.
- Téléchargement et organisation automatisés des métadonnées sur le site officiel UN SDG Metadata.
- Extraction automatisée des mots-clés et topics des ODD.
- Création de graphes interactifs pour explorer les relations sémantiques.
- Visualisation avancée des liens entre indicateurs, cibles et objectifs.
-
Optimisation du temps d'exécution
- Intégrer des outils afin d'accélérer le temps de traitement de certaines opérations.
-
Publication scientifique
- Documenter les résultats obtenus dans un article scientifique et le soumettre à une revue ou conférence.
-
Étudiants
- Liam Longfier
- Marcel Assie
-
Encadrants
- Malika GRIM-YEFSAH
- Wissal BENJIRA
Projet réalisé dans le cadre de l'Initiation à la Recherche des étudiants de 2ème année d'ingénieur à l'Ecole Nationale des Sciences Géographiques, France.
Pour toute question ou suggestion :
📧 Emails :
🛠️ Outils utilisés : Python, Neo4j, LM Studio, HuggingFace, PyCharm, Jupyter Notebook.