Código y modelo de nuestro artículo AAAI 2021
[2020/02/05] Soporte para ejecutar el modelo en bases de datos y consultas propias. Mira el cuaderno.
Más recientemente, ha habido un interés significativo en el aprendizaje de representaciones contextuales para varias tareas de PNL, al aprovechar los corpus de texto a gran escala para capacitar a grandes modelos de lenguaje neuronal con objetivos de aprendizaje auto-supervisados, como el modelo de lenguaje enmascarado (MLM). Sin embargo, con base en un estudio piloto, observamos tres problemas de los modelos de lenguaje de uso general existentes cuando se aplican a los analizadores semánticos de texto a SQL: no detectar las menciones de columnas en las expresiones, no inferen las menciones de columnas de los valores celulares y no componen consultas SQL complejas. Para mitigar estos problemas, presentamos un marco modelo previo al entrenamiento, pre-entrenamiento acuático (GAP) de generación, que aprende conjuntamente representaciones de las expresiones del lenguaje natural y los esquemas de tabla al aprovechar los modelos de generación para generar datos previos al entrenamiento. El modelo GAP está entrenado en pares de Schema-Schema de 2M y triples de 30k en absoluto-Schema-SQL, cuyas expresiones son producidas por modelos generativos. Según los resultados experimentales, los analizadores semánticos neuronales que aprovechan el modelo GAP como un codificador de representación obtienen nuevos resultados de última generación en los puntos de referencia de araña y criterios a 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.binAlternativamente, puede descargarlos aquí si no tiene AWSCLI: Gap-Finetuned Checkpoint y Prained-Checkpoint
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 Luego obtiene los resultados de inferencia y los resultados de evaluación en las rutas: 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.jsonnetVer contribuyendo para más información.
Este proyecto tiene licencia bajo la licencia Apache-2.0.