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 上更新

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