Hugging Face's logo
加入 Hugging Face 社区

并获得增强的文档体验

开始使用

小组件

什么是小组件?

许多模型仓库都带有一个小组件,允许任何人在浏览器中直接运行推理。这些小组件由推理提供商提供支持,推理提供商可为开发者提供对数百个机器学习模型的简化、统一访问,并由我们的无服务器推理合作伙伴提供支持。

以下是一些当前流行模型的示例:

您可以在模型页面上探索更多模型及其小组件,或在推理游乐场中进行交互式尝试。

启用小组件

当模型由至少一个推理提供商托管时,将显示小组件,以确保模型推理的最佳性能和可靠性。提供商自主选择和控制他们部署的模型。

显示的小组件类型(文本生成、文本到图像等)从模型的pipeline_tag推断,这是一个Hub会尝试为所有模型自动计算的特殊标签。唯一的例外是conversational小组件,它显示在pipeline_tagtext-generationimage-text-to-text的模型上,只要它们也被标记为conversational。为简单起见,我们选择每个模型仅公开一个小组件。

对于某些库,例如transformers,模型类型可以根据配置文件 (config.json) 自动推断。架构可以决定类型:例如,AutoModelForTokenClassification对应于token-classification。如果您对此感兴趣,可以在此 gist中查看伪代码。

对于大多数其他用例,我们使用模型标签来确定模型任务类型。例如,如果模型卡元数据中存在tag: text-classification,则推断的pipeline_tag将是text-classification

您始终可以在模型卡元数据中通过pipeline_tag: xxx手动覆盖您的管道类型。(您也可以使用元数据 GUI 编辑器执行此操作)。

如何控制我的模型小组件示例输入?

您可以在模型卡元数据部分指定小组件输入

widget:
  - text: "This new restaurant has amazing food and great service!"
    example_title: "Positive Review"
  - text: "I'm really disappointed with this product. Poor quality and overpriced."
    example_title: "Negative Review"
  - text: "The weather is nice today."
    example_title: "Neutral Statement"

您可以提供多个示例输入。在小组件的示例下拉菜单中,它们将显示为示例 1示例 2等。或者,您也可以提供example_title

widget:
  - text: "Is this review positive or negative? Review: Best cast iron skillet you will ever buy."
    example_title: "Sentiment analysis"
  - text: "Barack Obama nominated Hilary Clinton as his secretary of state on Monday. He chose her because she had ..."
    example_title: "Coreference resolution"
  - text: "On a shelf, there are five books: a gray book, a red book, a purple book, a blue book, and a black book ..."
    example_title: "Logic puzzles"
  - text: "The two men running to become New York City's next mayor will face off in their first debate Wednesday night ..."
    example_title: "Reading comprehension"

此外,您可以在模型卡元数据中指定非文本示例输入。请参阅此处以获取所有小组件类型的完整示例输入格式列表。对于视觉和音频小组件类型,请使用src而不是text提供示例输入。

例如,允许用户通过以下方式从两个示例音频文件中选择用于自动语音识别任务

widget:
  - src: https://example.org/somewhere/speech_samples/sample1.flac
    example_title: Speech sample 1
  - src: https://example.org/somewhere/speech_samples/sample2.flac
    example_title: Speech sample 2

请注意,您也可以在模型存储库中包含示例文件并将其用作

widget:
  - src: https://huggingface.co/username/model_repo/resolve/main/sample1.flac
    example_title: Custom Speech Sample 1

但更方便的是,如果文件位于相应的模型仓库中,您只需使用仓库中的文件名或文件路径

widget:
  - src: sample1.flac
    example_title: Custom Speech Sample 1

或者如果它嵌套在仓库中

widget:
  - src: nested/directory/sample1.flac

我们在default-widget-inputs.ts 文件中提供了某些语言和大多数小组件类型的示例输入。如果缺少某些示例,我们欢迎社区提交 PR 来添加它们!

示例输出

作为示例输入的扩展,对于每个小组件示例,您还可以选择直接在output属性中描述相应的模型输出。

当模型尚不受推理提供商支持时,这很有用,这样模型页面仍然可以展示模型的工作原理以及它给出的结果。

例如,对于自动语音识别模型

widget:
  - src: sample1.flac
    output:
      text: "Hello my name is Julien"

output属性应为表示推理提供程序输出格式的 YAML 字典。

对于输出文本的模型,请参阅上面的示例。

对于输出标签的模型(例如文本分类模型),输出应如下所示

widget:
  - text: "I liked this movie"
    output:
      - label: POSITIVE
        score: 0.8
      - label: NEGATIVE
        score: 0.2

最后,对于输出图像、音频或任何其他类型资产的模型,输出应包含一个url属性,链接到仓库内的文件名或路径,或远程 URL。例如,对于文本到图像模型

widget:
  - text: "picture of a futuristic tiger, artstation"
    output:
      url: images/tiger.jpg

我们还可以在 Hugging Face UI 中显示示例输出,例如,对于文本到图像模型,可以显示酷炫图像生成的图库。

小组件可用性和提供商支持

并非所有模型都提供小组件。小组件的可用性取决于:

  1. 任务支持:模型的任务必须由推理提供商网络中的至少一个提供商支持
  2. 提供商可用性:至少有一个提供商必须提供特定模型
  3. 模型配置:模型必须具有正确的元数据和配置文件

要查看支持任务的完整列表,请查看我们的专门文档页面

所有提供商及其支持的任务列表可在此文档页面中找到。

对于没有提供商支持的模型,您仍然可以使用模型卡中的示例输出来展示功能。

您也可以直接在模型页面上点击请求提供商支持,以鼓励提供商在有足够的社区兴趣的情况下提供模型。

使用推理游乐场探索模型

在将模型集成到您的应用程序之前,您可以使用推理游乐场进行交互式测试。游乐场允许您

  • 使用自定义提示测试不同的聊天完成模型
  • 比较不同模型之间的响应
  • 尝试推理参数,如温度、最大标记数等
  • 为您的特定用例找到完美的模型

该游乐场使用与小组件相同的推理提供商基础设施,因此在将模型集成到您自己的应用程序时,您可以期待相似的性能和功能。

Inference Playground
< > 在 GitHub 上更新