Hub 文件
任務 (Tasks)
並獲得增強的文件體驗
開始使用
任務
什麼是任務 (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:
- PR 1:將新任務新增至 API 驗證 (validation)。此程式碼確保推論輸入對於特定任務是有效的。部分 PR 範例:
- PR 2:將新任務新增至函式庫的 docker 映像檔。您也應該在
docker_images/common/app/pipelines中新增一個模板,以促進該任務在其他函式庫中的整合。以下是 PR 範例:
新增 Community Inference API 用於快速原型開發
我的模型不被任何函式庫支援,我沒救了嗎? 😱
對於這些使用情境,我們建議使用 Hugging Face Spaces。
UI 元素
Hub 允許使用者透過特定任務來篩選模型。為此,您需要在多個地方新增該任務。您還需要為該任務選擇一個圖示!
- 將任務類型新增至
Types.ts
在 huggingface.js/packages/tasks/src/pipelines.ts 中,您需要做幾件事:
- 將類型新增至
PIPELINE_DATA。請注意,pipeline 類型已歸類為不同類別(NLP、音訊、電腦視覺及其他)。 - 您還需要在 huggingface.js/packages/tasks/src/tasks/index.ts 中進行細微調整。
- 選擇圖示
您可以在 lib/Icons 目錄中新增圖示。我們通常從 https://icones.js.org/collection/carbon 選擇 carbon 圖示。同時也請將圖示新增至 PipelineIcon。
小工具 (Widget)
一旦任務進入生產環境,還有什麼比實現讓使用者在瀏覽器中直接玩轉模型的方式更令人興奮呢? 🤩 您可以在這裡找到所有小工具。
如果您有興趣貢獻小工具,可以參考所有小工具的實作方式。
在 GitHub 上更新