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

Azure Machine Learningを中心としたMSのMLOpsソリューションの概要とアーキテクチャ

KoheiOgawa
February 16, 2022

Azure Machine Learningを中心としたMSのMLOpsソリューションの概要とアーキテクチャ

MLOpsは、機械学習のライフサイクルの各工程を管理・監視・評価することで、ライフサイクルの自動化を図る比較的新しい概念です。本セッションでは、MLOpsの基本的な概要とMicrosoftが提唱しているMachine Learning 用の成熟度モデルを中心としたMSソリューションを用いたアーキテクチャやLv別の課題と解決策についてお話します(+デモ)。また、最後にMLOpsについて理解を深められるようなリソースについてご紹介します。

KoheiOgawa

February 16, 2022
Tweet

More Decks by KoheiOgawa

Other Decks in Technology

Transcript

  1. Azure Machine Learning を
    中心とした MS の MLOps
    ソリューションの概要とアーキテクチャ
    Kohei Ogawa
    CSU/CSA Data&AI
    Shunta Ito
    CSU/CSA Data&AI
    Keita Onabuta
    FastTrack Engineer for Azure (AI/ML)

    View Slide

  2. アジェンダ  MLOps 概要(15min)
     Step by Step MLOps(25min)
    (各 Lv 別アーキテクチャと Azure サービス詳細)
     Lv0 No MLOps
     Lv1 DevOps no MLOps
     Lv2 Automated Training
     Lv3 Automated Model Deployment
     Lv4 Full MLOps Automated Retraining
     MLOpsに関するリソース紹介 (5min)
     質疑応答(10分)

    View Slide

  3. MLOps 概要

    View Slide

  4. Machine Learning Operationsの略
    ≒DevOps for ML
    機械学習の運用

    View Slide

  5. MLOpsのGoal
    1. 実験とモデル開発の迅速化
    2. 更新されたモデルの本番への
    迅速なデプロイ
    3. 品質保証(データ・モデル)

    View Slide

  6. だれが嬉しいのか?
    シームレスな
    ハンドオフが可能
    MLモデル

    View Slide

  7. 機械学習システム
    “Hidden Technical Debt in Machine Learning Systems,” Google NIPS 2015
    Figure 1: Only a small fraction of real-world ML systems is composed of the ML code, as shown by the
    small green box in the middle. The required surrounding infrastructure is vast and complex.
    ML
    Code
    Configuration
    Data Collection
    Data
    Verification
    Feature
    Extraction
    Machine
    Resource
    Management
    Analysis Tools
    Process
    Management Tools
    Serving
    Infrastructure
    Monitoring
    モデル開発で生じるデータの管理・監視や
    インフラに関する負荷が重い
    クラウド×MLOpsのValueの
    発揮どころ!

    View Slide

  8. MLOps を支える要素
    インフラ
    環境
    記録・監視
    学習・推論
    自動化
    計算リソース ストレージ データベース
    VM データセット
    コード
    環境定義
    モデルレジストリ
    実験記録 ログ
    パイプライン ワークフロー
    コンテナ

    View Slide

  9. 機械学習ライフサイクル
    Validate Model Deploy Model
    Package
    Model
    Monitor Model
    Train Model
    モデル再学習
    開発と学習
    ビジネス課題を
    解決する
    パッケージ化
    モデルをどこでも
    使用可能にする
    挙動の検証
    応答性の観点と
    規制遵守の観点から
    デプロイ
    予測値の生成に
    モデルを使用する
    モニタリング
    挙動とビジネス価値
    を監視する
    陳腐化したモデルを
    いつ置換/廃止するか
    決める

    View Slide

  10. データ
    v v v



    ⇒ソースデータのバージョン管理と
    その属性の管理したい(できる)

    View Slide

  11. モデル構築
    ⇒再現性のあるコードと設定値
    その他の依存関係を管理したい
    (できる)

    View Slide

  12. モデルの検証・デプロイ
    モデルをパッケージ化して
    どこでも利用可能へ
    • モデルの性能や推論速度などの検証テスト
    • 公平性や説明性のレポート生成
    • プロダクション環境へデプロイ
    ⇒モデルの自動デプロイがしたい
    (できる)

    View Slide

  13. ビルドパイプライン

    View Slide

  14. モデルのモニタリング
    Collaborate
    Train
    Validate
    Deploy
    Monitor
    ⇒ドリフトの監視とモデルの再学習がしたい
    (できる)

    View Slide

  15. ドリフト

    View Slide

  16. 成熟度モデルの概要
    機械学習運用の成熟度モデル - Azure Architecture Center | Microsoft Docs
    概要 技術
    Level 0
    No MLOps
    • 機械学習モデルのライフサイクル全体を管理することは困

    • チームは別々で、リリースは困難
    • ほとんどのシステムは "ブラック ボックス" として存在し、
    デプロイ時およびデプロイ後のフィードバックはほとんど
    なし
    • 手動によるビルドとデプロイ
    • モデルおよびアプリケーションの手動に
    よるテスト
    • モデルのパフォーマンスの一元的追跡なし
    • モデル学習は手動
    Level 1
    DevOps no MLOps
    • ”No MLOps" よりもリリースの苦労は少ないが、新しいモデ
    ルごとにデータ チームに依存
    • 運用段階でのモデルのパフォーマンスに関するフィードバッ
    クは
    依然として限られる
    • 結果の追跡および再現が困難
    • 自動ビルド
    • アプリケーション コードの自動テスト
    Level 2
    トレーニングの自動化
    • トレーニング環境は完全に管理され、追跡可能
    • モデルの再現が容易
    • リリースは手動であるが、摩擦は少ない
    • 自動化されたモデルの学習
    • モデル学習のパフォーマンスを
    一元的に追跡
    • モデル管理
    Level 3
    モデルデプロイの自動化
    • リリースは低摩擦で自動
    • デプロイから元のデータまで完全に追跡可能
    • 環境全体 (学習 > テスト > 運用) を管理
    • デプロイするモデルのパフォーマンスに関する A/B テスト
    を統合
    • すべてのコードのテストを自動化
    • モデルの学習性能を一元化
    Level 4
    MLOpsの再トレーニング
    の完全自動化
    • システムを完全自動化し、監視を容易化
    • 運用システムは、改善方法に関する情報を提供。
    場合によっては、新しいモデルで自動的に改善
    • ゼロ ダウンタイム システムに近づく
    • モデル学習とテストを自動化
    • デプロイされたモデルからの詳細で
    一元化されたメトリック

    View Slide

  17. Step by Step MLOps with Azure ML

    View Slide

  18. Level 0 – No MLOps
     インタラクティブかつ実験的に有益なモデルを探す
     環境構築、データの取得、デプロイ、テストは手動
    データソース
    データ準備 良いモデルの発見
    アルゴリズム選定 手動デプロイ
    手動構築した
    ML 環境
    ML エンジニア
    データサイエン
    ティスト

    View Slide

  19. Level 0 – No MLOps
    Train
    Mount/
    Download
    Azure Data Lake
    Storage Gen2
    Data Science VM Azure Container
    Instance
    Model
    手動 Build 手動 デプロイ
    Container
    • マシンスペックが心もとない
    • 環境が標準化できておらず
    チームメンバーが増える度に
    構築の手間が生じる
    • 使用したコードを集約で
    きていない
    • テストが無くコード品質
    が担保されていない
    • データの取得方法がおお
    ざっぱでセキュリティへ
    の配慮が薄い

    View Slide

  20. Lv0 → Lv1
     機械学習プラットフォームの整備
     チーム・組織で共有の機械学習プラットフォームを利用していること
     コードを集約するリポジトリホスティング環境の整備
     テストの自動化
     少なくともコードに対するテスト項目がルール化されており、テストの実行が自動化できて
    いること
     データ基盤が整備され始めていること

    View Slide

  21. Level 1 – DevOps no MLOps
     データパイプラインとマネージドな ML 環境が整備される
     テストが整備され始める
    データパイプライン
    データカタログ データ準備 良いモデルの発見
    アルゴリズム選定 手動デプロイ
    マネージドな ML 環境
    コードレベルの
    テスト
    ML エンジニア
    データサイエンティスト
    データ
    エンジニア
    Capture
     コード
    コードリポジトリ

    View Slide

  22. Azure Machine Learning
    Workspace に各リソースとアセットが紐づく
    Azure Kubernetes Service
    Azure Container Instance
    Data Science Virtual
    Machine
    Azure Databricks
    Azure Synapse Analytics
    Remote Compute
    (ローカル, VM)
    Azure HDInsight
    Linked
    Services
    Datastores
    Compute targets
    Environment
    s
    Experiments Pipelines Datasets Models Endpoints
    マネージド
    リソース
    依存
    Compute
    instances
    Compute
    clusters
    Workspace
    Azure
    Key
    Vault
    Azure
    Container
    Registry
    Azure Storage
    Account
    Azure
    Application
    Insights
    アセット

    View Slide

  23. GitHub
     Git によるソースコード管理
     多種多様なサービスとの強力
    な連携機能
     Github Actions によるワーク
    フロー構築
    Lv1~Lv4

    View Slide

  24. GitHub Actions
     イベント駆動でジョブを実行する GitHub のワークフローツール
    https://docs.github.com/ja/actions
    Lv1~Lv4

    View Slide

  25. Level 1 – DevOps no MLOps
    Train
    Mount/Download
    Azure ML 機能
    Azure Synapse
    Pipeline
    Azure Data Lake
    Storage Gen2
    Compute Instance Model
    Data
    Prep
    自動 Build
    Datastores / Dataset
    GitHub Actions
    Code
    GitHub
    Azure Container
    Instance
    Test
    自動 Deploy
    Container
    • モデルを構築するにあ
    たって使用したパラメー
    ター等が記録されておら
    ず、再現性がない
    • 作成されたモデルが統一
    的に管理されていない

    View Slide

  26. Lv1 → Lv2
     モデル学習の再現性確保
     1度やった実験を再現しようと思えばでき、実験の成果物(学習済みモデル等)が
    実験と紐づいた形で保管されていること
     パイプラインが構築され、確立した手順は簡単に再実行できること
     モデルの運用管理
     モデルが管理されており、関連する実験やエンドポイントが紐づくこと

    View Slide

  27. Level 2 – Automated Training
     コード、データ、モデルがバージョン管理され、実験が記録される
     モデルの再作成が自動化される
    データ
    準備
    アルゴリズム
    選定
    良いモデル
    の発見
    Capture
     データセット
     環境
     コード (スナップショット)
     ログ/メトリック
     生成物
    履歴の取得と保存
    モデル登録
    機械学習パイプライン
    データパイプライン
    データカタログ
    ML エンジニア
    データサイエン
    ティスト
    データ
    エンジニア
    MLOps
    エンジニア

    View Slide

  28. Experiment は1つのスクリプトに由来す
    る複数の Run をグループ化したもので、
    Azure Machine Learning Workspace に
    所属する。各 Run の情報は関連付けら
    れた Experiment の配下に保存される。
    Azure ML Runs and
    Experiments
    Experiment
    スクリプトの実行によって生成された複数の Run をグルーピ
    ング
    Azure ML Workspace 直下に所属
    各 Run の情報を保存し、横断的に管理
    Run
    モデルを学習するスクリプトを submit することで生成され、
    以下を内包
    実行のメタデータ (実行した日時、実行に要した時間等)
    スクリプトから出力したメトリック
    実験に関する自動収集された、もしくは明示的にアップロードされた
    ファイル
    スクリプトを含むディレクトリの実行直前のスナップショット
    Run configuration
    計算リソース上でスクリプトがどのように実行されるべきかの定義
    Lv2~Lv4

    View Slide

  29. 1つの Azure Machine Learning Pipeline
    は完成した機械学習タスクのワークフ
    ローを表し、機械学習の各サブタスクは
    パイプラインを構成数する一連の手順と
    して内包される
    Azure ML Pipelines
    Azure Machine Learning Pipeline には、 Python スク
    リプトを呼び出すだけのシンプルなものから、あらゆ
    ることを実行するものまで存在する。
    タスク
    Pipelines は以下のような機械学習タスクにフォーカス:
    • インポート、検証とクリーニング、変換、正規化、ステージングを含
    む「データの準備」
    • パラメーター化された引数、ファイルのパス、ログとレポート出力の
    設定を含む「学習の設定」
    • 効率的かつ繰り返し実行できる「学習と検証」。特定のデータサブ
    セット、異なるハードウェアからなる計算リソース、分散処理、進捗
    状況の監視を指定することで、効率性を確保することが可能
    • バージョン管理、スケーリング、プロビジョニング、アクセス制御等
    の要素を含む「デプロイ」
    Lv2~Lv4

    View Slide

  30. Level 2 – Automated Training
    GitHub Actions
    Train
    Mount/Download
    Code
    Azure ML 機能
    ML パイプライン
    Azure Synapse
    Pipeline
    Azure Data Lake
    Storage Gen2
    experiment
    Environment
    pipeline
    Azure Kubernetes
    Service
    Compute Clusters &
    Attached Compute
    GitHub
    Azure ML SDK/CLI
    Compute Clusters
    Compute Instance
    Azure Container
    Registry
    Data
    Prep
    手動 Publish
    自動 Deploy
    Datastores / Dataset
    Test
    Container
    Model
    ML
    • モデルのデプロイ先が拡大してい
    るが、多様な環境に対するモデル
    投入の仕組みが未整備
    • モデルの品質が検証され
    ていない

    View Slide

  31. Lv2 → Lv3
     推論環境に合わせたデプロイパイプラインの実装
     データを受け取って機械学習モデルによる推論結果を返すコンテナをビルドし Kubernetes
    等のコンテナを動かす基盤上にデプロイする一連の作業を実行するパイプラインを構築※
     データソースからデータを取得し、機械学習モデルによる推論結果を得てデータを格納する
    バッチ処理を実行するパイプラインを構築する※
     モデルの検証・品質確認を行う仕組みの実装
     テストデータ(ゴールドデータ)による精度検証の自動化
     説明性、公平性の確認
    ※代表的な機械学習モデルのデプロイパイプライン、実際にはユースケースに応じた構築が必要

    View Slide

  32. Level 3 – Automated Model Deployment
     モデルのパッケージ化、品質確認、デプロイが半自動的に行われる
    パッケージ化 品質確認 リリース
    Environments
    コード 説明
    データセット イベント & 通知
    DevOps 統合 (CI/CD)
    Model Registry
    MLOps
    エンジニア
    QAエンジニア

    View Slide

  33.  Compute Targets は学習スクリプ
    トを実行するか、モデルのデプロイ
    先として使用するコンピューティン
    グリソースを表す
     Azure Machine Learning SDK か CLI を使
    用して作成・管理が可能
     既存のリソースをアタッチすることができ

     自前のマシンを使用したローカル実行から
    始め、スケールアップして外部の環境を使
    用することができる
    Compute Targets
    Compute Target 学習 デプロイ
    ローカルコンピューター ✓
    Azure 上の Linux VM (例: Data Science
    Virtual Machine)

    Azure ML Compute ✓
    Azure Databricks ✓
    Azure Data Lake Analytics ✓
    Apache Spark for HDInsight ✓
    Azure Container Instance ✓
    Azure Kubernetes Service ✓
    Azure IoT Edge ✓
    Field-Programmable Gate Array (FPGA) ✓
    Azure Functions (preview) ✓
    Azure App Service (preview) ✓
    Azure Synapse (preview) ✓
    Azure Arc (preview) ✓
    現在サポートされている Compute Targets

    View Slide

  34. 公平性の評価
    公平性を評価する一般的な
    メトリックとダッシュボードを利用した
    Sensitive Feature の評価
    モデルのフォーマット :
    scikit-learn, TensorFlow, PyTorch,
    Keras などに対応
    メトリック:
    15以上の一般的なグループを
    対象にした公平性メトリック
    モデルの種類:
    クラス分類、回帰
    不公平性の軽減
    最先端のアルゴリズムによって
    分類・回帰モデルの不公平性を軽減
    Fairlearn
    機械学習モデルの公平性の評価を行い、不公平性を軽減する技術

    View Slide

  35. GitHub Actions
    Integration
    • Azure 計算リソースの管理
    • Azure ML 上でのジョブ実行
    • Azure ML へのモデル登録
    • Azure ML へのモデルデプロ

    http://mlops-
    github.com/actions

    View Slide

  36. Level 3 – Automated Model Deployment
    GitHub Actions
    Train
    Mount/Download
    Code
    Azure ML 機能
    ML パイプライン
    Azure Synapse
    Pipeline
    Azure Data Lake
    Storage Gen2
    experiment
    Environment
    pipeline
    Azure Kubernetes
    Service
    Compute Clusters &
    Attached Compute
    GitHub
    Azure ML SDK/CLI
    Compute Clusters
    Compute Instance Azure Container
    Registry
    Data
    Prep
    自動 Deploy
    Datastores / Dataset
    Test
    Container
    Model Test / QA
    ML ML
    学習パイプライン 推論パイプライン
    デプロイパイプライン

    View Slide

  37. 機械学習を取り巻く現実
    学習に用いるデータ
    は日々増大していく
    データの性質は日々変
    化していく
    使用状況やビジネス要
    件の変化に伴って要望
    が生じる
    機動的なモデル改善と継続的なモデル作成 (再学習) が必要

    View Slide

  38. Lv3 → Lv4
     機械学習モデルの性能劣化や劣化につながる要因を検知するための
    監視体制を整備する
     機械学習モデルの性能を評価できる指標の洗い出し
     指標の算出に必要なログの収集とニアリアルタイムな指標算出の仕組み構築
     データセットの変動を検知する仕組みの構築
     自動化の仕組みを実装する
     学習からデプロイまでの各工程を間断なく処理する仕組みの実装※1
     ブルー・グリーンデプロイと新モデルの挙動を自動的に監視対象に含める仕組みの構築
     異常検知時の通知や定型的作業の自動実行
     再学習・再展開を実行する指標の閾値設定とトリガーの実装※2
    ※1 運用方針に応じて、QA やデプロイ時等、人間による承認を間に挟むことは許容される
    ※2 新しいモデルが閾値を超えられない or より劣化した場合にロールバックする基準も同時に定める必要がある

    View Slide

  39. Level 4 – Full MLOps Automated Retraining
    データパイプライン 学習パイプライン デプロイ
    パイプライン
    データ準備 良いモデル
    の発見
    アルゴリズム
    選定
    データセット
    モデル テスト・検証
    ML エンジニア
    データサイエン
    ティスト
    データ
    エンジニア
    QAエンジニア
    MLOps
    エンジニア
    検証
    ML API
    ログ
    データ変動
    再学習トリガー
    アプリ
    Kubernetes
    インフラ
    エンジニア
    ソフトウェア
    エンジニア
    ログ
    モニタリング

    View Slide

  40. Dataset Monitor (Preview)
     データセットの変動(ドリ
    フト)を検知する Azure
    ML の機能
     データセット作成機能と統
    合され、ベースラインデー
    タセットと現在のデータの
    差分を監視
     ドリフトに関するアラート
    を設定し、モデルの陳腐化
    に対処
    データセットでデータ ドリフトを検出する (プレビュー) - Azure Machine Learning | Microsoft Docs
    Lv4

    View Slide

  41. Event Grid
    • イベントを検知しイベントハ
    ンドラーに送信するサービス
    • Azure ML イベントの検知に
    対応
    • RunCompleted
    • ModelRegistered
    • ModelDeployed
    • DatasetDriftDetected
    • RunStatusChan

    View Slide

  42. Azure Monitor
     ログの収集、分析とその後の対応をカバーするサービス
    Metrics
    Logs
    Application Containers VM Monitoring
    Solutions
    Insights
    Dashboards Views Power BI Workbooks
    Visualize
    Metrics Explorer Log Analytics
    Analyze
    Alerts Autoscale
    Respond
    Event Hubs Ingest &
    Export APIs
    Logic Apps
    Integrate
    Azure Monitor
    Custom Sources
    Application
    Operating System
    Azure Resources
    Azure Subscription
    Azure Tenant
    Lv4

    View Slide

  43. Level 4 – Full MLOps Automated Retraining
    GitHub Actions
    Train
    Mount/Download
    Code
    Azure ML 機能
    ML パイプライン
    Azure Synapse
    Pipeline
    Azure Data Lake
    Storage Gen2
    experiment
    Environment
    pipeline
    Azure Kubernetes
    Service
    Compute Clusters &
    Attached Compute
    GitHub
    Azure ML SDK/CLI
    Compute Clusters
    Compute Instance Azure Container
    Registry
    Data
    Prep
    自動 Deploy
    Datastores / Dataset
    Test
    Container
    Model
    ML
    Test / QA
    ML
    Azure Monitor
    trigger
    log/metric
    学習パイプライン 推論パイプライン
    デプロイパイプライン
    Dataset drift
    detected
    Run complete

    View Slide

  44. MLOps を学習するためのリソース
    Category Link
    Website 機械学習運用 – MLOps | Microsoft Azure
    Movie MLOps explained | Machine Learning Essentials - YouTube
    Microsoft Learn MLOps を使用して機械学習のライフサイクルを開始する - Learn | Microsoft Docs
    入門編

    View Slide

  45. Category Link
    Azure Architecture Center Azure Machine Learning を使用して機械学習のライフサイクルをアップスケールする
    ための機械学習運用 (MLOps) フレームワーク - Azure Architecture Center |
    Microsoft Docs
    Azure Architecture Center Machine Learning 用の成熟度モデル - Azure Architecture Center | Microsoft Docs
    Azure Architecture Center MLOps for Python with Azure Machine Learning - Azure Reference Architectures |
    Microsoft Docs
    Microsoft Docs Team Data Science Process とは - Azure Architecture Center | Microsoft Docs
    ※ 最近更新されていないので注意
    Sample Code microsoft/MLOps: MLOps examples (github.com)
    Sample Code microsoft/MCW-ML-Ops: MCW MLOps (github.com)
    中級以上

    View Slide

  46.  本書に記載した情報は、本書各項目に関する発行日現在の Microsoft の見解を表明するものです。Microsoftは絶えず変化する市場に対応しなければならないため、ここに記載した情報に対していかなる責務を負うものではなく、
    提示された情報の信憑性については保証できません。
     本書は情報提供のみを目的としています。 Microsoft は、明示的または暗示的を問わず、本書にいかなる保証も与えるものではありません。
     すべての当該著作権法を遵守することはお客様の責務です。Microsoftの書面による明確な許可なく、本書の如何なる部分についても、転載や検索システムへの格納または挿入を行うことは、どのような形式または手段(電子的、
    機械的、複写、レコーディング、その他)、および目的であっても禁じられています。
    これらは著作権保護された権利を制限するものではありません。
     Microsoftは、本書の内容を保護する特許、特許出願書、商標、著作権、またはその他の知的財産権を保有する場合があります。Microsoftから書面によるライセンス契約が明確に供給される場合を除いて、本書の提供はこれら
    の特許、商標、著作権、またはその他の知的財産へのライセンスを与えるものではありません。
    © 2021 Microsoft Corporation. All rights reserved.
    Microsoft, Windows, その他本文中に登場した各製品名は、Microsoft Corporation の米国およびその他の国における登録商標または商標です。
    その他、記載されている会社名および製品名は、一般に各社の商標です。

    View Slide