Gradio入門 --- 基礎から始める

はじめに

GradioはオープンソースのPythonライブラリであり、機械学習モデル、API、または任意のPython関数のためのデモやWebアプリケーションを素早く構築することができます。Gradioの組み込み共有機能を使用すると、数秒でデモやWebアプリケーションへのリンクを共有することが可能です。JavaScript、CSS、Webホスティングの経験は不要です!

Gradioの最大の特長は、その手軽さと便利성에あります。短短数行のコードで大規模言語モデルのWebアプリケーションを構築でき、多くのAIデモで使用されています。

環境設定とインストール

前提条件:GradioはPython 3.8以上が必要です。Pythonがインストールされていれば、Windows、Linux、macOSのいずれでも同様に動作します。

インストールは以下のコマンドで実施します:

pip install gradio

# 中国のミラーサイトを使用する場合
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple gradio

Gradioは、お好みのコードエディタ、Jupyterノートブック、Google Colabなどで実行できますでは、最初のGradioアプリケーションを作成してみましょう。

最初のアプリケーション作成

公式 示例をベースにして、コメントを追加したコードを示します:

import gradio as gr

# 関数名を greet から calculate_message に変更
# 変数名もより具体的に変更
def calculate_message(user_name, emphasis_level):
    """ユーザー名と強調レベルでメッセージを構築する関数"""
    return "こんにちは、" + user_name + "さん!" * int(emphasis_level)

# Interfaceクラスの使用
demo = gr.Interface(
    fn=calculate_message,
    inputs=["text", "slider"],
    outputs=["text"],
)

demo.launch()

上記のコードを実行すると、シンプルなWebアプリケーションが構築されます。app.pyというファイル名で保存した場合、ターミナルで以下を実行します:

python app.py

デモページはブラウザで http://localhost:7860 に表示されます。Jupyterノートブックで実行した場合は、ノートブック内にデモが埋め込まれます。

これで最初のアプリケーション 完成です。次にHot Reload機能について説明します。

Hot Reload(ホットリロード)機能

Gradioデモを構築する際、特にBlocks外部で作業している場合、毎回コードを再実行して変更を確認するするのは面倒です。

より効率的に開発を行うために、VS Code、Sublime Text、PyCharmなどのPython IDEやターミナルから開発を行う場合、Gradioアプリケーションを即座に「リロード」する機能が提供されています。JupyterノートブックやColabなどの環境でも、同様の「マジックコマンド」でセルを素早く再実行できます。

ホットリロードを使うと、Webページでリアルタイムに 修改内容を確認でき、python xxx.py を繰り返し実行する必要がありません。方法はとてもシンプルです:

gradio app.py

ターミナルには以下が表示されます:

Watching: '/Users/freddy/sources/gradio/gradio', '/Users/freddy/sources/gradio/demo/'

Running on local URL:  http://127.0.0.1:7860

ファイルを保存すると、自動的に再実行されます。コーディングに集中でき демоも自動更新されるため、開発効率が向上します。

Interfaceクラスの詳細

最初のデモを作成したとき、Interfaceクラスのインスタンスを生成しました。このクラスは、1つ以上の入力を受け取り、1つ以上の出力を返す機械学習モデルのデモ構築に特化しています。gr.Interfaceは繰り返し使用する重要なクラスなので、理解を深めておきましょう。

Interfaceクラスの三大パラメータ:

fn:UIでラップするPython関数
inputs:入力用のGradioコンポーネント(関数パラメータ数と一致させる)
outputs:出力用のGradioコンポーネント(関数の戻り値数と一致させる)

fnパラメータは非常に柔軟です。音楽生成器、税計算器、事前学習済みMLモデルの予測関数など、あらゆるPython関数をUIでラップできます。

以下の図は、入力データが関数にどのように送られ、どのように処理されるかを示しています。

タグ: Gradio Python web-interface machine-learning demo-app

7月26日 18:55 投稿