🚀 TAPEX(大型模型)
TAPEX是一種預訓練方法,可賦予現有模型“表格推理”能力,通過學習神經SQL執行器實現表格預訓練,在表格問答和事實驗證等任務中表現出色。
🚀 快速開始
TAPEX由Qian Liu、Bei Chen、Jiaqi Guo、Morteza Ziyadi、Zeqi Lin、Weizhu Chen、Jian - Guang Lou在論文 TAPEX: Table Pre-training via Learning a Neural SQL Executor 中提出。原始代碼倉庫可在 此處 找到。
✨ 主要特性
模型描述
TAPEX(Table Pre - training via Execution)是一種概念簡單且經驗證效果顯著的預訓練方法,能讓現有模型具備表格推理能力。TAPEX通過在一個合成語料庫上學習神經SQL執行器來實現表格預訓練,該語料庫是通過自動合成可執行的SQL查詢獲得的。
TAPEX基於BART架構,這是一種Transformer編碼器 - 解碼器(seq2seq)模型,具有雙向(類似BERT)編碼器和自迴歸(類似GPT)解碼器。
預期用途
你可以使用原始模型來模擬神經SQL執行,即使用TAPEX在給定表格上執行SQL查詢。不過,該模型主要用於在有監督的數據集上進行微調。目前,TAPEX可以進行微調以處理表格問答任務和表格事實驗證任務。可以在 模型中心 中查找針對你感興趣的任務進行微調後的版本。
📦 安裝指南
暫未提及安裝相關內容。
💻 使用示例
基礎用法
以下是如何在transformers庫中使用該模型的示例:
from transformers import TapexTokenizer, BartForConditionalGeneration
import pandas as pd
tokenizer = TapexTokenizer.from_pretrained("microsoft/tapex-large-sql-execution")
model = BartForConditionalGeneration.from_pretrained("microsoft/tapex-large-sql-execution")
data = {
"year": [1896, 1900, 1904, 2004, 2008, 2012],
"city": ["athens", "paris", "st. louis", "athens", "beijing", "london"]
}
table = pd.DataFrame.from_dict(data)
query = "select year where city = beijing"
encoding = tokenizer(table=table, query=query, return_tensors="pt")
outputs = model.generate(**encoding)
print(tokenizer.batch_decode(outputs, skip_special_tokens=True))
微調說明
⚠️ 重要提示
此模型檢查點僅用於模擬神經SQL執行(即使用TAPEX在給定表格上執行SQL查詢),你不能使用此模型在下游任務上進行微調。可用於微調的模型在 此處。
💡 使用建議
這種將兩種用途的模型分開的做法是由於BART large存在已知問題,建議讀者查看 此評論 以獲取更多詳細信息。
📚 詳細文檔
暫未提及詳細文檔相關內容。
🔧 技術細節
暫未提及技術細節相關內容。
📄 許可證
本項目採用MIT許可證。
BibTeX引用
@inproceedings{
liu2022tapex,
title={{TAPEX}: Table Pre-training via Learning a Neural {SQL} Executor},
author={Qian Liu and Bei Chen and Jiaqi Guo and Morteza Ziyadi and Zeqi Lin and Weizhu Chen and Jian-Guang Lou},
booktitle={International Conference on Learning Representations},
year={2022},
url={https://openreview.net/forum?id=O50443AsCP}
}