BERT开源代码:GitHub - google-research/bert: TensorFlow code and pre-trained models for BERT。
该链接中给出了训练示例sample_text.txt,文本如下:
上述是每行一个句子,文档之间有空行。
①执行命令得到预训练数据:
python create_pretraining_data.py --input_file=sample_text.txt --output_file=tf_examples.tfrecord --vocab_file=BERT_BASE_UNCASED_DIR/vocab.txt --do_lower_case=True --max_seq_length=128 --max_predictions_per_seq=20 --masked_lm_prob=0.15 --random_seed=12345 --dupe_factor=5 vocab_file:词表的位置,这里使用的是BERT_BASE_UNCASED(安装参考https://blog.csdn.net/zcs2632008/article/details/125672908?spm=1001.2014.3001.5502) max_seq_length:序列最大长度 max_predictions_per_seq:进行掩码的最大数量(序列最大长度*掩码率) masked_lm_prob:掩码率
②训练BERT
执行命令:
python run_pretraining.py --input_file=tf_examples.tfrecord --output_dir=pretraining_output --do_train=True --do_eval=True --bert_config_file=BERT_BASE_UNCASED_DIR/bert_config.json --init_checkpoint=BERT_BASE_UNCASED_DIR/bert_model.ckpt --train_batch_size=32 --max_seq_length=128 --max_predictions_per_seq=20 --num_train_steps=20 --num_warmup_steps=10 --learning_rate=2e-5
得到结果:
global_step = 20 loss = 0.35468453 masked_lm_accuracy = 0.9327252 masked_lm_loss = 0.35498306 next_sentence_accuracy = 1.0 next_sentence_loss = 0.00041163983



