TableRAG : un framework de génération augmentée par récupération conçu pour la compréhension des tableaux 74

小编 ·

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 qui répond aux problèmes de perte d'information structurelle et d'absence de vue globale dans le问答 sur documents hétérogènes. Il combine l'exécution SQL et la recherche textuelle pour unifier la compréhension des données tabulaires et permettre des opérations complexes. Le framework comprend une construction de base de données hors ligne et un processus d'inférence itératif en ligne en quatre étapes. Sur le nouveau benchmark HeteQA et d'autres benchmarks publics, TableRAG obtient des performances remarquables, surpassant les méthodes RAG et programmatiques existantes, et devient une solution de pointe pour le raisonnement sur documents hétérogènes complexes.

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.

TableRAG:一个专为表格理解设计的检索增强生成框架.webp

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