在使用Google开源的中文BERT模型过程中,由于GPU资源受限(只有一块GPU),整个模型精调会导致溢出。
为解决以上困难,设计了如下的逐层精调模式,针对BERT的表达层,逐层放开是否参与训练,和下游目标模块一起针对性训练,并进行多轮迭代:
bert_model = load_trained_model_from_checkpoint(config_path, checkpoint_path, seq_len=None)
for l in bert_model.layers:
if "Encoder-12" in l.name:
l.trainable = False
x1_in = Input(shape=(None,))
x2_in = Input(shape=(None,