Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
3分でMLアプリを作る 〜推論コードにちょっとのStreamlitを添えて〜
Search
Yamaguchi Takahiro
April 14, 2022
Technology
1
1.1k
3分でMLアプリを作る 〜推論コードにちょっとのStreamlitを添えて〜
3分クッキング的にMLアプリを作れるよという話です。
Yamaguchi Takahiro
April 14, 2022
Tweet
Share
More Decks by Yamaguchi Takahiro
See All by Yamaguchi Takahiro
コンペを気楽に開催しよーぜ!@関西Kaggler会
nyk510
0
1.3k
Django のセキュリティリリースを見る
nyk510
0
100
硬派で真面目なグラフを描く
nyk510
0
530
CORSをちゃんと理解する atmaバックエンド勉強会#4
nyk510
0
420
pythonで気軽にパッケージを作るのは良いという話。
nyk510
14
9.8k
RestAPIのページネーション atma バックエンド勉強会 #3
nyk510
1
990
AWS CPU Credit を完全に理解する
nyk510
0
470
atmaCup#8 Opening
nyk510
0
280
オンサイトデータコンペの魅力: 関わる全員が楽しいコンペ設計のための取り組み
nyk510
3
5.5k
Other Decks in Technology
See All in Technology
コンピューティングリソース何を使えばいいの?
tomokusaba
1
160
Dart and Flutter MCP serverで実現する AI駆動E2Eテスト整備と自動操作
yukisakai1225
0
430
内部品質・フロー効率・コミュニケーションコストを悪化させ現場を苦しめかねない16の組織設計アンチパターン[超簡易版] / 16 Organization Design Anti-Patterns for Software Development
mtx2s
2
210
マイクロリブート ~ACEマインドセットで実現するアジャイル~
sony
0
320
隙間ツール開発のすすめ / PHP Conference Fukuoka 2025
meihei3
0
400
Post-AIコーディング時代のエンジニア生存戦略
shinoyu
0
270
レビュー負債を解消する ― CodeRabbitが支えるAI駆動開発
moongift
PRO
0
190
嗚呼、当時の本番環境の状態で AI Agentを再評価したいなぁ...
po3rin
0
410
[mercari GEARS 2025] Building Foundation for Mercari’s Global Expansion
mercari
PRO
1
110
從裝潢設計圖到 Home Assistant:打造智慧家庭的實戰與踩坑筆記
kewang
0
160
これからアウトプットする人たちへ - アウトプットを支える技術 / that support output
soudai
PRO
18
5.4k
「データ無い! 腹立つ! 推論する!」から 「データ無い! 腹立つ! データを作る」へ チームでデータを作り、育てられるようにするまで / How can we create, use, and maintain data ourselves?
moznion
7
4k
Featured
See All Featured
Statistics for Hackers
jakevdp
799
220k
The Art of Delivering Value - GDevCon NA Keynote
reverentgeek
16
1.7k
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
37
2.6k
Responsive Adventures: Dirty Tricks From The Dark Corners of Front-End
smashingmag
253
22k
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
234
17k
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
132
19k
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
118
20k
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
333
22k
VelocityConf: Rendering Performance Case Studies
addyosmani
333
24k
Building a Modern Day E-commerce SEO Strategy
aleyda
45
8k
Designing for Performance
lara
610
69k
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
162
15k
Transcript
3分でMLアプリを作る 〜 推論コードにちょっとのStreamlitを添えて 〜 atma株式会社 山口貴大@nyk510
自己紹介 山口貴大 atma(アートマ)株式会社 取締役 学生時代に数理最適化の応用としての機械学習に興味をもち 新卒でatma入社。データ分析領域から、エンジニアとして フロントエンド・バックエンドの開発を行っています。 twitter: @nyker_goto
突然ですが、こんなことは無いですか? • 画像認識のモデルを作った! • 次はノンエンジニアに推論結果を共有したい!
意外とめんどくさい .py だと、推論できる人が実装者に限られる • 画像渡すので推論して!の要望に都度答える必要がある • 依頼が何度も来ると大変
めんどくさいなら WEBアプリにして 直接使ってもらえばよいのでは!
でも作るのは大変じゃない? • バックエンドわからん • フロントエンドわからん
わからんくても3分でできるよ!
3分は言い過ぎでは? → 基本の推論コードがあったら すぐできます
前提条件 推論用のコードは書いている • 画像を受け取ってモデルに入れてその予測値を返すコードがある。 Streamlit が install 済み • python
のパッケージ。 • 必要最小限の記述量でサーバーと入力・出力ができる
💡 利用のステップ • 普通に推論のコードを書く • 入出力部分を streamlit に直す • streamlit
server を立ち上げる > 紹介するコードは https://github.com/nyk510/3-min-ml-app にあります
推論用のコードを書く よくある推論コードです。 • 学習済みのモデルを読み込んで • 推論したい画像を読み込み • 推論して結果を保存 (今回は pytorch
を利用しています) 基本はこれで完成している。
入出力部分を Streamlit に直す 予測結果の出力 (st.pyploy/dataframe) 画像の受け取り (st.file_upload) Streamlit を10行ほど添えます。 先程の推論コード違うのは次の2点
• 画像の受け取り • 予測結果の出力 上記2つを Streamlit の関数で記述すると ブラウザのUI上で画像の選択 結果の可視化が行えるようになります。
Streamlit server を立ち上げる https://github.com/nyk510/3-min-ml-app `streamlit run your/application/path.py` を実行します。
アプリを公開する Streamlit が提供しているクラウド https://streamlit.io/cloud を使うとそ のまま公開することもできます! (時間がないので割愛…) もちろん自分でマシンを借りて起動して もOK!
もちろんこれで全部OKとなることは少ない… より強い要求が来ると大変😣 • ログイン認証つけたい ◦ 認証系の処理を追加する必要がある • 細かいデザインのカスタマイズをしたい ◦ 場合によっては
streamlit でなく自前で実装したほうが楽 ◦ フロントエンドの知識が必要がある • 推論の処理は別のサーバーに用意したい (たくさん推論する場合でも動かしたい) ◦ 推論サーバを実装する必要がある ◦ バックエンドの知識が必要 とはいえ、手軽にできる技があると何かと便利です。
まとめ • Streamlitを使うとサクッとMLアプリを作ることができます。 • 3分は盛りすぎてるかもしれませんが一度やったことがあれば短時 間でアプリ化できます。 • ささっとデモを試してもらうには十分な機能があるのでとても便利 です! 技としてとても優秀。