Hub 文件
上傳模型
並獲得增強的文件體驗
開始使用
上傳模型
要將模型上傳到 Hub,您需要建立一個 Hugging Face 賬戶。Hub 上的模型是基於 Git 的倉庫,它們提供版本控制、分支、可發現性和共享功能,與數十個庫的整合等等!您可以控制要上傳到倉庫的內容,其中可以包括檢查點、配置和任何其他檔案。
您可以將倉庫連結到個人使用者,例如 osanseviero/fashion_brands_patterns,或連結到組織,例如 facebook/bart-large-xsum。組織可以收集與公司、社群或庫相關的模型!如果您選擇一個組織,該模型將顯示在組織的頁面上,並且組織的每個成員都將能夠為該倉庫做出貢獻。您可以在此處建立一個新組織。
注意: 模型不一定需要與 Transformers/Diffusers 庫相容才能獲取下載指標。支援任何自定義模型。請閱讀下文了解更多資訊!
有幾種方法可以上傳模型,使其能夠很好地整合到 Hub 中並獲取下載指標,具體如下所述。
- 如果您的模型是為具有內建支援的庫設計的,您可以使用該庫提供的方法。使用
trust_remote_code=True
的自定義模型也可以利用這些方法。 - 如果您的模型是自定義 PyTorch 模型,可以使用
PyTorchModelHubMixin
類,因為它允許將from_pretrained
、push_to_hub
新增到任何nn.Module
類,就像 Transformers、Diffusers 和 Timm 庫中的模型一樣。 - 除了程式化上傳,您始終可以使用網頁介面或Git 命令列。
模型上傳後,我們建議您為您的倉庫新增一張模型卡片,以記錄您的模型並使其更易於發現。

使用網頁介面
要建立一個全新的模型倉庫,請訪問 huggingface.co/new。然後按照以下步驟操作
- 在“檔案和版本”選項卡中,選擇“新增檔案”並指定“上傳檔案”


- 從此處選擇要從計算機上傳的檔案,並留下一個有用的提交訊息,以便了解您正在上傳的內容


之後,點選提交更改將您的模型上傳到 Hub!
檢查檔案和歷史記錄
您可以檢視您的倉庫以及所有最近新增的檔案!


使用者介面允許您瀏覽模型檔案和提交,並檢視每個提交引入的差異


- 新增元資料
您可以為模型卡片新增元資料。您可以指定
- 此模型適用的任務型別,啟用小部件和推理 API。
- 使用的庫(
transformers
、spaCy
等) - 語言
- 資料集
- 指標
- 許可證
- 更多!
在此處瞭解有關模型標籤的更多資訊:此處。
- 新增 TensorBoard 跟蹤
任何包含 TensorBoard 跟蹤(檔名包含 tfevents
)的倉庫都將帶有 TensorBoard
標籤。作為慣例,我們建議您將跟蹤儲存到 runs/
子資料夾下。“訓練指標”選項卡可以輕鬆檢視記錄變數(如損失或準確率)的圖表。


如果安裝了 tensorboard
,使用 🤗 Transformers 訓練的模型將預設生成 TensorBoard 跟蹤。
從內建支援庫上傳
首先檢查您的模型是否來自支援將模型推送到/從 Hub 載入的庫,例如 Transformers、Diffusers、Timm、Asteroid 等:https://huggingface.co/docs/hub/models-libraries。下面我們將展示對於像 Transformers 這樣的庫來說,這有多麼容易。
from transformers import BertConfig, BertModel
config = BertConfig()
model = BertModel(config)
model.push_to_hub("nielsr/my-awesome-bert-model")
# reload
model = BertModel.from_pretrained("nielsr/my-awesome-bert-model")
有些庫,例如 Transformers,支援從 Hub 載入程式碼。這是一種使您的模型與 Transformers 配合使用 trust_remote_code=True
標誌的方法。您可以考慮此選項,而不是完整的庫整合。
使用 huggingface_hub 上傳 PyTorch 模型
如果您的模型是(自定義)PyTorch 模型,您可以使用 huggingface_hub Python 庫中提供的 PyTorchModelHubMixin
類。它是一個極簡類,可為任何 nn.Module
類新增 from_pretrained
和 push_to_hub
功能,同時還提供下載指標。
以下是使用方法(假設您已執行 pip install huggingface_hub
):
import torch
import torch.nn as nn
from huggingface_hub import PyTorchModelHubMixin
class MyModel(
nn.Module,
PyTorchModelHubMixin,
# optionally, you can add metadata which gets pushed to the model card
repo_url="your-repo-url",
pipeline_tag="text-to-image",
license="mit",
):
def __init__(self, num_channels: int, hidden_size: int, num_classes: int):
super().__init__()
self.param = nn.Parameter(torch.rand(num_channels, hidden_size))
self.linear = nn.Linear(hidden_size, num_classes)
def forward(self, x):
return self.linear(x + self.param)
# create model
config = {"num_channels": 3, "hidden_size": 32, "num_classes": 10}
model = MyModel(**config)
# save locally
model.save_pretrained("my-awesome-model")
# push to the hub
model.push_to_hub("your-hf-username/my-awesome-model")
# reload
model = MyModel.from_pretrained("your-hf-username/my-awesome-model")
如您所見,唯一的要求是您的模型繼承自 PyTorchModelHubMixin
。所有例項屬性將自動序列化為 config.json
檔案。請注意,init
方法只能接受 JSON 可序列化的引數。支援 Python 資料類。
這還附帶自動下載指標,這意味著您將能夠像在 Transformers、Diffusers 或 Timm 庫中原生整合的模型一樣,檢視模型下載的次數。透過此 mixin 類,每個單獨的檢查點都以一個包含 2 個檔案的倉庫儲存在 Hub 上:
- 一個包含權重的
pytorch_model.bin
或model.safetensors
檔案 - 一個
config.json
檔案,它是模型配置的序列化版本。此類別用於計算下載指標:每當使用者呼叫from_pretrained
載入config.json
時,計數會加一。請參閱本指南,瞭解自動下載指標。
建議為每個檢查點新增一個模型卡片,以便人們可以閱讀模型的相關資訊,獲取論文連結等。
訪問huggingface_hub 的文件以瞭解更多資訊。
此外,也可以直接透過程式設計方式將檔案或資料夾上傳到 Hub:https://huggingface.co/docs/huggingface_hub/guides/upload。
使用 Git
最後,由於模型倉庫只是 Git 倉庫,您也可以使用 Git 將模型檔案推送到 Hub。請按照倉庫入門指南,瞭解如何使用 git
CLI 提交和推送模型。