Slide 1

Slide 1 text

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

Slide 2

Slide 2 text

アジェンダ

Slide 3

Slide 3 text

アジェンダ

Slide 4

Slide 4 text

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

Slide 5

Slide 5 text

No content

Slide 6

Slide 6 text

MLOps における MLflow & ONNX

Slide 7

Slide 7 text

アジェンダ

Slide 8

Slide 8 text

> 9.9k stars, 319 Contributers on GitHub

Slide 9

Slide 9 text

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

Slide 10

Slide 10 text

No content

Slide 11

Slide 11 text

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

Slide 12

Slide 12 text

No content

Slide 13

Slide 13 text

No content

Slide 14

Slide 14 text

No content

Slide 15

Slide 15 text

No content

Slide 16

Slide 16 text

No content

Slide 17

Slide 17 text

Models

Slide 18

Slide 18 text

No content

Slide 19

Slide 19 text

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

Slide 20

Slide 20 text

Why Azure ?

Slide 21

Slide 21 text

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

Slide 22

Slide 22 text

No content

Slide 23

Slide 23 text

No content

Slide 24

Slide 24 text

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

Slide 25

Slide 25 text

実験 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 実験管理・記録 デプロイ

Slide 26

Slide 26 text

No content

Slide 27

Slide 27 text

No content

Slide 28

Slide 28 text

アジェンダ

Slide 29

Slide 29 text

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

Slide 30

Slide 30 text

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

Slide 31

Slide 31 text

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

Slide 32

Slide 32 text

アジェンダ 二郎 大宮 - Twitter

Slide 33

Slide 33 text

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

Slide 34

Slide 34 text

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 で開発

Slide 35

Slide 35 text

No content

Slide 36

Slide 36 text

No content

Slide 37

Slide 37 text

No content

Slide 38

Slide 38 text

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

Slide 39

Slide 39 text

No content

Slide 40

Slide 40 text

Azure M achine Learning service 実験的なモデル開発 ⾃動機械学習 デザイナー Pytyon / R モデル検証 パッケー ジ化と Azure Container Instnaces での検証 モデル学習 コンピュー ティング クラスター モニタリング モデルのモニタリング デプロイ スケー ラブルな kubernetes サ ー ビス へ のデプロイ CI/CD & モデル再学習 GitHub & Azure DevOps 統合・連携

Slide 41

Slide 41 text

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

Slide 42

Slide 42 text

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

Slide 43

Slide 43 text

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

Slide 44

Slide 44 text

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

Slide 45

Slide 45 text

No content

Slide 46

Slide 46 text

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

Slide 47

Slide 47 text

No content

Slide 48

Slide 48 text

No content

Slide 49

Slide 49 text

ONNX Runtime | Home

Slide 50

Slide 50 text

No content

Slide 51

Slide 51 text

No content