Hub documentation
任务
任务
什么是任务?
任务(或流水线类型)描述了每个模型 API 的“形状”(即输入和输出),并用于确定要为给定模型显示哪个推理 API 和小部件。

这种分类相对较为粗略(您始终可以在模型标签中添加更细粒度的任务名称),因此您很少需要创建新任务。如果您想为某个新任务添加支持,本文档将说明所需的步骤。
概述
将新任务集成到 Hub 中意味着:
- 用户可以搜索特定任务的所有模型和数据集。
- Inference API 支持该任务。
- 用户可以直接通过小部件试用模型。🏆
请注意,您无需自行实现所有步骤。添加新任务是一项社区协作工作,多人可以共同参与贡献。🧑🤝🧑
要开始该流程,请在 huggingface_hub 仓库中打开一个新 issue。请使用“Adding a new task”模板。⚠️在进行任何编码之前,建议先通读本文档。⚠️
第一步是上传一个用于您提议任务的模型。一旦您在 Hub 中拥有了针对新任务的模型,下一步就是在 Inference API 中启用它。您可以从以下三种支持类型中进行选择:
- 🤗 使用
transformers模型 - 🐳 使用来自官方支持的库的模型
- 🖨️ 使用带有自定义推理代码的模型。此实验性选项存在缺点,因此我们建议使用其他方法。
最后,你可以添加一些 UI 元素,例如任务图标和 widget,以完成在 Hub 中的集成。📷
有些步骤是相互独立的,无需按顺序执行。添加图标并不需要使用推理 API。这意味着,即使尚未实现完全集成,用户仍然可以搜索特定任务的模型。
向 Hub 添加新任务
使用 Hugging Face transformers 库
如果您的模型是基于 transformers 的模型,那么 Inference API 任务与 pipeline 类之间存在一一对应关系。以下是来自 transformers 库的一些示例 PR:
提交并部署流水线后,您即可使用推理 API 来调用您的模型。
使用受支持的库调用社区推理 API
Hub 还支持 Community Inference API 中的 10 多个开源库。
添加新任务相对简单,需要 2 个 PR:
- PR 1:在 API 中添加新任务 验证. 此代码确保推理输入对给定任务是有效的。一些 PR 示例:添加 text-to-image、添加 audio-classification、添加 tabular-classification
- 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、Audio、Computer Vision 以及其他)。 - 您还需要在 huggingface.js/packages/tasks/src/tasks/index.ts 中补充一些小的改动
- 选择一个图标
您可以在 lib/Icons 目录中添加图标。我们通常从 https://icones.js.org/collection/carbon 中选择 carbon 图标。同时,请将图标添加到 PipelineIcon 中。
小部件
当任务投入生产环境后,还有什么比实现一种让用户直接在浏览器中与模型互动的方式更令人兴奋的呢?🤩 你可以在这里找到所有的小部件。
如果您有兴趣贡献一个组件,可以查看所有组件的实现。
Update on GitHub