Code et modèle de notre article AAAI 2021
[2020/02/05] Prise en charge de l'exécution du modèle sur leurs propres bases de données et requêtes. Consultez le cahier.
Plus récemment, il y a eu un intérêt significatif pour l'apprentissage des représentations contextuelles pour diverses tâches PNL, en tirant parti des corpus de texte à grande échelle pour former de grands modèles de langue neuronale avec des objectifs d'apprentissage auto-supervisés, tels que le modèle de langue masquée (MLM). Cependant, sur la base d'une étude pilote, nous observons trois problèmes des modèles de langage à usage général existants lorsqu'ils sont appliqués à des analyseurs sémantiques de texte à SQL: ne détectez pas les mentions de colonne dans les énoncés, ne déduisent pas les mentions de colonne à partir des valeurs cellulaires et ne compose pas les requêtes SQL complexes. Pour atténuer ces problèmes, nous présentons un cadre de pré-formation de modèle, la pré-formation (GAP) (GAP) de la génération (GAP), qui apprend conjointement les représentations des énoncés de langue naturelle et des schémas de table en tirant parti des modèles de génération pour générer des données pré-trains. Le modèle GAP est formé sur des paires de schéma d'énonciation 2M et des triplets d'énoncé de 30K-Schema-SQL, dont les énoncés sont produits par des modèles génératifs. Sur la base des résultats expérimentaux, les analyseurs sémantiques neuronaux qui tirent parti de l'espace modèle en tant que codeur de représentation obtiennent de nouveaux résultats de pointe sur les références araignées et critères à 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.binAlternativement, vous pouvez les télécharger ici si vous n'avez pas AWSCLI: GAP-FINETUNED-CHECKPOINT et Pretrained-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 Vous obtenez ensuite les résultats de l'inférence et les résultats de l'évaluation dans les chemins: ie_dirs/bart_run_1_true_1-step41000.infer et ie_dirs/bart_run_1_true_1-step41000.eval .
python run.py train experiments/spider-configs/gap-run.jsonnetVoir contribuer pour plus d'informations.
Ce projet est concédé sous licence Apache-2.0.