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.2k
Django のセキュリティリリースを見る
nyk510
0
81
硬派で真面目なグラフを描く
nyk510
0
500
CORSをちゃんと理解する atmaバックエンド勉強会#4
nyk510
0
390
pythonで気軽にパッケージを作るのは良いという話。
nyk510
14
9.6k
RestAPIのページネーション atma バックエンド勉強会 #3
nyk510
1
930
AWS CPU Credit を完全に理解する
nyk510
0
440
atmaCup#8 Opening
nyk510
0
250
オンサイトデータコンペの魅力: 関わる全員が楽しいコンペ設計のための取り組み
nyk510
3
5.4k
Other Decks in Technology
See All in Technology
データベース04: SQL (1/3) 単純質問 & 集約演算
trycycle
PRO
0
730
テストコードにはテストの意図を込めよう(2025年版) #retechtalk / Put the intent of the test 2025
nihonbuson
PRO
5
890
AI駆動で進化する開発プロセス ~クラスメソッドでの実践と成功事例~ / aidd-in-classmethod
tomoki10
1
1.1k
『ささAI』ネタづくりをささえるAI📝 (にぼしいわし担当:GIFTech2025)
masapyon1212
0
110
Vibe Coding Tools
ijin
0
180
製造業向けIoTソリューション提案資料.pdf
haruki_uiru
0
250
MCPを理解する
yudai00
14
10k
AIにおけるソフトウェアテスト_ver1.00
fumisuke
1
370
DynamoDB のデータを QuickSight で可視化する際につまづいたこと/stumbling-blocks-when-visualising-dynamodb-with-quicksight
emiki
0
150
2025年8月から始まるAWS Lambda INITフェーズ課金/AWS Lambda INIT phase billing changes
quiver
1
1k
Ninno LT
kawaguti
PRO
1
120
さくらのクラウド開発の裏側
metakoma
PRO
2
1.4k
Featured
See All Featured
Why Our Code Smells
bkeepers
PRO
336
57k
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
34
2.2k
It's Worth the Effort
3n
184
28k
A Tale of Four Properties
chriscoyier
159
23k
Making the Leap to Tech Lead
cromwellryan
133
9.3k
実際に使うSQLの書き方 徹底解説 / pgcon21j-tutorial
soudai
179
53k
Designing Experiences People Love
moore
142
24k
Keith and Marios Guide to Fast Websites
keithpitt
411
22k
The Language of Interfaces
destraynor
158
25k
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
32
5.6k
Building a Modern Day E-commerce SEO Strategy
aleyda
40
7.2k
Rails Girls Zürich Keynote
gr2m
94
13k
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分は盛りすぎてるかもしれませんが一度やったことがあれば短時 間でアプリ化できます。 • ささっとデモを試してもらうには十分な機能があるのでとても便利 です! 技としてとても優秀。