MENU

Streamlit — Pythonスクリプトを一瞬でWebアプリに変える分析者向けフレームワーク

Streamlit アイキャッチ
Streamlit

Streamlitはサンフランシスコのスタートアップ Streamlit Inc. が2019年10月に公開したPython製のWebアプリフレームワークです。Google X・Zoox出身のAdrien Treuille氏らが、機械学習エンジニアが自分のモデルをチームに見せる際の手間を解消することを目的に設計し、「Pythonスクリプトを上から下に書くだけで対話的なWebアプリが立ち上がる」という驚くほどシンプルな開発体験を実現しました。2022年3月にはSnowflakeに約8億ドルで買収され、現在も活発に開発が続けられています。

目次

この記事の目次

  1. Streamlitを成立させる三本柱
  2. 創業からSnowflake傘下までの歩み
  3. 代表的なアプリのかたち
  4. Gradio・Dashとの違い
  5. まとめ

Streamlitを成立させる三本柱

Streamlitを成立させる三本柱

Streamlitの最大の発明は、「Pythonスクリプトを上から下に実行するだけでWebアプリが完成する」というプログラミングモデルです。st.sliderst.selectboxといったウィジェット関数は、その場でユーザーの選択値を返り値として返し、スクリプトの後段では普通の変数として使えます。JavaScript、HTML、CSSの知識をほぼ持ち込まずに、機械学習エンジニアやデータアナリストが「自分の分析コードの延長線」でアプリを書けます。

二つ目の柱はユーザー操作のたびにスクリプト全体を再実行する単純明快な実行モデルで、変数の状態は常にコードと一致します。三つ目の柱が@st.cache_data@st.cache_resourceという強力なキャッシュデコレータで、重い前処理やモデルロードを賢く保持し、再実行時の体感速度を劇的に高めます。近年はst.session_stateによるアプリ内状態管理や、st.fragmentによるコンポーネント単位の部分再実行も加わり、より大規模なアプリにも耐える設計に進化しました。

創業からSnowflake傘下までの歩み

創業からSnowflake傘下までの歩み

Streamlit Inc.は2018年、Adrien Treuille氏とAmanda Kelly氏、Thiago Teixeira氏らによってサンフランシスコで創業されました。Treuille氏はGoogle X、Zoox、CMUといった先進的な機械学習現場で、研究者がツールを自作する非効率を強く感じており、その課題感がStreamlitの設計に色濃く反映されています。2019年10月にApache 2.0ライセンスでOSSを公開すると、GitHubスターは公開から数日で1万を超え、ML系SNSコミュニティで瞬く間に話題となりました。

2020年にはマネージドホスティングのStreamlit Sharing(後のStreamlit Community Cloud)を提供開始し、GitHubリポジトリを指定するだけでアプリを公開できる体験を整備します。2022年3月、データクラウド企業Snowflakeが約8億ドルでStreamlit Inc.を買収し、Snowflakeのデータ基盤上でStreamlitアプリを動かせる「Streamlit in Snowflake」が登場しました。OSSとしてのStreamlit本体も活発な開発が続けられ、UIコンポーネントの拡張、AppHubの整備、Streamlit Componentsによる任意Reactコンポーネント組み込みなど、エコシステムは年々厚みを増しています。

代表的なアプリのかたち

代表的なアプリのかたち

Streamlitの典型ユースケースは、機械学習モデルを社内・顧客にデモする小さなアプリです。scikit-learnやPyTorchで学習したモデルをpicklesafetensorsで読み込み、入力フォームと予測結果表示を50〜100行程度で書ければ、URL一つでステークホルダーが触れる状態になります。Hugging Face Spacesにも公式テンプレートが用意され、研究者がモデル発表と同時にデモを公開する流れが一般化しました。

近年特に増えているのがLLMのチャットインタフェース構築で、st.chat_messagest.chat_inputが用意されたことで、RAGや独自プロンプトのフロントエンドを数十行で組めるようになりました。社内向けにはKPIダッシュボード、実験管理ツールの閲覧画面、データラベリングや業務担当者向けの入力フォームとしても重宝され、「BIツールほど大袈裟ではないが、JupyterよりUIが必要」という中間領域でStreamlitが標準解になっています。

Gradio・Dashとの違い

Gradio・Dashとの違い

GradioはHugging Face傘下のフレームワークで、「入力→モデル→出力」を関数として書くスタイルが基本です。ModelデモやLLMチャット用途では最短コードで動かせる一方、複数ページや複雑な状態管理を伴う社内アプリでは、StreamlitやDashの方が記述しやすい場面が多くなります。Streamlitはスクリプト型の素直さと、Snowflake/Hugging Face Spacesという二大ホスティングのサポートで「デモ+業務アプリ」をカバーしているのが強みです。

DashはPlotly社の製品で、Reactベースのコンポーネントツリーをコールバックで結ぶ構造を取るため、より大規模で複雑なBIダッシュボードに向きます。Flaskは完全に自由ですがHTML・JSを自分で書く必要があり、データサイエンス用のショートカットを期待するなら過剰です。Voilaはノートブックをそのまま公開する手軽さがありますが、UIの自由度は限定的です。現場では「PoC・モデルデモ=Streamlit/Gradio、本格BIダッシュボード=Dash、本格Webサービス=Flask/FastAPI」と棲み分けるパターンが定着しています。

まとめ

StreamlitはAdrien Treuille氏らが2019年に公開した、Pythonスクリプトをそのままインタラクティブなアプリへ変えるフレームワークです。2022年にSnowflakeへ買収された後も活発に進化し、ML/LLMデモと社内分析アプリの双方で実質的な標準ツールとして定着しています。

※本記事はIT用語辞典の手書きドラフトです。公開前に最新情報・出典を確認のうえ加筆修正してください。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

コメント

コメントする

目次