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

MLflow と ONNX で実現するクラウドネイティブな MLOps

konabuta
August 25, 2021

MLflow と ONNX で実現するクラウドネイティブな MLOps

2021年8月25日(水) MLOps Community での講演資料

第10回 MLOps 勉強会(Online) ~機械学習基盤~
https://mlops.connpass.com/event/218772/

konabuta

August 25, 2021
Tweet

More Decks by konabuta

Other Decks in Technology

Transcript

  1. MLflow と ONNX で実現するクラウドネイティブな MLOps
    日本マイクロソフト株式会社
    女部田啓太、伊藤 駿汰

    View Slide

  2. アジェンダ

    View Slide

  3. アジェンダ

    View Slide

  4. MLOps とは?
    • 機械学習モデルの開発と学習 - ビジネス課題を解決する機械学習モデル
    • モデルのパッケージ化 - あらゆる場所で展開して利用する
    • モデルの検証 - 機能、パフォーマンス、精度、コンプライアンスetc
    • モデルのデプロイ - 予測をするためのモデル利用
    • モデルのモニタリング - モデルの再学習・再作成をトリガーする
    Train Model Validate Model Deploy Model
    Package Model Monitor Model
    Retrain Model
    機械学習ライフサイクルを管理する手法・概念

    View Slide

  5. View Slide

  6. MLOps における MLflow & ONNX

    View Slide

  7. アジェンダ

    View Slide

  8. > 9.9k stars, 319 Contributers on GitHub

    View Slide

  9. Tracking
    実験の記録とクエリ
    (コード、データ、
    構成設定、結果)
    Projects
    コードのパッケージ化
    による再現性を
    実現する形式
    Models
    モデルの
    様々な環境への
    デプロイメント
    Model Registry
    一元的なモデルの
    ライフサイクル管理
    MLflow = ML Lifecycle / Ops Platform

    View Slide

  10. View Slide

  11. Tracking
    実験の記録とクエリ
    (コード、データ、
    構成設定、結果)

    View Slide

  12. View Slide

  13. View Slide

  14. View Slide

  15. View Slide

  16. View Slide

  17. Models

    View Slide

  18. View Slide

  19. モデル本体、モデルの入出力の情報、フレームワー
    クの種類等、MLflow Models で定義した情報を保持
    モデルは実験と紐づけられた上でバージョンごと
    に分離して管理

    View Slide

  20. Why Azure ?

    View Slide

  21. https://www.mlflow.org/docs/latest/tracking.html#mlflow-tracking-servers

    View Slide

  22. View Slide

  23. View Slide

  24. Azure Infrastructure
    ML Lifecycle Management integrations ML Runtime
    Optimized Databricks runtime engine
    Databricks I/O Delta Lake
    TensorFlow
    PyTorch Scikit-Learn
    MLflow
    Serverless
    Optimized Apache Spark
    Azure Active Directory Azure Virtual Machine
    Scale Sets
    Azure Data Lake
    Storage
    Metrics
    Artifacts Models

    View Slide

  25. 実験
    Logging API
    Tracking URI
    Model API
    Metrics
    Artifacts
    MLflow Tracking Server 互換エンドポイント
    Azure Machine Learning Environments
    Azure Machine Learning Experiments
    Azure Machine Learning Models
    Models
    Azure Machine Learning Endpoints
    Metrics
    Artifacts Models
    API
    実験管理・記録 デプロイ

    View Slide

  26. View Slide

  27. View Slide

  28. アジェンダ

    View Slide

  29. Training Framework Deployment Target
    ONNX = Open Neural Network Exchange
    機械学習モデルの相互運用性

    View Slide

  30. 最大 17 倍の推論の高速化と、
    最大 1.4 倍のトレーニングの
    高速化を実現する組み込みの最適化
    さまざまなフレームワーク、
    オペレーティング システム、
    ハードウェア プラットフォームのサポート
    Office 365、Visual Studio、および
    Bing で使用されており、毎日
    200 億件を超える推論を提供
    機械学習モデルの学習と推論を最適化し、加速するオープンソースのランタイム
    https://microsoft.github.io/onnxruntime/
    機械学習プロセスをスピードアップ 柔軟性 多くの実績のあるテクノロジー

    View Slide

  31. PyTorch のモデル学習を加速する PyTorch のネイティブ機能
    • 数行の学習コード変更で実装完了
    • 現時点で transformer モデルをサポート
    • グラフ最適化 (Forward, Backward) による高速化
    • Nvidia GPU と AMD GPU で利用可能

    View Slide

  32. アジェンダ
    二郎 大宮 - Twitter

    View Slide

  33. rinna/japanese-gpt2-medium · Hugging Face
    Azure/nlp-samples: Japanese NLP sample codes
    (github.com)

    View Slide

  34. Collaborate モデル学習 パッケージ化 デプロイメント
    Metrics
    Artifacts Models
    GPU Clusters (AutoScale)
    ONNX Model
    (FP32)
    Quantization
    ONNX Model
    (INT8)
    Conversion
    Trainer API
    Fine Tune
    ONNX Runtime (学習)
    Model Hub
    Azure Kubernetes Services
    logging
    build
    Azure Container Registry
    deploy
    Data Scientist
    load
    ...
    学習スクリプト
    Job 設定 YAML ファイル
    DockerFile
    YAML で Job の定義を行って
    GPU クラスターで Fine Tune
    ONNX 変換と量子化
    を行いコンテナ化
    コンテナを Kubernetes
    にデプロイして API 化
    Azure ML のインス
    タンスに接続した
    VSCode で開発

    View Slide

  35. View Slide

  36. View Slide

  37. View Slide

  38. MLflow - A platform for the machine learning lifecycle | MLflow
    ML 実験の MLflow Tracking - Azure Machine Learning | Microsoft Docs
    ONNX | Home
    ONNX | Home (onnxruntime.ai)
    microsoft/pytorch-ort: Accelerate PyTorch models with ONNX Runtime (github.com)
    Accelerate PyTorch training with torch-ort - Microsoft Open Source Blog
    Accelerate PyTorch transformer model training with ONNX Runtime – a deep dive - Microsoft Tech Community
    Journey to optimize large scale transformer model inference with ONNX Runtime - Microsoft Open Source Blog
    ONNX Runtime release 1.8.1 previews support for accelerated training on AMD GPUs with the AMD ROCm™ Open Software Platform - Microsoft Open Source Blog
    機械学習運用 – MLOps | Microsoft Azure
    Azure Machine Learning - サービスとしての ML | Microsoft Azure
    Azure Databricks | Microsoft Azure
    PyTorch Fundamentals - Learn | Microsoft Docs
    PyTorch on Azure – Deep Learning with PyTorch | Microsoft Azure

    View Slide

  39. View Slide

  40. Azure M achine Learning service
    実験的なモデル開発
    ⾃動機械学習
    デザイナー
    Pytyon / R
    モデル検証
    パッケー
    ジ化と
    Azure Container
    Instnaces での検証
    モデル学習
    コンピュー
    ティング
    クラスター
    モニタリング
    モデルのモニタリング
    デプロイ
    スケー
    ラブルな
    kubernetes サ

    ビス

    のデプロイ
    CI/CD & モデル再学習
    GitHub & Azure DevOps 統合・連携

    View Slide

  41. MLOps on Azure Machine Learning
    機械学習ライフサイクル
    実験的なモデル開発
    AutoML,
    Designer
    Code-First
    テスト
    パッケージ化と
    Azure Container Instnaces
    での検証
    モデル学習
    Compute Cluster
    モニタリング
    モデルのモニタリング
    リリース
    スケーラブルな
    kubernetes へデプロイ
    モデルの再学習・再学習
    GitHub & Azure DevOps 統合・連携

    View Slide

  42. Trusted
    Industry leading
    MLOps
    Open &
    Interoperable
    For all skill
    levels
    あらゆるスキルレベルに対応し、
    ML の生産性・利便性を向上
    DevOps 連携による
    ML ライフサイクルの運用管理
    責任のある
    ML ソリューションの構築
    オープンテクノロジーの採用
    と相互運用性の実現

    View Slide

  43. Scikit-learn (experimental)
    TensorFlow and Keras (experimental)
    Gluon (experimental)
    XGBoost (experimental)
    LightGBM (experimental)
    Statsmodels (experimental)
    Spark (experimental)
    Fastai (experimental)
    Pytorch (experimental)
    MLflow Tracking — MLflow 1.19.0 documentation

    View Slide

  44. Projects
    コード 設定
    パッケージ データ
    Local Execution
    Remote Execution
    機械学習の再現性を次元する形式

    View Slide

  45. View Slide

  46. Model Registry
    一元的なモデルの
    ライフサイクル管理

    View Slide

  47. View Slide

  48. View Slide

  49. ONNX Runtime | Home

    View Slide

  50. View Slide

  51. View Slide