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