ハカセノオト

moon indicating dark mode
sun indicating light mode

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 アカウントとの連携を許可します。

https://share.streamlit.io/

deploy したいレポジトリと、スクリプトを指定します。

レポジトリには予め requirements.txt を用意する必要があります。

もし、apt-get を使ってインストールする必要があるパッケージがある場合は、別途 packages.txt を用意する必要があります。

しばらくすると、デプロイが完了し、ページが公開されます。

以後、レポジトリのコードが update する度に自動で deploy が行われ、アプリに変更が反映されるようになります。

下記のように、右側にログが表示されています。

2020 10 31 17 00 32

まとめ

  • 簡単に streamlit app をデプロイし、公開することができました
  • Enterprise 版である Streamlit for Team の使い勝手が気になるところです

参考


hnishi のブログ


技術系の記事など。
綺麗に書こうとすると続かない気がするので、割と雑に、備忘録的に書いていく方針。
内容に誤りがあった場合などのご連絡は、Twitter の DM などで頂けると幸いです。