機械学習モデル搭載WebアプリをStreamlit Cloudに無料で公開する流れ・メリットとデメリットも解説

Python

Streamlit Cloudを使えば、無料で機械学習モデル搭載のWebアプリを公開できます。無料でありがたいサービスながら、データベースのサポートがない(連携は可)等のデメリットもあります。

メリット・デメリットも含めて、わたし自身の経験に基づいて、StreamlitにWebアプリを公開する方法を解説します。

WebアプリをStreamlitに公開するか悩む方の参考になれば嬉しいです。

本記事では、大まかな流れとメリット・デメリットに焦点をあてます。具体的なコードの書き方やGitHubの設定等は省略します。

機械学習モデル搭載Webアプリを無料で公開する方法(Streamlit)

まずは開発環境でモデルを確認する部分から解説します。

機械学習モデルの開発環境で使用したライブラリとバージョンを確認

わたしは、今回はGoogle Collaboratoryを使って開発を行いました。

Google Collaboratoryは、Googleアカウントがあれば無料で使えます。モデル作成には、サイキットラーン(scikit-learn)を使用しました。

使用したライブラリとバージョンは本番環境でも必要となるので、チェックしておきます。たとえばscikit-learnのバージョンは、下記のように確認します。

【scikit-learnバージョン確認】

機械学習モデルの開発環境でモデルをエクスポート

作成したモデルは、pickleまたはjoblib形式でエクスポートしておきます。ここでは、pickle形式でエクスポートする方法をご紹介します。

まずはGoogleDriveをマウント(アクセス可能な状態にする)した後、モデルをエクスポートします。

Streamlitでモデルを搭載したWebアプリを開発

次にモデルを組み込んでWebアプリを開発します。このとき、Streamlitフレームワークを使用します。

まずはStreamlitをインストールします。

その後、アプリを開発します。その中で、モデルも搭載します。ライブラリ情報はrequirements.txtに記載します。

コードの詳細な書き方はWebアプリによって異なるので省略します。なお、わたし自身のコードは下記のGitHubレポジトリに公開しています。

GitHubにアプリを設置

開発後、GitHubにレポジトリを作り、開発したWebアプリをプッシュします。

Streamlit Cloudにアカウント作成

Streamlit Cloudページの右上のSignUpボタンを押し、Continue with GitHubを押します。GitHubでサインインします。

New appボタンをクリックします。

レポジトリ、ブランチなどの情報をいれます。しばらく待ちます。

その間、クッキーの絵がでてきたりして、楽しい気持ちになります。

Streamlit Cloudのメリットとデメリット

以上がStreamlit Cloudに公開する方法です。次にメリット・デメリットをお伝えします。

メリット

  • 無料
  • デプロイがラク
  • ドキュメントが充実

なんといっても、無料はありがたいです。またStreamlitフレームワークのコードは、書きやすいと感じました。デプロイの手順もシンプルです。

さらにドキュメント類も充実していますし、コミュニティのQ&Aコーナーなどもあったりするので、困った時に助かります。

デメリット

主に下記2点です。

  • データベースのサポートがない(接続は可能)
  • しばらく使わないと非アクティブ化する
  • 無料のプロジェクト数に制限あり

データベースのサポートがない(接続は可能)

データベース接続は可能ですが、データベースサーバーは自分で用意する必要があります。

レンタルサーバーのデータベースは、外部接続に対応しないこともあります。そこで、今回は無料のデータベースサービスを使ってみることにしました。

ただ、サービスが終了してしまっていたりして、良いものが見当たらず。結局 Free Sql Database

というサービスを使用しましたが、こちらは、1か月で無料期間が終わってしまいます。

ちなみにデータベースとの接続情報はSettings/Secretsに記載します。

しばらく使わないと非アクティブ化する

Webアプリが使われないまま5日間たつと、非アクティブになってしまうようです。わたしのWebアプリも気づくと非アクティブになっていることがありました。

ただ、ログインしてすぐにアクティブに戻せます。

無料のプロジェクト数に制限あり

無料版の場合、パブリックプロジェクトは無制限ながら、プライベートプロジェクトは1個までという制限があります。

さいごに

Streamlit CloudにWebアプリを公開する流れと、メリット・デメリットについてお伝えしました。

わたしの結論からいうと、「ちょっと試しに公開したい」という軽い気持ちであれば、非常に良いサービスだと思います。

ですが、きちんとしたWebアプリの場合には、あまりおすすめできません。何しろ、放置しておくと非アクティブになっていたりするので。

ただ、無料で使いやすいサービスであることも事実です。用途によって、使い分けるのが良いと思いました。

最後に、Streamlit Cloud上のわたしのWebアプリについては、下記のとおりです。

■GitHubコード:

■Streamlit Cloudに公開したWebアプリ:

 

上記のWebアプリは、エックスサーバーに引越ししました。エックスサーバーにPythonアプリを公開する手順は下記の記事にまとめているので、ご興味あれば、見てみてくださいね。

 

Python

【Laravelの教科書・プレゼント】

Junko
Laravelの使い方を覚えたい!と思ったら、ぜひ、役立ててほしいです。 基礎編は無料でプレゼント中です♪
ひつじプログラマ
会員制サイトをいちから作っていくよ。ボタンをクリックして詳細を見てね。
Laravelの教科書の詳細を見る

最新のLaravel10版テキストに加え、Laravel8版・Laravel9版もご用意しています♪

【無料プレゼント】

「LaravelでWebアプリをいちから作れるようになりたい!」

そんなLaravel初心者のあなたへ【Laravelの教科書】基礎編プレゼント中! 会員制フォーラムサイトを学習しながら作れます。

詳細はこちらをクリック

最新のLaravel10版テキストに加え、Laravel8版・Laravel9版もご用意しています♪

Laravelの本を書きました。


ひつじが目印♪
クリックするとamazonページへ。

Laravelの使い方を分かりやすく解説した書籍を出版しました。書店やAmazon等のオンラインショップにて販売中です。
Laravel10対応。Laravel11サポートガイドもご用意しています。詳しくは下記ボタンをクリック♪

書籍の詳細を見てみる

Laravelの本を書きました。


ひつじが目印♪
クリックするとamazonページへ。

Laravel10対応

Laravelの使い方を分かりやすく解説した書籍を出版しました。書店やAmazon等のオンラインショップにて販売中です。

書籍の詳細を見てみる

 

Laravelの教科書限定コミュニティ【Laravelの教科書ラボ】はじめました。
デプロイ講座付。StripeやChatGPT連携など過去10回分のセミナー動画視聴可能。

Laravel実践スキルをのばしたい方におすすめです。

ラボの案内を見てみる

Twitter始めました。
40代からプログラミング!
タイトルとURLをコピーしました