Slide 1

Slide 1 text

機械学習システム 構築実践ガイド 2022/12/08 shibui yusuke

Slide 2

Slide 2 text

自己紹介 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

Slide 3

Slide 3 text

● 2022年11月14日発売! ● https://www.amazon.co.jp/dp/4798173401/ ● https://github.com/shibuiwilliam/building-ml-system ● 発売中! ● https://www.amazon.co.jp/dp/4798169447/

Slide 4

Slide 4 text

今日話すこと ● 機械学習の実用化の課題 ● 機械学習システム需要予測編 ● 機械学習システム検索編 ● まとめ

Slide 5

Slide 5 text

機械学習の実用化の課題

Slide 6

Slide 6 text

機械学習の実用化の課題 ● 機械学習チームのソフトウェア開発の理解不足 ● ソフトウェア開発チームの機械学習の理解不足 ● 機械学習を0->1だけで終わらせているプロジェクトを散見 → 機械学習を実用化するワークフロー、システム、チーム

Slide 7

Slide 7 text

最近の機械学習界隈の状況 ● 研究から利用、利用から実用へ データ 機械学習 デプロイ 利用 課題 ユーザ システム 解決 開発 課題を解くためのワークフロー ワークフローを実現するシステム システムを開発、運用するチーム

Slide 8

Slide 8 text

ユーザに使われる機械学習へ 固定化された デザイン 画像処理 写真を撮る タイトル入力 説明入力 投稿する 自然言語処理 違反検知 あるコンテンツ投稿アプリ

Slide 9

Slide 9 text

機械学習を使ったプロダクト 画像処理 写真を撮る タイトル入力 説明入力 投稿する 自然言語処理 違反検知 登録情報から違反を フィルタリング 入力情報から 入力補助 超解像による 画質改善 ねこ 検索 協調フィルタリングや ランク学習による 並べ替え あるコンテンツ投稿アプリ 画像分類と 検索

Slide 10

Slide 10 text

ワークフロー 写真を撮る タイトル入力 説明入力 投稿する 動物画像SNSアプリ ねこ 違反検知 違反 アノテーション 学習 ダブルチェック

Slide 11

Slide 11 text

機械学習を使うための技術 写真を撮る タイトル入力 説明入力 投稿する ねこ 動物画像SNSアプリ ログ DB Storage 監視 学習 モデル proxy 画像 API 推論 API batch デプ ロイ 認証 認可 ID 検索 API Item API 推薦 API BI クラウド・インフラ

Slide 12

Slide 12 text

システム 写真を撮る タイトル入力 説明入力 投稿する 動物画像SNSアプリ ねこ 違反検知 違反 ダブルチェック DWH 推論 API 推論 batch BI アノテー ション ツール 学習 Pipe line ML 基盤 投稿 API

Slide 13

Slide 13 text

動物画像SNSアプリ 機械学習を実用化するチーム 写真を撮る タイトル入力 説明入力 投稿する ねこ 違反検知 違反 ダブルチェック DWH 推論 API 推論 batch BI アノテー ション ツール 学習 Pipe line ML 基盤 データ ML SWE SRE PdM 投稿 API

Slide 14

Slide 14 text

機械学習システム 需要予測編

Slide 15

Slide 15 text

超初期の機械学習プロジェクト ● 機械学習エンジニアは一人 ● 会社初の機械学習プロジェクト ● データ基盤はない ● 飲料品の需要予測を改善し、適切に発注数量を決めるために機械学習を使う

Slide 16

Slide 16 text

飲料品の需要予測 ● あなたは全国展開する小売店『AI商店』で働く機械学習エンジニアです。 ● AI商店は全国10店舗(東北、関東、東海、関西各地方)に展開しており、食品、飲料品、日用品等を販売して います。 ● AI商店では商品を毎週発注しています。発注数は各店舗の店長が経験的に予測して発注数を 決めていました。 ● 機械学習によってより精度の高い予測を実施し、売れ残りや売り切れを防ぎたいと思います。 機械学習エンジニアとして解決策を提示してください。 ● まずは飲料品にターゲットを絞って需要予測を試してみることにします。

Slide 17

Slide 17 text

プランニング PoC・初期フェーズ 発展・拡大フェーズ 飲料品需要予測の 実用化 オフライン評価 分析と開発 オンライン評価 需要予測 システム開発 現状調査 課題定義 GO/NO GO判断 需要予測の 自動化開発 チーム化、採用 オフライン評価 分析と開発 現状調査 課題定義 オンライン評価 課題の再定義 開発・運用 スタイルの確立 データシステムの確 立

Slide 18

Slide 18 text

やらないことを決める PoC・初期フェーズ 発展・拡大フェーズ 飲料品需要予測の 実用化 オフライン評価 分析と開発 オンライン評価 需要予測 システム開発 現状調査 課題定義 GO/NO GO判断 需要予測の 自動化開発 チーム化、採用 オフライン評価 分析と開発 現状調査 課題定義 オンライン評価 課題の再定義 開発・運用 スタイルの確立 データシステムの確 立 まずはここで成功させる。 こっちは後回しにする。

Slide 19

Slide 19 text

需要予測のスケジュール ● 現行のスケジュールは以下のとおりです。 ● 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 日 商品が届く 学習 データ テストデータ

Slide 20

Slide 20 text

飲料品の需要予測 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 データ集計 需要予測 予測結果 確認 予測結果を 店舗に展開 予測結果を 店舗で確認 発注 バッファ 学習 データ テストデータ この週に販売したい

Slide 21

Slide 21 text

売れ残りと売り切れ ● 需要予測は回帰分析で解くことが多いが、 MAEやRMSEのような評価が適切とは 限らない。 ● 売れ残りと売り切れは実質的に違う意味を 持つ。 ● 売れ残り:発注過多。消費期限に余裕が あれば翌週以降も売れる。 ● 売り切れ:発注不足。買いたい人が買えず、 機会損失。 多少の発注過多は許容するが、不足は回避したい。 誤差の範囲内 大きく外れているが、発 注過多は許容する 少ない方に大きく 外れており、機会損失の リスクが高い。 需要予測の評価

Slide 22

Slide 22 text

飲料品の需要予測 システムの全体像(現状) 銀座店 メーカー 発注数 見る 発注 販売実績

Slide 23

Slide 23 text

飲料品の需要予測 システムの全体像 (機械学習PoCフェーズ) 需要予測PoC 学習 推論 評価 分析と展開 メーカー 発注 評価と分析 各店舗の 店長 実績 CSV 予測 CSV

Slide 24

Slide 24 text

いわゆるテックカンパニー チーム構成の遷移 ● チーム構成 機械学習 導入開始 実用化 開発自動化 完全自動化 複数システム 機械学習 エンジニア一人 機械学習 エンジニア複数 機械学習エンジニア + バックエンドエンジニア プロダクト別チーム 頑張れ! 一番自由な時期! 阿吽の呼吸で わいわい楽しい♪ 軋轢が生まれ始める 運用品質 vs Jupyter 各チームの独自運用 他チームは知らない スーパーエンジニア レガシー企業は 実はこのステージが多い

Slide 25

Slide 25 text

飲料品の需要予測 システムの全体像 (発展フェーズ DX後) 需要予測 システム DWH 学習 学習・モ デル 管理 推論 評価 分析と展開 メーカー 発注 評価と分析 各店舗の 店長

Slide 26

Slide 26 text

初の機械学習プロジェクトを成功させるために ● 作らないものを決める。完璧な機械学習システムを用意する必要はない。 ● 課題を解決するためのステークホルダーとスケジュールを決める。 ● ビジネスに即して評価する。 ● システムとチームは並行してスケールさせる。

Slide 27

Slide 27 text

機械学習システム 検索編

Slide 28

Slide 28 text

自動化しなければ成り立たないシステム ● 週単位の需要予測はある程度人間の作業が入っていても成り立つシステム。 ● データの変化に追随する必要の機械学習用途の場合、人間の作業が入ると困難になる。 End-to-endで自動化する必要がある。

Slide 29

Slide 29 text

機械学習を使ったプロダクト 画像処理 自然言語処理 検索 ランク学習による 並べ替え 画像検索 Query Understanding 動物画像SNSアプリ

Slide 30

Slide 30 text

類似画像検索 ● 似ている画像を検索する技術。 ● クエリの画像からディープラーニングで特徴量を抽出し、その 特徴量に似た特徴を持つ画像を返す。 DL 特徴量 特徴量抽出 類似ベクトル検索

Slide 31

Slide 31 text

学習と推論のパイプライン バックエンドAPI 類似画像検索プロキシ 類似画像検索Tensorflow Serving MobileNet v3 + SCaNN Argo Workflow ワークフローエンジン 類似画像検索学習 Tensorflow Serving デプロイ 類似画像検索プロキシ デプロイ 類似画像検索 類似画像検索の学習 1. 類似画像検索 4. 類似画像検索 2. 類似画像検索 画像 ストレージ 3. クエリ画像を取 得 1. 検索対象画像を収集 2. モデルを更新 3. リクエスト先の Tensorflow Servingを 更新 動物画像SNSアプリ

Slide 32

Slide 32 text

Argo Workflow ワークフローエンジン 学習のパイプライン 類似画像検索Tensorflow Serving MobileNet v3 + SCaNN 画像 ストレージ 3. デプロイ 0. 投稿 類似画像検索学習 DL 特徴量 SCaNN 1. 学習 2. ビルド ● ディープラーニングによる特徴量抽出:画像をベクト ル(特徴を持った数値表現)に変換 ● SCaNN:似ているベクトルを検索 動物画像SNSアプリ

Slide 33

Slide 33 text

類似画像検索Tensorflow Serving MobileNet v3 + SCaNN 推論のパイプライン バックエンドAPI 類似画像検索プロキシ 1. 類似画像検索 4. 類似画像検索 2. 類似画像検索 画像 ストレージ 3. クエリ画像を取 得 DL 特徴量 SCaNN 5. 類似画像 動物画像SNSアプリ

Slide 34

Slide 34 text

まとめ

Slide 35

Slide 35 text

機械学習を実用化する ● 解決すべき課題とやらないことを定義する。 ● そのための解決策(ワークフロー、システム、チーム)を段階的に作る。 ● 試し、評価し、GO/NO GOを判断する。

Slide 36

Slide 36 text

● 2022年11月14日発売! ● https://www.amazon.co.jp/dp/4798173401/ ● https://github.com/shibuiwilliam/building-ml-system ● 発売中! ● https://www.amazon.co.jp/dp/4798169447/

Slide 37

Slide 37 text

MLOpsコミュニティ ● 機械学習の実用化を学ぶコミュニティ ● 12/14(水)にLT大会を開催します!

Slide 38

Slide 38 text

MLOps Advent Calendar 2022 バー募集中! まだまだ空いておりますので今年1年 得た知見を一緒にQiitaに投稿しましょう! https://qiita.com/advent-calendar/2022/mlops