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

機械学習システム構築実践ガイド

shibuiwilliam
November 27, 2023

 機械学習システム構築実践ガイド

「機械学習システム構築実践ガイド-Forkwell Library #37」の登壇資料です。
https://forkwell.connpass.com/event/301543/

shibuiwilliam

November 27, 2023
Tweet

More Decks by shibuiwilliam

Other Decks in Technology

Transcript

  1. 機械学習システム
    構築実践ガイド
    2023/11/28 shibui yusuke

    View full-size slide

  2. 自己紹介
    shibui yusuke
    ● もともと文学部の大学院卒。
    ● いろいろ → 12月から新しい会社で働きます!
    ● 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. 技術評論社Software Designで
    MLOpsについて連載中!
    ● 2023年8月号  MLOpsの概要
    ● 2023年9月号  MLOpsのためのスキルセットとチーム構成
    ● 2023年10月号 方針策定とMLOpsのためのツール
    ● 2023年11月号 MLOpsのための技術選定
    ● 2023年12月号 LLMのためのDevOps
    ● 2024年1月号  MLOpsと評価(予定)
    ● 2024年2月号  推論システム(予定)
    MLOpsについてあまり他では取り上げないようなテーマを
    中心に記事を書いています!

    View full-size slide

  4. ● 発売中!
    ● 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

  5. ● 発売中!
    ● https://www.amazon.co.jp/dp/4798173401/
    ● https://github.com/shibuiwilliam/building-ml-system
    今日はこちらの本の話。
    機械学習システムを実用化する

    設計・開発・運用ノウハウが満載

    【本書の概要】

    本書は前著『AIエンジニアのための機械学習システム

    デザインパターン』では触れられなかった、

    機械学習システムを構築する上で実際に発生する

    課題を想定し、動いているシステムやワークフローに

    機械学習を組み込む方法を解説した書籍です。

    - 需要予測のためのバッチシステム

    - 違反検知システム

    - ランク学習による検索

    - 類似画像検索システム


    View full-size slide

  6. ● 発売中!
    ● https://www.amazon.co.jp/dp/4798173401/
    ● https://github.com/shibuiwilliam/building-ml-system

    View full-size slide

  7. 今日話すこと
    ● 機械学習の実用化の課題
    ● 違反検知システム
    ● 類似画像検索システム
    ● まとめ
    ● 今日のスライド
    <TODO>

    View full-size slide

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

    View full-size slide

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

    View full-size slide

  10. 最近の機械学習界隈
    Machine learning
    Deep learning
    Generative AI
    Platform
    2011 2012 2013 2023
    2022
    2021
    2020
    2014 2015 2016 2017 2019
    2018
    BigQuery
    dbt
    Kubeflow
    AlexNet
    DCGAN
    TensorFlow
    DQN AlphaGo
    AlphaZero
    XGBoost
    LightGBM
    ONNX
    PyTorch
    Anaconda
    GoogleNet
    ResNet
    Kaggle
    SageMaker
    Keras
    Core ML
    MediaPipe
    TensorRT
    Nvidia K80
    Jupyter
    Notebook
    Google Colab
    Word2Vec
    Vertex AI
    MLflow
    Spark
    CLIP
    BERT GPT-3
    OpenAI
    Hidden debt
    paper
    Diffusion
    model
    HuggingFace
    AutoML
    Optuna
    Katib
    ChatGPT
    Snowflake
    Airflow
    Cycle GAN Style GAN
    Magenta
    VAE
    CatBoost
    Flax
    TFServing
    TorchServe
    Stable
    Diffusion
    Nvidia A100
    TPU
    Transformer
    イノベーション
    イノベーション
    イノベーション イノベーション
    イノベーション
    イノベーション
    イノベーション
    イノベーション
    イノベーション
    イノベーション
    イノベーション
    イノベーション
    CodeX
    BQML

    View full-size slide

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

    View full-size slide

  12. 最近の機械学習界隈の状況
    ● 研究から利用、利用から実用へ
    データ 機械学習
    デプロイ 利用
    課題
    ユーザ
    システム
    解決
    開発
    ここの方法論は増えてきた
    課題からデータまで紐づけて
    解決できるスキルが求められている

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

  16. 動物画像SNS『AI Animals』

    View full-size slide

  17. バックエ
    ンドAPI
    Elastic
    Search
    Postgre
    SQL
    Storage
    Argo
    Workflow
    MLflow
    キャッシュ
    Prome
    theus
    RabbitMQ
    Grafana
    検索ML
    違反検知
    システム
    AI Animals全体像

    View full-size slide

  18. システムとワークフロー
    写真を撮る
    タイトル入力
    説明入力
    投稿する
    AI Animals
    ねこ
    機械学習
    データ
    評価
    DWH
    推論
    API
    推論
    batch
    BI
    評価
    アノテー
    ション
    学習
    Pipeline
    ML
    基盤
    投稿
    API
    利用

    View full-size slide

  19. AI Animals
    機械学習を実用化するチーム
    写真を撮る
    タイトル入力
    説明入力
    投稿する
    ねこ
    機械学習
    データ
    DWH
    推論
    API
    推論
    batch
    BI
    評価
    アノテー
    ション
    学習
    Pipeline
    ML
    基盤
    データ
    ML
    SWE
    アノテーション
    PdM
    投稿
    API

    View full-size slide

  20. 機械学習システム
    違反検知編

    View full-size slide

  21. 違反とは
    写真を撮る
    タイトル入力
    説明入力
    登録する
    ねこ
    公序良俗に反する画像
    著作権違反の画像
    グロテスクな画像
    サービスに則さない画像
    ・・・を違反として排除したい
    AI Animals

    View full-size slide

  22. 違反検知を考える
    ● あなたはスマホアプリAI Animalsを提供する会社で働く機械学習エンジニアです。
    ● AI Animalsではユーザがスマホから動物写真を投稿し、共有することができます。
    ● 可愛い動物写真がみつかることで好評で、リリース1年で月間アクティブ・ユーザ数が50,000人、
    動物写真の総投稿数が10,000,000件を突破しました。
    ● ユーザが増えるとマナーの悪いユーザも増えてしまい、最近では動物写真以外の画像が投稿され、ユーザ
    に不快な思いをさせる事態が散見されます。
    ● AI Animalsでは動物が写っていない写真(ただし人間は動物と判断しない)の投稿は禁止
    しています。禁止事項に該当する画像は違反画像として公開停止対象とします。
    ● 機械学習エンジニアであるあなたは、毎日5万枚の写真が投稿されるAI Animalsで、
    違反画像を効率的に検知して公開停止にするプロジェクトに参加します。
    ● 機械学習で違反画像を検知するシステムを考案してください。

    View full-size slide

  23. たくさんの疑問
    ● 違反画像検知の現状
    ● 違反画像検知の成功の定義は?
    ○ 数字で計測できるか?
    ● 違反とは? 違反画像とは?
    ● 画像が投稿されてAI Animalsアプリで公開されるまでの流れ
    ● 投稿されるのは画像だけ?
    ● 画像のフォーマットは?
    ● リリーススケジュール
    ● 違反画像が公開されるリスク
    ● 機械学習による違反検知が間違った場合の対処
    ● 違反を繰り返すユーザをどうするか
    ● そもそも機械学習で違反検知を実施する価値は?
    ● 人間の目視確認では駄目?
    ● ・・・

    View full-size slide

  24. 違反検知の現状のワークフロー
    動物大好きアプリ
    動物大好きアプリ
    ● 社内のメンバーが違反画像を目視確認している。
    ● 投稿された画像は公開されると同時に全て
    違反確認待ちリストに追加され、メンバーが
    確認。
    ● 違反の場合は公開停止。違反テーブルに登録する。
    ● 違反ではない場合はそのまま公開維持。

    View full-size slide

  25. 開発の前にデータ
    機械学習には大量のデータが必要
    ● 集める
    ● アノテーション
    ● 管理する
    正常
    違反
    集める アノテーション 管理する
    データ 違反 違反項目
    false NULL
    false NULL
    true human
    true patent

    View full-size slide

  26. アノテーション
    ● データにラベルを付ける作業。
    ● AI Animalsの違反検知の場合、
    画像データに「正常」ラベルと
    「違反」ラベルをつけていく。
    ● 「違反」が複数種類ある場合、それぞれの
    「違反」ラベルを付けることもある。
    ● AI Animalsにはすでに10,000,000点以上の
    画像が存在するため、すべての画像にラベルを
    付けるのは社内メンバーだけでは不可能。
    正常
    動物ではない
    違反
    動物
    グロ
    画像 グロ画像違反
    動物
    グロ
    画像

    View full-size slide

  27. 実験して性能を評価する
    写真を撮る
    タイトル入力
    説明入力
    登録する
    ねこ
    AI Animals
    実験を繰り返して性能を評価する。
    必要に応じてDataやPlanに戻る。
    ここでGPUや分散処理→コスト増大。
    正常
    違反
    性能が低い
    データが足りない
    遅い
    戻る

    View full-size slide

  28. 違反検知のワークフローを考える

    View full-size slide

  29. バックエンド
    違反検知システム
    データベース
    システムを設計する
    キュー
    違反検知機械学習 登録処理
    違反検知待ち
    違反登録待ち
    1. 投稿
    2.1. 画像データを
    登録
    2.3.
    画像IDを登録
    画像
    ストレージ
    2.2.
    画像を登録
    3.
    画像IDを取得
    4. 画像データを
    取得
    5. 違反を登録
    6. 違反を取得
    7. 違反を登録、
    画像の公開停止
    違反時のみ実行
    常時実行
    8. 違反画像を
    ダブルチェック

    ボトルネック
    ボトルネック

    View full-size slide

  30. 実験的なコード:頻繁に書き直す、
    途中から実行、使い捨て
    本番コード: 動かし続ける、再現性、
    デバッグ
    実験的なコードを清書する
    写真を撮る
    タイトル入力
    説明入力
    登録する
    ねこ
    AI Animals
    正常
    違反
    動かし方がわからない・・・

    View full-size slide

  31. Jupyter NotebookからPythonに書き直す
    ● Jupyter Notebookは機械学習の実験や
    レポートを作るためのツール。
    ● Jupyter Notebookのままではソフトウェアに
    組み込むことはできない。
    ● Pythonは.pyファイルに書き直す必要がある。

    View full-size slide

  32. 違反検知モデルを学習するシステム
    データ取得
    前処理
    学習
    評価
    ビルド
    ● データパイプラインや
    MLパイプラインのワークフローは
    DAG(有向非巡回グラフ)として定義。
    ● DWHやストレージから取得したデータを各フローで処
    理し、結果をモデルレポジトリに記録。
    ● モデル生成後にビルド。ビルドのアウトプットは実行環
    境含めてDockerイメージとしてビルドすることもあれ
    ば、モデルのみをビルドし、実行環境はメタデータとし
    て定義することもある。
    ● メタデータにはモデルの学習、評価に使った
    再現可能なデータ、パラメータ、評価値を登録。
    DWH
    ストレージ
    Hold out test
    メタデータ
    モデルレポジトリ
    Image builder
    Docker registry
    Docker registry
    パラメータ
    チューニング

    View full-size slide

  33. しかしそれは始まりでしかなかった・・・
    リリース・・・
    写真を撮る
    タイトル入力
    説明入力
    登録する
    ねこ
    AI Animals
    正常
    違反

    View full-size slide

  34. 偽陽性と偽陰性
    写真を撮る
    タイトル入力
    説明入力
    登録する
    ねこ
    AI Animals
    偽陽性:違反なのに正常と判定。
    偽陰性:正常なのに違反と判定。
    データの品質や網羅性が足りないと、
    偽陽性や偽陰性が高くなる。
    同じ間違いでも、ビジネス的な影響は異なる。
    正常なのに
    違反と判定された
    投稿者は不快
    閲覧者は不快
    違反なのに
    正常扱い

    View full-size slide

  35. ヒューマンインザループ
    写真を撮る
    タイトル入力
    説明入力
    登録する
    ねこ
    動物大好きアプリ
    自動化が進んだ仕組みにおいて、
    一部の判断に人間を介在させること。
    機械学習の誤りを正すためには人間の
    ダブルチェックが必要。
    正常
    違反
    違反と間違え
    やすい正常
    正常と間違え
    やすい違反
    アノテーションしてデータを作る!

    View full-size slide

  36. 正常
    違反
    推測するな計測せよ
    写真を撮る
    タイトル入力
    説明入力
    登録する
    ねこ
    AI Animals
    機械学習の判定と実用上の価値を評価する。
    評価に応じて次のActionを決める。
    正答率: xx
    Precision: yy
    Recall: zz
    違反画像閲覧数: aa
    クレーム数: bb
    コスト: cc
    Go: 改善Plan
    No Go: 停止措置

    View full-size slide

  37. 推測するな計測せよ
    ● 2022年8月1日から機械学習による違反検知を導入開始して、
    10月31日まで運用した結果。
    見逃さない
    調査する
    仮説を立てる
    対策する

    View full-size slide

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

    View full-size slide

  39. 自動化しなければ成り立たないシステム
    ● データの変化が激しく、追随する必要がある場合、機械学習のシステムをEnd-to-endで自動化する
    必要がある。
    ● 検索やレコメンデーションで機械学習を使う場合、実験や評価は人間の作業が必要な一方で、
    学習、デプロイ、推論の過程は自動化することが望ましい。
    ● 初期の開発(Dev)は人間が評価しつつ、運用開始後(Ops)のプロセスはデータ追加含めて
    自動化する。

    View full-size slide

  40. 機械学習を使ったプロダクト
    画像処理
    自然言語処理
    検索
    ランク学習による
    並べ替え
    画像検索
    Query
    Understanding
    AI Animals

    View full-size slide

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

    View full-size slide

  42. 類似画像検索の評価
    ● 似ているかどうかは人間の主観。
    ● 全件検査はN:Nの比較となり実質不可能。
    ● 同一個体で比較、同じ猫種や犬種に絞って比較等、評価対象を減らす工夫をする。
    DL
    特徴量
    特徴量抽出 類似ベクトル検索
    似てる?

    View full-size slide

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

    View full-size slide

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

    DL
    特徴量
    SCaNN
    5. 類似画像
    AI Animals

    View full-size slide

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

    1. 検索対象画像を収集 2. モデルを更新
    3. リクエスト先の
    Tensorflow Servingを
    更新
    AI Animals

    View full-size slide

  46. 機械学習を実用化する
    ● 課題を解決するためにデータを含めて End to endで考える。
    ● そのための解決策(ワークフロー、システム、チーム)を段階的に作る。
    ● データに基づいて試し、評価し、 GO/NO GOを判断する。

    View full-size slide

  47. ● 発売中!
    ● 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

  48. MLOpsコミュニティ
    ● 機械学習の実用化を学ぶコミュニティ。毎月
    MLOps勉強会を開催中!
    ● 11/29(水)、12/18(月)にMLOps勉強会を開催します!

    View full-size slide

  49. MLOps Advent Calendar 2023
    今年1年で得た知見をぜひ共有してください!
    https://qiita.com/advent-calendar/2023/mlops

    View full-size slide