Streamlit Sharing でお手軽に機械学習アプリケーションを公開する
October 30, 2020
最近 Streamlit が Streamlit Sharing という Streamlit アプリのデプロイ、管理、公開のためのプラットフォームを発表しました。 ( ref )
早速、試しに公開してみました。
https://share.streamlit.io/hnishi/streamlit-spacy-ja
spaCy で利用できる日本語モデルの streamlit デモです(レポジトリはこちら)。
Streamlit Sharing には、以下のような制約があるそうです。
- アクセス制限
- Streamlit sharing は無料
- 連携は GitHub の Public Repository のみ
- アクセス制限をつけることはできなく、全世界中に公開される
- リソース制限
- 1 アカウントあたり 3 アプリまで
- 1 CPU, 800 MB of RAM, and 800 MB of dedicated storage in a shared execution environment
- GPU は利用できない
Ref: Deploy an app — Streamlit 0.70.0 documentation
データを外部公開できないできないけど、PoC 用のデモで使いたいみたいな用途には使えないですね。
アクセス制限を設けるためには有料の Streamlit For Teams が release 予定とのことです。
手順
下記のページに記載されている手順です。
Deploy an app — Streamlit 0.70.0 documentation
ポイントをかいつまんで説明します。
まず、下記のページから github の primary email address を登録して、invite されるのを待ちます。
Streamlit Sharing - the easiest way to deploy, manage, and share Streamlit apps
筆者の場合は、2 週間ほどで invitation が email に届きました。
以下のページ (Streamlit Sharing 管理画面) にアクセスし、github アカウントとの連携を許可します。
deploy したいレポジトリと、スクリプトを指定します。
レポジトリには予め requirements.txt を用意する必要があります。
もし、apt-get を使ってインストールする必要があるパッケージがある場合は、別途 packages.txt を用意する必要があります。
しばらくすると、デプロイが完了し、ページが公開されます。
以後、レポジトリのコードが update する度に自動で deploy が行われ、アプリに変更が反映されるようになります。
下記のように、右側にログが表示されています。
まとめ
- 簡単に streamlit app をデプロイし、公開することができました
- Enterprise 版である Streamlit for Team の使い勝手が気になるところです