Hugging Face's logo
加入 Hugging Face 社群

並獲得增強的文件體驗

開始使用

上傳模型

要將模型上傳到 Hub,您需要建立一個 Hugging Face 賬戶。Hub 上的模型是基於 Git 的倉庫,它們提供版本控制、分支、可發現性和共享功能,與數十個庫的整合等等!您可以控制要上傳到倉庫的內容,其中可以包括檢查點、配置和任何其他檔案。

您可以將倉庫連結到個人使用者,例如 osanseviero/fashion_brands_patterns,或連結到組織,例如 facebook/bart-large-xsum。組織可以收集與公司、社群或庫相關的模型!如果您選擇一個組織,該模型將顯示在組織的頁面上,並且組織的每個成員都將能夠為該倉庫做出貢獻。您可以在此處建立一個新組織。

注意: 模型不一定需要與 Transformers/Diffusers 庫相容才能獲取下載指標。支援任何自定義模型。請閱讀下文了解更多資訊!

有幾種方法可以上傳模型,使其能夠很好地整合到 Hub 中並獲取下載指標,具體如下所述。

  • 如果您的模型是為具有內建支援的庫設計的,您可以使用該庫提供的方法。使用 trust_remote_code=True 的自定義模型也可以利用這些方法。
  • 如果您的模型是自定義 PyTorch 模型,可以使用 PyTorchModelHubMixin,因為它允許將 from_pretrainedpush_to_hub 新增到任何 nn.Module 類,就像 Transformers、Diffusers 和 Timm 庫中的模型一樣。
  • 除了程式化上傳,您始終可以使用網頁介面Git 命令列

模型上傳後,我們建議您為您的倉庫新增一張模型卡片,以記錄您的模型並使其更易於發現。

drawing 利用 [PyTorchModelHubMixin](#upload-a-pytorch-model-using-huggingfacehub) 的示例 [倉庫](https://huggingface.co/LiheYoung/depth_anything_vitl14)。下載量顯示在右側。

使用網頁介面

要建立一個全新的模型倉庫,請訪問 huggingface.co/new。然後按照以下步驟操作

  1. 在“檔案和版本”選項卡中,選擇“新增檔案”並指定“上傳檔案”
  1. 從此處選擇要從計算機上傳的檔案,並留下一個有用的提交訊息,以便了解您正在上傳的內容
  1. 之後,點選提交更改將您的模型上傳到 Hub!

  2. 檢查檔案和歷史記錄

您可以檢視您的倉庫以及所有最近新增的檔案!

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

  1. 新增元資料

您可以為模型卡片新增元資料。您可以指定

  • 此模型適用的任務型別,啟用小部件和推理 API。
  • 使用的庫(transformersspaCy 等)
  • 語言
  • 資料集
  • 指標
  • 許可證
  • 更多!

在此處瞭解有關模型標籤的更多資訊:此處

  1. 新增 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_pretrainedpush_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.binmodel.safetensors 檔案
  • 一個 config.json 檔案,它是模型配置的序列化版本。此類別用於計算下載指標:每當使用者呼叫 from_pretrained 載入 config.json 時,計數會加一。請參閱本指南,瞭解自動下載指標。

建議為每個檢查點新增一個模型卡片,以便人們可以閱讀模型的相關資訊,獲取論文連結等。

訪問huggingface_hub 的文件以瞭解更多資訊。

此外,也可以直接透過程式設計方式將檔案或資料夾上傳到 Hub:https://huggingface.co/docs/huggingface_hub/guides/upload

使用 Git

最後,由於模型倉庫只是 Git 倉庫,您也可以使用 Git 將模型檔案推送到 Hub。請按照倉庫入門指南,瞭解如何使用 git CLI 提交和推送模型。

< > 在 GitHub 上更新

© . This site is unofficial and not affiliated with Hugging Face, Inc.