Upgrade to PRO for Only $50/Year—Limited-Time Offer! 🔥

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)
  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分)
  3. 機械学習システム “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の 発揮どころ!
  4. MLOps を支える要素 インフラ 環境 記録・監視 学習・推論 自動化 計算リソース ストレージ データベース

    VM データセット コード 環境定義 モデルレジストリ 実験記録 ログ パイプライン ワークフロー コンテナ
  5. 機械学習ライフサイクル Validate Model Deploy Model Package Model Monitor Model Train

    Model モデル再学習 開発と学習 ビジネス課題を 解決する パッケージ化 モデルをどこでも 使用可能にする 挙動の検証 応答性の観点と 規制遵守の観点から デプロイ 予測値の生成に モデルを使用する モニタリング 挙動とビジネス価値 を監視する 陳腐化したモデルを いつ置換/廃止するか 決める
  6. 成熟度モデルの概要 機械学習運用の成熟度モデル - 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の再トレーニング の完全自動化 • システムを完全自動化し、監視を容易化 • 運用システムは、改善方法に関する情報を提供。 場合によっては、新しいモデルで自動的に改善 • ゼロ ダウンタイム システムに近づく • モデル学習とテストを自動化 • デプロイされたモデルからの詳細で 一元化されたメトリック
  7. Level 0 – No MLOps  インタラクティブかつ実験的に有益なモデルを探す  環境構築、データの取得、デプロイ、テストは手動 データソース

    データ準備 良いモデルの発見 アルゴリズム選定 手動デプロイ 手動構築した ML 環境 ML エンジニア データサイエン ティスト
  8. Level 0 – No MLOps Train Mount/ Download Azure Data

    Lake Storage Gen2 Data Science VM Azure Container Instance Model 手動 Build 手動 デプロイ Container • マシンスペックが心もとない • 環境が標準化できておらず チームメンバーが増える度に 構築の手間が生じる • 使用したコードを集約で きていない • テストが無くコード品質 が担保されていない • データの取得方法がおお ざっぱでセキュリティへ の配慮が薄い
  9. Lv0 → Lv1  機械学習プラットフォームの整備  チーム・組織で共有の機械学習プラットフォームを利用していること  コードを集約するリポジトリホスティング環境の整備 

    テストの自動化  少なくともコードに対するテスト項目がルール化されており、テストの実行が自動化できて いること  データ基盤が整備され始めていること
  10. Level 1 – DevOps no MLOps  データパイプラインとマネージドな ML 環境が整備される

     テストが整備され始める データパイプライン データカタログ データ準備 良いモデルの発見 アルゴリズム選定 手動デプロイ マネージドな ML 環境 コードレベルの テスト ML エンジニア データサイエンティスト データ エンジニア Capture  コード コードリポジトリ
  11. 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 アセット
  12. 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 • モデルを構築するにあ たって使用したパラメー ター等が記録されておら ず、再現性がない • 作成されたモデルが統一 的に管理されていない
  13. Level 2 – Automated Training  コード、データ、モデルがバージョン管理され、実験が記録される  モデルの再作成が自動化される データ

    準備 アルゴリズム 選定 良いモデル の発見 Capture  データセット  環境  コード (スナップショット)  ログ/メトリック  生成物 履歴の取得と保存 モデル登録 機械学習パイプライン データパイプライン データカタログ ML エンジニア データサイエン ティスト データ エンジニア MLOps エンジニア
  14. 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
  15. 1つの Azure Machine Learning Pipeline は完成した機械学習タスクのワークフ ローを表し、機械学習の各サブタスクは パイプラインを構成数する一連の手順と して内包される Azure

    ML Pipelines Azure Machine Learning Pipeline には、 Python スク リプトを呼び出すだけのシンプルなものから、あらゆ ることを実行するものまで存在する。 タスク Pipelines は以下のような機械学習タスクにフォーカス: • インポート、検証とクリーニング、変換、正規化、ステージングを含 む「データの準備」 • パラメーター化された引数、ファイルのパス、ログとレポート出力の 設定を含む「学習の設定」 • 効率的かつ繰り返し実行できる「学習と検証」。特定のデータサブ セット、異なるハードウェアからなる計算リソース、分散処理、進捗 状況の監視を指定することで、効率性を確保することが可能 • バージョン管理、スケーリング、プロビジョニング、アクセス制御等 の要素を含む「デプロイ」 Lv2~Lv4
  16. 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 • モデルのデプロイ先が拡大してい るが、多様な環境に対するモデル 投入の仕組みが未整備 • モデルの品質が検証され ていない
  17. Lv2 → Lv3  推論環境に合わせたデプロイパイプラインの実装  データを受け取って機械学習モデルによる推論結果を返すコンテナをビルドし Kubernetes 等のコンテナを動かす基盤上にデプロイする一連の作業を実行するパイプラインを構築※ 

    データソースからデータを取得し、機械学習モデルによる推論結果を得てデータを格納する バッチ処理を実行するパイプラインを構築する※  モデルの検証・品質確認を行う仕組みの実装  テストデータ(ゴールドデータ)による精度検証の自動化  説明性、公平性の確認 ※代表的な機械学習モデルのデプロイパイプライン、実際にはユースケースに応じた構築が必要
  18. Level 3 – Automated Model Deployment  モデルのパッケージ化、品質確認、デプロイが半自動的に行われる パッケージ化 品質確認

    リリース Environments コード 説明 データセット イベント & 通知 DevOps 統合 (CI/CD) Model Registry MLOps エンジニア QAエンジニア
  19.  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
  20. 公平性の評価 公平性を評価する一般的な メトリックとダッシュボードを利用した Sensitive Feature の評価 モデルのフォーマット : scikit-learn, TensorFlow,

    PyTorch, Keras などに対応 メトリック: 15以上の一般的なグループを 対象にした公平性メトリック モデルの種類: クラス分類、回帰 不公平性の軽減 最先端のアルゴリズムによって 分類・回帰モデルの不公平性を軽減 Fairlearn 機械学習モデルの公平性の評価を行い、不公平性を軽減する技術
  21. GitHub Actions Integration • Azure 計算リソースの管理 • Azure ML 上でのジョブ実行

    • Azure ML へのモデル登録 • Azure ML へのモデルデプロ イ http://mlops- github.com/actions
  22. 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 学習パイプライン 推論パイプライン デプロイパイプライン
  23. Lv3 → Lv4  機械学習モデルの性能劣化や劣化につながる要因を検知するための 監視体制を整備する  機械学習モデルの性能を評価できる指標の洗い出し  指標の算出に必要なログの収集とニアリアルタイムな指標算出の仕組み構築

     データセットの変動を検知する仕組みの構築  自動化の仕組みを実装する  学習からデプロイまでの各工程を間断なく処理する仕組みの実装※1  ブルー・グリーンデプロイと新モデルの挙動を自動的に監視対象に含める仕組みの構築  異常検知時の通知や定型的作業の自動実行  再学習・再展開を実行する指標の閾値設定とトリガーの実装※2 ※1 運用方針に応じて、QA やデプロイ時等、人間による承認を間に挟むことは許容される ※2 新しいモデルが閾値を超えられない or より劣化した場合にロールバックする基準も同時に定める必要がある
  24. Level 4 – Full MLOps Automated Retraining データパイプライン 学習パイプライン デプロイ

    パイプライン データ準備 良いモデル の発見 アルゴリズム 選定 データセット モデル テスト・検証 ML エンジニア データサイエン ティスト データ エンジニア QAエンジニア MLOps エンジニア 検証 ML API ログ データ変動 再学習トリガー アプリ Kubernetes インフラ エンジニア ソフトウェア エンジニア ログ モニタリング
  25. Dataset Monitor (Preview)  データセットの変動(ドリ フト)を検知する Azure ML の機能 

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

    • RunCompleted • ModelRegistered • ModelDeployed • DatasetDriftDetected • RunStatusChan
  27. 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
  28. 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
  29. MLOps を学習するためのリソース Category Link Website 機械学習運用 – MLOps | Microsoft

    Azure Movie MLOps explained | Machine Learning Essentials - YouTube Microsoft Learn MLOps を使用して機械学習のライフサイクルを開始する - Learn | Microsoft Docs 入門編
  30. 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) 中級以上
  31.  本書に記載した情報は、本書各項目に関する発行日現在の Microsoft の見解を表明するものです。Microsoftは絶えず変化する市場に対応しなければならないため、ここに記載した情報に対していかなる責務を負うものではなく、 提示された情報の信憑性については保証できません。  本書は情報提供のみを目的としています。 Microsoft は、明示的または暗示的を問わず、本書にいかなる保証も与えるものではありません。 

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