Hugging Face's logo
加入 Hugging Face 社区

并获得增强的文档体验

开始使用

任务

什么是任务?

任务或管道类型描述了每个模型 API 的“形状”(输入和输出),并用于确定我们要为任何给定模型显示哪个推理 API 和小部件。

此分类相对粗略(您可以始终在模型标签中添加更细粒度的任务名称),因此您应该很少需要创建新任务。如果您想添加对新任务的支持,本文档将解释所需的步骤。

概述

将新任务集成到 Hub 意味着

  • 用户可以搜索给定任务的所有模型和数据集。
  • 推理 API 支持该任务。
  • 用户可以直接使用小部件试用模型。 🏆

请注意,您无需自己完成所有步骤。添加新任务是一项社区工作,多人可以参与贡献。 🧑‍🤝‍🧑

要开始此过程,请在 huggingface_hub 存储库中打开一个新 issue。请使用“添加新任务”模板。 ⚠️在进行任何编码之前,建议通读本文档。 ⚠️

第一步是为您提议的任务上传模型。在新任务的模型进入 Hub 后,下一步是在推理 API 中启用它。您可以从以下三种类型的支持中进行选择

  • 🤗 使用 transformers 模型
  • 🐳 使用来自官方支持的库的模型
  • 🖨️ 使用带有自定义推理代码的模型。此实验性选项存在缺点,因此我们建议使用其他方法之一。

最后,您可以添加一些 UI 元素,例如任务图标和小部件,以完成在 Hub 中的集成。 📷

有些步骤是正交的;您无需按顺序执行它们。您不需要推理 API 来添加图标。 这意味着,即使尚未完全集成,用户仍然可以搜索给定任务的模型。

向 Hub 添加新任务

使用 Hugging Face transformers 库

如果您的模型是基于 transformers 的模型,则推理 API 任务与 pipeline 类之间存在 1:1 映射。以下是来自 transformers 库的一些 PR 示例

提交并部署管道后,您应该能够为您的模型使用推理 API。

使用社区推理 API 和受支持的库

Hub 还支持 社区推理 API 中的 10 多个开源库。

添加新任务相对简单,需要 2 个 PR

为快速原型添加社区推理 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

小部件

一旦任务投入生产,有什么比实现一些方法让用户直接在浏览器中玩模型更令人兴奋的呢? 🤩 您可以在此处找到所有小部件。

如果您有兴趣贡献小部件,可以查看所有小部件的实现

< > 在 GitHub 上更新