BERT事前学習を11GB GPUで

max_seq_length=512が走っているのはA6000という48GBのメモリが載ったGPU

しかし、これは一基しかなく、他は1080Tiもしくは2080TiというGPUメモリが11GBしかないもの。そのため、max_seq_length=128の事前学習用のデータを作成したうえで、

 

python3 ../models-2.7.0/official/nlp/bert/run_pretraining.py --input_files="bert/jawiki-20220110/wordpiece_unidic_lite/pretraining_data/pretraining_data_*.tfrecord" --model_dir="bert/jawiki-20220110/wordpiece_unidic_lite/bert-base" --bert_config_file="bert/jawiki-20220110/wordpiece_unidic_lite/bert-base/config.json" --max_seq_length=128 --max_predictions_per_seq=80 --train_batch_size=16 --learning_rate=1e-4 --num_train_epochs=100 --num_steps_per_epoch=10000 --optimizer_type=adamw --warmup_steps=10000

 

というように、バッチサイズをさらに1/4にしたところようやく動くようになった。でも心なしか処理は早いような気がする。個人的にはどこまで細かく区切るかにもよるものの、512単語にまで対応するのは過剰な気がしており、128でちょうどよいのでは、と考えている。データが完成すればいろいろ検証してみよう。