Hub 文件

任務 (Tasks)

Hugging Face's logo
加入 Hugging Face 社群

並獲得增強的文件體驗

開始使用

任務

什麼是任務 (Task)?

任務或管線 (pipeline) 類型描述了每個模型 API 的「形狀」(輸入與輸出),並用於判斷我們希望為特定模型顯示哪種 Inference API 與小工具 (widget)。

這種分類相對較粗略(您隨時可以在模型標籤中加入更細緻的任務名稱),因此您幾乎不需要建立新任務。如果您想加入對新任務的支援,本文件將說明所需的步驟。

概覽

將新任務整合到 Hub 意味著:

  • 使用者可以搜尋給定任務的所有模型與資料集。
  • Inference API 支援該任務。
  • 使用者可以直接使用小工具嘗試模型。 🏆

請注意,您不需要獨自完成所有步驟。新增任務是一項社群協作,多人可以共同參與。 🧑‍🤝‍🧑

要開始這個過程,請在 huggingface_hub 儲存庫中開啟一個新的 issue。請使用「Adding a new task」模板。 ⚠️ 在進行任何編碼之前,建議您先通讀本文件。 ⚠️

第一步是為您提議的任務上傳模型。一旦 Hub 中有了該新任務的模型,下一步就是啟用 Inference API 的支援。您可以從三種支援類型中選擇:

  • 🤗 使用 transformers 模型
  • 🐳 使用來自官方支援函式庫的模型
  • 🖨️ 使用帶有自訂推論程式碼的模型。此實驗性選項有其缺點,因此我們建議使用其他方法。

最後,您可以新增一些 UI 元素(如任務圖示和小工具),以完成在 Hub 上的整合。 📷

有些步驟是獨立的;您不必按順序執行。您不需要 Inference API 也能新增圖示。這意味著即使尚未完全整合,使用者仍然可以搜尋該任務的模型。

將新任務加入 Hub

使用 Hugging Face transformers 函式庫

如果您的模型是基於 transformers 的模型,Inference API 任務與 pipeline 類別之間存在 1:1 的對應關係。以下是來自 transformers 函式庫的 PR 範例:

一旦 pipeline 被提交並部署,您就應該能夠為您的模型使用 Inference API。

使用 Community Inference API 與受支援的函式庫

Hub 在 Community Inference API 中也支援超過 10 個開源函式庫。

新增任務相對簡單,且需要提交 2 個 PR:

新增 Community Inference API 用於快速原型開發

我的模型不被任何函式庫支援,我沒救了嗎? 😱

對於這些使用情境,我們建議使用 Hugging Face Spaces

UI 元素

Hub 允許使用者透過特定任務來篩選模型。為此,您需要在多個地方新增該任務。您還需要為該任務選擇一個圖示!

  1. 將任務類型新增至 Types.ts

huggingface.js/packages/tasks/src/pipelines.ts 中,您需要做幾件事:

  1. 選擇圖示

您可以在 lib/Icons 目錄中新增圖示。我們通常從 https://icones.js.org/collection/carbon 選擇 carbon 圖示。同時也請將圖示新增至 PipelineIcon

小工具 (Widget)

一旦任務進入生產環境,還有什麼比實現讓使用者在瀏覽器中直接玩轉模型的方式更令人興奮呢? 🤩 您可以在這裡找到所有小工具。

如果您有興趣貢獻小工具,可以參考所有小工具的實作方式

在 GitHub 上更新

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