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

機械学習システムアーキテクチャ入門 #2

機械学習システムアーキテクチャ入門 #2

機械学習システムのアーキテクチャを検討する上で考慮すべき課題について調査しまとめた資料です。Money Forward 社内で開かれた MLOps についての勉強会のために作成しました。

## Reference

澁井 雄介 著 AIエンジニアのための機械学習システムデザインパターン 翔泳社 2021年 https://www.shoeisha.co.jp/book/detail/9784798169453
有賀 康顕 中山 心太 西林 孝 著 仕事ではじめる機械学習 第2版 オライリー・ジャパン 2021年 https://www.shoeisha.co.jp/book/detail/9784798169453
Katrina Clokie 著 風間 裕也, 河原田 政典 訳 A Practical Guide to Testing in DevOps Japanese Edition Leanpub 2021年 https://leanpub.com/testingindevops-japanese-edition

Asei Sugiyama

July 15, 2022
Tweet

More Decks by Asei Sugiyama

Other Decks in Technology

Transcript

  1. 機械学習システム アーキテクチャ入門 #2 Asei Sugiyama

  2. 要旨 機械学習システムのアーキテクチャについて典型的な内容を共有します

  3. TOC 機械学習パイプライン <- 推論システム 運用・監視

  4. 機械学習パイプライン TFX ETL 訓練 デプロイ

  5. TFX パターン化されたものの一部のコンポーネントは複雑になりがち Akshay Naresh Modi and Chiu Yuen Koo and

    Chuan Yu Foo and Clemens Mewald and Denis M. Baylor and Eric Breck and Heng-Tze Cheng and Jarek Wilkiewicz and Levent Koc and Lukasz Lew and Martin A. Zinkevich and Martin Wicke and Mustafa Ispir and Neoklis Polyzotis and Noah Fiedel and Salem Elie Haykal and Steven Whang and Sudip Roy and Sukriti Ramesh and Vihan Jain and Xin Zhang and Zakaria Haque TFX: A TensorFlow-Based Production- Scale Machine Learning Platform, KDD 2017 (2017) https://research.google/pubs/pub46484/
  6. ETL データの取得は大変 課題 対策 データが散財していて取得が大変 Data Lake, DWH, Data Mart

    テーブルが散財していて把握が大変 Data Catalog 見つけたテーブルが使えるか不明 メタデータ管理 見つけたテーブルの使い方が難しい BI ツール
  7. AWS Glue さまざまな場所にあるデー タを統合して扱うためのサ ービス クローラーによるデータカ タログの構築と、EMR によ る ETL

    処理 AWS Glue(分析用データ抽出、変換、ロード (ETL) )| AWS
  8. Google Cloud Data Catalog Google Cloud Data Catalog Now Available

    in Public Beta | Google Cloud Blog
  9. 訓練 バッチ処理が基本 複数のモデルを訓練 分散学習

  10. kfp.dsl.ParallelFor json_string: str = json.dumps([ {"snakes": "anaconda", "lizards": "anole", "bunnies":

    [{"cottontail": "bugs"}, {"cottontail": "thumper"}]}, {"snakes": "cobra", "lizards": "gecko", "bunnies": [{"cottontail": "roger"}]}, ]) with dsl.ParallelFor(json_string) as item: with dsl.ParallelFor(item.bunnies) as item_bunnies: print_op(item_bunnies.cottontail) パイプラインにモデルのパラメーターや ID で分岐を作成 パイプラインは分割しすぎない & まとめすぎない
  11. Federated Learning 分散学習の分散度合いを高 めてユーザーのデバイス内 で学習する 採用例はほとんど聞かない

  12. デプロイ 複数サービスの変更が必要 コンテナレジストリ ホスティングサービス スケジューリング カナリアリリース デプロイ対象が複数 シュミレーター 試作機 本番機

  13. TOC 機械学習パイプライン 推論システム <- 運用・監視

  14. 推論システム 検討事項 モノリス 同期推論パターン 非同期推論パターン バッチ推論パターン エッジ推論パターン

  15. 検討事項 機能: 推論の精度 レイテンシー システムコスト 上記を可能な範囲 でバランスよく叶 える 澁井 雄介

    著 AIエンジニアのための機械学習システムデザインパ ターン 翔泳社 2021年 https://www.shoeisha.co.jp/book/detail/9784798169453
  16. モノリス Web アプリケーション 内で直接モデルを呼び 出して推論 初期はこうなりがち バンディットはこうな りがち 有賀 康顕

    中山 心太 西林 孝 著 仕事ではじめる機械学習 第2版 オライリ ー・ジャパン 2021年 https://www.shoeisha.co.jp/book/detail/9784798169453
  17. 同期推論パターン 推論用 API を実装し、アプ リケーションから呼び出す コンテナとして実装するの が一般的 軽いモデル向き 有賀 康顕

    中山 心太 西林 孝 著 仕事ではじめる機械学習 第2版 オライリー・ジ ャパン 2021年 https://www.shoeisha.co.jp/book/detail/9784798169453 澁井 雄介 著 AIエンジニアのための機械学習システムデザインパターン 翔泳社 2021年 https://www.shoeisha.co.jp/book/detail/9784798169453
  18. 非同期推論パターン アプリケーションのリクエ ストをキューイング 推論結果をキューか DB に 書き込み、アプリケーショ ンから利用 重いモデル向け ユーザーになんとかして待

    ってもらう必要はある 澁井 雄介 著 AIエンジニアのための機械学習システムデザインパターン 翔泳社 2021年 https://www.shoeisha.co.jp/book/detail/9784798169453
  19. バッチ推論パターン あらかじめバッチ処理とし て全件推論 結果を DB に保存し、アプ リケーションから利用 重いモデルでユーザーが待 てないのならこれ 入力をあらかじめ列挙でき

    ないのなら採用不可 澁井 雄介 著 AIエンジニアのための機械学習システムデザインパターン 翔泳社 2021年 https://www.shoeisha.co.jp/book/detail/9784798169453
  20. エッジ推論パターン サーバーサイドではなく、 エンドユーザー環境上でモ デルを動かす 学習時と推論時でまったく 異なる環境を用いる 中間表現へのコンパイル と、それを動かすランタイ ムが必須 澁井

    雄介 著 AIエンジニアのための機械学習システムデザインパターン 翔泳社 2021年 https://www.shoeisha.co.jp/book/detail/9784798169453
  21. どれを選ぶべき? 検討の出発点として は、バッチ推論か同期 推論パターン コンテナで実装してお けばオートスケールを 利用できる コンパイルは職人芸に なってきた Configure

    compute resources for prediction | Vertex AI | Google Cloud https://cloud.google.com/vertex- ai/docs/predictions/configure-compute#scaling
  22. TOC 機械学習パイプライン 推論システム 運用・監視 <-

  23. 運用・監視 機械学習の困難さ バグフィルター シャドウ A/B テスト カナリアリリース (A/B テスト) ダッシュボード

    注意点
  24. 機械学習の困難さ 通常のソフトウェアエンジニア リングの手法では機械学習シス テムを扱うことが難しい コードではなくシステムのレベ ルで困難が生じる データへの依存は原因の1つ D. Sculley and

    Gary Holt and Daniel Golovin and Eugene Davydov and Todd Phillips and Dietmar Ebner and Vinay Chaudhary and Michael Young (2014) Machine Learning: The High Interest Credit Card of Technical Debt, SE4ML: Software Engineering for Machine Learning (NIPS 2014 Workshop https://research.google/pubs/pub43146/
  25. バグフィルター 復旧が即座にできるのなら本番環境 へのデプロイ後もテストできる 異なる範囲・粒度のフィルターでバ グを補足する考え方 単体テスト、結合テスト、E2E テス トに加え、アラート、モニタリン グ、ログを用いてバグを補足 Katrina

    Clokie 著 風間 裕也, 河原田 政典 訳 A Practical Guide to Testing in DevOps Japanese Edition Leanpub 2021年 https://leanpub.com/testingindevops-japanese-edition
  26. シャドウ A/B テスト 現行のサーバーと別にアップデ ート後のモデルをデプロイした サーバーを用意 実際のリクエストを2つのサーバ ーに送信 エラーやレイテンシ、計算資源 の負荷をテスト

    可能な場合は精度やビジネス指 標をテスト 澁井 雄介 著 AIエンジニアのための機械学習システムデザインパターン 翔泳社 2021年 https://www.shoeisha.co.jp/book/detail/9784798169453
  27. カナリアリリース リクエストの一部をアップデー ト後のサーバーに送信 エラーやレイテンシのテスト 可能な場合は精度やビジネス指 標をテスト 様子を見ながら徐々に新しいバ ージョンに送信する割合を高め る 澁井

    雄介 著 AIエンジニアのための機械学習システムデザインパターン 翔泳社 2021年 https://www.shoeisha.co.jp/book/detail/9784798169453
  28. ダッシュボード 本番環境の状況を把握 基本は時系列 (異常はデプロ イに起因するものが多いた め) システムのメトリクスとあ わせて機械学習のメトリク ス、ビジネス指標を表示で きると最高

    澁井 雄介 著 AIエンジニアのための機械学習システムデザインパターン 翔泳社 2021年 https://www.shoeisha.co.jp/book/detail/9784798169453
  29. 注意点 (1/2) 見たい観点は次々に出てくるものの、取りうる行動のパターンはそんな に多くない

  30. 注意点 (2/2) 暫定対応 (〜数h) 経過観察 切り戻し 個別の特別対応 恒久対応 (数日〜数週間) バグフィックス

    特徴量・モデルの再設計 リリースフローの見直し
  31. まとめ 機械学習パイプラインは典型的なパターンが整理されたものの、ETL と デプロイは複雑になりがち 推論システムは機能、スピード、コストのバランスを考慮する 運用・監視においては「本番環境でのテスト」の考え方を導入し、カナ リアリリースなどのパターンを用いて本番環境でもバグを補足するよう 設計する