SQuAD 2.0 の huggingface-transformers スクリプトでの ALBERT の使用について質問があります。
github のページには、ALBERT を使用してスクリプトを実行する方法について具体的な指示がないため、BERT でスクリプトを実行する場合と同じ仕様を使用しました。ただし、達成された最終結果は (exact_match = 30.632527583593028、f1 = 36.36948708435092) であり、BERT によって達成され、github ページで報告されている (f1 = 88.52、exact_match = 81.22) とはかけ離れています。だから私は何か間違ったことをしているかもしれないと思います。
これは、コマンド ラインで実行したコードです。
python run_squad.py \
--model_type albert \
--model_name_or_path albert-base-v2 \
--do_train --do_eval \
--train_file train-v2.0.json \
--predict_file dev-v2.0.json \
--per_gpu_train_batch_size 5 \
--learning_rate 3e-5 \
--num_train_epochs 2.0 \
--max_seq_length 384 \
--doc_stride 128 \
--output_dir /aneves/teste2/output/
これとトランスフォーマーのページのものとの唯一の違いは、「bert_base_uncased」を使用する model_name と、12 である per_gpu_train_batch_size ですが、GPU のメモリの制約により 5 を使用する必要がありました。
スクリプトを実行するときにいくつかのオプションを忘れていますか、それとも per_gpu_train_batch_size が 12 ではなく 5 に設定されているために結果が達成されていますか?
ありがとう!