Transformers 文档

分享

Hugging Face's logo
加入 Hugging Face 社区

并获得增强的文档体验

开始使用

分享

Hugging Face Hub 是一个用于分享、发现和使用各种不同类型和大小模型的平台。我们强烈建议在 Hub 上分享您的模型,以推动开源机器学习为所有人向前发展!

本指南将向您展示如何从 Transformers 分享模型到 Hub。

设置

要将模型分享到 Hub,您需要一个 Hugging Face 帐户。创建一个 用户访问令牌(默认存储在 缓存 中),并从命令行或 notebook 登录到您的帐户。

huggingface-CLI
notebook
huggingface-cli login

仓库功能

每个模型仓库都具有版本控制、提交历史和差异可视化功能。

版本控制基于 GitGit Large File Storage (LFS),它支持修订,这是一种使用提交哈希、标签或分支指定模型版本的方法。

例如,在 from_pretrained() 中使用 revision 参数,从提交哈希加载特定的模型版本。

model = AutoModel.from_pretrained(
    "julien-c/EsperBERTo-small", revision="4c77982"
)

模型仓库还支持 门控,以控制谁可以访问模型。门控通常用于允许选定的一组用户在研究模型公开之前预览它。

模型仓库还包括一个推理 widget,供用户直接在 Hub 上与模型交互。

查看 Hub Models 文档以获取更多信息。

模型框架转换

通过以 PyTorch、TensorFlow 和 Flax 提供模型,覆盖更广泛的受众。虽然用户仍然可以使用不同的框架加载模型,但这会比较慢,因为 Transformers 需要即时转换检查点。首先转换检查点会更快。

PyTorch
TensorFlow
Flax

设置 from_tf=True 以将检查点从 TensorFlow 转换为 PyTorch,然后保存它。

from transformers import DistilBertForSequenceClassification

pt_model = DistilBertForSequenceClassification.from_pretrained("path/to/awesome-name-you-picked", from_tf=True)
pt_model.save_pretrained("path/to/awesome-name-you-picked")

上传模型

有几种方法可以将模型上传到 Hub,具体取决于您的工作流程偏好。您可以使用 Trainer、TensorFlow 模型的回调来推送模型,直接在模型上调用 push_to_hub(),或者使用 Hub Web 界面。

Trainer

Trainer 可以在训练后直接将模型推送到 Hub。在 TrainingArguments 中设置 push_to_hub=True 并将其传递给 Trainer。训练完成后,调用 push_to_hub() 上传模型。

push_to_hub() 会自动将有用的信息(如训练超参数和结果)添加到模型卡中。

from transformers import TrainingArguments, Trainer

training_args = TrainingArguments(output_dir="my-awesome-model", push_to_hub=True)
trainer = Trainer(
    model=model,
    args=training_args,
    train_dataset=small_train_dataset,
    eval_dataset=small_eval_dataset,
    compute_metrics=compute_metrics,
)
trainer.push_to_hub()

PushToHubCallback

对于 TensorFlow 模型,将 PushToHubCallback 添加到 fit 方法。

from transformers import PushToHubCallback

push_to_hub_callback = PushToHubCallback(
    output_dir="./your_model_save_path", tokenizer=tokenizer, hub_model_id="your-username/my-awesome-model"
)
model.fit(tf_train_dataset, validation_data=tf_validation_dataset, epochs=3, callbacks=push_to_hub_callback)

PushToHubMixin

PushToHubMixin 提供了将模型或 tokenizer 推送到 Hub 的功能。

直接在模型上调用 push_to_hub() 以将其上传到 Hub。它会在您的命名空间下创建一个仓库,仓库名称为 push_to_hub() 中指定的模型名称。

model.push_to_hub("my-awesome-model")

tokenizer 或 TensorFlow 模型等其他对象也以相同的方式推送到 Hub。

tokenizer.push_to_hub("my-awesome-model")

您的 Hugging Face 个人资料现在应该显示新创建的模型仓库。导航到 文件 选项卡以查看所有上传的文件。

有关将文件推送到 Hub 的更多信息,请参阅 将文件上传到 Hub 指南。

Hub Web 界面

Hub Web 界面是一种无需代码即可上传模型的方法。

  1. 通过选择 新建模型 来创建一个新的仓库。

添加一些关于您的模型的信息

  • 选择仓库的 所有者。这可以是您自己或您所属的任何组织。
  • 为您的模型选择一个名称,这也将是仓库名称。
  • 选择您的模型是公开的还是私有的。
  • 设置许可证使用情况。
  1. 单击 创建模型 以创建模型仓库。

  2. 选择 文件 选项卡,然后单击 添加文件 按钮,将文件拖放到您的仓库中。添加提交消息,然后单击 提交更改到 main 以提交文件。

模型卡

模型卡 向用户介绍模型的性能、局限性、潜在的偏见和伦理考量。强烈建议在您的仓库中添加模型卡!

模型卡是仓库中的 README.md 文件。通过以下方式添加此文件

  • 手动创建和上传 README.md 文件
  • 单击仓库中的 编辑模型卡 按钮

查看 Llama 3.1 模型卡,了解模型卡中应包含的内容示例。

模型卡 指南中了解有关其他模型卡元数据(碳排放、许可证、论文链接等)的更多信息。

< > 在 GitHub 上更新