Gradioを使用して、Spacesで自分のプロジェクトをショーケースしましょう
Let's showcase your project on Spaces using Gradio.
Gradioを利用することで、機械学習プロジェクトを簡単にデモンストレーションすることができます。
このブログ記事では、以下の内容について説明します:
- 最近のGradioの統合により、Inference APIを活用してHubからモデルをシームレスにデモンストレーションする方法
- Hugging Face Spacesを使用して、独自のモデルのデモをホストする方法
GradioでのHugging Face Hub統合
Hubでモデルを簡単にデモンストレーションすることができます。以下を含むインターフェースを定義するだけでOKです:
- 推論を行いたいモデルのリポジトリID
- 説明とタイトル
- オーディエンスをガイドするための入力例
インターフェースを定義したら、.launch()
を呼び出すだけでデモが開始されます。これはColabで行うこともできますが、コミュニティと共有する場合はSpacesを使用するのがおすすめです!
SpacesはPythonでMLデモアプリを簡単にホストするための無料の方法です。Spacesを使用するには、https://huggingface.co/new-space にリポジトリを作成し、SDKとしてGradioを選択します。作業が完了すると、app.py
というファイルを作成し、下のコードをコピーするだけで、数秒でアプリを起動できます!
import gradio as gr
description = "GPT-2によるストーリー生成"
title = "独自のストーリーを生成する"
examples = [["冒険者が酒場で謎の見知らぬ人から新たなクエストを持ちかけられる。"]]
interface = gr.Interface.load("huggingface/pranavpsv/gpt2-genre-story-generator",
description=description,
examples=examples
)
interface.launch()
ここでストーリー生成モデルを試すことができます
Gradioは内部でInference APIを呼び出し、spaCy、SpeechBrain、Asteroidなどの他の人気のあるMLフレームワークとTransformersをサポートしています。この統合では、image-to-text
、speech-to-text
、text-to-speech
など、さまざまなタイプのモデルをサポートしています。例として、BigGAN ImageNetのtext-to-image
モデルを以下で確認できます。実装は以下の通りです。
import gradio as gr
description = "BigGANによるテキストから画像へのデモ"
title = "BigGAN ImageNet"
interface = gr.Interface.load("huggingface/osanseviero/BigGAN-deep-128",
description=description,
title = title,
examples=[["アメリカンロビン"]]
)
interface.launch()
Hugging Face SpacesでGradioを使用してカスタムモデルのチェックポイントを提供する
Inference APIがモデルをサポートしていない場合でも、Spacesでモデルを提供することができます。以下に説明するように、GradioのInterface
でモデルの推論をラップし、Spacesに配置するだけです。
モデルのミックス&マッチ!
Gradio Seriesを使用することで、さまざまなモデルをミックス&マッチすることができます!ここでは、フランス語から英語への翻訳モデルをストーリージェネレータの上に配置し、英語からフランス語への翻訳モデルをジェネレータモデルの最後に配置して、フランス語のストーリージェネレータを作成しています。
import gradio as gr
from gradio.mix import Series
description = "独自のD&Dストーリーを生成する!"
title = "Opus MTと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で提供することができます!これを行うには、単に新しいスペースを作成し、デモをドラッグ&ドロップするか、Gitを使用します。
Spacesで最初のデモを簡単に作成できます!こちらでお試しください。
We will continue to update VoAGI; if you have any questions or suggestions, please contact us!
Was this article helpful?
93 out of 132 found this helpful
Related articles