如何将DeepPavlov训练的ruBERT模型转换为HuggingFace格式?
将DeepPavlov微调的ruBERT转换为HuggingFace格式步骤
前提确认
先检查你的模型文件夹里是否包含以下核心文件:
bert_config.json(模型配置文件)- 权重文件:PyTorch格式为
pytorch_model.bin,TensorFlow格式为tf_model.h5 vocab.txt(词表文件)
步骤1:统一配置文件命名
将bert_config.json复制一份并重命名为config.json,HuggingFace的AutoModel系列会优先读取这个标准命名的配置文件。
步骤2:转换权重格式(针对PyTorch权重)
如果你的模型是DeepPavlov基于PyTorch训练的(存在pytorch_model.bin),需要将其转换为TensorFlow兼容格式:
from transformers import BertConfig, BertForSequenceClassification, TFBertForSequenceClassification # 加载PyTorch格式的微调模型 config = BertConfig.from_json_file("folder_with_ruBERT/config.json") pytorch_model = BertForSequenceClassification.from_pretrained( "folder_with_ruBERT/pytorch_model.bin", config=config ) # 转换为TensorFlow模型并保存到原文件夹 tf_model = TFBertForSequenceClassification.from_pretrained( pretrained_model_name_or_path=None, config=config, from_pt=True, state_dict=pytorch_model.state_dict() ) tf_model.save_pretrained("folder_with_ruBERT")
执行后,文件夹内会生成tensorflow_model.h5和saved_model/目录,满足TFAutoModel的加载要求。
步骤3:配置Tokenizer
在模型文件夹中创建tokenizer_config.json文件,内容如下:
{ "do_lower_case": false, "model_max_length": 512, "tokenizer_class": "BertTokenizer" }
确保vocab.txt保留在文件夹内,AutoTokenizer会自动识别并加载这个词表文件。
步骤4:验证加载
现在可以用你提供的代码测试加载是否成功:
from transformers import TFAutoModelForSequenceClassification, AutoTokenizer model_name = "folder_with_ruBERT" auto_model_rubert = TFAutoModelForSequenceClassification.from_pretrained(model_name) tokenizer = AutoTokenizer.from_pretrained(model_name, do_lower_case=False)
内容的提问来源于stack exchange,提问作者senek
相关产品推荐
相关产品推荐

