The code for EMNLP 2022 paper ReasTAP: Injecting Table Reasoning Skills During Pre-training via Synthetic Reasoning Examples.
We officially support python 3.9. You could use following commands to install the required packages
pip install -r requirements.txt
We provide details of the synthetic table QA generation pipeline in the README.md file located in the synthetic_tableqa_generation folder, along with the pretraining data and intermediate files shared on Google Drive.
Each example contains 3 fields source, reasoning_type, question, table and answers, where
sourceindicates whether the example is from the synthetic table QA generation pipeline or the SQL execution data generation pipeline (from tapex).reasoning_typeindicates the type of table reasoning skills required to answer the question, if the example is from the synthetic table QA generation pipeline.tableis a 2-dimensional table with aheaderand one or multiplerows.questionis the natural language question or SQL query.answersis a list of answers or executed results.
We have released following models in Huggingface Hub.
- Pretrained models
- Yale-LILY/reastap-large: Pretrained on synthetic table qa and SQL execution data.
- Finetuned models
- Table Question Answering
- Yale-LILY/reastap-large-finetuned-wtq:
Yale-LILY/reastap-largefinetuned on the WikiTableQuestions dataset. - Yale-LILY/reastap-large-finetuned-wikisql:
Yale-LILY/reastap-largefinetuned on the WikiSQL dataset.
- Yale-LILY/reastap-large-finetuned-wtq:
- Table Fact Checking
- Yale-LILY/reastap-large-finetuned-tabfact:
Yale-LILY/reastap-largefinetuned on the TabFact dataset.
- Yale-LILY/reastap-large-finetuned-tabfact:
- Table-to-Text Generation
- Yale-LILY/reastap-large-finetuned-logicnlg:
Yale-LILY/reastap-largefinetuned on the LogicNLG dataset.
- Yale-LILY/reastap-large-finetuned-logicnlg:
- Table Question Answering
We have prepared bash scripts for both pretraining and finetuning in the bash_scripts folder. Please ensure that you adjust and set CUDA_VISIBLE_DEVICES and batch size accordingly in each bash script. The current setting works for an 8x A6000-48G cluster with 1024G memory.
bash bash_scripts/train_scripts/pretrain.sh
Training
bash_scripts/train_scripts/train_*.sh
Evaluation
bash_scripts/evaluation_scripts/eval_*.sh
Inference
bash_scripts/prediction_scripts/predict_*.sh
The prediction files in json format will be stored in the outputs/*/ folder. To evaluate performance on the LogicNLG dataset, please use the evaluation scripts in their official LogicNLG github repo.
To facilitate the reproducibility of our results by other researchers, we have rewritten the model code using the transformers library because it enables us to directly share the model weights on Huggingface Hub. However, due to this change, there might be slight differences in the results compared to the original paper, which employed the fairseq library. The updated results are as follows:
| Task | Dev Accuracy | Test Accuracy |
|---|---|---|
| WikiSQL | 89.6 | 89.2 |
| WikiTableQuestion | 59.7 | 58.7 |
| TabFact | 84.6 | 84.9 |
| BLEU-1/2/3 | SP-Acc | NLI-Acc | BLEU-1/2/3 | SP-Acc | NLI-Acc | |||
|---|---|---|---|---|---|---|---|---|
| LogicNLG | Dev | 53.3/33.6/20.0 | 54.8 | 90.1 | Test | 53.7/34.3/20.7 | 54.4 | 89.3 |
The output files are stored in outputs folder.
For any issues or questions, kindly email us at: Yilun Zhao (yilun.zhao@yale.edu).
@inproceedings{zhao-etal-2022-reastap,
title = "{R}eas{TAP}: Injecting Table Reasoning Skills During Pre-training via Synthetic Reasoning Examples",
author = "Zhao, Yilun and
Nan, Linyong and
Qi, Zhenting and
Zhang, Rui and
Radev, Dragomir",
booktitle = "Proceedings of the 2022 Conference on Empirical Methods in Natural Language Processing",
month = dec,
year = "2022",
address = "Abu Dhabi, United Arab Emirates",
publisher = "Association for Computational Linguistics",
url = "https://aclanthology.org/2022.emnlp-main.615",
pages = "9006--9018",
}
