Hub 文件
任務
並獲得增強的文件體驗
開始使用
任務
什麼是任務?
任務,或管道型別,描述了每個模型 API(輸入和輸出)的“形狀”,並用於確定我們希望為任何給定模型顯示哪個推理 API 和小部件。


這種分類是相對粗粒度的(您始終可以在模型標籤中新增更細粒度的任務名稱),因此您應該很少需要建立新任務。如果您想新增對新任務的支援,本文件解釋了所需的步驟。
概述
將新任務整合到 Hub 意味著
- 使用者可以搜尋給定任務的所有模型和資料集。
- 推理 API 支援該任務。
- 使用者可以直接使用小部件試用模型。🏆
請注意,您不需要自己完成所有步驟。新增新任務是一項社群工作,多人可以共同貢獻。🧑🤝🧑
要開始此過程,請在 huggingface_hub 倉庫中開啟一個新問題。請使用“新增新任務”模板。⚠️在編寫任何程式碼之前,建議通讀本文件。⚠️
第一步是為您的提議任務上傳一個模型。一旦您在 Hub 中有了新任務的模型,下一步就是將其在推理 API 中啟用。您可以選擇三種支援型別
- 🤗 使用
transformers
模型 - 🐳 使用來自官方支援庫的模型
- 🖨️ 使用帶有自定義推理程式碼的模型。這個實驗性選項有其缺點,因此我們建議使用其他方法之一。
最後,您可以新增一些 UI 元素,例如任務圖示和小部件,以完成 Hub 中的整合。📷
有些步驟是正交的;您不需要按順序進行。您不需要推理 API 來新增圖示。這意味著,即使尚未完全整合,使用者仍然可以搜尋給定任務的模型。
向 Hub 新增新任務
使用 Hugging Face Transformers 庫
如果您的模型是基於 transformers
的模型,則推理 API 任務與 pipeline
類之間存在一對一的對映。以下是 transformers
庫中的一些示例 PR:
一旦管道提交併部署,您就可以為您的模型使用推理 API。
將社群推理 API 與支援的庫結合使用
Hub 還支援 社群推理 API 中超過 10 個開源庫。
新增新任務相對簡單,需要 2 個 PR:
- PR 1:將新任務新增到 API 驗證。此程式碼確保推理輸入對於給定任務有效。一些 PR 示例:
- PR 2:將新任務新增到庫 docker 映象。您還應該將模板新增到
docker_images/common/app/pipelines
,以方便將任務整合到其他庫中。這是一個示例 PR:
為快速原型新增社群推理 API
我的模型不受任何庫支援。我註定失敗了嗎?😱
對於這些用例,我們建議使用 Hugging Face Spaces。
UI 元素
Hub 允許使用者按給定任務篩選模型。為此,您需要將任務新增到多個位置。您還可以為任務選擇一個圖示!
- 將任務型別新增到
Types.ts
在 huggingface.js/packages/tasks/src/pipelines.ts 中,您需要做幾件事:
- 將型別新增到
PIPELINE_DATA
。請注意,管道型別分為不同的類別(NLP、音訊、計算機視覺和其他)。 - 您還需要在 huggingface.js/packages/tasks/src/tasks/index.ts 中進行少量更改。
- 選擇一個圖示
您可以在 lib/Icons 目錄中新增一個圖示。我們通常從 https://icones.js.org/collection/carbon 選擇 Carbon 圖示。此外,將圖示新增到 PipelineIcon。
小部件
一旦任務投入生產,還有什麼比實現使用者可以直接在瀏覽器中玩模型的方式更令人興奮的呢?🤩 您可以在此處找到所有小部件。
如果您有興趣貢獻一個小部件,可以檢視所有小部件的實現。
< > 在 GitHub 上更新