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),它启用了修订版(revisions),这是一种使用提交哈希、标签或分支来指定模型版本的方法。

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

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

模型仓库还支持门控,以控制谁可以访问模型。门控常用于允许特定用户群体在模型公开之前预览研究模型。

模型仓库还包括一个推理小部件,用户可以在 Hub 上直接与模型交互。

请查阅 Hub 模型文档以获取更多信息。

模型框架转换

通过使模型在 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 网页界面。

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 提供了将模型或分词器推送到 Hub 的功能。

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

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

其他对象,如分词器或 TensorFlow 模型,也以同样的方式推送到 Hub。

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

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

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

Hub 网页界面

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

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

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

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

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

模型卡片

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

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

  • 手动创建并上传一个 `README.md` 文件
  • 点击仓库中的 Edit model card 按钮

可以参考 Llama 3.1 模型卡片,了解模型卡片中应包含的内容示例。

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

< > 在 GitHub 上更新