加载BERT出现权重未使用警告,如何删除检查点重置预训练权重?
关于警告是否可以忽略
你列出的未被使用的权重,全部属于BERT预训练阶段的两个任务头:
- 前缀为
cls.predictions的权重对应掩码语言建模(MLM)任务的预测输出头 - 前缀为
cls.seq_relationship的权重对应下一句预测(NSP)任务的分类头
你做下游分类任务微调时,无论是直接初始化BertModel后自己加分类头,还是使用官方封装的BertForSequenceClassification类,这两个预训练头都不会被用到,所以这个警告属于预期内的正常提示,完全可以忽略,不会影响模型微调的效果和正确性。
只有当你需要加载自己微调后的同架构分类模型时仍然弹出该警告,才需要排查是否存在模型类使用错误、权重保存不全的问题,这种场景才属于异常情况。
清理已下载模型检查点的方法
首先需要明确:你遇到的警告不是模型权重损坏或者下载不全导致的,重新下载权重不会让该警告消失,不需要反复重装transformers库或者强制拉取权重。
如果确实需要清理缓存重新下载,操作步骤如下:
- Hugging Face Transformers的默认模型缓存路径:
- Linux/macOS:
~/.cache/huggingface/hub - Windows:
C:\Users\<你的用户名>\.cache\huggingface\hub
- Linux/macOS:
- 在缓存目录中找到命名为
models--bert-base-uncased的文件夹,直接删除该文件夹 - 下次调用
from_pretrained方法加载bert-base-uncased时,会自动重新下载完整的预训练权重
内容的提问来源于stack exchange,提问作者Alexander Zehetmaier
相关产品推荐
相关产品推荐

