Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Machine learning system development

shibuiwilliam
December 08, 2022

Machine learning system development

shibuiwilliam

December 08, 2022
Tweet

More Decks by shibuiwilliam

Other Decks in Technology

Transcript

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

  5. 機械学習の実用化の課題

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    まずはここで成功させる。 こっちは後回しにする。

    View full-size slide

  19. 需要予測のスケジュール
    ● 現行のスケジュールは以下のとおりです。
    ● 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

    商品が届く
    学習
    データ
    テストデータ

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

  27. 機械学習システム
    検索編

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

  31. 学習と推論のパイプライン
    バックエンドAPI 類似画像検索プロキシ
    類似画像検索Tensorflow Serving
    MobileNet v3 + SCaNN
    Argo Workflow
    ワークフローエンジン
    類似画像検索学習
    Tensorflow Serving
    デプロイ
    類似画像検索プロキシ
    デプロイ
    類似画像検索
    類似画像検索の学習
    1. 類似画像検索 4. 類似画像検索
    2. 類似画像検索
    画像
    ストレージ
    3. クエリ画像を取

    1. 検索対象画像を収集 2. モデルを更新
    3. リクエスト先の
    Tensorflow Servingを
    更新
    動物画像SNSアプリ

    View full-size slide

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

    View full-size slide

  33. 類似画像検索Tensorflow Serving
    MobileNet v3 + SCaNN
    推論のパイプライン
    バックエンドAPI 類似画像検索プロキシ
    1. 類似画像検索 4. 類似画像検索
    2. 類似画像検索
    画像
    ストレージ
    3. クエリ画像を取

    DL
    特徴量
    SCaNN
    5. 類似画像
    動物画像SNSアプリ

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide