🚀 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}
}