Transformers documentation

共享

Hugging Face's logo
Join the Hugging Face community

and get access to the augmented documentation experience

to get started

共享

Hugging Face Hub 是一个用于分享、发现和获取各种类型和规模模型的平台。我们强烈建议您在 Hub 上分享您的模型,以推动开源机器学习的发展,造福所有人!

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

设置

要将模型共享到 Hub,您需要一个 Hugging Face 账户。请创建一个 User Access Token(默认存储在 cache 中),并通过命令行或 notebook 登录您的账户。

huggingface-CLI
notebook
hf auth login

仓库功能

每个模型仓库都支持版本控制、提交历史记录和差异可视化。

版本管理基于 Git 和 Git Large File Storage (LFS),支持修订版本,即通过提交哈希、标签或分支来指定模型版本。

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

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

从分支或标签加载时,该调用中的所有文件都会固定到同一个提交,然后从该提交获取所有文件。

该固定仅在当前调用期间有效。若需在不同运行之间保持可复现性,请传入一个显式的 commit hash 或一个您视为固定的 tag。不要依赖 main 或其他会移动的分支在不同运行之间保持不变。

模型仓库还支持门控,用于控制谁可以访问某个模型。门控通常用于在研究模型正式发布之前,允许特定用户群体提前预览。

模型仓库还包含一个推理小部件,供用户直接在 Hub 上与模型进行交互。

有关更多信息,请参阅 Hub 模型文档。

上传模型

根据工作流偏好,有多种方式可以将模型上传到 Hub。您可以使用 Trainer 推送模型,直接在模型上调用 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()

要将模型上传到私有仓库,请在 TrainingArguments 中设置 hub_private_repo=True。如果仓库尚未创建(例如,当 TrainingArguments 中 push_to_hub=False 时),也可以改为向 push_to_hub() 传递 private=True。private 参数仅在创建仓库时生效,因此不会更改现有仓库的可见性。

trainer.push_to_hub(private=True)

PushToHubMixin

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

Call push_to_hub() directly on a model to upload it to the Hub. It creates a repository under your namespace with the model name specified in push_to_hub().

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

其他对象(例如 tokenizer)也会以相同的方式推送到 Hub。

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

您的 Hugging Face 个人资料现在应该会显示新创建的模型仓库。前往 Files 标签页即可查看所有已上传的文件。

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

Hub 网页界面

Hub 网页界面是一种无需编写代码即可上传模型的方式。

  1. 通过选择 New Model 创建一个新的仓库。

添加一些有关您模型的信息:

  • 选择仓库的 所有者。这可以是您本人,也可以是您所属的任何组织。
  • 为你的模型选择一个名称,该名称也将用作仓库名称。
  • 选择您的模型是公开还是私有。
  • 设置许可证的使用方式。
  1. 点击 创建模型 以创建模型仓库。

  2. 选择 Files 选项卡,然后单击 Add file 按钮,将文件拖放到您的仓库中。添加提交信息,然后单击 Commit changes to main 以提交该文件。

模型卡片

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

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

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

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

有关 Model Cards 指南中提供的其他模型卡片元数据(碳排放、许可证、论文链接等),请进一步了解。

Update on GitHub