TableRAG:一個專為表格理解設計的檢索增強生成框架
TableRAG是一個用于解決異構文檔問答中結構信息丟失和缺乏全局視圖問題的框架。它結合了SQL執行和文本檢索,能夠統一理解表格數據并進行復雜操作。這個框架包括離線數據庫構建和四步在線迭代推理過程。在新基準HeteQA和其他公共基準測試中,TableRAG表現優異,超越了現有的RAG和程序化方法,成為處理復雜異構文檔推理的先進解決方案。

核心原理
查詢擴展與檢索:TableRAG通過查詢擴展、模式檢索和單元格檢索來定位表格中的關鍵信息。它會生成針對模式和單元格值的獨立查詢,避免單一查詢帶來的冗余信息。
模式檢索:ai語言模型可以通過列名識別關鍵列及其數據類型,無需對整個列進行編碼。例如,對于問題“錢包的平均價格是多少?”語言模型會生成列名查詢,如“產品”和“價格”。
單元格檢索:基于語言模型生成的查詢,檢索與問題相關的列名和單元格。例如,檢索與“錢包”相關的單元格值。
頻率感知截斷:引入單元格編碼預算B,如果不同值的數量超過B,則只編碼出現頻率最高的前B個值。
TableRAG主要模塊
online_inference/main.py:TableRAG的核心推理代碼,包含TableRAG類,實現在線推理的主要邏輯。
offline_data_ingestion_and_query_interface/src/interface.py:使用Flask框架提供SQL查詢接口。
online_inference/tools/sql_tool.py:包含SQL生成和執行的工具函數,支持重試機制。
offline_data_ingestion_and_query_interface/src/sql_alchemy_helper.py:提供SQLAlchemy數據庫操作的輔助類,支持數據插入和查詢。
offline_data_ingestion_and_query_interface/src/service.py:處理TableRAG請求的核心邏輯,包括從LLM獲取SQL語句并執行。
online_inference/chat_utils.py:包含獲取LLM生成結果的工具函數,支持不同API后端。
offline_data_ingestion_and_query_interface/src/data_persistent.py:用于清洗DataFrame列名的工具函數。
offline_data_ingestion_and_query_interface/src/handle_requests.py:調用大模型推理接口,包含異常捕獲和指數退避重試機制。
online_inference/tools/retriever.py:實現語義檢索和混合文檔檢索的功能,包括召回和重排序。
優勢
高效數據編碼:通過模式檢索和單元格檢索,TableRAG減少了語言模型的輸入長度,使其與表格大小無關,提高了編碼效率,降低了計算成本。
減少信息丟失:僅將檢索到的模式和單元格提供給語言模型,避免了處理整個表格導致的關鍵信息丟失。
提升推理能力:TableRAG通過提供關鍵信息,增強了語言模型的表格推理能力。
TableRAG應用場景
數據分析和報告生成:適用于需要處理大規模表格數據的場景,如數據分析、報告生成和財務報表處理。
跨表問答:能夠處理基于表格的事實驗證、單跳和多跳表格問答等任務。
實驗驗證
研究者開發了基于Arcade和BIRD-SQL數據集的百萬級標記基準測試,評估TableRAG在大規模表格理解任務中的表現。實驗結果表明,TableRAG在檢索質量和大規模表格理解性能方面優于現有方法。
項目鏈接
Github:https://github.com/yxh-y/TableRAG
相關文章
- 用戶登錄
提交您的產品
Ai應用
Ai資訊
AI生圖
AI生視頻
開源AI應用平臺










