预训练模型重复的疑问

大佬,想问下,hanlp2.0中实体识别的bert模型,已经fine-tune过了,为什么不直接报错fine-tune好的模型和参数而需要现在加载谷歌的与训练bert模型,再加载自己的参数呢?

目前这样设计比较简洁,训练和加载都只需AutoModel.from_pretrained(transformer)

不好意思,之前有打错字,原问题是:实体识别的bert模型,已经fine-tune过了,为什么不直接保存fine-tune好的模型和参数,而需要先加载谷歌的预训练bert模型,再加载自己的参数呢?

何博士,您说的这个AutoModel.from_pretrained(transformer),应该是huggingface里的方式吧,咱们hanlp里没有,而且在预测的时候为什么要加载google的预训练模型呢,问这个问题的主要目的是本地需要下载两个400MB的模型,感觉有冗余:joy:

最初版本用的是HuggingFace的实现,内部正在开发的PyTorch backend用的也是他们的实现。

你的意见是正确的,的确是冗余的。这么写的原因只是简洁起见,代码简化到不需要区分训练还是加载。另外HF的实现似乎没有创建空白Transformer的选项,如果你找到了,欢迎参与开源贡献。

好的,知道了,感谢您的耐心解答:pray:

补充一下,正在开发中的PyTorch后端已经实现了直接加载本地权值。但首次调用仍然会从网络请求词表和配置文件。如果要完全加载本地数据,则需要将HF的词表和配置文件随HanLP模型一起发布。这样增加了维护成本和冗余数据,故不采用。既然HF已经成为Transformer的事实标准,那就没必要再去探究这种hacky的操作了。