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つ領域に着目
- モデルのソース管理・再現性
- モデルの検証
- モデルのバージョン管理とストレージ
- モデルのデプロイメント
目次
- Breaking the Wall between AI and DevOps with MLOps
- 要点まとめ
- 目次
- Introduction
- Evolution of the Data Scientist / App Developer relationship
- Focus areas
- 1. Model source control / reproducibility
- 2. Model validation
- 3. Model versioning and storage
- 4. Model deployment
- What’s Next?
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
再現可能なパイプラインを導入後
特定のモデルを再現・反復可能になった後
- モデル開発の速度が上がる
- モデルのストレージとバージョン管理のためのスケーラブルな方法が必要になる
Phase 3 – Enable Controlled Rollout & Automated Retraining
検証パイプラインが整備、モデルのストレージとバージョン管理が確立された後
- 新しいモデルをさまざまなプラットフォームに継続的にデプロイ
- モデルを継続的に再学習する方法を実現
Focus areas
AIライフサイクルは、データ準備、モデル学習、モデルサービングという大きなバケットで構成される。
MLOpsは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を使用することで、ソース管理、モデル検証、モデルのバージョン管理/ストレージ/共有、モデルのデプロイに関する問題点に対処するツールを提供する。