肉球でキーボード

MLエンジニアの技術ブログです

MicrosoftのMLOpsホワイトペーパー「Breaking the Wall between AI and DevOps with MLOps」要点まとめ

Breaking the Wall between AI and DevOps with MLOps

microsoftの公式GitHubアカウントにMLOpsというレポジトリがあります。

その中に、MLOps whitepaper.pdfというファイルがあり、各章の要点をまとめました。

MLOps/MLOps whitepaper.pdf at master · microsoft/MLOps · GitHub

gitのcommit履歴を見るに、2019年10月に公開されたドキュメントです。

※注意

GitHubからPDFファイルをダウンロードすると執筆時のレビューコメントがある状態なので、本ドキュメントを正式なホワイトペーパーと捉えて良いか不明です

2024年現在、他にMLOpsに関するホワイトペーパーとしての位置付けのドキュメントがmicrosoftから出ていないので、暫定的に本ドキュメントをホワイトペーパーとして取り上げます。

要点まとめ

  • MLOpsはDevOpsのCI/CDプロセスをMLモデルに適用すること
  • モデルライフサイクルのフェーズごとの、データサイエンティストとアプリ開発者の関係に着目
  • MLOpsの4つ領域に着目
    1. モデルのソース管理・再現性
    2. モデルの検証
    3. モデルのバージョン管理とストレージ
    4. モデルのデプロイメント

目次

Introduction

What is DevOps?

DevOpsはアプリケーションライフサイクル管理の標準的手法。

バージョン管理、テスト、ビルド、デプロイのツール(CI/CDパイプライン)を活用。

理想的には全工程を自動化

Can we leverage DevOps processes for developing & deploying models?

推薦システム、画像分類、不正検知、音声テキスト変換など「AIを活用した」シナリオで機械学習モデルは開発、学習される。

MLモデルCI/CDの要件

  • 多様なデータソース、学習用ツール、分析・検証手法をサポート
  • 本番環境へのデプロイインフラストラクチャをサポート
  • データ変化に伴う定期的な新モデル作成
  • エッジとクラウドのハイブリッドデプロイに対応

大規模AIシステムの複雑さを定義する要素

  • データ量
  • モデル数
  • モデルとスコアリングパイプラインのパフォーマンス要件の関係

AIシステムのライフサイクル管理のベストプラクティスと手法は確立してない

MLOpsの主な目的

  • モデルライフサイクル要素(学習・評価・保存・バージョニング・監視)の標準化
  • データサイエンティストとアプリ開発者の共同作業の簡素化
  • モデル開発から本番環境デプロイまでの時間短縮

本ホワイトペーパーは、モデルのCI/CDプロセスの進化とMLOps分野の主要な取り組みに着目

Evolution of the Data Scientist / App Developer relationship

DevOpsチームは全てのフローを自動化するよう努める。データサイエンティストは自動化の外側のサイロに留まる傾向がある。

モデルをアプリケーションと同じ周期のプロセスで使用することが困難となる。

Phase 1 – Enable Model Reproducibility & Auditability

データサイエンティストがモデルを開発した後

  • アプリ開発者に引き渡してアプリケーションに統合
  • アプケーションへのモデルの統合は、手動での組み込み基本的なインターフェースの共有によって行われる
  • 特徴量前処理コードの書き換え学習時と推論時のデータ不一致などで、統合コストが高くなる可能性がある

モデルが成熟し、本番環境で使用されるようになった後

  • アプリケーションで使用するモデルを簡単に再現できるようにする必要性が生じる
  • モデルの再学習や再デプロイが頻繁に必要となるシナリオが発生する
  • 学習・テストコードをソースコード管理・再現可能なパイプラインに組み込むことが重要

Phase 2 – Enable Model Validation

再現可能なパイプラインを導入後

  • モデル検証のプラクティスを確立する必要性が生じる
  • 学習コードの基本的な単体テスト、以前のバージョンのモデルとのABテスト、モデルのエンドツーエンドの機能とパフォーマンスのテストなど

特定のモデルを再現・反復可能になった後

  • モデル開発の速度が上がる
  • モデルのストレージとバージョン管理のためのスケーラブルな方法が必要になる

Phase 3 – Enable Controlled Rollout & Automated Retraining

検証パイプラインが整備、モデルのストレージとバージョン管理が確立された後

  • 新しいモデルをさまざまなプラットフォームに継続的にデプロイ
  • モデルを継続的に再学習する方法を実現

MLOps Overview

Focus areas

AIライフサイクルは、データ準備、モデル学習、モデルサービングという大きなバケットで構成される。

MLOpsは4つの領域に着目してる。

  1. モデルのソース管理・再現性
  2. モデルの検証
  3. モデルのバージョン管理とストレージ
  4. モデルのデプロイメント

1. Model source control / reproducibility

多くのデータサイエンティストは、ソース管理を伴わないNotebookや環境でモデル開発を始める。

データサイエンティストがソース管理をしない場合、発生する問題

  • モデルの再現性がなくモデルの生成過程を追跡できない
  • 上流と下流ガバナンスとコンプライアンスを困難にする
  • チームがモデル間で共同作業できない
  • モデルごとソースコードの構造が異なる
  • モデルのソースコードクローンし学習できない
  • アプリ開発者がモデルの仕組みと使い方を理解するのを困難にする

Automation & reproducibility

ソースコード管理は、アプリ開発者とデータサイエンティストが協力するための第一歩。

CI/CDソリューションは、設定が簡単で、自動化が容易であり、モデルを再現可能にする必要がある。

モデルの再現には、モデルの学習コードと入力データを追跡する。

Templates for source control

コードとソース管理のテンプレートで、モデルの土台を簡単に作成できる。

2. Model validation

標準化されたモデル検証の手段とプロセスは、高品質のモデルを継続的にリリースするのに役立つ。

モデル検証は、モデルの単体テストと、アプリ・サービスに組み込まれたモデルの機能・パフォーマンステストで構成される

モデル検証の目的は、品質の悪いモデルが本番環境に入ることを防ぐこと

Testing the model

機械学習では、アプリケーションの一部に統計的な結果がある。

モデルのテストと従来のアプリケーションのテストの違いは、明確な基準ではなく、許容される値の範囲があること

Testing the app and model together

モデルのテストに加え、より大きなアプリケーションの文脈で正常動作することを確認したい場合がある。

既存のアプリケーションのバージョンを取り込み、アプリケーションテストをモデル自体に対して実行することで実現する。

3. Model versioning and storage

データサイエンティストが多くのモデルを作成するようになると、以下のよう問題が起きる

  • 共有と共同作業の問題
  • モデルのアクセスコントロールの複雑化
  • 多様なモデル形式が再利用を難しくする

Sharing & collaboration

組織がデータサイエンスとAIに投資すると、組織全体で重複した作業を行うことに気づく。

ほとんどの場合、すべてのモデルを記録、検索可能にしたり、

マイクロサービスとしてモデルをデプロイする中央システムがない。

Permissions & traceability

モデルの保存に関するソリューションでは、アクセス制御を最優先として組み込む必要がある

Model format

機械学習の科学者の主な原則の1つは、幅広いツールを使って実験できること。

相互運用性を可能にすることで、優れたアイデアより早く本番環境に導入できるようになる。

4. Model deployment

モデルデプロイのベストプラクティスの目的は、さまざまな推論ターゲットに対して、品質とセキュリティを維持しながら、モデルを簡単にデプロイできるようにすること

What are the targets for a model?

モデルのデプロイ方法

  • コンテナ化したスタンドアロンの推論サービスとしてデプロイ
  • バッチ処理パイプラインの一部として使用
  • 既存のアプリケーションやサービスに組み込む

デプロイの単位は、特定のシナリオでどの顧客をターゲットにしているかによって異なる。

Easy to deploy

優れたCI/CDソリューションは、エンジニアが最小限の設定でモデルを簡単にデプロイ・監視できるようにするシンプルなユーザーインターフェイスを提供する。

Easy to gate

モデルのリリースプロセスの管理は、アクセス制御、手動・自動チェック、デプロイプロセスの監査可能性が必要。

Easy to automate

ほとんどの学習パイプラインは、定義した順序で特定のジョブを実行するワークフローまたは依存関係グラフとして作成される。

現実の多くのユースケースでは継続的な学習が必要。

CI/CDソリューションは新しいデータの可用性や、特定のシグナルに基づいたトリガーをサポートする必要がある。

What’s Next?

MLOps は複雑で絶えず進化するエコシステム。

Azure DevOpsとAzure Machine Learningを使用することで、ソース管理、モデル検証、モデルのバージョン管理/ストレージ/共有、モデルのデプロイに関する問題点に対処するツールを提供する。