【Gradio】Pythonだけで機械学習Webアプリを開発できる

【Gradio】Pythonだけで機械学習Webアプリを開発できる プログラミング

「機械学習のWebアプリを作成したい」
「WebのスキルなしでリッチなUIの画面を作成したい」

このような場合には、Gradioがオススメです。
この記事では、Gradioについて解説しています。

本記事の内容

  • Gradioとは?
  • Gradioのシステム要件
  • Gradioのインストール
  • Gradioの動作確認

それでは、上記に沿って解説していきます。

Gradioとは?

Gradioとは、機械学習Webアプリケーションを構築するためのPythonライブラリです。
機械学習のデモにおいて、次のようなUIの画面を見たことがありませんか?

このような画面を持つWebアプリは、Gradioで開発されています。
Gradioを利用すれば、Webシステム開発のスキルは不要です。

そのこともあり、Gradioは機械学習エンジニアに人気があります。
Gradioを使えば、凝った画面のUIを持つデモ画面を構築できます。

どのような画面を作れるかは、Gradio公式で確認可能です。

Gradioデモ画面
https://gradio.app/demos/

また、GradioはJupyter NotebookやGoogle Colaboratoryでも動きます。
両方とも機械学習を実行する上では、人気のある環境です。

それらの環境においても動くことから、Gradioの需要が高いのでしょう。
技術は普及してナンボのところがあります。
その点では、Gradioの狙いは功を奏していると言えます。

以上、Gradioについて説明しました。
次は、Gradioのシステム要件を説明します。

Gradioのシステム要件

現時点(2022年9月末)でのGradioの最新バージョンは、3.3.1となります。
この最新バージョンは、2022年9月16日にリリースされています。

サポートOSに関しては、以下を含むクロスプラットフォーム対応でしょう。

  • Windows
  • macOS
  • Linux

Gradioの要件として、特にOSが明記されていません。
このような場合は、クロスプラットフォーム対応のケースが多いです。

WindowsとLinuxでは、実際にGradioの動作を確認できました。
おそらく、macOSでも問題ないでしょう。

サポート対象となるPythonのバージョンは、Python 3.7以降です。
これは、以下のPython公式開発サイクルに準じています。

バージョンリリース日サポート期限
3.62016年12月23日2021年12月23日
3.72018年6月27日2023年6月27日
3.82019年10月14日2024年10月
3.92020年10月5日2025年10月
3.102021年10月4日2026年10月

Python 3.6は、2021年末でサポート期限が切れています。

ここまでを見ると、Gradioのシステム要件はあってないようなモノです。
適切なバージョンのPythonであれば、どんなOSでも構わないと言えます。

以上、Gradioのシステム要件を説明しました。
次は、Gradioのインストールを説明します。

Gradioのインストール

Gradioのインストールは、Python仮想環境の利用を推奨します。

検証は、次のバージョンのPythonで行います。

> python -V  
Python 3.10.4

まずは、現状のインストール済みパッケージを確認しておきます。

> pip list                                                                               
Package    Version 
---------- ------- 
pip        22.2.2 
setuptools 65.3.0 
wheel      0.37.1

次にするべきことは、pipとsetuptoolsの更新です。
pipコマンドを使う場合、常に以下のコマンドを実行しておきましょう。

python -m pip install --upgrade pip setuptools

では、Gradioのインストールです。
Gradioのインストールは、以下のコマンドとなります。

pip install gradio

Gradioのインストールは、そこそこ時間がかかります。
終了したら、どんなパッケージがインストールされたのかを確認します。

> pip list           
Package            Version 
------------------ --------- 
aiohttp            3.8.3 
aiosignal          1.2.0 
analytics-python   1.4.0 
anyio              3.6.1 
async-timeout      4.0.2 
attrs              22.1.0 
backoff            1.10.0 
bcrypt             4.0.0 
certifi            2022.9.14 
cffi               1.15.1 
charset-normalizer 2.1.1 
click              8.1.3 
colorama           0.4.5 
contourpy          1.0.5 
cryptography       38.0.1 
cycler             0.11.0 
fastapi            0.85.0 
ffmpy              0.3.0 
fonttools          4.37.3 
frozenlist         1.3.1 
fsspec             2022.8.2 
gradio             3.3.1 
h11                0.12.0 
httpcore           0.15.0 
httpx              0.23.0 
idna               3.4 
Jinja2             3.1.2 
kiwisolver         1.4.4 
linkify-it-py      1.0.3 
markdown-it-py     2.1.0 
MarkupSafe         2.1.1 
matplotlib         3.6.0 
mdit-py-plugins    0.3.0 
mdurl              0.1.2 
monotonic          1.6 
multidict          6.0.2 
numpy              1.23.3 
orjson             3.8.0 
rfc3986            1.5.0 
setuptools         65.3.0 
six                1.16.0 
sniffio            1.3.0 
starlette          0.20.4 
typing_extensions  4.3.0 
uc-micro-py        1.0.1 
urllib3            1.26.12 
uvicorn            0.18.3 
websockets         10.3 
wheel              0.37.1 
yarl               1.8.1

以上、gTTSのインストールを説明しました。
次は、gTTSの動作確認を説明します。

Gradioの動作確認

Gradioの動作確認を行います。
動作確認用のコードは、以下。

import gradio as gr

def greet(name): 
    return "Hello " + name + "!"

demo = gr.Interface(fn=greet, inputs="text", outputs="text") 
demo.launch()

上記を実行すると、コンソールに次のように表示されます。

flagged 
Running on local URL:  http://127.0.0.1:7860 
To create a public link, set `share=True` in `launch()`.

この状態のまま、ブラウザで「http://127.0.0.1:7860」にアクセスしましょう。
次のような画面を確認できます。

「name」に適当な値を入力します。
入力したら、「送信」ボタンをクリック。

このように表示されます。
入力した値が、次の関数で処理されています。

def greet(name): 
    return "Hello " + name + "!"

Gradioを使うと、このように簡単にWebシステムを作成することが可能になります。

以上、Gradioの動作確認を説明しました。

タイトルとURLをコピーしました