1 需求
需求1:基于transformers库实现自动从Hugging Face下载模型
需求2:基于huggingface-hub库实现自动从Hugging Face下载模型
需求3:手动从Hugging Face下载模型
2 接口
3.1 需求1
示例一:下载到默认目录
from transformers import BertModel, BertTokenizer
# 初始化分词器和模型
tokenizer = BertTokenizer.from_pretrained('bert-base-uncased')
model = BertModel.from_pretrained('bert-base-uncased')
# 现在您可以使用 tokenizer 和 model 进行推理或其他任务
示例二:下载到指定目录
from transformers import BertModel, BertTokenizer
# 指定模型和分词器的名称
model_name = 'bert-base-uncased'
# 指定下载路径
cache_dir = './test3'
# 下载模型和分词器,并指定下载路径
model = BertModel.from_pretrained(model_name, cache_dir=cache_dir)
tokenizer = BertTokenizer.from_pretrained(model_name, cache_dir=cache_dir)
# 现在你可以使用模型和分词器进行推理或其他任务了
print("123")
3 .2 需求2
示例一:下载到默认目录
from huggingface_hub import snapshot_download
snapshot_download(repo_id="bert-base-uncased")
示例二:下载到指定目录
from huggingface_hub import snapshot_download
snapshot_download(repo_id="bert-base-chinese", local_dir="./test2", local_dir_use_symlinks=False)
3.3 需求3
手动导入模型和分词器
- 模型权重文件:pytorch_model.bin 或 tf_model.h5
- 模型配置文件:config.json
- 分词器的词汇表文件:vocab.txt
- 分词器配置文件:tokenizer.json、tokenizer_config.json
当手动下载 Hugging Face 模型时,通常需要以下类型的文件:
一、模型权重文件
- PyTorch 格式(.bin 或.pt)
- 如果模型是基于 PyTorch 开发的,其权重文件通常以
.bin
或.pt
格式存在。这些文件包含了模型的参数,例如神经网络的每层权重、偏置等信息。- 例如,对于一个预训练的 BERT 模型(PyTorch 版本),这些权重文件定义了模型如何将输入文本转换为有意义的表示。
- TensorFlow 格式(.h5 或.ckpt)
- 对于基于 TensorFlow 的模型,可能会有
.h5
或者.ckpt
格式的权重文件。.h5
文件是一种常见的保存 Keras(TensorFlow 后端)模型的格式,它可以包含模型的结构和权重信息。.ckpt
文件则是 TensorFlow 原生的检查点文件,主要用于保存模型在训练过程中的中间状态。二、模型配置文件
- JSON 或 YAML 格式
- 模型配置文件以 JSON 或 YAML 格式为主。这些文件描述了模型的架构,如模型的层数、每层的神经元数量、激活函数类型、输入输出形状等信息。
- 以 GPT - 2 模型为例,其配置文件会指定模型是由多少个 Transformer 块组成,每个块中的头数量、隐藏层大小等关键架构参数。
三、分词器(Tokenizer)相关文件
- 词汇表文件(.txt 或.pkl 等)
- 分词器用于将输入文本转换为模型能够处理的标记(tokens)。词汇表文件包含了模型所使用的所有词汇(对于基于单词的分词器)或者子词(对于基于子词的分词器,如 BPE、WordPiece 等)。
- 例如,对于一个基于 BPE 算法的分词器,词汇表文件定义了模型能够识别的所有子词单元。这个文件可能是一个简单的文本文件(
.txt
),其中每行包含一个词汇或子词,也可能是经过序列化的 Python 对象(如.pkl
文件,用于保存 Python 的字典等数据结构)。- 分词器配置文件(JSON 或 YAML 格式)
- 类似于模型配置文件,分词器配置文件描述了分词器的一些参数,如分词算法(BPE、WordPiece 等)、特殊标记(如开始标记、结束标记、填充标记等)的定义等。
具体需要下载哪些文件取决于模型的类型(如文本生成模型、图像分类模型等)、框架(PyTorch 或 TensorFlow 等)以及模型开发者所采用的存储和组织方式。
第一步
https://huggingface.co/
第二步
https://huggingface.co/models
第三步
https://huggingface.co/google-bert/bert-base-chinese
第四步
https://huggingface.co/google-bert/bert-base-chinese/tree/main
第五步 PyCharm手动添加模型和分词器
4 参考资料
huggingface下载模型文件(基础入门版)-****博客
https://huggingface.co/docs/huggingface_hub/guides/download