huggingface三种添加Bert模型的方法
首先搞清楚预训练模型一般会有的文件:
- vocab.txt
- config.json
- pytorch_model.bin
这三个分别对应tokenizer,config和model。
添加huggingface hub里面的模型
- 只要有模型名就可以导入tokenizer和model
- 无需导入config
# 这里导入Huggingface里面有的模型:hfl/chinese-roberta-wwm-ext
# 使用预训练模型的权重,生成分词器
tokenizer = BertTokenizerFast.from_pretrained("hfl/chinese-roberta-wwm-ext")
# 载入模型
model = BertForSequenceClassification.from_pretrained("hfl/chinese-roberta-wwm-ext")
添加自己通过迁移训练或者增量训练生成的模型
- 需要给出本地模型存储地址
- 通过模型地址导入tokenizer、config和model
- 如果要更新config需要在导入model之前更新
# 本地模型存储的地址
checkpoint = os.path.join(project_path, 'model/checkpoint-1000')
# 使用预训练模型的权重,生成分词器
tokenizer = AutoTokenizer.from_pretrained(checkpoint)
# 载入模型
config = AutoConfig.from_pretrained(checkpoint)
config.num_labels = len(labels)
config.problem_type = "multi_label_classification"
config.id2label = id2label
config.label2id = label2id
model = AutoModelForSequenceClassification.from_pretrained(checkpoint, config=config)
添加别人的模型
- 需要给出本地模型存储的地址
- 需要从地址中导入tokenizer、config和model。如果要更新config需要在导入model之前。(和第二种导入的方法一样)
- 要注意模型内的文件名是否符合transformers的要求。例如,config.json,vocab.txt不能有其他的名字,否则会导入出错。另外在config.json里面也需要有指出"model_type"。
# 模型存储的地址
checkpoint = os.path.join(project_path, f'FinBERT_L-12_H-768_A-12_pytorch')
# 从模型导入分词器
tokenizer = AutoTokenizer.from_pretrained(checkpoint)
# 导入config
config = AutoConfig.from_pretrained(checkpoint)
config.num_labels = len(labels)
config.problem_type = "multi_label_classification"
config.id2label = id2label
config.label2id = label2id
#导入模型
model = AutoModelForSequenceClassification.from_pretrained(checkpoint, config=config)
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)