在Spaces中展示您的项目,使用Gradio

在Spaces中展示您的项目,使用Gradio

通过Gradio,展示一个机器学习项目非常容易。

在这篇博文中,我们将带您了解以下内容:

  • 最近的Gradio集成,可以帮助您使用少量代码无缝地演示Hub中的模型,利用推理API。
  • 如何使用Hugging Face Spaces托管您自己的模型演示。

Gradio中的Hugging Face Hub集成

您可以轻松地在Hub中展示您的模型。您只需要定义包含以下内容的接口:

  • 您想要进行推理的模型的存储库ID
  • 一个描述和标题
  • 示例输入,以指导您的观众

定义完接口后,只需调用.launch(),您的演示将开始运行。您可以在Colab中完成此操作,但如果您想与社区共享,一个很好的选择是使用Spaces!

Spaces是一种简单、免费的托管Python机器学习演示应用程序的方法。要这样做,您可以在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 Generation模型

在幕后,Gradio调用了支持Transformers以及其他流行的机器学习框架,如spaCy、SpeechBrain和Asteroid的推理API。该集成支持不同类型的模型,如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()

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

即使推理API不支持您的模型,您也可以在Spaces中提供您的模型。只需按照下面所述,在Gradio的Interface中包装您的模型推理,并将其放入Spaces中。

混合和匹配模型!

使用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()

您可以在这里查看法语故事生成器

将您的模型上传到Spaces

您可以通过Spaces在Hugging Face上提供您的演示!要做到这一点,只需创建一个新的Space,然后拖放您的演示或使用Git。

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