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
Machine learning system development
Search
shibuiwilliam
December 08, 2022
Technology
1
480
Machine learning system development
https://infra-eng-books.connpass.com/event/265139/#_=_
shibuiwilliam
December 08, 2022
Tweet
Share
More Decks by shibuiwilliam
See All by shibuiwilliam
生成AIのためのデータ収集とデータエンジニアリング
shibuiwilliam
3
370
LLMで推論するライブラリを整理する
shibuiwilliam
5
1.1k
生成AIの研究開発を事業につなげる データ、仕組み、コミュニケーション
shibuiwilliam
1
65
デプロイして本番システムで使うことから考えるAI
shibuiwilliam
2
570
今日からRAGを 始めることを考える
shibuiwilliam
2
1.6k
2024年生成AI新年会登壇資料
shibuiwilliam
0
300
Creative as Software Engineering
shibuiwilliam
2
620
Kubernetesクラスターを引き継ぐ技術
shibuiwilliam
3
310
機械学習システム構築実践ガイド
shibuiwilliam
1
870
Other Decks in Technology
See All in Technology
オプトインカメラ:UWB測位を応用したオプトイン型のカメラ計測
matthewlujp
0
170
社内イベント管理システムを1週間でAKSからACAに移行した話し
shingo_kawahara
0
180
コンテナセキュリティのためのLandlock入門
nullpo_head
2
320
複雑性の高いオブジェクト編集に向き合う: プラガブルなReactフォーム設計
righttouch
PRO
0
110
Turing × atmaCup #18 - 1st Place Solution
hakubishin3
0
470
アップデート紹介:AWS Data Transfer Terminal
stknohg
PRO
0
180
成果を出しながら成長する、アウトプット駆動のキャッチアップ術 / Output-driven catch-up techniques to grow while producing results
aiandrox
0
250
DevOps視点でAWS re:invent2024の新サービス・アプデを振り返ってみた
oshanqq
0
180
UI State設計とテスト方針
rmakiyama
2
460
TSKaigi 2024 の登壇から広がったコミュニティ活動について
tsukuha
0
160
PHP ユーザのための OpenTelemetry 入門 / phpcon2024-opentelemetry
shin1x1
1
170
AWS re:Invent 2024で発表された コードを書く開発者向け機能について
maruto
0
190
Featured
See All Featured
Adopting Sorbet at Scale
ufuk
73
9.1k
Designing for humans not robots
tammielis
250
25k
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
507
140k
Mobile First: as difficult as doing things right
swwweet
222
9k
The Myth of the Modular Monolith - Day 2 Keynote - Rails World 2024
eileencodes
17
2.3k
Facilitating Awesome Meetings
lara
50
6.1k
Chrome DevTools: State of the Union 2024 - Debugging React & Beyond
addyosmani
2
170
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
44
9.3k
The Power of CSS Pseudo Elements
geoffreycrofte
73
5.4k
Why You Should Never Use an ORM
jnunemaker
PRO
54
9.1k
Product Roadmaps are Hard
iamctodd
PRO
49
11k
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
159
15k
Transcript
機械学習システム 構築実践ガイド 2022/12/08 shibui yusuke
自己紹介 shibui yusuke • いろいろ → Launchable(いまここ) • MLOpsとかいろいろエンジニア •
もともとクラウド基盤の開発、運用 • ここ6年くらいMLOpsとバックエンドとインフラとたまに データ分析とAndroidで仕事 • Github: @shibuiwilliam • FB: yusuke.shibui • 最近の趣味:副業と自宅勤務改善 cat : 0.55 dog: 0.45 human : 0.70 gorilla : 0.30 物体検知 2
• 2022年11月14日発売! • https://www.amazon.co.jp/dp/4798173401/ • https://github.com/shibuiwilliam/building-ml-system • 発売中! • https://www.amazon.co.jp/dp/4798169447/
今日話すこと • 機械学習の実用化の課題 • 機械学習システム需要予測編 • 機械学習システム検索編 • まとめ
機械学習の実用化の課題
機械学習の実用化の課題 • 機械学習チームのソフトウェア開発の理解不足 • ソフトウェア開発チームの機械学習の理解不足 • 機械学習を0->1だけで終わらせているプロジェクトを散見 → 機械学習を実用化するワークフロー、システム、チーム
最近の機械学習界隈の状況 • 研究から利用、利用から実用へ データ 機械学習 デプロイ 利用 課題 ユーザ システム
解決 開発 課題を解くためのワークフロー ワークフローを実現するシステム システムを開発、運用するチーム
ユーザに使われる機械学習へ 固定化された デザイン 画像処理 写真を撮る タイトル入力 説明入力 投稿する 自然言語処理 違反検知
あるコンテンツ投稿アプリ
機械学習を使ったプロダクト 画像処理 写真を撮る タイトル入力 説明入力 投稿する 自然言語処理 違反検知 登録情報から違反を フィルタリング
入力情報から 入力補助 超解像による 画質改善 ねこ 検索 協調フィルタリングや ランク学習による 並べ替え あるコンテンツ投稿アプリ 画像分類と 検索
ワークフロー 写真を撮る タイトル入力 説明入力 投稿する 動物画像SNSアプリ ねこ 違反検知 違反 アノテーション
学習 ダブルチェック
機械学習を使うための技術 写真を撮る タイトル入力 説明入力 投稿する ねこ 動物画像SNSアプリ ログ DB Storage
監視 学習 モデル proxy 画像 API 推論 API batch デプ ロイ 認証 認可 ID 検索 API Item API 推薦 API BI クラウド・インフラ
システム 写真を撮る タイトル入力 説明入力 投稿する 動物画像SNSアプリ ねこ 違反検知 違反 ダブルチェック
DWH 推論 API 推論 batch BI アノテー ション ツール 学習 Pipe line ML 基盤 投稿 API
動物画像SNSアプリ 機械学習を実用化するチーム 写真を撮る タイトル入力 説明入力 投稿する ねこ 違反検知 違反 ダブルチェック
DWH 推論 API 推論 batch BI アノテー ション ツール 学習 Pipe line ML 基盤 データ ML SWE SRE PdM 投稿 API
機械学習システム 需要予測編
超初期の機械学習プロジェクト • 機械学習エンジニアは一人 • 会社初の機械学習プロジェクト • データ基盤はない • 飲料品の需要予測を改善し、適切に発注数量を決めるために機械学習を使う
飲料品の需要予測 • あなたは全国展開する小売店『AI商店』で働く機械学習エンジニアです。 • AI商店は全国10店舗(東北、関東、東海、関西各地方)に展開しており、食品、飲料品、日用品等を販売して います。 • AI商店では商品を毎週発注しています。発注数は各店舗の店長が経験的に予測して発注数を 決めていました。 •
機械学習によってより精度の高い予測を実施し、売れ残りや売り切れを防ぎたいと思います。 機械学習エンジニアとして解決策を提示してください。 • まずは飲料品にターゲットを絞って需要予測を試してみることにします。
プランニング PoC・初期フェーズ 発展・拡大フェーズ 飲料品需要予測の 実用化 オフライン評価 分析と開発 オンライン評価 需要予測 システム開発
現状調査 課題定義 GO/NO GO判断 需要予測の 自動化開発 チーム化、採用 オフライン評価 分析と開発 現状調査 課題定義 オンライン評価 課題の再定義 開発・運用 スタイルの確立 データシステムの確 立
やらないことを決める PoC・初期フェーズ 発展・拡大フェーズ 飲料品需要予測の 実用化 オフライン評価 分析と開発 オンライン評価 需要予測 システム開発
現状調査 課題定義 GO/NO GO判断 需要予測の 自動化開発 チーム化、採用 オフライン評価 分析と開発 現状調査 課題定義 オンライン評価 課題の再定義 開発・運用 スタイルの確立 データシステムの確 立 まずはここで成功させる。 こっちは後回しにする。
需要予測のスケジュール • 現行のスケジュールは以下のとおりです。 • AI商店では週毎に各店舗の各商品の売れ行きに応じて発注数を決めています。 たとえばA週の発注数は、A-1週までの売れ行きを集計し、A週の月曜日に需要を予測して 発注しています。 発注した商品が届くのは発注から最短5日後で、商店に並ぶのはA+1週になります。 • 前日までの売れ行きデータを取得することができます。
14 木 22 金 21 木 20 水 19 火 18 月 23 土 24 日 25 月 26 火 27 水 28 木 29 金 30 土 15 金 この週に販売したい 前日までの 販売数を集計、 需要予測、発注 13 水 12 火 11 月 16 土 17 日 9 土 10 日 31 日 商品が届く 学習 データ テストデータ
飲料品の需要予測 14 木 22 金 21 木 20 水 19
火 18 月 23 土 24 日 25 月 26 火 27 水 28 木 29 金 30 土 15 金 前日までの 販売数を集計、 需要予測、発注 13 水 12 火 11 月 16 土 17 日 9 土 10 日 31 日 10:00 11:00 13:00 14:00 15:00 データ集計 需要予測 予測結果 確認 予測結果を 店舗に展開 予測結果を 店舗で確認 発注 バッファ 学習 データ テストデータ この週に販売したい
売れ残りと売り切れ • 需要予測は回帰分析で解くことが多いが、 MAEやRMSEのような評価が適切とは 限らない。 • 売れ残りと売り切れは実質的に違う意味を 持つ。 • 売れ残り:発注過多。消費期限に余裕が
あれば翌週以降も売れる。 • 売り切れ:発注不足。買いたい人が買えず、 機会損失。 多少の発注過多は許容するが、不足は回避したい。 誤差の範囲内 大きく外れているが、発 注過多は許容する 少ない方に大きく 外れており、機会損失の リスクが高い。 需要予測の評価
飲料品の需要予測 システムの全体像(現状) 銀座店 メーカー 発注数 見る 発注 販売実績
飲料品の需要予測 システムの全体像 (機械学習PoCフェーズ) 需要予測PoC 学習 推論 評価 分析と展開 メーカー 発注
評価と分析 各店舗の 店長 実績 CSV 予測 CSV
いわゆるテックカンパニー チーム構成の遷移 • チーム構成 機械学習 導入開始 実用化 開発自動化 完全自動化 複数システム
機械学習 エンジニア一人 機械学習 エンジニア複数 機械学習エンジニア + バックエンドエンジニア プロダクト別チーム 頑張れ! 一番自由な時期! 阿吽の呼吸で わいわい楽しい♪ 軋轢が生まれ始める 運用品質 vs Jupyter 各チームの独自運用 他チームは知らない スーパーエンジニア レガシー企業は 実はこのステージが多い
飲料品の需要予測 システムの全体像 (発展フェーズ DX後) 需要予測 システム DWH 学習 学習・モ デル
管理 推論 評価 分析と展開 メーカー 発注 評価と分析 各店舗の 店長
初の機械学習プロジェクトを成功させるために • 作らないものを決める。完璧な機械学習システムを用意する必要はない。 • 課題を解決するためのステークホルダーとスケジュールを決める。 • ビジネスに即して評価する。 • システムとチームは並行してスケールさせる。
機械学習システム 検索編
自動化しなければ成り立たないシステム • 週単位の需要予測はある程度人間の作業が入っていても成り立つシステム。 • データの変化に追随する必要の機械学習用途の場合、人間の作業が入ると困難になる。 End-to-endで自動化する必要がある。
機械学習を使ったプロダクト 画像処理 自然言語処理 検索 ランク学習による 並べ替え 画像検索 Query Understanding 動物画像SNSアプリ
類似画像検索 • 似ている画像を検索する技術。 • クエリの画像からディープラーニングで特徴量を抽出し、その 特徴量に似た特徴を持つ画像を返す。 DL 特徴量 特徴量抽出 類似ベクトル検索
学習と推論のパイプライン バックエンドAPI 類似画像検索プロキシ 類似画像検索Tensorflow Serving MobileNet v3 + SCaNN Argo
Workflow ワークフローエンジン 類似画像検索学習 Tensorflow Serving デプロイ 類似画像検索プロキシ デプロイ 類似画像検索 類似画像検索の学習 1. 類似画像検索 4. 類似画像検索 2. 類似画像検索 画像 ストレージ 3. クエリ画像を取 得 1. 検索対象画像を収集 2. モデルを更新 3. リクエスト先の Tensorflow Servingを 更新 動物画像SNSアプリ
Argo Workflow ワークフローエンジン 学習のパイプライン 類似画像検索Tensorflow Serving MobileNet v3 + SCaNN
画像 ストレージ 3. デプロイ 0. 投稿 類似画像検索学習 DL 特徴量 SCaNN 1. 学習 2. ビルド • ディープラーニングによる特徴量抽出:画像をベクト ル(特徴を持った数値表現)に変換 • SCaNN:似ているベクトルを検索 動物画像SNSアプリ
類似画像検索Tensorflow Serving MobileNet v3 + SCaNN 推論のパイプライン バックエンドAPI 類似画像検索プロキシ 1.
類似画像検索 4. 類似画像検索 2. 類似画像検索 画像 ストレージ 3. クエリ画像を取 得 DL 特徴量 SCaNN 5. 類似画像 動物画像SNSアプリ
まとめ
機械学習を実用化する • 解決すべき課題とやらないことを定義する。 • そのための解決策(ワークフロー、システム、チーム)を段階的に作る。 • 試し、評価し、GO/NO GOを判断する。
• 2022年11月14日発売! • https://www.amazon.co.jp/dp/4798173401/ • https://github.com/shibuiwilliam/building-ml-system • 発売中! • https://www.amazon.co.jp/dp/4798169447/
MLOpsコミュニティ • 機械学習の実用化を学ぶコミュニティ • 12/14(水)にLT大会を開催します!
MLOps Advent Calendar 2022 バー募集中! まだまだ空いておりますので今年1年 得た知見を一緒にQiitaに投稿しましょう! https://qiita.com/advent-calendar/2022/mlops