Mémoire de maîtrise (2025)
Résumé
Le Text-to-SQL est la tâche consistant à générer une requête SQL exécutable par une base de données à partir d’une requête en langage naturel. Son objectif est de démocratiser l’accès aux données en entreprise, en permettant aux utilisateurs non techniques d’interroger directement leurs données. Les récents progrès des grands modèles de langage (LLM) ont permis d’atteindre une précision remarquable sur les jeux de tests publics et d’envisager des déploiements en production dans des environnements contrôlés. Cependant, les systèmes actuels de Text-to-SQL restent opaques, et leur évaluation comparative sur des jeux de données privés demeure difficile. Une exigence clé pour une évaluation robuste sur des jeux de données privés est la création d’un jeu d’évaluation de référence (golden set). La construction manuelle d’un tel jeu est coûteuse en main-d’œuvre, tandis que s’appuyer principalement sur des LLM introduit du non-déterminisme, des hallucinations, des problèmes de reproductibilité, ainsi que des coûts importants. Les jeux de tests publics de Text-to-SQL tels que Spider et BIRD offrent une alternative, mais ne reflètent pas la complexité des requêtes présentes dans les charges de travail d’entreprise. Les requêtes en entreprise présentent souvent des structures de jointure plus riches, des schémas contenant du jargon et des acronymes propres au domaine, ainsi que de nombreuses dépendances, ce qui met les systèmes de Text-to-SQL à l’épreuve. De plus, les classements sur les tableaux d’honneur publics peuvent ne pas refléter la performance relative des systèmes sur des jeux de données privés. Pour relever ces défis, nous proposons deux techniques d’automatisation inédites : (i) Join Query Expansion (JQE) et (ii) Textual Query Augmentation (TQA). Ces deux approches visent à créer des points de blocage (choke points) ciblés, afin de mettre systématiquement à l’épreuve les différentes parties des systèmes de Text-to-SQL. JQE se concentre sur la com-posante SQL et accroît systématiquement la complexité des requêtes en élargissant l’ensemble des tables jointes dans une requête SQL donnée. Elle intègre des vérifications sémantiques pour garantir des jointures valides et non transitives, ainsi qu’un mécanisme d’élagage tenant compte de la diversité afin de maximiser la couverture structurelle. TQA se concentre sur la composante en langage naturel, en traitant spécifiquement le problème de l’élimination des tables de liaison : il détecte les tables de liaison dans la requête SQL (souvent, mais pas toujours, des tables relationnelles traversées par des jointures), détermine si la requête en langage naturel les mentionne, et applique l’une des trois stratégies d’augmentation pour modifier ces références. Nos expériences avec JQE montrent une augmentation substantielle de la diversité struc-turelle, avec un degré moyen du graphe passant de 0,82 à 1,80 et une cyclicité des jointures passant de 0,27% à 4%, deux indicateurs de requêtes plus complexes. Nous démontrons égale-ment que cette complexité accrue entraîne, pour deux systèmes à l’état de l’art, une baisse moyenne d’environ 20% de la précision d’exécution. Avec TQA, bien que les trois stratégies d’augmentation se révèlent efficaces pour éliminer les tables de liaison, les systèmes Text-to-SQL à l’état de l’art restent relativement résilients, avec une baisse maximale observée de 5,6% de la précision d’exécution.
Statistiques
Total des téléchargements à partir de PolyPublie
Téléchargements par année
Provenance des téléchargements
