如何在训练过程中保持模型固定?

How to keep model fixed during training?

我正在尝试实现一个模型,该模型使用来自不同数据集上的多个预训练 BERT 模型的编码,并使用全连接层获得组合表示。在这方面,我希望 BERT 模型应该保持固定,并且只应该训练完全连接的层。是否有可能在 huggingface-transformers 中实现这一点?我没有看到任何允许我这样做的标志。

PS:我不想顺便把每个BERT模型的输入的编码转储出来作为输入。

一个简单的解决方案是在传递给优化器时只排除与 BERT 模型相关的参数。

param_optimizer = [x for x in param_optimizer if 'bert' not in x[0]]
optimizer = AdamW(param_optimizer, lr)