Código e modelo do nosso artigo AAAI 2021
[2020/02/05] Suporte para executar o modelo em bancos de dados e consultas próprias. Confira o caderno.
Mais recentemente, tem havido interesse significativo em aprender representações contextuais para várias tarefas de PNL, alavancando corpora de texto em larga escala para treinar grandes modelos de linguagem neural com objetivos de aprendizagem auto-supervisionados, como o Modelo de Linguagem Mascarada (MLM). No entanto, com base em um estudo piloto, observamos três questões dos modelos de linguagem de uso geral existentes quando eles são aplicados a analisadores semânticos de texto para SQL: não detectam mencionadas na coluna nos enunciados, não inferam menção da coluna dos valores celulares e não compor consultas complexas de SQL. Para mitigar esses problemas, apresentamos uma estrutura de pré-treinamento de modelo, pré-treinamento de geração agentada (GAP), que aprende em conjunto representações de enunciados de linguagem natural e esquemas de tabela, alavancando modelos de geração para gerar dados pré-trep. O modelo de lacunas é treinado em pares de schema de 2M e triplos de utterrance-squema-sql de 30k, cujas declarações são produzidas por modelos generativos. Com base em resultados experimentais, os analisadores semânticos neurais que aproveitam o modelo de lacuna como um codificador de representação obtêm novos resultados de ponta nos benchmarks de aranha e critérios para SQL.
conda create --name gap-text2sql python=3.7
source activate gap-text2sql
conda install pytorch=1.5 cudatoolkit=10.2 -c pytorch
pip install -r requirements.txt
python -c " import nltk; nltk.download('stopwords'); nltk.download('punkt') "pip install gdown
cd rat-sql-gap
gdown --id 1_AckYkinAnhqmRQtGsQgUKAnTHxxX5J0
unzip spider.zip
bash data/spider/generate.sh ./spidermkdir data/spider-bart
cp ./spider/tables.json data/spider-bart/
cp ./spider/train_spider.json data/spider-bart/
cp ./spider/train_others.json data/spider-bart/
cp ./spider/dev.json data/spider-bart/
ln -s $( pwd ) /spider/database data/spider-bart/databasemkdir third_party
wget http://nlp.stanford.edu/software/stanford-corenlp-full-2018-10-05.zip
unzip stanford-corenlp-full-2018-10-05.zip -d third_party/ pushd third_party/stanford-corenlp-full-2018-10-05
nohup java -mx4g -cp " * " edu.stanford.nlp.pipeline.StanfordCoreNLPServer -port 8999 -timeout 15000 > server.log &
popdmkdir -p logdir/bart_run_1/bs = 12 , lr = 1.0e-04 , bert_lr = 1.0e-05 , end_lr = 0e0 , att = 1/
mkdir ie_dirs
aws s3 cp s3://gap-text2sql-public/checkpoint-artifacts/gap-finetuned-checkpoint logdir/bart_run_1/bs = 12 , lr = 1.0e-04 , bert_lr = 1.0e-05 , end_lr = 0e0 , att = 1/model_checkpoint-00041000
mkdir -p pretrained_checkpoint
aws s3 cp s3://gap-text2sql-public/checkpoint-artifacts/pretrained-checkpoint pretrained_checkpoint/pytorch_model.binComo alternativa, você pode baixá-los aqui se não tiver awscli: gap-finetuned checkpoint e verificação pré-teria
curl https://gap-text2sql-public.s3.amazonaws.com/checkpoint-artifacts/gap-finetuned-checkpoint -o logdir/bart_run_1/bs = 12 , lr = 1.0e-04 , bert_lr = 1.0e-05 , end_lr = 0e0 , att = 1/model_checkpoint-00041000
curl https://gap-text2sql-public.s3.amazonaws.com/checkpoint-artifacts/pretrained-checkpoint -o pretrained_checkpoint/pytorch_model.binpython run.py preprocess experiments/spider-configs/gap-run.jsonnetpython run.py eval experiments/spider-configs/gap-run.jsonnet Em seguida, você obtém os resultados da inferência e os resultados da avaliação nos caminhos: ie_dirs/bart_run_1_true_1-step41000.infer e ie_dirs/bart_run_1_true_1-step41000.eval .
python run.py train experiments/spider-configs/gap-run.jsonnetConsulte contribuindo para mais informações.
Este projeto está licenciado sob a licença Apache-2.0.