Introduction

Et si interroger sa base de données était aussi simple que poser une question à ChatGPT ? L'accès aux données et leur analyse sont des éléments essentiels à la réussite de toute entreprise. Cependant, l'exploitation efficace des données est souvent freinée par la nécessité de posséder des compétences techniques pointues, notamment en SQL ou en BI, et une compréhension approfondie du schéma de données de l’entreprise. Cette barrière technique limite l'accès à l'information pour une grande majorité d'employés, créant ainsi un goulot d'étranglement dans certains processus décisionnels.

L’intérêt pour les interfaces IA accessibles et simples est croissant. Nous pouvons imaginer un monde où les bases de données d’entreprise ne sont pas uniquement accessibles à une fraction limitée des employés mais à toute personne via une simple expérience conversationnelle comme avec ChatGPT.

Discussion avec un LLM capable de connaitre sa base de données

Ainsi ce cas d’usage souhaite répondre à deux objectifs principaux :

  1. Démocratiser l'accès aux données : permettre à tous les profils, techniques ou non, d’interagir facilement avec les données.
  2. Optimiser le temps des équipes : réduire le temps consacré à l’extraction et à la manipulation des données pour qu’elles puissent se concentrer sur des analyses à forte valeur ajoutée.

Ces objectifs s’accompagnent d’une priorité essentielle : garantir une exploitation sécurisée et fiable de la base de données, assurant ainsi la protection des informations sensibles. 

La performance de l’IA générative sur le benchmark BIRD 

Le Benchmark BIRD, publié en 2023, s'intéresse à l’évaluation de la performance de l’IA sur les tâches text-to-SQL. Cela renvoie à la capacité d’un modèle IA à traduire une question formulée en langage naturel en requête SQL fiable et correcte permettant d’interagir informatiquement avec sa base de données. 

La base de données BIRD centralise 95 autres bases de données (33.4 Go) issues de 37 domaines professionnels différents (représentés ci-dessous). Elle dispose de 12751 paires de questions-réponses : chaque question formulée en langage naturel est dotée de sa réponse associée exprimée en langage SQL. 

BIRD benchmark business domains

Example of Q&A based on Text-To-SQL

Le benchmark BIRD se distingue par sa pertinence, car il reflète une complexité et une qualité de données proches de celles rencontrées dans une véritable entreprise. Il offre ainsi un cadre réaliste pour évaluer les performances. À titre de référence, la performance humaine sur ce benchmark, atteinte par des data engineers, est de 92,9 %. 

Ci dessous les performance de l’IA sur ce benchmark au moment de la rédaction de l’article :

Results of BIRD benchmark. A gap remains

 

Depuis 2023, une véritable course s’est engagée pour égaler les performances humaines, mais malgré des avancées spectaculaires dans le domaine des LLM, les chercheurs en IA n’ont pas encore réussi à atteindre ce niveau. 

Si vous souhaitez découvrir l'approche technique adoptée par l'une des équipes lauréates, vous trouverez davantage de détails dans les références citées dans cet article.

Etude de cas Aqsone pour les achats  

Guidés par une envie d’explorer ce cas d’usage innovants, une équipe de l’Aqsone Lab s’est formée pour mener une série d'expérimentations. Son objectif : évaluer la faisabilité de l'exploration conversationnelle des données en s'appuyant sur les solutions et approches existantes, sans toutefois participer directement au benchmark BIRD.

Voici les étapes clés de notre démarche :

1. Analyse des solutions existantes 

Nous avons passé en revue les solutions existantes, qu'il s'agisse d'outils sur étagère comme DataGPT et DataChat ou d'approches techniques telles que la génération de code SQL à partir du langage naturel (text-to-SQL) ou la génération de code Python à partir de langage naturel. 

L'évaluation qualitative s'est appuyée sur une série de critères, notamment le fonctionnement, le coût, la confidentialité des données, la compatibilité avec des bases de données multi-tables, la simplicité d'utilisation, la capacité à générer des visualisations de données et l'expérience conversationnelle globale.

Notre analyse a mis en lumière des limites majeures de certains outils existants, notamment en termes de transparence sur leur fonctionnement (et prix), la qualité de leur documentation, les garanties sur la confidentialité et la sécurité des données, ainsi que de leur capacité à gérer des bases de données multi-tables.

2. Création d'un jeu de données de référence et un jeu d’évaluation 

Pour refléter au mieux les données d'entreprise réelles, nous avons généré une base de données d'achat SAP. Ce jeu de données, conçu pour être accessible et compréhensible par un acheteur standard, a été utilisé comme base pour nos expérimentations.

Data schema from procurement

Un jeu de données d’évaluation est également créé. Il est composé de 30 séries de questions réponses : une question formulée en langage naturel et une réponse en SQL. 

Q&A table evaluation

3. Définition des approches à expérimenter

Nous avons mis en œuvre et testé trois différentes approches basées sur des LLM et des frameworks existants, tels que PandasAI, LangChain, LamaIndex et Vanna AI : ces outils ont l’avantage d’être déjà préconfigurés pour répondre à notre cas d’usage. Par conséquent, ils nécessitent très peu de personnalisation. 

Approche Fonctionnement Avantages Inconvénients Exemples de framework
Agent Le LLM agit comme un "cerveau" qui dirige une séquence d'opérations nécessaires pour accomplir la tâche. Flexible, autonome, capable de gérer les erreurs en temps réel. Peut être complexe à configurer. langchain_community.agent_toolkits.sql.toolkit, VannaDefault, PandasAI
Chaîne Le LLM suit un flux de travail prédéfini, souvent simple et séquentiel. Pratique, rapide, adapté aux processus répétitifs. Moins flexible pour des tâches complexes. langchain_experimental.sql.SQLDatabaseChain
Sémantique Le LLM comprend le sens des questions et les mappe aux structures SQL. Performant pour gérer des questions complexes et ambiguës. Coûteux en calcul et en entraînement. llama_index (SQLDatabaseLlama, NLSQLRetrieve, ChainOfTableQueryEngine), PandasAI v2

4. Evaluation des approches 

Le score “Execution Accuracy” est calculé sur la base du jeu de données d’évaluation initialement créé. Ce score permet de comparer les résultats d'exécution de la requête SQL de vérité et de la requête SQL prédite sur le contenu de la base de données. Voici les résultats obtenus :

Results tables of Aqsone Benchmark on procurement dataset

Ainsi, on conclut que l’utilisation d’un modèle de langage plus récent (GPT-4) combiné avec une approche Agent utilisant les métadonnées et des few shots, ou avec une approche Langchain chain native, permettent d’avoir les meilleurs résultats sur notre jeu de données composés de 30 questions réponses.  

  1. Développement d'une interface utilisateur intuitive

Pour faciliter l'interaction avec le LLM et la base de données, nous avons conçu une interface utilisateur dédiée basée sur Streamlit. 

Interface utilisateur d'application pour interagir avec une base de données via un chatbot

Nous avons intégré une fonctionnalité permettant de visualiser la requête SQL utilisée pour répondre à une question. Voici un exemple :

Interface utilisateur d'application pour interagir avec une base de données via un chatbot

Conclusions

Nos expérimentations ont démontré le potentiel prometteur des LLM pour faciliter l'accès aux données en entreprise. Les approches basées sur les chaînes ou sur les agents se sont distinguées par leurs performances, atteignant une précision d'exécution de 70% sur notre jeu de données expérimental. Avec l'utilisation de GPT-4, ces approches ont témoigné d’une impressionnante connaissance native des données SAP et peuvent offrir un niveau satisfaisant d'explicabilité grâce à l'affichage des requêtes SQL générées.

Ces résultats nous encouragent à croire que l'IA pourrait bientôt surpasser les experts en analyse de données en termes de rapidité et d'efficacité, plus précisément dans le domaine Text-to-SQL. L'existence du benchmark BIRD, dédié à l'évaluation des performances des IA sur des tâches text-to-SQL, constitue un atout majeur pour suivre les progrès et établir des standards de performance sur ce cas d’usage. 

Malgré ces avancées prometteuses, voici les trois défis principaux qui restent à relever :

  1. Assurer une fiabilité et une précision dans les réponses

Pour y remédier voici les solutions possibles : 

  • Fournir des données qualitatives et standardisées (comme SAP) en entrée 
  • Utiliser des techniques de “prompt engineering” pour : 
    • Inclure des informations contextuelles sur la base de données, telles que les descriptions, le schéma, le DDL, les clés primaires, les clés étrangères, les attributs, les métadonnées, le jargon, le contexte métier, les types de jointures, les filtres, les formats de date, etc. Plus le LLM dispose de contexte sur la base de données, plus il est probable que la réponse soit précise. 
    • Inciter le LLM à reformuler la question de l’utilisateur et à énoncer la démarche à suivre pour y répondre 
    • Inciter le LLM à formuler des requêtes SQL correctes et qui respectent les meilleures pratiques SQL (problèmes de syntaxe …) 
    • Appliquer des méthodes avancées de sélection multiple (self-consistency) qui consiste à générer plusieurs réponses et à choisir la plus cohérente
  • Vérifier la requête SQL après sa génération pour s'assurer qu'elle fonctionne sur la base de données, puis demander au LLM de corriger les erreurs si nécessaire.
  1. Assurer une bonne expérience utilisateur  

L’interaction avec l’outil doit être intuitive comme avec ChatGPT. Voici les meilleures pratiques : 

  • Permettre de reformuler les questions, consulter l'historique des interactions. 
  • Permettre au LLM d’obtenir des clarifications si on juge la question complexe ou incomplète.
  • Améliorer l’explicabilité des réponses du LLM en affichant soit la requête SQL générée, soit, idéalement, une explication détaillée du raisonnement suivi.
  1. Assurer une protection de la base de données 

Il est crucial de garantir des interactions sécurisées surtout à une époque où les données, souvent sensibles, jouent un rôle central dans les décisions. L’utilisation d’API externes, comme celle d’OpenAI, soulève des préoccupations légitimes concernant la sécurité et la confidentialité des données. Il est donc indispensable de mettre en place des solutions robustes pour protéger ces informations sensibles :

  • L'utilisation d’Azure OpenAI pourrait offrir un niveau de confidentialité accru. Le cas échéant, il est recommandé d'utiliser un LLM open source en local mais cette solution peut s’avérer coûteuse et parfois limitée car les modèles les plus performants sont rarement disponibles en open source. 
  • Assurer la sécurité des interactions avec la base de données, notamment en contrôlant rigoureusement les autorisations d’accès et les autorisations d’écriture pour préserver l’intégrité des données.

L'utilisation des LLM pour l'exploration conversationnelle des données est une innovation majeure qui pourrait transformer la façon dont les entreprises utilisent et exploitent leurs données. Les progrès accomplis à ce jour sont encourageants et ouvrent la voie à un avenir passionnant.

Références

  1. Benchmark BIRD 
    • Papier BIRD : Lien vers le papier BIRD
    • Benchmark BIRD : Site officiel du benchmark BIRD
    • Voici un résumé des travaux de l’équipe de Distyl IA qui a occupé la tête du classement BIRD entre juillet et août 2024 grâce à une précision de 71,83 %. Lien vers un article de blog , Lien vers le papier
      1. Utiliser le modèle GPT-4o d'OpenAI
      2. Effectuer un fine tuning itératif du modèle GPT-4o d’OpenAI sur des tâches spécifiques Text-to-SQL sur un ensemble d'exemples comportant des triplets : une question en langage naturel, la requête SQL correspondante, et les éléments de schéma associés.
      3. Maximiser l'utilisation du contexte du modèle en incluant toutes les informations de schéma possibles : ne pas appliquer la méthode traditionnelle de "schema linking" =>  Au lieu de filtrer les informations du schéma de la base de données, on fournit le schéma complet au modèle.
      4. Augmenter le contexte avec des informations sur les descriptions détaillées des colonnes, des indications sur la requête et des informations sur l'ordre des résultats et les agrégations attendues.
      5. Appliquer des méthodes de self-consistency consistant à générer plusieurs réponses et à choisir la plus cohérente par la suite.
      6. Appliquer une méthode de self-correction en simulant un LLM administrateur de base de données capable d’identifier et de corriger les erreurs dans les requêtes SQL générées si besoin.
    • Travaux d’une équipe ayant un score de 72.23% : Lien vers le papier 
  2. LangChain : Documentation LangChain sur l'utilisation avec SQL
  3. Vanna AI :
  4. PandasAI : Site officiel de PandasAI
  5. DataDM : Page sur Devpost
  6. Cas d’usage similaire réalisé avec LangChain et GPT-4 : Article de Quantmetry
  7. Comparaison entre les approches LLM agent et LLM chaine : lien de l’article de blog
  8. Le talk de Francesco Puppini intitulé “SQL with LLMs: chat with your data”“ youtube_link

Derniers articles du blog

Découvrez nos articles sur les dernières tendances, avancées ou applications de l’IA aujourd’hui.

Caroline
Data Scientist
Aqsone
Squad Com'
Technique

Introduction au Retrieval Augmented Generation (RAG)

En savoir plus
Long couloir d’archives avec des étagères métalliques remplies de dossiers et boîtes classées.
Louis
Data Scientist
Aqsone
Squad Com'
Technique

Interprétabilité des LLMs : le rôle des Sparse Autoencoders

En savoir plus
Vue aérienne du Golden Gate Bridge rouge au-dessus de l'eau turquoise, avec des voitures en mouvement.
Diane
Business Developer
Aqsone
Squad Com'
Innovation

L'Intelligence Artificielle au service des achats industriels

En savoir plus
Un ouvrier en casque rouge face à des grues de chantier et des conteneurs dans un port maritime.