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
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.1k
Django のセキュリティリリースを見る
nyk510
0
35
硬派で真面目なグラフを描く
nyk510
0
450
CORSをちゃんと理解する atmaバックエンド勉強会#4
nyk510
0
340
pythonで気軽にパッケージを作るのは良いという話。
nyk510
14
9.4k
RestAPIのページネーション atma バックエンド勉強会 #3
nyk510
1
800
AWS CPU Credit を完全に理解する
nyk510
0
400
atmaCup#8 Opening
nyk510
0
200
オンサイトデータコンペの魅力: 関わる全員が楽しいコンペ設計のための取り組み
nyk510
3
5.2k
Other Decks in Technology
See All in Technology
Lambdaと地方とコミュニティ
miu_crescent
2
370
CDCL による厳密解法を採用した MILP ソルバー
imai448
3
170
障害対応指揮の意思決定と情報共有における価値観 / Waroom Meetup #2
arthur1
5
490
Why App Signing Matters for Your Android Apps - Android Bangkok Conference 2024
akexorcist
0
130
あなたの知らない Function.prototype.toString() の世界
mizdra
PRO
1
230
100 名超が参加した日経グループ横断の競技型 AWS 学習イベント「Nikkei Group AWS GameDay」の紹介/mediajaws202411
nikkei_engineer_recruiting
1
170
エンジニア人生の拡張性を高める 「探索型キャリア設計」の提案
tenshoku_draft
1
130
OS 標準のデザインシステムを超えて - より柔軟な Flutter テーマ管理 | FlutterKaigi 2024
ronnnnn
1
290
【Startup CTO of the Year 2024 / Audience Award】アセンド取締役CTO 丹羽健
niwatakeru
0
1.3k
TypeScript、上達の瞬間
sadnessojisan
46
13k
The Web Performance Landscape in 2024 [PerfNow 2024]
tammyeverts
0
110
TypeScriptの次なる大進化なるか!? 条件型を返り値とする関数の型推論
uhyo
2
1.7k
Featured
See All Featured
Teambox: Starting and Learning
jrom
133
8.8k
Understanding Cognitive Biases in Performance Measurement
bluesmoon
26
1.4k
Measuring & Analyzing Core Web Vitals
bluesmoon
4
130
The Pragmatic Product Professional
lauravandoore
31
6.3k
Producing Creativity
orderedlist
PRO
341
39k
Evolution of real-time – Irina Nazarova, EuRuKo, 2024
irinanazarova
4
380
How to train your dragon (web standard)
notwaldorf
88
5.7k
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
27
4.3k
StorybookのUI Testing Handbookを読んだ
zakiyama
27
5.3k
How to Ace a Technical Interview
jacobian
276
23k
A Tale of Four Properties
chriscoyier
156
23k
Principles of Awesome APIs and How to Build Them.
keavy
126
17k
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分は盛りすぎてるかもしれませんが一度やったことがあれば短時 間でアプリ化できます。 • ささっとデモを試してもらうには十分な機能があるのでとても便利 です! 技としてとても優秀。