Hub 文档
在 Hugging Face Hub 上使用 🤗 Transformers
并获得增强的文档体验
开始使用
在 Hugging Face 使用 🤗 Transformers
🤗 transformers
是一个由 Hugging Face 和社区维护的库,用于 Pytorch、TensorFlow 和 JAX 的最先进机器学习。它提供了数千个预训练模型,可以在文本、视觉和音频等不同模态上执行任务。我们有些偏心,但我们真的很喜欢 🤗 transformers
!
在 Hub 中探索 🤗 Transformers
Hub 中有超过 630,000 个 transformers
模型,你可以通过在模型页面左侧进行筛选来找到它们。
你可以找到适用于许多不同任务的模型:
- 从上下文中提取答案(问答)。
- 从大文本中创建摘要(摘要)。
- 对文本进行分类(例如,是否为垃圾邮件,文本分类)。
- 使用 GPT 等模型生成新文本(文本生成)。
- 识别句子中的词性(动词、主语等)或实体(国家、组织等)(命名实体识别)。
- 将音频文件转录为文本(自动语音识别)。
- 对音频文件中的说话人或语言进行分类(音频分类)。
- 检测图像中的对象(对象检测)。
- 分割图像(图像分割)。
- 进行强化学习(强化学习)!
你可以直接在浏览器中试用这些模型,无需下载即可进行测试,这得益于浏览器内置小部件!


Transformers 仓库文件
一个 Transformers 模型仓库通常包含模型文件和预处理器文件。

模型
config.json
文件存储模型的架构细节,例如隐藏层数量、词汇量大小、注意力头数量、每个头的维度等。这些元数据是模型的蓝图。model.safetensors
文件存储模型的预训练层和权重。对于大型模型,safetensors 文件会分片以限制加载所需的内存量。浏览model.safetensors.index.json
文件以查看模型权重从哪个 safetensors 文件加载。{ "metadata": { "total_size": 16060522496 }, "weight_map": { "lm_head.weight": "model-00004-of-00004.safetensors", "model.embed_tokens.weight": "model-00001-of-00004.safetensors", ... } }
你也可以通过点击模型卡片上的 ↗ 按钮来可视化此映射。
Safetensors 是一种更安全、更快的序列化格式——与 pickle 相比——用于存储模型权重。你可能会遇到以
bin
、pth
或ckpt
等格式序列化的权重,但safetensors
作为更好的替代方案,在模型生态系统中越来越受青睐。模型还可能有一个
generation_config.json
文件,其中存储了如何生成文本的详细信息,例如是否采样、采样的顶部令牌、温度以及用于开始和停止生成的特殊令牌。
预处理器
tokenizer_config.json
文件存储模型添加的特殊令牌。这些特殊令牌向模型指示许多信息,例如句子的开头、聊天模板的特定格式或指示图像。此文件还显示模型可以接受的最大输入序列长度、预处理器类及其返回的输出。tokenizer.json
文件存储模型学习到的词汇表。special_tokens_map.json
是特殊令牌的映射。例如,在 Llama 3.1-8B-Instruct 中,字符串开始令牌是"<|begin_of_text|>"
。
对于其他模态,tokenizer_config.json
文件被 preprocessor_config.json
替换。
使用现有模型
所有 transformer
模型都只需一行代码即可使用!根据你的使用方式,你可以使用高级 API 中的 pipeline
函数,或者使用 AutoModel
获得更多控制。
# With pipeline, just specify the task and the model id from the Hub.
from transformers import pipeline
pipe = pipeline("text-generation", model="distilbert/distilgpt2")
# If you want more control, you will need to define the tokenizer and model.
from transformers import AutoTokenizer, AutoModelForCausalLM
tokenizer = AutoTokenizer.from_pretrained("distilbert/distilgpt2")
model = AutoModelForCausalLM.from_pretrained("distilbert/distilgpt2")
你还可以从特定版本(基于提交哈希、标签名或分支)加载模型,如下所示:
model = AutoModel.from_pretrained(
"julien-c/EsperBERTo-small", revision="v2.0.1" # tag name, or branch name, or commit hash
)
如果你想了解如何加载特定模型,可以点击“在 Transformers 中使用”,它会为你提供一个可加载的工作代码片段!如果需要有关模型架构的更多信息,你还可以点击代码片段底部的“阅读模型文档”。


分享你的模型
要了解所有关于使用 transformers
分享模型的信息,请参阅官方文档中的分享模型指南。
transformers
中的许多类,例如模型和分词器,都具有 push_to_hub
方法,可以轻松地将文件上传到仓库。
# Pushing model to your own account
model.push_to_hub("my-awesome-model")
# Pushing your tokenizer
tokenizer.push_to_hub("my-awesome-model")
# Pushing all things after training
trainer.push_to_hub()
你可以做的事情还有很多,因此我们建议你查阅分享模型指南。