Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Gradioでもう誰でも見れるデモ

Henry Cui
November 27, 2022

 Gradioでもう誰でも見れるデモ

Henry Cui

November 27, 2022
Tweet

More Decks by Henry Cui

Other Decks in Technology

Transcript

  1. Gradioでもう誰でも見れるデモ
    機械学習の社会実装勉強会第17回
    Henry
    2022/11/26

    View Slide

  2. 人にデモを見せたい
    ■ 機械学習を使ったシステムを開発するにあたって、以下のよう
    な進捗共用が少なくない
    ● データ解析手法を変えた場合の解析結果
    ● モデル構造を変えた場合の推論結果
    ● 新しいデータに対するEDA
    ● ……
    ■ ニーズ
    ● 粒度の高い細かめのステップでデモを見せたい(大げさでない)
    ● インタラクティブなデモを見せたい
    ■ ペインポイント
    ● 相手にアクセスしてもらうためには、どこかにデプロイしないといけない
    ● 再現可能な環境を用意し、相手に準備してもらう
    2

    View Slide

  3. Gradioでインタラクティブなデモ
    ■ 二層のインタラクティブネス
    ● ブラウザでインタラクティブに扱える
    ● 自分が用意したデモを、他人が簡単にURLでアクセスできる
    ■ ブラウザでインタラクティブ
    ● https://gradio.app/
    ● Pythonで作れるデータサイエンス・機械学習用のミニアプリ
    3

    View Slide

  4. 他人が簡単にアクセスできるデモ
    ■ パラメータ一つを設定するだけで、シェア可能!
    ● gr.Interface(classify_image, "image", "label").launch(share=True)
    ■ これで、http://xxx.gradio.app のようなURLが生成される
    ■ このURLにアクセスすることで、ローカルPCで動かされている
    Gradioアプリにアクセスすることになる
    ● たとえ公開IPなど設定されていなくても!
    ■ これの実現方法をこれから説明する
    4

    View Slide

  5. SSHを用いたリモートフォワード
    ■ 外部ネットワークから内部ネットワークにアクセスしたいという
    ニーズ
    ■ 通常、SSHで使うポートフォワーディングはローカルフォワード
    と呼ばれて、SSHコネクションと同方向のアクセスしかできな

    ■ しかし、リモートフォワーディングを使えば、片方の通信が確立
    された、逆方向のアクセスもできる
    5
    http://redhatlinux.kt.fc2.com/cont/ssh+pp3.gif

    View Slide

  6. SSHを用いたリモートフォワード
    ■ ローカルPC 192.168.11.3
    ■ (Gradioの)サーバー xxx.xx.xxx.xx
    ■ ローカルPCで、以下のコマンドを実行
    ● ssh -R 8501:xxx.xx.xxx.xx:22 192.168.11.3
    ■ これでサーバーからローカルPCに逆方向で通信するトンネル
    ができる
    ■ サーバーへのアクセスが、ローカルPCでのアプリへにリダイレ
    クトされる
    6

    View Slide

  7. Gradioでの実現方法
    ■ 表はパラメータ一つで制御
    ■ gradio/tunneling.pyにcreate_tunnel関数が実装される
    ● paramikoライブラリーを使用
    7

    View Slide

  8. まとめ
    ■ Gradioでシェアできるデモ
    ■ SSHのリモートフォワード
    ■ セキュリティなどのリスクを考慮して、長い期間でデモを見せた
    いときは、AWS App Runnerでデプロイするのがおすすめ
    8

    View Slide