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. 自己紹介 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
  2. 技術評論社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についてあまり他では取り上げないようなテーマを 中心に記事を書いています!
  3. • 発売中! • https://www.amazon.co.jp/dp/4798173401/ • https://github.com/shibuiwilliam/building-ml-system 今日はこちらの本の話。 機械学習システムを実用化する
 設計・開発・運用ノウハウが満載
 【本書の概要】


    本書は前著『AIエンジニアのための機械学習システム
 デザインパターン』では触れられなかった、
 機械学習システムを構築する上で実際に発生する
 課題を想定し、動いているシステムやワークフローに
 機械学習を組み込む方法を解説した書籍です。
 - 需要予測のためのバッチシステム
 - 違反検知システム
 - ランク学習による検索
 - 類似画像検索システム

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

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

    解決 開発 ここの方法論は増えてきた 課題からデータまで紐づけて 解決できるスキルが求められている
  7. 機械学習を使ったプロダクト 画像処理 写真を撮る タイトル入力 説明入力 投稿する 自然言語処理 違反検知 登録情報から違反を フィルタリング

    入力情報から 入力補助 超解像による 画質改善 ねこ 検索 協調フィルタリングや ランク学習による 並べ替え あるコンテンツ投稿アプリ 画像分類と 検索
  8. 機械学習を使うための技術 写真を撮る タイトル入力 説明入力 投稿する ねこ 動物画像SNSアプリ ログ DB Storage

    監視 学習 モデル proxy 画像 API 推論 API batch デプ ロイ 認証 認可 ID 検索 API Item API 推薦 API BI クラウド・インフラ
  9. バックエ ンドAPI Elastic Search Postgre SQL Storage Argo Workflow MLflow

    キャッシュ Prome theus RabbitMQ Grafana 検索ML 違反検知 システム AI Animals全体像
  10. システムとワークフロー 写真を撮る タイトル入力 説明入力 投稿する AI Animals ねこ 機械学習 データ

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

    DWH 推論 API 推論 batch BI 評価 アノテー ション 学習 Pipeline ML 基盤 データ ML SWE アノテーション PdM 投稿 API
  12. 違反検知を考える • あなたはスマホアプリAI Animalsを提供する会社で働く機械学習エンジニアです。 • AI Animalsではユーザがスマホから動物写真を投稿し、共有することができます。 • 可愛い動物写真がみつかることで好評で、リリース1年で月間アクティブ・ユーザ数が50,000人、 動物写真の総投稿数が10,000,000件を突破しました。

    • ユーザが増えるとマナーの悪いユーザも増えてしまい、最近では動物写真以外の画像が投稿され、ユーザ に不快な思いをさせる事態が散見されます。 • AI Animalsでは動物が写っていない写真(ただし人間は動物と判断しない)の投稿は禁止 しています。禁止事項に該当する画像は違反画像として公開停止対象とします。 • 機械学習エンジニアであるあなたは、毎日5万枚の写真が投稿されるAI Animalsで、 違反画像を効率的に検知して公開停止にするプロジェクトに参加します。 • 機械学習で違反画像を検知するシステムを考案してください。
  13. たくさんの疑問 • 違反画像検知の現状 • 違反画像検知の成功の定義は? ◦ 数字で計測できるか? • 違反とは? 違反画像とは? •

    画像が投稿されてAI Animalsアプリで公開されるまでの流れ • 投稿されるのは画像だけ? • 画像のフォーマットは? • リリーススケジュール • 違反画像が公開されるリスク • 機械学習による違反検知が間違った場合の対処 • 違反を繰り返すユーザをどうするか • そもそも機械学習で違反検知を実施する価値は? • 人間の目視確認では駄目? • ・・・
  14. 開発の前にデータ 機械学習には大量のデータが必要 • 集める • アノテーション • 管理する 正常 違反

    集める アノテーション 管理する データ 違反 違反項目 false NULL false NULL true human true patent
  15. アノテーション • データにラベルを付ける作業。 • AI Animalsの違反検知の場合、 画像データに「正常」ラベルと 「違反」ラベルをつけていく。 • 「違反」が複数種類ある場合、それぞれの

    「違反」ラベルを付けることもある。 • AI Animalsにはすでに10,000,000点以上の 画像が存在するため、すべての画像にラベルを 付けるのは社内メンバーだけでは不可能。 正常 動物ではない 違反 動物 グロ 画像 グロ画像違反 動物 グロ 画像
  16. バックエンド 違反検知システム データベース システムを設計する キュー 違反検知機械学習 登録処理 違反検知待ち 違反登録待ち 1.

    投稿 2.1. 画像データを 登録 2.3. 画像IDを登録 画像 ストレージ 2.2. 画像を登録 3. 画像IDを取得 4. 画像データを 取得 5. 違反を登録 6. 違反を取得 7. 違反を登録、 画像の公開停止 違反時のみ実行 常時実行 8. 違反画像を ダブルチェック ↑ ボトルネック ボトルネック ↓
  17. 違反検知モデルを学習するシステム データ取得 前処理 学習 評価 ビルド • データパイプラインや MLパイプラインのワークフローは DAG(有向非巡回グラフ)として定義。

    • DWHやストレージから取得したデータを各フローで処 理し、結果をモデルレポジトリに記録。 • モデル生成後にビルド。ビルドのアウトプットは実行環 境含めてDockerイメージとしてビルドすることもあれ ば、モデルのみをビルドし、実行環境はメタデータとし て定義することもある。 • メタデータにはモデルの学習、評価に使った 再現可能なデータ、パラメータ、評価値を登録。 DWH ストレージ Hold out test メタデータ モデルレポジトリ Image builder Docker registry Docker registry パラメータ チューニング
  18. 偽陽性と偽陰性 写真を撮る タイトル入力 説明入力 登録する ねこ AI Animals 偽陽性:違反なのに正常と判定。 偽陰性:正常なのに違反と判定。

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

    機械学習の判定と実用上の価値を評価する。 評価に応じて次のActionを決める。 正答率: xx Precision: yy Recall: zz 違反画像閲覧数: aa クレーム数: bb コスト: cc Go: 改善Plan No Go: 停止措置
  20. Argo Workflow ワークフローエンジン 学習のパイプライン 類似画像検索Tensorflow Serving MobileNet v3 + SCaNN

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

    類似画像検索 4. 類似画像検索 2. 類似画像検索 画像 ストレージ 3. クエリ画像を取 得 DL 特徴量 SCaNN 5. 類似画像 AI Animals
  22. 学習と推論のパイプライン バックエンドAPI 類似画像検索プロキシ 類似画像検索Tensorflow Serving MobileNet v3 + SCaNN Argo

    Workflow ワークフローエンジン 類似画像検索学習 Tensorflow Serving デプロイ 類似画像検索プロキシ デプロイ 類似画像検索 類似画像検索の学習 1. 類似画像検索 4. 類似画像検索 2. 類似画像検索 画像 ストレージ 3. クエリ画像を取 得 1. 検索対象画像を収集 2. モデルを更新 3. リクエスト先の Tensorflow Servingを 更新 AI Animals