使用 Gradio 在 Spaces 中展示你的项目

发布于 2021 年 10 月 5 日
在 GitHub 上更新

多亏了 Gradio,展示机器学习项目变得如此简单。

在这篇博文中,我们将引导你了解

  • 最近的 Gradio 集成,它通过利用 推理 API,帮助你用几行代码无缝地演示 Hub 中的模型。
  • 如何使用 Hugging Face Spaces 来托管你自己的模型演示。

Gradio 中的 Hugging Face Hub 集成

你可以轻松地在 Hub 中演示你的模型。你只需要定义一个 Interface,它包括

  • 你想要推断的模型的仓库 ID
  • 描述和标题
  • 示例输入来引导你的受众

定义好你的 Interface 后,只需调用 .launch(),你的演示就会开始运行。你可以在 Colab 中执行此操作,但如果你想与社区分享,一个很好的选择是使用 Spaces!

Spaces 是一种简单、免费的方式来托管你的 Python ML 演示应用程序。为此,你可以在 https://huggingface.co/new-space 创建一个仓库,并选择 Gradio 作为 SDK。完成后,你可以创建一个名为 app.py 的文件,复制以下代码,你的应用程序将在几秒钟内启动并运行!

import gradio as gr

description = "Story generation with GPT-2"
title = "Generate your own story"
examples = [["Adventurer is approached by a mysterious stranger in the tavern for a new quest."]]

interface = gr.Interface.load("huggingface/pranavpsv/gpt2-genre-story-generator",
            description=description,
            examples=examples
)

interface.launch()

你可以在这里玩故事生成模型

story-gen

在底层,Gradio 调用了推理 API,该 API 支持 Transformers 以及其他流行的 ML 框架,如 spaCy、SpeechBrain 和 Asteroid。此集成支持不同类型的模型,包括 image-to-textspeech-to-texttext-to-speech 等。你可以在这里查看这个 BigGAN ImageNet text-to-image 模型的示例。实现如下。

import gradio as gr
description = "BigGAN text-to-image demo."
title = "BigGAN ImageNet"
interface = gr.Interface.load("huggingface/osanseviero/BigGAN-deep-128", 
            description=description,
            title = title,
            examples=[["american robin"]]
)
interface.launch()

big-gan

在 Hugging Face Spaces 中使用 Gradio 提供自定义模型检查点服务

即使推理 API 不支持你的模型,你也可以在 Spaces 中提供你的模型服务。只需将你的模型推理封装在 Gradio Interface 中,如下所述,并将其放入 Spaces。 imagenet-demo

混合搭配模型!

使用 Gradio Series,你可以混合搭配不同的模型!在这里,我们在故事生成器顶部放置了一个法语到英语的翻译模型,并在生成器模型末尾放置了一个英语到法语的翻译模型,以简单地创建一个法语故事生成器。

import gradio as gr
from gradio.mix import Series

description = "Generate your own D&D story!"
title = "French Story Generator using Opus MT and GPT-2"
translator_fr = gr.Interface.load("huggingface/Helsinki-NLP/opus-mt-fr-en")
story_gen = gr.Interface.load("huggingface/pranavpsv/gpt2-genre-story-generator")
translator_en = gr.Interface.load("huggingface/Helsinki-NLP/opus-mt-en-fr")
examples = [["L'aventurier est approché par un mystérieux étranger, pour une nouvelle quête."]]

Series(translator_fr, story_gen, translator_en, description = description,
        title = title,
        examples=examples, inputs = gr.inputs.Textbox(lines = 10)).launch()

你可以在这里查看法语故事生成器 story-gen-fr

将你的模型上传到 Spaces

多亏了 Spaces,你可以在 Hugging Face 中提供你的演示服务!为此,只需创建一个新的 Space,然后拖放你的演示或使用 Git。

spaces-demo

轻松地在这里构建你的第一个演示!

社区

注册登录 评论