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

  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
  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/

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

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

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

  7. 最近の機械学習界隈の状況 • 研究から利用、利用から実用へ データ 機械学習 デプロイ 利用 課題 ユーザ システム

    解決 開発 課題を解くためのワークフロー ワークフローを実現するシステム システムを開発、運用するチーム
  8. ユーザに使われる機械学習へ 固定化された デザイン 画像処理 写真を撮る タイトル入力 説明入力 投稿する 自然言語処理 違反検知

    あるコンテンツ投稿アプリ
  9. 機械学習を使ったプロダクト 画像処理 写真を撮る タイトル入力 説明入力 投稿する 自然言語処理 違反検知 登録情報から違反を フィルタリング

    入力情報から 入力補助 超解像による 画質改善 ねこ 検索 協調フィルタリングや ランク学習による 並べ替え あるコンテンツ投稿アプリ 画像分類と 検索
  10. ワークフロー 写真を撮る タイトル入力 説明入力 投稿する 動物画像SNSアプリ ねこ 違反検知 違反 アノテーション

    学習 ダブルチェック
  11. 機械学習を使うための技術 写真を撮る タイトル入力 説明入力 投稿する ねこ 動物画像SNSアプリ ログ DB Storage

    監視 学習 モデル proxy 画像 API 推論 API batch デプ ロイ 認証 認可 ID 検索 API Item API 推薦 API BI クラウド・インフラ
  12. システム 写真を撮る タイトル入力 説明入力 投稿する 動物画像SNSアプリ ねこ 違反検知 違反 ダブルチェック

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

    DWH 推論 API 推論 batch BI アノテー ション ツール 学習 Pipe line ML 基盤 データ ML SWE SRE PdM 投稿 API
  14. 機械学習システム 需要予測編

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

  16. 飲料品の需要予測 • あなたは全国展開する小売店『AI商店』で働く機械学習エンジニアです。 • AI商店は全国10店舗(東北、関東、東海、関西各地方)に展開しており、食品、飲料品、日用品等を販売して います。 • AI商店では商品を毎週発注しています。発注数は各店舗の店長が経験的に予測して発注数を 決めていました。 •

    機械学習によってより精度の高い予測を実施し、売れ残りや売り切れを防ぎたいと思います。 機械学習エンジニアとして解決策を提示してください。 • まずは飲料品にターゲットを絞って需要予測を試してみることにします。
  17. プランニング PoC・初期フェーズ 発展・拡大フェーズ 飲料品需要予測の 実用化 オフライン評価 分析と開発 オンライン評価 需要予測 システム開発

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

    現状調査 課題定義 GO/NO GO判断 需要予測の 自動化開発 チーム化、採用 オフライン評価 分析と開発 現状調査 課題定義 オンライン評価 課題の再定義 開発・運用 スタイルの確立 データシステムの確 立 まずはここで成功させる。 こっちは後回しにする。
  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 日 商品が届く 学習 データ テストデータ
  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 データ集計 需要予測 予測結果 確認 予測結果を 店舗に展開 予測結果を 店舗で確認 発注 バッファ 学習 データ テストデータ この週に販売したい
  21. 売れ残りと売り切れ • 需要予測は回帰分析で解くことが多いが、 MAEやRMSEのような評価が適切とは 限らない。 • 売れ残りと売り切れは実質的に違う意味を 持つ。 • 売れ残り:発注過多。消費期限に余裕が

    あれば翌週以降も売れる。 • 売り切れ:発注不足。買いたい人が買えず、 機会損失。 多少の発注過多は許容するが、不足は回避したい。 誤差の範囲内 大きく外れているが、発 注過多は許容する 少ない方に大きく 外れており、機会損失の リスクが高い。 需要予測の評価
  22. 飲料品の需要予測 システムの全体像(現状) 銀座店 メーカー 発注数 見る 発注 販売実績

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

    評価と分析 各店舗の 店長 実績 CSV 予測 CSV
  24. いわゆるテックカンパニー チーム構成の遷移 • チーム構成 機械学習 導入開始 実用化 開発自動化 完全自動化 複数システム

    機械学習 エンジニア一人 機械学習 エンジニア複数 機械学習エンジニア + バックエンドエンジニア プロダクト別チーム 頑張れ! 一番自由な時期! 阿吽の呼吸で わいわい楽しい♪ 軋轢が生まれ始める 運用品質 vs Jupyter 各チームの独自運用 他チームは知らない スーパーエンジニア レガシー企業は 実はこのステージが多い
  25. 飲料品の需要予測 システムの全体像 (発展フェーズ DX後) 需要予測 システム DWH 学習 学習・モ デル

    管理 推論 評価 分析と展開 メーカー 発注 評価と分析 各店舗の 店長
  26. 初の機械学習プロジェクトを成功させるために • 作らないものを決める。完璧な機械学習システムを用意する必要はない。 • 課題を解決するためのステークホルダーとスケジュールを決める。 • ビジネスに即して評価する。 • システムとチームは並行してスケールさせる。

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

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

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

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

  31. 学習と推論のパイプライン バックエンドAPI 類似画像検索プロキシ 類似画像検索Tensorflow Serving MobileNet v3 + SCaNN Argo

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

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

    類似画像検索 4. 類似画像検索 2. 類似画像検索 画像 ストレージ 3. クエリ画像を取 得 DL 特徴量 SCaNN 5. 類似画像 動物画像SNSアプリ
  34. まとめ

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

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

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

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