microsoft / rat-sql

A relation-aware semantic parsing model from English to SQL
https://arxiv.org/abs/1911.04942
MIT License
405 stars 117 forks source link

I run the Glove model and can get the max accuracy only 57.3% #6

Closed ygan closed 4 years ago

ygan commented 4 years ago

Thanks for sharing the well-designed codes.

I have run the glove model and got the following eval results. However, all of my checkpoints (after 30000 steps) are less than 57.5% accuracy, which is far away from the leaderboard results.

I get warnings about EncDec during the training and eval. I was wondering whether this is the reason causing my bad results?

Eval results: WARNING <class 'ratsql.models.enc_dec.EncDecModel.Preproc'>: superfluous {'name': 'EncDec'} WARNING <class 'ratsql.models.enc_dec.EncDecModel'>: superfluous {'decoder_preproc': {'grammar': {'clause_order': None, 'end_with_from': True, 'factorize_sketch': 2, 'include_literals': False, 'infer_from_conditions': True, 'name': 'spider', 'output_from': True, 'use_table_pointer': True}, 'max_count': 5000, 'min_freq': 4, 'save_path': 'data/spider/nl2code-glove,cv_link=false', 'use_seq_elem_rules': True}, 'encoder_preproc': {'compute_cv_link': False, 'compute_sc_link': True, 'count_tokens_in_word_emb_for_vocab': True, 'db_path': 'data/spider/database', 'fix_issue_16_primary_keys': True, 'include_table_name_in_column': False, 'max_count': 5000, 'min_freq': 4, 'save_path': 'data/spider/nl2code-glove,cv_link=false', 'word_emb': {'kind': '42B', 'lemmatize': True, 'name': 'glove'}}} Loading model from logdir/glove_run/bs=20,lr=7.4e-04,end_lr=0e0,att=0/model_checkpoint-00030100 DB connections: 100%|█████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 166/166 [00:00<00:00, 377.05it/s] 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1034/1034 [03:48<00:00, 4.52it/s] DB connections: 100%|█████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 166/166 [00:00<00:00, 518.72it/s] Wrote eval results to logdir/glove_run/bs=20,lr=7.4e-04,end_lr=0e0,att=0/ie_dirs/glove_run_true_1-step30100.eval DB connections: 100%|█████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 166/166 [00:00<00:00, 460.43it/s] 30100 0.5319148936170213 WARNING <class 'ratsql.models.enc_dec.EncDecModel.Preproc'>: superfluous {'name': 'EncDec'} WARNING <class 'ratsql.models.enc_dec.EncDecModel'>: superfluous {'decoder_preproc': {'grammar': {'clause_order': None, 'end_with_from': True, 'factorize_sketch': 2, 'include_literals': False, 'infer_from_conditions': True, 'name': 'spider', 'output_from': True, 'use_table_pointer': True}, 'max_count': 5000, 'min_freq': 4, 'save_path': 'data/spider/nl2code-glove,cv_link=false', 'use_seq_elem_rules': True}, 'encoder_preproc': {'compute_cv_link': False, 'compute_sc_link': True, 'count_tokens_in_word_emb_for_vocab': True, 'db_path': 'data/spider/database', 'fix_issue_16_primary_keys': True, 'include_table_name_in_column': False, 'max_count': 5000, 'min_freq': 4, 'save_path': 'data/spider/nl2code-glove,cv_link=false', 'word_emb': {'kind': '42B', 'lemmatize': True, 'name': 'glove'}}} Loading model from logdir/glove_run/bs=20,lr=7.4e-04,end_lr=0e0,att=0/model_checkpoint-00031100 DB connections: 100%|█████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 166/166 [00:00<00:00, 478.05it/s] 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1034/1034 [03:52<00:00, 4.45it/s] DB connections: 100%|█████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 166/166 [00:00<00:00, 535.65it/s] Wrote eval results to logdir/glove_run/bs=20,lr=7.4e-04,end_lr=0e0,att=0/ie_dirs/glove_run_true_1-step31100.eval DB connections: 100%|█████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 166/166 [00:00<00:00, 540.92it/s] 31100 0.5531914893617021 WARNING <class 'ratsql.models.enc_dec.EncDecModel.Preproc'>: superfluous {'name': 'EncDec'} WARNING <class 'ratsql.models.enc_dec.EncDecModel'>: superfluous {'decoder_preproc': {'grammar': {'clause_order': None, 'end_with_from': True, 'factorize_sketch': 2, 'include_literals': False, 'infer_from_conditions': True, 'name': 'spider', 'output_from': True, 'use_table_pointer': True}, 'max_count': 5000, 'min_freq': 4, 'save_path': 'data/spider/nl2code-glove,cv_link=false', 'use_seq_elem_rules': True}, 'encoder_preproc': {'compute_cv_link': False, 'compute_sc_link': True, 'count_tokens_in_word_emb_for_vocab': True, 'db_path': 'data/spider/database', 'fix_issue_16_primary_keys': True, 'include_table_name_in_column': False, 'max_count': 5000, 'min_freq': 4, 'save_path': 'data/spider/nl2code-glove,cv_link=false', 'word_emb': {'kind': '42B', 'lemmatize': True, 'name': 'glove'}}} Loading model from logdir/glove_run/bs=20,lr=7.4e-04,end_lr=0e0,att=0/model_checkpoint-00032100 DB connections: 100%|█████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 166/166 [00:00<00:00, 522.01it/s] 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1034/1034 [03:39<00:00, 4.71it/s] DB connections: 100%|█████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 166/166 [00:00<00:00, 517.54it/s] Wrote eval results to logdir/glove_run/bs=20,lr=7.4e-04,end_lr=0e0,att=0/ie_dirs/glove_run_true_1-step32100.eval DB connections: 100%|█████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 166/166 [00:00<00:00, 511.89it/s] 32100 0.5483558994197292 WARNING <class 'ratsql.models.enc_dec.EncDecModel.Preproc'>: superfluous {'name': 'EncDec'} WARNING <class 'ratsql.models.enc_dec.EncDecModel'>: superfluous {'decoder_preproc': {'grammar': {'clause_order': None, 'end_with_from': True, 'factorize_sketch': 2, 'include_literals': False, 'infer_from_conditions': True, 'name': 'spider', 'output_from': True, 'use_table_pointer': True}, 'max_count': 5000, 'min_freq': 4, 'save_path': 'data/spider/nl2code-glove,cv_link=false', 'use_seq_elem_rules': True}, 'encoder_preproc': {'compute_cv_link': False, 'compute_sc_link': True, 'count_tokens_in_word_emb_for_vocab': True, 'db_path': 'data/spider/database', 'fix_issue_16_primary_keys': True, 'include_table_name_in_column': False, 'max_count': 5000, 'min_freq': 4, 'save_path': 'data/spider/nl2code-glove,cv_link=false', 'word_emb': {'kind': '42B', 'lemmatize': True, 'name': 'glove'}}} Loading model from logdir/glove_run/bs=20,lr=7.4e-04,end_lr=0e0,att=0/model_checkpoint-00033100 DB connections: 100%|█████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 166/166 [00:00<00:00, 493.44it/s] 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1034/1034 [03:38<00:00, 4.73it/s] DB connections: 100%|█████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 166/166 [00:00<00:00, 514.43it/s] Wrote eval results to logdir/glove_run/bs=20,lr=7.4e-04,end_lr=0e0,att=0/ie_dirs/glove_run_true_1-step33100.eval DB connections: 100%|█████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 166/166 [00:00<00:00, 499.72it/s] 33100 0.5502901353965184 WARNING <class 'ratsql.models.enc_dec.EncDecModel.Preproc'>: superfluous {'name': 'EncDec'} WARNING <class 'ratsql.models.enc_dec.EncDecModel'>: superfluous {'decoder_preproc': {'grammar': {'clause_order': None, 'end_with_from': True, 'factorize_sketch': 2, 'include_literals': False, 'infer_from_conditions': True, 'name': 'spider', 'output_from': True, 'use_table_pointer': True}, 'max_count': 5000, 'min_freq': 4, 'save_path': 'data/spider/nl2code-glove,cv_link=false', 'use_seq_elem_rules': True}, 'encoder_preproc': {'compute_cv_link': False, 'compute_sc_link': True, 'count_tokens_in_word_emb_for_vocab': True, 'db_path': 'data/spider/database', 'fix_issue_16_primary_keys': True, 'include_table_name_in_column': False, 'max_count': 5000, 'min_freq': 4, 'save_path': 'data/spider/nl2code-glove,cv_link=false', 'word_emb': {'kind': '42B', 'lemmatize': True, 'name': 'glove'}}} Loading model from logdir/glove_run/bs=20,lr=7.4e-04,end_lr=0e0,att=0/model_checkpoint-00034100 DB connections: 100%|█████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 166/166 [00:00<00:00, 526.80it/s] 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1034/1034 [03:34<00:00, 4.82it/s] DB connections: 100%|█████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 166/166 [00:00<00:00, 533.41it/s] Wrote eval results to logdir/glove_run/bs=20,lr=7.4e-04,end_lr=0e0,att=0/ie_dirs/glove_run_true_1-step34100.eval DB connections: 100%|█████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 166/166 [00:00<00:00, 524.09it/s] 34100 0.5493230174081238 WARNING <class 'ratsql.models.enc_dec.EncDecModel.Preproc'>: superfluous {'name': 'EncDec'} WARNING <class 'ratsql.models.enc_dec.EncDecModel'>: superfluous {'decoder_preproc': {'grammar': {'clause_order': None, 'end_with_from': True, 'factorize_sketch': 2, 'include_literals': False, 'infer_from_conditions': True, 'name': 'spider', 'output_from': True, 'use_table_pointer': True}, 'max_count': 5000, 'min_freq': 4, 'save_path': 'data/spider/nl2code-glove,cv_link=false', 'use_seq_elem_rules': True}, 'encoder_preproc': {'compute_cv_link': False, 'compute_sc_link': True, 'count_tokens_in_word_emb_for_vocab': True, 'db_path': 'data/spider/database', 'fix_issue_16_primary_keys': True, 'include_table_name_in_column': False, 'max_count': 5000, 'min_freq': 4, 'save_path': 'data/spider/nl2code-glove,cv_link=false', 'word_emb': {'kind': '42B', 'lemmatize': True, 'name': 'glove'}}} Loading model from logdir/glove_run/bs=20,lr=7.4e-04,end_lr=0e0,att=0/model_checkpoint-00035100 DB connections: 100%|█████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 166/166 [00:00<00:00, 540.29it/s] 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1034/1034 [03:36<00:00, 4.78it/s] DB connections: 100%|█████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 166/166 [00:00<00:00, 529.28it/s] Wrote eval results to logdir/glove_run/bs=20,lr=7.4e-04,end_lr=0e0,att=0/ie_dirs/glove_run_true_1-step35100.eval DB connections: 100%|█████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 166/166 [00:00<00:00, 508.08it/s] 35100 0.5493230174081238 WARNING <class 'ratsql.models.enc_dec.EncDecModel.Preproc'>: superfluous {'name': 'EncDec'} WARNING <class 'ratsql.models.enc_dec.EncDecModel'>: superfluous {'decoder_preproc': {'grammar': {'clause_order': None, 'end_with_from': True, 'factorize_sketch': 2, 'include_literals': False, 'infer_from_conditions': True, 'name': 'spider', 'output_from': True, 'use_table_pointer': True}, 'max_count': 5000, 'min_freq': 4, 'save_path': 'data/spider/nl2code-glove,cv_link=false', 'use_seq_elem_rules': True}, 'encoder_preproc': {'compute_cv_link': False, 'compute_sc_link': True, 'count_tokens_in_word_emb_for_vocab': True, 'db_path': 'data/spider/database', 'fix_issue_16_primary_keys': True, 'include_table_name_in_column': False, 'max_count': 5000, 'min_freq': 4, 'save_path': 'data/spider/nl2code-glove,cv_link=false', 'word_emb': {'kind': '42B', 'lemmatize': True, 'name': 'glove'}}} Loading model from logdir/glove_run/bs=20,lr=7.4e-04,end_lr=0e0,att=0/model_checkpoint-00036100 DB connections: 100%|█████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 166/166 [00:00<00:00, 528.12it/s] 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1034/1034 [03:32<00:00, 4.88it/s] DB connections: 100%|█████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 166/166 [00:00<00:00, 534.44it/s] Wrote eval results to logdir/glove_run/bs=20,lr=7.4e-04,end_lr=0e0,att=0/ie_dirs/glove_run_true_1-step36100.eval DB connections: 100%|█████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 166/166 [00:00<00:00, 536.96it/s] 36100 0.5667311411992263 WARNING <class 'ratsql.models.enc_dec.EncDecModel.Preproc'>: superfluous {'name': 'EncDec'} WARNING <class 'ratsql.models.enc_dec.EncDecModel'>: superfluous {'decoder_preproc': {'grammar': {'clause_order': None, 'end_with_from': True, 'factorize_sketch': 2, 'include_literals': False, 'infer_from_conditions': True, 'name': 'spider', 'output_from': True, 'use_table_pointer': True}, 'max_count': 5000, 'min_freq': 4, 'save_path': 'data/spider/nl2code-glove,cv_link=false', 'use_seq_elem_rules': True}, 'encoder_preproc': {'compute_cv_link': False, 'compute_sc_link': True, 'count_tokens_in_word_emb_for_vocab': True, 'db_path': 'data/spider/database', 'fix_issue_16_primary_keys': True, 'include_table_name_in_column': False, 'max_count': 5000, 'min_freq': 4, 'save_path': 'data/spider/nl2code-glove,cv_link=false', 'word_emb': {'kind': '42B', 'lemmatize': True, 'name': 'glove'}}} Loading model from logdir/glove_run/bs=20,lr=7.4e-04,end_lr=0e0,att=0/model_checkpoint-00037100 DB connections: 100%|█████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 166/166 [00:00<00:00, 529.62it/s] 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1034/1034 [03:32<00:00, 4.87it/s] DB connections: 100%|█████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 166/166 [00:00<00:00, 524.56it/s] Wrote eval results to logdir/glove_run/bs=20,lr=7.4e-04,end_lr=0e0,att=0/ie_dirs/glove_run_true_1-step37100.eval DB connections: 100%|█████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 166/166 [00:00<00:00, 510.18it/s] 37100 0.5676982591876208 WARNING <class 'ratsql.models.enc_dec.EncDecModel.Preproc'>: superfluous {'name': 'EncDec'} WARNING <class 'ratsql.models.enc_dec.EncDecModel'>: superfluous {'decoder_preproc': {'grammar': {'clause_order': None, 'end_with_from': True, 'factorize_sketch': 2, 'include_literals': False, 'infer_from_conditions': True, 'name': 'spider', 'output_from': True, 'use_table_pointer': True}, 'max_count': 5000, 'min_freq': 4, 'save_path': 'data/spider/nl2code-glove,cv_link=false', 'use_seq_elem_rules': True}, 'encoder_preproc': {'compute_cv_link': False, 'compute_sc_link': True, 'count_tokens_in_word_emb_for_vocab': True, 'db_path': 'data/spider/database', 'fix_issue_16_primary_keys': True, 'include_table_name_in_column': False, 'max_count': 5000, 'min_freq': 4, 'save_path': 'data/spider/nl2code-glove,cv_link=false', 'word_emb': {'kind': '42B', 'lemmatize': True, 'name': 'glove'}}} Loading model from logdir/glove_run/bs=20,lr=7.4e-04,end_lr=0e0,att=0/model_checkpoint-00038100 DB connections: 100%|█████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 166/166 [00:00<00:00, 504.98it/s] 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1034/1034 [03:34<00:00, 4.83it/s] DB connections: 100%|█████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 166/166 [00:00<00:00, 533.56it/s] Wrote eval results to logdir/glove_run/bs=20,lr=7.4e-04,end_lr=0e0,att=0/ie_dirs/glove_run_true_1-step38100.eval DB connections: 100%|█████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 166/166 [00:00<00:00, 532.26it/s] 38100 0.5725338491295938 WARNING <class 'ratsql.models.enc_dec.EncDecModel.Preproc'>: superfluous {'name': 'EncDec'} WARNING <class 'ratsql.models.enc_dec.EncDecModel'>: superfluous {'decoder_preproc': {'grammar': {'clause_order': None, 'end_with_from': True, 'factorize_sketch': 2, 'include_literals': False, 'infer_from_conditions': True, 'name': 'spider', 'output_from': True, 'use_table_pointer': True}, 'max_count': 5000, 'min_freq': 4, 'save_path': 'data/spider/nl2code-glove,cv_link=false', 'use_seq_elem_rules': True}, 'encoder_preproc': {'compute_cv_link': False, 'compute_sc_link': True, 'count_tokens_in_word_emb_for_vocab': True, 'db_path': 'data/spider/database', 'fix_issue_16_primary_keys': True, 'include_table_name_in_column': False, 'max_count': 5000, 'min_freq': 4, 'save_path': 'data/spider/nl2code-glove,cv_link=false', 'word_emb': {'kind': '42B', 'lemmatize': True, 'name': 'glove'}}} Loading model from logdir/glove_run/bs=20,lr=7.4e-04,end_lr=0e0,att=0/model_checkpoint-00039100 DB connections: 100%|█████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 166/166 [00:00<00:00, 523.74it/s] 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1034/1034 [03:29<00:00, 4.93it/s] DB connections: 100%|█████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 166/166 [00:00<00:00, 524.81it/s] Wrote eval results to logdir/glove_run/bs=20,lr=7.4e-04,end_lr=0e0,att=0/ie_dirs/glove_run_true_1-step39100.eval DB connections: 100%|█████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 166/166 [00:00<00:00, 518.20it/s] 39100 0.5609284332688588 WARNING <class 'ratsql.models.enc_dec.EncDecModel.Preproc'>: superfluous {'name': 'EncDec'} WARNING <class 'ratsql.models.enc_dec.EncDecModel'>: superfluous {'decoder_preproc': {'grammar': {'clause_order': None, 'end_with_from': True, 'factorize_sketch': 2, 'include_literals': False, 'infer_from_conditions': True, 'name': 'spider', 'output_from': True, 'use_table_pointer': True}, 'max_count': 5000, 'min_freq': 4, 'save_path': 'data/spider/nl2code-glove,cv_link=false', 'use_seq_elem_rules': True}, 'encoder_preproc': {'compute_cv_link': False, 'compute_sc_link': True, 'count_tokens_in_word_emb_for_vocab': True, 'db_path': 'data/spider/database', 'fix_issue_16_primary_keys': True, 'include_table_name_in_column': False, 'max_count': 5000, 'min_freq': 4, 'save_path': 'data/spider/nl2code-glove,cv_link=false', 'word_emb': {'kind': '42B', 'lemmatize': True, 'name': 'glove'}}} Loading model from logdir/glove_run/bs=20,lr=7.4e-04,end_lr=0e0,att=0/model_checkpoint-00040000 DB connections: 100%|█████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 166/166 [00:00<00:00, 524.89it/s] 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1034/1034 [03:34<00:00, 4.82it/s] DB connections: 100%|█████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 166/166 [00:00<00:00, 538.59it/s] Wrote eval results to logdir/glove_run/bs=20,lr=7.4e-04,end_lr=0e0,att=0/ie_dirs/glove_run_true_1-step40000.eval DB connections: 100%|█████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 166/166 [00:00<00:00, 523.47it/s] 40000 0.5657640232108317

zhangyuchen584 commented 4 years ago

Hi ygan, you said your model bas beed trained for 30000 steps, may I know how long time does it take? Thanks

ygan commented 4 years ago

Hi zhangyuchen584, It has been trained for 40K steps and took around 3 days.

karthikj11 commented 4 years ago

Even i tried and got only 58% accuracy at 35100th step. At 40000 its only 56%.

alexpolozov commented 4 years ago

Thanks for the report. I need to double-check that we released the right hyper config for the Glove model. (It's definitely right for the BERT model.) We haven't worked with the Glove model for many months, only with the BERT model, so I may have misremembered the config. Apologies for the slow response, too. I'm not working on this project full-time at the moment, and support might be a bit slow while we get through some internal deadlines.

berlino commented 4 years ago

Sorry for the confusion. I think we forgot to set the cv_link back to true after doing ablation https://github.com/microsoft/rat-sql/blob/e34319cfdd050f0e8f3549e9202c1119d54b8ab8/experiments/spider-glove-run.jsonnet#L6 . I've fixed the issue in #5

alexpolozov commented 4 years ago

D'oh. That's quite a thing to miss. Sorry about that, everyone.

ygan commented 4 years ago

Thanks @alexpolozov and @berlino a lot!!!