Infusion RESDSQL: Decoupling Schema Linking and Skeleton Parsing for Text-to-SQL with Syntactic or semantic infusion
Overview
Apresentamos a infusão de informação sintática e semântica com a entrada do modelo RESDSQL no treinamento, para que tenha maior inteprertação sobre a intenção vista pela frase de entrada, e gere a saída associada.
Evaluation Results
Mensuramos o RESDSQL com a apresentação de conhecimento no benchmark Spider, usando o modelo T5-base de linguagem para o transformer. As métricas foram: Exact-set-Match accuracy (EM) and EXecution accuracy (EX).
On Spider:
Model | Dev EM | Dev EX |
---|---|---|
RESDSQL sem informação alguma | 0.5502 | 0.5754 |
RESDSQLcom informação sintática | 0.5909 | 0.6247 |
RESDSQL com AMR (semântico) | 0.6392 | 0.6818 |
Pré - requisitos
Crie um ambiente virtual anaconda:
conda create -n your_env_name python=3.8.5
Ative-o e instale as seguintes versões de PyTorch:
conda install pytorch==1.11.0 torchvision==0.12.0 torchaudio==0.11.0 cudatoolkit=11.3 -c pytorch
Instale módulos e ferramentas:
pip install -r requirements.txt
pip install https://github.com/explosion/spacy-models/releases/download/en_core_web_sm-2.2.0/en_core_web_sm-2.2.0.tar.gz
python nltk_downloader.py
Faça os seguintes diretórios:
mkdir eval_results
mkdir models
mkdir tensorboard_log
mkdir third_party
mkdir predictions
Clone scripts de avaliação:
cd third_party
git clone https://github.com/ElementAI/spider.git
git clone https://github.com/ElementAI/test-suite-sql-eval.git
mv ./test-suite-sql-eval ./test_suite
cd ..
Prepare os dados
Download data (including Spider, Spider-DK, Spider-Syn, Spider-Realistic, Dr.Spider, and CSpider) and database and then unzip them:
unzip data.zip
unzip database.zip
Inferência
A inferência para uma pergunta e base de dados própria pode ser feita usando o modelo disponível. Para isso, carregue o modelo do Hub, como é feito para o T5, e seu tokenizador. A entrada é simplesmente feita pela pergunta concatenada com o schema da base de dados.
Agradecimentos
Agradecemos ao trabalho do RESDSQL(https://github.com/RUCKBReasoning/RESDSQL) pela arquitetura, que usamos para treianmento do nosso modelo. O trabalho foi conduzido no Centro de Inteligência Artificial USP/IBM/FAPESP (C4AI), com suporte da FAPESP e da IBM Corporation (2023).