MENU

Gradio入門:Pythonで機械学習WebアプリをGUIで簡単に作る方法

目次

Gradioとは?

主な特徴

  • わずか数行のPythonコードでWebアプリが作れる
  • HTMLやJavaScriptを書く必要がない
  • テキスト、画像、音声など様々な形式の入出力に対応
  • Hugging Faceとの連携が容易
  • Jupyterノートブックとの親和性が高い

Gradioの基本的な使い方

インストール方法

pip install gradio

シンプルなアプリの作成

import gradio as gr def greet(name): return "Hello " + name + "!" demo = gr.Interface(fn=greet, inputs="text", outputs="text") demo.launch()

様々な入出力形式に対応

豊富な入出力コンポーネント

  • Textbox(テキスト入力)
  • Number(数値入力)
  • Dropdown(選択肢)
  • Checkbox(チェックボックス)
  • Image(画像)
  • Audio(オーディオ)
  • Video(ビデオ)
  • File(ファイルアップロード)
  • Dataframe(表形式データ)

画像分類アプリの例

import gradio as gr from tensorflow.keras.applications.mobilenet_v2 import MobileNetV2, preprocess_input, decode_predictions import numpy as np model = MobileNetV2() def predict(img): img = preprocess_input(img) pred = model.predict(np.expand_dims(img, 0)) return decode_predictions(pred, top=3)[0] gr.Interface(fn=predict, inputs=gr.Image(shape=(224, 224)), outputs=gr.Label(num_top_classes=3)).launch()

Hugging Faceとの連携

文章生成アプリの例

import gradio as gr from transformers import GPT2LMHeadModel, GPT2Tokenizer model = GPT2LMHeadModel.from_pretrained("gpt2-large") tokenizer = GPT2Tokenizer.from_pretrained("gpt2-large") def generate_text(input_text, num_return_sequences, num_beams): input_ids = tokenizer.encode(input_text, return_tensors='pt') output = model.generate(input_ids, num_return_sequences=num_return_sequences, num_beams=num_beams, early_stopping=True) return tokenizer.batch_decode(output) gr.Interface( generate_text, [gr.inputs.Textbox(lines=2, placeholder="Enter a prompt to generate text..."), gr.inputs.Slider(1, 5, value=1, step=1, label="Number of outputs"), gr.inputs.Slider(2, 10, value=5, step=1, label="Number of beams")], gr.outputs.Textbox(), examples=[ ["The quick brown fox", 1, 1], ["The quick brown fox", 2, 1], ["The quick brown fox", 2, 5], ] ).launch();

ノートブック環境との親和性

ノートブック上でのアプリ起動例

import gradio as gr def greet(name): return "Hello " + name + "!" gr.Interface(fn=greet, inputs="text", outputs="text").launch()

Gradioのその他の使い方

  • Webスクレイピングしたデータを可視化するアプリ
  • オープンデータを使った分析アプリ
  • 外部APIを組み合わせたマッシュアップアプリ

Gradioのインタラクティブ性を支える技術

  1. コンポーネントの入力と出力の自動バインディング
  2. イベントリスナーによる動的な振る舞い
  3. ステートを持つコンポーネント
  4. Svelteを使ったフロントエンドの実装
  5. FastAPIを使ったバックエンドの実装

まとめ

Gradioのおかげで、機械学習モデルのデモアプリが簡単に作れるようになりました。Hugging Faceで公開されているモデルも、数行のコードでアプリに組み込めるのは本当に便利です。UIのカスタマイズ性も高いので、ユーザーに使いやすいアプリが作れています。Gradioは機械学習エンジニアの強力な味方ですね。

Gradioインストール方法

1. pipを使ったインストール(推奨)

pip install gradio

2. Condaを使ったインストール

conda install -c conda-forge gradio

3. ソースコードからのインストール

git clone https://github.com/gradio-app/gradio.git cd gradio pip install -e .

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

目次