Как тренировать Xlnet с SQUAD 2.0?
Я попытался обучить и предсказать Xlnet с помощью SQUAD 2.0, запустив run_squad.py. Я использовал следующие флаги:
python run_squad.py \
--use_tpu=True \
--num_hosts=1 \
--num_core_per_host=8 \
--model_config_path=/home/jb/xlnet_cased_L-24_H-1024_A-16/xlnet_config.json \
--spiece_model_file=/home/jb/xlnet_cased_L-24_H-1024_A-16/spiece.model \
--output_dir=gs://bucket/xlnet_output_tf \
--init_checkpoint=gs://bucket/xlnet_trained_model/model.ckpt-8000 \
--model_dir=gs://bucket/xlnet_trained_model \
--train_file=/home/jb/data/train-v2.0.json \
--predict_file=/home/jb/data/dev-v2.0.json \
--uncased=False \
--max_seq_length=512 \
--do_train=False \
--train_batch_size=48 \
--do_predict=True \
--predict_batch_size=32 \
--learning_rate=3e-5 \
--adam_epsilon=1e-6 \
--iterations=1000 \
--save_steps=1000 \
--train_steps=8000 \
--warmup_steps=1000 \
--tpu=xlnet
Он показал следующую ошибку:
Traceback (most recent call last):
File "run_squad.py", line 1310, in <module>
tf.app.run()
File "/usr/local/lib/python2.7/dist-packages/tensorflow/python/platform/app.py", line 40, in run
_run(main=main, argv=argv, flags_parser=_parse_flags_tolerate_undef)
File "/usr/local/lib/python2.7/dist-packages/absl/app.py", line 300, in run
_run_main(main, args)
File "/usr/local/lib/python2.7/dist-packages/absl/app.py", line 251, in _run_main
sys.exit(main(argv))
File "run_squad.py", line 1298, in main
orig_data)
File "run_squad.py", line 875, in write_predictions
qid_to_has_ans = squad_utils.make_qid_to_has_ans(orig_data)
File "/home/jb00557372/xlnet/squad_utils.py", line 42, in make_qid_to_has_ans
qid_to_has_ans[qa['id']] = bool(qa['answers'])
Эта же ошибка обнаружилась после тренировки и когда она пыталась предсказать ответ для dev_v2.0.json
Я загружаю некоторые файлы локально (Linux), а некоторые из Google Cloud Storage Bucket.
Что я здесь не так делаю? У меня была такая же ошибка раньше, когда я пытался обучить BERT с набором данных SQUAD 2.0, потому что я загружал некоторые файлы локально. Это причина проблемы? В сценарии оболочки для предварительной обработки набора данных SQUAD есть сценарии bash для создания переменной среды с использованием локального каталога. Итак, я предположил, что это так.
Все указанные файлы существуют в указанном каталоге. ТПУ инициализированы. Только эта ошибка обнаруживается.