gap-text2sql
/
gap-text2sql-main
/mrat-sql-gap
/experiments
/spider-configs
/BART-large-en
/nl2code-base.libsonnet
# Model details: | |
# - NL2Code | |
# - Pretrained, fixed word embeddings | |
# - glove-42B | |
# - min_freq 50 | |
# - Spiderv2 encoder | |
# - question_encoder ['emb', 'bilstm'] | |
# - column_encoder ['emb', 'bilstm-summarize'] | |
# - table_encoder ['emb', 'bilstm-summarize'] | |
# - upd_steps 4 | |
# - Optimization | |
# - max_steps 40k | |
# - batch_size 10 | |
# - Adam with lr 1e-3 | |
function(output_from, data_path='data/spider-en/') { | |
local PREFIX = data_path, | |
data: { | |
train: { | |
name: 'spider', | |
paths: [ | |
PREFIX + 'train_%s.json' % [s] | |
for s in ['spider', 'others']], | |
tables_paths: [ | |
PREFIX + 'tables.json', | |
], | |
db_path: PREFIX + 'database', | |
}, | |
val: { | |
name: 'spider', | |
paths: [PREFIX + 'dev.json'], | |
tables_paths: [PREFIX + 'tables.json'], | |
db_path: PREFIX + 'database', | |
}, | |
}, | |
model: { | |
name: 'EncDec', | |
encoder: { | |
name: 'spiderv2', | |
dropout: 0.2, | |
word_emb_size: 300, | |
question_encoder: ['emb', 'bilstm'], | |
column_encoder: ['emb', 'bilstm-summarize'], | |
table_encoder: ['emb', 'bilstm-summarize'], | |
update_config: { | |
name: 'relational_transformer', | |
num_layers: 4, | |
num_heads: 8, | |
}, | |
}, | |
decoder: { | |
name: 'NL2Code', | |
dropout: 0.2, | |
desc_attn: 'mha', | |
}, | |
encoder_preproc: { | |
word_emb: { | |
name: 'glove', | |
kind: '42B', | |
}, | |
count_tokens_in_word_emb_for_vocab: false, | |
min_freq: 50, | |
max_count: 5000, | |
include_table_name_in_column: false, | |
save_path: PREFIX + 'nl2code-0401,output_from=%s,emb=glove-42B,min_freq=50/' % [output_from], | |
}, | |
decoder_preproc: self.encoder_preproc { | |
grammar: { | |
name: 'spider', | |
output_from: output_from, | |
use_table_pointer: output_from, | |
include_literals: false, | |
}, | |
use_seq_elem_rules: true, | |
word_emb:: null, | |
include_table_name_in_column:: null, | |
count_tokens_in_word_emb_for_vocab:: null, | |
}, | |
}, | |
train: { | |
batch_size: 10, | |
eval_batch_size: 50, | |
keep_every_n: 1000, | |
eval_every_n: 100, | |
save_every_n: 100, | |
report_every_n: 10, | |
max_steps: 51000, | |
num_eval_items: 50, | |
}, | |
optimizer: { | |
name: 'adam', | |
lr: 0.0, | |
}, | |
lr_scheduler: { | |
name: 'warmup_polynomial', | |
num_warmup_steps: $.train.max_steps / 20, | |
start_lr: 1e-3, | |
end_lr: 0, | |
decay_steps: $.train.max_steps - self.num_warmup_steps, | |
power: 0.5, | |
} | |
} | |