TAPEX(大尺寸模型)
TAPEX由Qian Liu、Bei Chen、Jiaqi Guo、Morteza Ziyadi、Zeqi Lin、Weizhu Chen和Jian-Guang Lou在论文《TAPEX:通过神经SQL执行器学习的表格预训练》中提出。原始代码库可在此处找到。
模型描述
TAPEX(Table Pre-training via Execution)是一种概念简单但实证效果强大的预训练方法,旨在为现有模型赋予表格推理能力。TAPEX通过在一个合成语料库上学习神经SQL执行器来实现表格预训练,该语料库通过自动合成可执行的SQL查询获得。
TAPEX基于BART架构,这是一种具有双向(类似BERT)编码器和自回归(类似GPT)解码器的Transformer编码器-解码器(序列到序列)模型。
此模型是在WikiSQL数据集上微调的tapex-base
模型。
预期用途
您可以将该模型用于相对简单问题的表格问答。以下是一些可解决的问题示例(对应表格未显示):
问题 |
答案 |
告诉我南澳大利亚的注释是什么 |
当前系列无标语 |
为巴特勒社区学院(堪萨斯州)效力的球员打什么位置? |
后卫-前锋 |
3号球员曾在多少所学校效力? |
1.0 |
Kraco Twin 125(第二场)比赛有多少位获胜车手? |
1.0 |
2008年4月4日在美国播出的剧集名称是什么? |
"Bust a Move"第一部分,"Bust a Move"第二部分 |
使用方法
以下是如何在transformers中使用此模型:
from transformers import TapexTokenizer, BartForConditionalGeneration
import pandas as pd
tokenizer = TapexTokenizer.from_pretrained("microsoft/tapex-large-finetuned-wikisql")
model = BartForConditionalGeneration.from_pretrained("microsoft/tapex-large-finetuned-wikisql")
data = {
"year": [1896, 1900, 1904, 2004, 2008, 2012],
"city": ["athens", "paris", "st. louis", "athens", "beijing", "london"]
}
table = pd.DataFrame.from_dict(data)
query = "北京在哪一年举办了奥运会?"
encoding = tokenizer(table=table, query=query, return_tensors="pt")
outputs = model.generate(**encoding)
print(tokenizer.batch_decode(outputs, skip_special_tokens=True))
评估方法
请在此处找到评估脚本。
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}
}