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

機械学習システムのアーキテクチャとデザインパターン

 機械学習システムのアーキテクチャとデザインパターン

鷲崎弘宜, "機械学習システムのアーキテクチャとデザインパターン", 第5回機械学習工学研究会(MLSE夏合宿2022), 2022

Ab00369879507922677a971b56cec3ae?s=128

washizaki

July 02, 2022
Tweet

More Decks by washizaki

Other Decks in Technology

Transcript

  1. 1 機械学習システムのアーキテクチャ とデザインパターン 鷲崎 弘宜 IEEE Computer Society 1st Vice

    President 2023 候補 (Election 8/5~9/12) 早稲田大学, 国立情報学研究所, システム情報, エクスモーション v20220702 第5回機械学習工学研究会(MLSE夏合宿2022)
  2. 機械学習システムの設計例 • スマホで拾った音について楽器の種 類を特定し、種類に応じた記録や対 応を実現したい。 • しかし、スマホのメモリや性能は限ら れており、大きな深層学習モデルは 載りそうにない。どうすればよいか? 2

    転移学習 したモデル 転移学習 したモデル 小さな 判別モ デル 小さな 判別モ デル 何もしない 特定 結果 パターン 問題 解決 2段階予測 Two-Phase Predictions もともと大規模で複雑なモデルの性能 を、エッジデバイスや分散デバイスに デプロイした場合も維持する必要性 利用の流れを2つの段階に分けて、シンプ ルな段階のみをエッジ上で実行 転移学習 Transfer Learning 複雑な機械学習モデルを訓練する ために必要となる大規模データセッ トの不足 訓練済みモデルの一部の層を取り出し て重みを凍結し、訓練対象とせずに類 似問題の解決のため新モデルで利用 • スマホ上の小さなモデルでは音が楽 器かどうか判定し、楽器の場合にの みクラウド上の大きなモデルで種類 を特定する 2段階予測 としよう。 • 特定にあたり、様々な音データによ る既存の訓練済みモデルを用いて 転移学習 したモデルを用いよう。
  3. 機械学習システムにはパターンが必要 • 機械学習で繰り返し登場するベストプラクティ スを、特定のプラットフォームによらない問題と 解決、うまくいく理由をまとめたもの • 抽象的なビジョンと具体的な事例、指示、ツー ルの橋渡し – Know-Why(文脈)、What(問題)、How(解決策)を

    言語化し、文書化 – 解決策や問題点の再利用 – 一貫性のあるアーキテクチャの取得 ビジョン 事例 ツール フレーム ワーク 作業指示 ? ? • 利害関係者間の共通言語 – プロダクトマネージャ、プロジェクトマネージャ、 データサイエンティスト、ソフトウェアエンジニア、 ハードウェアエンジニア、ネットワークエンジニア 、ドメインエキスパート、・・・ 3
  4. 機械学習デザインパターン MLDP, SEP4MLA • 機械学習デザインパターン Machine Learning Design Patterns (Valliappa

    Lakshmanan, Sara Robinson, Michael Munn (Google)) [MLDP] – Googleプラットフォーム上でのMLの使いこなしや設計 • 機械学習アプリケーションのためのソフトウェアエンジニアリン グパターン Software Engineering Patterns for ML Applications [SEP4MLA] – 系統的文献調査に基づきアーキテクチャや運用パターン中心+信 頼性・説明性関係、eAI (Engineerable) としての後者の拡充方向性 • 『AIエンジニアのための機械学習システムデザインパターン』 澁井雄介(翔泳社, 2021),機械学習のモデルやワークフローを 本番システムで稼働させる作法 4 [MLDP] Valliappa Lakshmanan, Sara Robinson, Michael Munn著, 鷲崎弘宜, 竹内広宜, 名取直毅, 吉岡信和 訳, “ 機械学習デザインパターン – データ準備、モデル構築、MLOpsの実践上の問題と解決”(原著 “Machine Learning Design Patterns”), オライリージャパン, 2021. https://www.amazon.co.jp/dp/4873119561 [SEP4MLA] Hironori Washizaki, Foutse Khomh, Yann-Gael Gueheneuc, Hironori Takeuchi, Naotake Natori, Takuo Doi, Satoshi Okuda, “Software Engineering Design Patterns for Machine Learning Applications,” IEEE Computer, Vol. 55, No. 3, pp. 1-9, 2022. https://github.com/eai-transfer/ml-design-pattern
  5. 機械学習デザインパターン MLDP • Google Cloudデータ分析&AI部門トップらの豊富な知見 • うまくいく理由、トレードオフや代替策の解説、コード例 • Valliappa Lakshmanan,

    Sara Robinson, Michael Munn著, 鷲崎弘宜, 竹内広宜, 名取直毅, 吉岡信和 訳, “機械学 習デザインパターン – データ準備、モデル構築、MLOps の実践上の問題と解決”, オライリージャパン, 2021. 5 訓練 データ 訓練済みモデ ル 予測・推論(に 基づく振舞い) 基盤ソフトウ ェアシステム データ データ表現パターン 問題表現パターン モデル訓練パターン 再現性パターン 責任・説明性パターン 対応性のある運用パターン
  6. 0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 -0.8 -0.6

    -0.4 -0.2 0 0.2 0.4 0.6 データ表現: 埋め込み Embeddings • 問題: カテゴリ数が膨大な場合の難しさ(疎行列化)。ワンホットエンコーディングではデ ータの近さを扱えない。 • 解決: 訓練可能な特徴埋め込みレイヤで意味的な近さを表すように小次元のベクトル 化、および、重みの訓練 • 考慮 – 経験則: 次元数 = 元のカテゴリ数の4乗根 – テキスト: 語単位の小次元ベクトル表現、平均をとるなどの集約。Word2VecやBERTなどのさらなる意 味・文脈考慮。 – 画像: 畳み込みCNN、オートエンコーダなど 6 オートエンコーダ 『機械学習デザインパターン ―データ準備、モデル構築、MLOpsの実践上の問題と解決』Lakshmananら著, 鷲崎ら訳, オライリージャパン, 2021 単胎 四つ子 双子 三つ子 五つ子 多胎
  7. 問題表現: 問題再設定 Reframing • 問題: 確率的であるため、特に精緻な実数の予測に固執すると 当初の目的変数や出力形式では限界を生じる場合が有る(特 に分布上のピークが複数の場合)。 • 解決:

    問題を捉えなおす。特に回帰から分類へ変更する。 • 考慮: – 数値が重要な場合は逆に回帰へ(例: 都市そのものより緯度・経度) – 分類への移行方法: 回帰結果による分類、マルチタスク学習 – 真に目的にかなうものか注意(例:おすすめ映画の種類からユーザの クリック数へと予測問題を変更すると、過剰にクリック数の増大方向) 7 分類が正確な場合 回帰が正確な場合 『機械学習デザインパターン ―データ準備、モデル構築、MLOpsの実践上の問題と解決』Lakshmananら著, 鷲崎ら訳, オライリージャパン, 2021
  8. 再現性: 繰り返し可能な分割 Repeatable Splitting • 問題: ランダムな訓練、検証、テスト用分割では再現困難かつ関係なし • 解決: 関係を用いたい変数をハッシュ化し剰余により、その関係持った形で

    の訓練、検証、テスト用それぞれのデータ分割 • 考慮 – 時系列上の同様の分割(時間的連続性) – 非構造化データの場合: メタデータの利用、一律エンコードしてハッシュ化など 8 airline delay date airport AAA 1000 2020/6/14 NRT BBB 1100 2020/6/14 HND CCC 1200 2020/6/14 HND CCC 30 2020/6/15 NRT DDD 10 2020/6/16 LAX 単純な分割 dateに着目した分割
  9. SEP4MLA: Software Engineering Patterns for ML Applications • 文献サーベイによる抽出: 80文書,

    15パターン • 主にシステム全体・運用・保守、信頼性、予測性能に関するパターン群 • https://github.com/eai-transfer/ml-design-pattern 9 システム全体 Different Workloads in Different Computing Environments Distinguish Business Logic from ML Models ML Gateway Routing Architecture Microservice Architecture for ML Lambda Architecture Kappa Architecture プログラミング Data Lake Separation of Concerns and Modularization of ML Components Encapsulate ML models within Rule-base Safeguards Discard PoC Code 機械学習モデル操作 Parameter-Server Abstraction Data flows up, Model flow down Secure Aggregation Deployable Canary Model ML Versioning Hironori Washizaki, Foutse Khomh, Yann-Gael Gueheneuc, Hironori Takeuchi, Naotake Natori, Takuo Doi, Satoshi Okuda, “Software Engineering Design Patterns for Machine Learning Applications,” IEEE Computer, Vol. 55, No. 3, pp. 30-39, 2022.
  10. 10 システム全体・運用パターンの一部 SEP4MLA パターン 問題 解決 機械学習のためのデータ レイク データに対する分析方法や利用 フレームワークを予想困難

    構造化・非構造化のいずれも可能 な限り生データをストレージ保存 機械学習モデルからのビ ジネスロジック分離 全体的なビジネス・ロジックは他 に影響を与えず変更できるよう MLモデルから分離の必要あり ビジネス・ロジックと推論エンジンを 分離し、ビジネス・ロジックとML固 有のデータフローを疎結合 Data Layer Logic Layer Presentation Layer User Interface Database Data Collection Data Lake Business Logic Data Processing Inference Engine Real World Business Logic Specific ML Specific Architectural Layers Deployed as ML System Business Logic Data Flow ML Runtime Data Flow ML Development Data Flow Legend Haruki Yokoyama, Machine Learning System Architectural Pattern for Improving Operational Stability, ICSA-C, 2019 Hironori Washizaki, Foutse Khomh, Yann-Gael Gueheneuc, “Software Engineering Patterns for Machine Learning Applications (SEP4MLA),” 9th Asian Conference on Pattern Languages of Programs (AsianPLoP 2020)
  11. アーキテクチャとは • システムの基本的な概念や性質 [ISO/IEC/IEEE 42010] – 構成要素、要素間の関係、設計・進化の原則から成る – 効果:理解、再利用、構築、進化、分析、管理 [Garlan14]

    • 機械学習システムにおける必要性 – 大規模化/複雑化に伴い、途中で変更することが困難 – 非機能要求(信頼性/性能/拡張性などの向上)の増大 – 多種多様な関係者、技術、サービスの組み合わせ意思決定 11 実装 要求 設計 実装 実装・進化 達成 準拠 達成 アーキテクチャ 図: CMU SEI, Software Architecture, http://www.sei.cmu.edu/architecture 図: 鄭顕志,”アーキテクチャ・品質エンジニアリング”, スマートエスイー, 2018
  12. アーキテクチャ設計手法 Attribute- Driven Design (ADD) • カーネギーメロン大学(CMU) Software Engineering Institute(SEI)で開発

    • 要求を優先順位付けし,各イテレーションごとに扱う要 求を実現するようにアーキテクチャを段階的に洗練化 • 設計の検討の際には参照アーキテクチャ,アーキテク チャスタイル等の過去の優れた知見を参考に ユーザー System 要求1 優先順位 高 低 ユーザー ユーザー 1st Iteration 2nd Iteration 要求2 要求4 要求3 要求5 鄭顕志,”アーキテクチャ・品質エンジニアリング”, スマートエスイー, 2018 L. Bass, et al. 前田ほか訳: 実践ソフトウェアアーキテクチャ(Software Architecture in Practice 2nd Ed.), 日刊工業新聞社, 2005
  13. 例: チャットボットシステムの場合 1/4 考慮する要求 適用パターン 設計 FR(機能性): 多様なデ ータに基づく応答推論 User

    Interface (Chatbot UI) Web App Front-end Slack Users Input Output Architectural Elements (Example Role as Chatbot) What How Business Logic Data Flow ML Development Data Flow ML Runtime Data Flow Input Data Output Data Legend System
  14. 例: チャットボットシステムの場合 2/4 考慮する要求 適用パターン 設計 User Interface (Chatbot UI)

    Web App Front-end Slack Business Logic with Dasta Processing Web App Back-end Pre- and post- processing TensorFlow Inference Engine (Language Model) NN Model TensorFlow Database (Previous Q&A Store) DB Server (None) Data Lake (Vectorized Corpus) Word Vector TensorFlow (Text) Users Input Output ML Input ML Output Architectural Elements (Example Role as Chatbot) What How Business Logic Data Flow ML Development Data Flow ML Runtime Data Flow Input Data Output Data Word Vector Legend FR(機能性): 多様なデ ータに基づく応答推論 機械学習のため のデータレイク
  15. 例: チャットボットシステムの場合 3/4 考慮する要求 適用パターン 設計 User Interface (Chatbot UI)

    Web App Front-end Slack Business Logic with Dasta Processing Web App Back-end Pre- and post- processing TensorFlow Inference Engine (Language Model) NN Model TensorFlow Database (Previous Q&A Store) DB Server (None) Data Lake (Vectorized Corpus) Word Vector TensorFlow (Text) Users Input Output ML Input ML Output Architectural Elements (Example Role as Chatbot) What How Business Logic Data Flow ML Development Data Flow ML Runtime Data Flow Input Data Output Data Word Vector Legend QR(変更容易性): データ源の拡充と モデルやロジックの変更しやすさ
  16. 例: チャットボットシステムの場合 4/4 考慮する要求 適用パターン 設計 機械学習モデルからの ビジネスロジック分離 Data Layer

    Logic Layer Presentation Layer User Interface (Chatbot UI) Web App Front-end Slack Business Logic (Chatbot Logic) Web App Back-end Slack Data Collection (Dataset) Datasets Outside Conversation Corpus Data Processing (Text to Vector Transformer) NN Model pre- and post- processing TensorFlow Inference Engine (Language Model) NN Model TensorFlow Database (Previous Q&A Store) DB Server (None) Data Lake (Vectorized Corpus) Word Vector TensorFlow (Text) Users Data Source Input Output Datasets ML Input ML Output Input Data Output Data Input Data Datasets Word Vector QR(変更容易性): データ源の拡充と モデルやロジックの変更しやすさ
  17. まとめ • パターン: 問題と解決のエッセンスをまとめたも の – 共通の「ことば」、開発と運用を検討し、仲間と対話 – 問題や解決の再利用、新たな問題や解決をパター ン化

    – Lak氏「機械学習のパターンがより探求され広まって ほしい。本書はその第一歩である。」 SES2021 • アーキテクチャ設計とADD – 要求を優先順位付けし,各イテレーションごとに扱う 要求を実現するようアーキテクチャを段階的洗練化 – 設計の検討の際には機械学習デザインパターン等 の過去の優れた知見を参考に 17