TableRAG : un framework de génération augmentée par récupération conçu pour la compréhension des tableaux
TableRAG est un framework conçu pour résoudre les problèmes de perte d'informations structurelles et de manque de vue d'ensemble dans le questionnement de documents hétérogènes. Il combine l'exécution SQL et la recherche textuelle, permettant une compréhension unifiée des données tabulaires et la réalisation d'opérations complexes. Ce framework comprend la construction de bases de données hors ligne et un processus de raisonnement itératif en ligne en quatre étapes. Sur le nouveau benchmark HeteQA et d'autres benchmarks publics, TableRAG obtient d'excellents résultats, surpassant les méthodes RAG et programmatiques existantes, et constitue une solution avancée pour le raisonnement sur des documents hétérogènes complexes.

Principe fondamental
Extension de requête et recherche : TableRAG localise les informations clés dans les tableaux grâce à l'extension de requête, à la recherche de schéma et à la recherche de cellules. Il génère des requêtes indépendantes ciblant le schéma et les valeurs des cellules, évitant ainsi les informations redondantes liées à une requête unique.
Recherche de schéma : le modèle de langage ai peut identifier les colonnes clés et leurs types de données via les noms de colonnes, sans avoir à encoder la colonne entière. Par exemple, pour la question « Quel est le prix moyen d'un portefeuille ? », le modèle de langage génère des requêtes sur les noms de colonnes, telles que « produit » et « prix ».
Recherche de cellules : sur la base des requêtes générées par le modèle de langage, récupération des noms de colonnes et des cellules liés à la question. Par exemple, récupération des valeurs des cellules liées à « portefeuille ».
Tronquage sensible à la fréquence : introduction d'un budget d'encodage de cellules B. Si le nombre de valeurs différentes dépasse B, seules les B valeurs les plus fréquentes sont encodées.
Modules principaux de TableRAG
online_inference/main.py : code de raisonnement central de TableRAG, contenant la classe TableRAG qui implémente la logique principale du raisonnement en ligne.
offline_data_ingestion_and_query_interface/src/interface.py : utilise le framework Flask pour fournir une interface de requête SQL.
online_inference/tools/sql_tool.py : contient les fonctions d'outil de génération et d'exécution SQL, avec prise en charge d'un mécanisme de réessai.
offline_data_ingestion_and_query_interface/src/sql_alchemy_helper.py : fournit une classe d'assistance pour les opérations de base de données SQLAlchemy, prenant en charge l'insertion et la requête de données.
offline_data_ingestion_and_query_interface/src/service.py : logique centrale du traitement des requêtes TableRAG, incluant l'obtention d'instructions SQL auprès du LLM et leur exécution.
online_inference/chat_utils.py : contient des fonctions utilitaires pour obtenir les résultats générés par le LLM, prenant en charge différents backends d'API.
offline_data_ingestion_and_query_interface/src/data_persistent.py : fonction utilitaire permettant de nettoyer les noms de colonnes du DataFrame.
offline_data_ingestion_and_query_interface/src/handle_requests.py : appelle l'interface de raisonnement du grand modèle, incluant la capture d'exceptions et un mécanisme de réessai avec backoff exponentiel.
online_inference/tools/retriever.py : implémente les fonctions de recherche sémantique et de recherche hybride de documents, incluant le rappel et le reclassement.
Avantages
Encodage efficace des données : grâce à la recherche de schéma et à la recherche de cellules, TableRAG réduit la longueur de l'entrée du modèle de langage, le rendant indépendant de la taille du tableau, améliorant l'efficacité de l'encodage et réduisant les coûts de calcul.
Réduction de la perte d'informations : seuls les schémas et cellules récupérés sont fournis au modèle de langage, évitant ainsi la perte d'informations clés due au traitement du tableau entier.
Amélioration des capacités de raisonnement : TableRAG renforce les capacités de raisonnement tabulaire du modèle de langage en fournissant les informations clés.
Scénarios d'application de TableRAG
Analyse de données et génération de rapports : adapté aux scénarios nécessitant le traitement de données tabulaires à grande échelle, tels que l'analyse de données, la génération de rapports et le traitement des états financiers.
Questionnement inter-tables : capable de traiter des tâches telles que la vérification de faits basée sur des tableaux, ainsi que le questionnement tabulaire à un ou plusieurs sauts.
Validation expérimentale
Les chercheurs ont développé un benchmark à l'échelle du million de tokens basé sur les jeux de données Arcade et BIRD-SQL pour évaluer les performances de TableRAG dans les tâches de compréhension de tableaux à grande échelle. Les résultats expérimentaux montrent que TableRAG surpasse les méthodes existantes en termes de qualité de recherche et de performances de compréhension de tableaux à grande échelle.
Lien du projet
Github :https://github.com/yxh-y/TableRAG
Assistant scénario▸
Apps AI
Actualités AI 