Generative AI in geospatial: A Pyramid of Increasing Complexity
Florent Gravin
Les grands modèles de langage (LLMs) comme GPT ont révolutionné notre perception et notre façon d’interagir avec la technologie: ingérer du contenu en masse, générer du texte, automatiser nos processus n’en sont que quelques exemples. Dès lors, les idées foisonnent quant à la manière dont cette révolution pourrait être appliquée aux applications géospatiales. Il faut cependant comprendre que le véritable potentiel de ces modèles ne réside pas seulement dans leur utilisation basique, mais dans leur intégration au sein de systèmes plus complexes, décuplant leur potentiel pour répondre à des défis plus spécifiques.
Intégrer efficacement l’IA générative dans ses services implique une montée en puissance progressive de la maîtrise de la technologie. Nous proposons de représenter ce cheminement sous la forme d'une pyramide de connaissances, illustrant la complexité croissante des systèmes dont l’objectif est de répondre aux problématiques d’impact sur les territoires, et surtout de favoriser l’aide à la prise de décision.
1. Interaction de base (Chat avec GPT)
Le premier niveau d'interaction, et probablement le plus courant, est l'utilisation d'un service de chat qui s'appuie sur un grand modèle de langage sophistiqué, tel que ChatGPT.
Beaucoup d’employés intègrent déjà ce genre d’outils dans leurs routines quotidiennes pour traduire du texte, résumer des documents ou générer du contenu.
Pour analyser les données géospatiales, il existe GPT Data Analyst où l’on peut uploader n'importe quel fichier CSV ou GeoJSON. Le LLM lit les données et répond aux questions relatives à leur contenu. La réponse peut être fournie au format texte ou sous forme de graphiques illustrant des tendances dans les données tabulaires.
Cas d'utilisation : en savoir plus sur les instances de geOrchestra
Télécharger le fichier GeoJSON sur la plateforme GéoBretagne.
Poser quelques questions sur le jeu de données :
- Combien d'instances geOrchestra existe-t-il ?
- Où sont-elles ?
Ces interactions sont assez basiques, et deviennent très limitées si l’on souhaite obtenir des informations plus précises ou intégrer ces capacités dans une application dédiée.
2. Prompt Engineering
Le niveau d'interaction suivant consiste à concevoir et affiner les prompts envoyés au modèle d’IA afin d'obtenir des résultats plus personnalisés. Cet effort permet de contextualiser les LLMs : on définit exactement la façon dont le modèle doit répondre. On peut par exemple clarifier l’objectif de la question, le format de la réponse, le ton, l’émotion et on peut fournir des exemples ou autres informations utiles. Cela aide le LLM à mieux répondre.
En général, les développeurs d'applications définissent un modèle de prompt très précis affiné au cas d’usage, puis la requête de l'utilisateur y est incorporée. L’application IA fonctionne comme un proxy qui reformule la requête de l'utilisateur en lui ajoutant du contexte.
Cas d'utilisation : afficher des données OpenStreetMap sur une carte, en fonction d'une requête en langage naturel.
Requête humaine : Afficher tous les restaurants végétariens de Bâle
Voici les différents aspects que le prompt doit gérer :
- Extraction d'informations : le LLM doit extraire ce que l'utilisateur veut afficher - dans ce cas, les restaurants végétariens - et où, à Bâle.
- Générer une requête d'API : le LLM doit générer une requête OverPass (une API en ligne gratuite pour récupérer les données OSM) basée sur les paramètres de la recherche. Il doit générer une emprise spatiale (bbox) pour l'emplacement et les filtres OverPass corrects pour le type d’objets attendus.
- Retour de la requête API : le LLM doit retourner uniquement la requête API sans aucun texte supplémentaire.
- Fournir des exemples : il est préférable d’ajouter des exemples dans le prompt pour aider le LLM à générer l'URL correcte.
La sortie attendue est:
Cette approche ne fonctionne que si le LLM connaît la syntaxe de l'API OverPass, ce qui signifie qu'il a été entraîné avec les spécifications OverPass. C'est généralement le cas des plus gros modèles.
Pour avoir les mêmes résultats sur ses propres données, sur lesquelles le modèle n'a pas été entraîné, il faut monter un étage de la pyramide et mettre en place un système de génération augmenté par récupération (RAG).
3. Réponses contextuelles améliorées (Retrieval-Augmented Generation)
La génération augmentée par récupération (RAG) est une technique qui permet d'améliorer la précision et la fiabilité des modèles génératifs d'IA en incorporant des faits obtenus à partir de sources externes. Étant donné que les LLM SaaS n'ont pas accès aux données géospatiales propriétaires, il faut ajouter une phase de récupération pour transmettre les données en tant que contexte au LLM.
De la demande de l'utilisateur à la réponse, le RAG comporte généralement plusieurs étapes destinées à améliorer la précision des résultats. Ces étapes reposent souvent sur l'interaction avec un modèle de langage (ML), ce qui signifie que plusieurs requêtes aux modèles seront faites tout au long du processus.
En général, les techniques suivantes sont utilisées pour concevoir et améliorer les systèmes de RAG :
- Requête de l'utilisateur : l'utilisateur commence par poser une question ou faire une demande.
- Reformulation de la question : l'IA peut reformuler la question pour s'assurer qu'elle est bien comprise ou pour qu'elle corresponde au format nécessaire à la suite du traitement.
- Sélection de la source de données : en fonction de la nature de la requête, l'IA détermine les sources de données externes à utiliser (par exemple, bases de données, API).
- Récupération des données : le système construit une requête d'extraction afin de récupérer les informations pertinentes - cela peut impliquer des recherches sémantiques, des appels d'API ou d'autres méthodes.
- Classement des documents : les documents ou données récupérés sont classés en fonction de leur pertinence par rapport à la requête.
- Intégration contextuelle : les données les plus pertinentes sont ajoutées au contexte, enrichissant ainsi la compréhension de l'IA avant de générer une réponse.
- Génération de la réponse finale : l'IA génère ensuite une réponse, en utilisant à la fois la requête de l'utilisateur et les données récupérées.
Cas d'utilisation : Géo-intelligence sur des données propriétaires.
Quand est-ce que les ordures sont ramassées dans mon quartier, Paris 8ème ?
Imaginons disposer d'un ensemble de données qui comprend les horaires de ramassage des ordures pour Paris, mais que le LLM n'a pas été entraîné sur ces données. Voici comment un RAG peut répondre au problème :
- Indexation des données : tout d'abord, les données doivent être indexées dans une base de données vectorielle pour permettre une recherche rapide et précise.
- Extraction des requêtes : le système RAG identifie les éléments clés de la requête - ce qui est demandé (heures de ramassage des ordures), le jeu de données qui contient ces informations et le lieu (Paris 8ème).
- Géocodage : le système récupère la géométrie de Paris 8ème à l'aide d'un service de géocodage.
- Recherche sémantique : le système effectue une recherche sémantique pour trouver le jeu de données pertinent, par exemple le calendrier de ramassage des ordures. La recherche ne renvoie que les métadonnées.
- Récupération de l'ensemble de données : à partir des métadonnées, le RAG récupère les objets de la couche de données.
- Intersection spatiale : le système récupère l’emprise (par exemple, les limites de Paris 8ème) et effectue une intersection spatiale avec le jeu de données pour trouver l'horaire spécifique à notre quartier.
- Réponse finale : les informations pertinentes sont transmises au LLM, qui interprète les données et fournit l'heure spécifique de ramassage des ordures.
4. Développement de modèles personnalisés (Fine-tuning des modèles)
Toutes les techniques précédentes peuvent être mises en œuvre en s'appuyant sur des services existants (GPT, Claude, Mistral, etc.). Ces services fournissent tout type de modèles (grands modèles, modèles d’embedding, modèles spécifiques etc..) qui peuvent être utilisés tout au long du processus RAG. Mais ces services ne sont pas gratuits et ne seront jamais entraînés sur des données spécifiques. Aller au-delà du RAG pour affiner les modèles permet de construire des modèles plus adaptés à nos propres données et cas d’usage. Le fine-tuning permet d’utiliser un modèle existant et de l'entraîner sur du contenu spécifique.
Cas d'utilisation :
Entraîner un LLM sur ses propres données géospatiales :
On peut affiner un modèle sur nos propres données géospatiales afin que le modèle puisse répondre directement aux questions sans avoir besoin d’une phase de récupération. Cependant, le RAG est généralement préconisé dans ce cas d'utilisation car le fine-tuning et l'hébergement d'un LLM peuvent être très complexes et coûteux.Entraîner un modèle d’embedding sur ses métadonnées (ou données) :
Dans le processus RAG, la phase de récupération basée sur la recherche sémantique est fondamentale. Dans notre cas d'utilisation, trouver le bon jeu de données qui correspond à la demande de l'utilisateur est essentiel pour que la réponse soit pertinente. Étant donné que la recherche sémantique s'appuie sur les données vectorielles générées par les modèles d’embedding, et que les modèles d’embedding sont relativement petits, il est possible de les affiner et de les entraîner sur le schéma des métadonnées géospatiales, plus précisément sur son catalogue de métadonnées.Entraîner un modèle de conversion de texte en SQL pour générer du SQL PostGIS :
De nombreux modèles peuvent transformer du texte en requêtes SQL s'ils connaissent la structure du jeu de données (pour utiliser les bonnes colonnes pour la requête). Nous pourrions entraîner un modèle pour générer des requêtes spatiales, telles que les requêtes SQL PostGIS avec des jointures, des agrégations et des calculs d’indicateurs géospatiaux. Nous pourrions également imaginer d'autres modèles tels que text-to-OSM, text-to-OGC-API, qui peuvent aider le RAG à interagir directement avec les standards OpenGeo.
Comme nous pouvons le constater, il existe de nombreuses façons d’intégrer l’IA générative et les modèles de langage (LLM) aux applications géospatiales. En maîtrisant chaque niveau de cette pyramide, chacun peut pleinement profiter du potentiel des LLMs, à son échelle pour révolutionner ses services.
Carrière
Vous souhaitez travailler dans un environnement inspirant et rejoindre nos équipes motivées et multiculturelles ?