模型训练-tips
模型冻结部分层的训练方式:
- 第一步:在训练之前,将除了
Embedding
之外的层设置为param.requires_grad = False
,如下所示:
for name, param in model.named_parameters():
if "model.embed_tokens" not in name:
param.requires_grad = False
- 第二步:在训练的时候,在优化器中添加过滤器filter把
requires_grad = False
的参数过滤掉,这样在训练的时候,不会更新这些参数,如下所示:
optimizer = AdamW(filter(lambda p: p.requires_grad, model.parameters()))