Hub 文档

在 Hugging Face Hub 上使用 🤗 Transformers

Hugging Face's logo
加入 Hugging Face 社区

并获得增强的文档体验

开始使用

在 Hugging Face 使用 🤗 Transformers

🤗 transformers 是一个由 Hugging Face 和社区维护的库,用于 Pytorch、TensorFlow 和 JAX 的最先进机器学习。它提供了数千个预训练模型,可以在文本、视觉和音频等不同模态上执行任务。我们有些偏心,但我们真的很喜欢 🤗 transformers

在 Hub 中探索 🤗 Transformers

Hub 中有超过 630,000 个 transformers 模型,你可以通过在模型页面左侧进行筛选来找到它们。

你可以找到适用于许多不同任务的模型:

你可以直接在浏览器中试用这些模型,无需下载即可进行测试,这得益于浏览器内置小部件!

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 相比——用于存储模型权重。你可能会遇到以 binpthckpt 等格式序列化的权重,但 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()

你可以做的事情还有很多,因此我们建议你查阅分享模型指南。

额外资源

< > 在 GitHub 上更新