问小白 wenxiaobai
资讯
历史
科技
环境与自然
成长
游戏
财经
文学与艺术
美食
健康
家居
文化
情感
汽车
三农
军事
旅行
运动
教育
生活
星座命理

Hugging Face模型查找与使用指南

创作时间:
作者:
@小白创作中心

Hugging Face模型查找与使用指南

引用
CSDN
1.
https://m.blog.csdn.net/weixin_43815222/article/details/144219443

本文详细介绍了如何在Hugging Face平台上查找和使用模型,特别是针对自然语言处理(NLP)任务的模型。内容包括模型的查找方法、使用方法、命名规则以及模型的具体结构和保存方式。

一、如何找到统一使用方法

对于文字处理,可以使用AutoTokenizer,具体操作如下:

  1. 在模型页面找到需要的模型并点击
  2. 点击最右边的"Use in Transformers"

二、如何找到本模型使用方法

滑到页面底部查看使用说明,通常会提供PyTorch的使用方法,以及其他框架的说明。

其中字符串名字可以为路径。

三、两种使用方法结果对比

使用RobertaTokenizerAutoTokenizer的结果是一样的:

# 使用 RobertaTokenizer
tokenizer = RobertaTokenizer.from_pretrained(pretrained_model_path)
inputs = tokenizer("对比原始的分词和最新的分词器", return_tensors="pt")
print(inputs['input_ids'])

# 使用 AutoTokenizer
auto_tokenizer = AutoTokenizer.from_pretrained(pretrained_model_path) 
auto_inputs = auto_tokenizer('对比原始的分词和最新的分词器', return_tensors='pt')
print(auto_inputs['input_ids'])

四、模型详解

以NER模型为例:

from transformers import AutoTokenizer, AutoModelForTokenClassification, pipeline

tokenizer = AutoTokenizer.from_pretrained("uer/roberta-base-finetuned-cluener2020-chinese")
model = AutoModelForTokenClassification.from_pretrained("uer/roberta-base-finetuned-cluener2020-chinese")
ner_pipeline = pipeline("ner", model=model, tokenizer=tokenizer)
ner_pipeline("马云是阿里巴巴的创始人,他住在中国杭州。")

这两行代码的作用是:

  1. 加载与模型匹配的分词器(tokenizer)
  2. 加载预训练的模型

五、模型文件格式

  • tf_model.h5:TensorFlow框架的模型文件,保存了模型结构和权重
  • flax_model.msgpack:Flax框架的模型文件,保存了模型参数

六、模型保存为.pt格式

可以使用PyTorch保存模型:

import torch

# 保存整个模型
torch.save(model, "./model.pt")

# 保存模型权重
torch.save(model.state_dict(), "model.pt")

七、模型结构

RobertaForTokenClassification为例:

RobertaForTokenClassification(
  (roberta): RobertaModel(
    (embeddings): RobertaEmbeddings(
      ...
    )
    (encoder): RobertaEncoder(
      ...
    )
    (pooler): RobertaPooler(
      ...
    )
  )
  (classifier): Linear(in_features=768, out_features=11, bias=True)  
)

这个模型包括词嵌入层、编码器层和分类头,用于命名实体识别任务。

© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号