「Azure Machine Learningによる機械学習オペレーション(MLOps)」

Azure Machine LearningのMLOps

機械学習オペレーション(MLOps)は、データサイエンティストやMLエンジニアが組織のニーズに対応するのを大幅に加速させることができます。適切に実装されたMLOpsプロセスは、テストから本番への移行を迅速化するだけでなく、チーム内で使用されるMLアーティファクトに関する所有権、系統、および過去のデータを提供します。データサイエンスチームは、継続的な推論をサポートするためのCI/CDのスキルを備えていることが期待されています。再トレーニングサイクルとモデルの自動再展開を含めた自動化された再展開により、多くの機械学習の専門家はまだMLOpsを手動で実行する必要があり、これによりビジネスへの付加価値を向上させるために使える時間が減少します。

これらの問題に対処するために、多くの個人やグループが、個々のニーズまたは顧客のニーズに対応するために、特定のアクセラレータとトレーニング資料を開発してきました。これにより、Azure Machine Learning(Azure ML)を使用したアクセラレータ、コードリポジトリ、さらには完全な製品が多数作成されました。私たちは組織全体から20以上のMLOpsソリューションアクセラレータとコードベースを収集し、評価しました。これらの「人気のある」リポジトリのいくつかは、各種の理由でメンテナンスの不足に悩まされました。これらのリポジトリは、さまざまなコーディングパターンを持っていたり、実際のプロダクションワークロードの一部を再現するだけの例を使用していたりしました。

これらのアクセラレータの分析に基づいて、私たちは利用できる設計パターンとコードを特定しました。

私たちは、Azure Machine Learning v2プラットフォーム、CLI、およびSDKの開発と合わせて、Azure ML製品およびエンジニアリングチームを含むさまざまな国と機能から30以上のリソースを集め、MLOps v2アクセラレータを開発するための取り組みを調整しました。現在、本番環境に機械学習モデルを展開するためのベストプラクティスを含む、繰り返し可能で自動化された共同作業フローとパターンを含むコードベースを持っています。

お客様にとって、これにより新しいデータサイエンスプロジェクトを起動し、本番環境に展開するまでの時間を短縮することができます。私たちのアクセラレータは、さまざまな実装パターンで使用できる定型アプローチを確立するために再利用できるテンプレートを提供します。アクセラレータには、リポジトリのコンポーネント、リポジトリの構造、モデル開発とモデル展開のリンク、およびデータサイエンスプロセスの各フェーズの技術選択など、主要なMLOpsの意思決定が組み込まれています。現在、24種類の異なる実装パターンをサポートしています。アクセラレータは、柔軟性、セキュリティ、モジュラリティ、スケーラビリティを提供し、開発から本番環境への高速な移行をサポートします。 

ソリューションアクセラレータアーキテクチャ

MLOps v2のアーキテクチャパターンは、特定のデータサイエンスシナリオのMLOpsライフサイクルの4つのモジュラーエレメント、それらのエレメント間の関係とプロセスフロー、およびそれらのエレメントの所有権を持つパーソナルを表しています。以下は、表形式データを使用したクラシカルな機械学習シナリオのMLOps v2アーキテクチャです。

図1:AMLを使用したクラシカルな機械学習MLOpsアーキテクチャ

1. データエステート:このエレメントは、組織のデータエステート、潜在的なデータソース、およびデータサイエンスプロジェクトのターゲットを表します。データエンジニアがMLOps v2ライフサイクルのこのエレメントの主要な所有者となります。この図に示されているAzureデータプラットフォームは、網羅的でも指示的でもありません。ただし、お客様のユースケースに基づいて推奨されるベストプラクティスを表すデータソースとターゲットが強調表示され、アーキテクチャ内の他のエレメントとの関係が示されます。

2. 管理/セットアップ:このエレメントは、MLOps v2アクセラレータの展開を開始します。プロジェクトに関連するリソースと役割の作成と管理に関連するすべてのタスクを含みます。これには、次のような作業が含まれる場合があります。

a. プロジェクトのソースコードリポジトリの作成。b. プロジェクトのためのAzure Machine Learningワークスペースの作成。c. モデルの実験と展開に使用されるデータセットとコンピューティングリソースの作成/変更。d. プロジェクトチームのユーザー、役割、および他のリソースへのアクセス制御の定義。e. CI/CD(継続的インテグレーションと継続的デリバリー)パイプラインの作成。f. モデルとインフラストラクチャのメトリックの収集と通知のためのモニターの作成。

このフェーズに関連するパーソナルは、主にインフラストラクチャチームですが、データエンジニア、機械学習エンジニア、データサイエンティストのすべてを含む場合もあります。

3. モデル開発(内部ループ): 内部ループ要素は、反復的なデータサイエンスワークフローで構成されます。典型的なワークフローは、データの取り込み、EDA(探索的データ分析)、実験、モデル開発と評価、候補モデルの本番登録などを含みます。このモジュール要素は、MLOps v2アクセラレータで実装されており、チームがモデルを開発するために使用するプロセスに対して不可知で適応可能です。 

このフェーズに関連する人物は、データサイエンティストとMLエンジニアです。

4. デプロイメント(外部ループ): 外部ループフェーズは、事前本番デプロイメントテスト、本番デプロイメント、および内部ループチームによる候補本番モデルの登録によってトリガーされる本番モニタリングから構成されます。継続的デプロイメントパイプラインによってモデルと関連アセットが本番環境および本番モニタリングを通じて昇進され、組織とユースケースに適したテストが満たされるまで、モニタリングはステージング/テストおよび本番環境でデータの収集やモデルのパフォーマンス、データドリフト、インフラのパフォーマンスに関連する問題に対してアクションを起こすため、人間を介したループレビュー、自動再トレーニング、モデルの再評価、または新しいモデル開発またはインフラリソースの変更のために開発ループまたは管理/セットアップに戻る場合があります。このフェーズに関連する人物は、主にMLエンジニアです。

このリポジトリには、Computer Vision(CV)およびNatural Language Processing(NLP)のユースケースに特化したアーキテクチャも搭載されています。また、Azure ML + SparkおよびIoT(Internet of Things)エッジシナリオ向けにカスタマイズされた追加のアーキテクチャが開発中です。

技術的実装

MLOpsリポジトリには、ユーザーが最小限の努力で開発から本番まで進むためのベストプラクティスが含まれています。また、特定の技術スタックやハードコードされた例に固執しないように心掛けています。ただし、例が使いやすく、必要に応じて拡張可能であることも確認しています。MLOpsリポジトリには、以下の技術スタックの行列が含まれています。ユーザーは、スタック内のアイテムの組み合わせを選択して、自分のニーズに応じたカスタムリポジトリを構成することができます。

リポジトリAzure/mlops-v2:Azure MLOps(v2)ソリューションアクセラレータ(github.com)は、ユーザーが任意のアーキテクチャパターンを構成して開始できるモノリポです。ユーザーは、Terraformを使用して作成できるインフラストラクチャを選択しながら、CI/CDプラットフォームとしてGitHubを使用することができます。データサイエンティストは、MLの問題と、選んだ言語でパイプラインを展開する方法を選択することができます。

表1:アーキテクチャパターン

太字で表示されているアイテムは現在利用可能です。

これらのパターンは、オンラインモードまたはバッチモード(スコアリング)のいずれかに展開することができます。セキュアまたは非セキュアな環境に展開することも可能であり、単一または複数のAzure Machine Learningワークスペースに含めることができます。多くの場合、複数のワークスペースは、開発、テスト、および本番のワークロードを分離するために使用されます。後者の場合、モデルやコードの昇進がソースコントロールワークフローの一部として行われるか、デプロイメントパイプラインの承認ステップとして設定することができる例も示しています。

MLOps v2アクセラレータには、オプションでワークフローに含めることができる追加のビルディングブロックも含まれています。

1. 責任あるAI: これらは通常のAzure MLワークスペースの一部ですが、人間によるレビューが行われるステップとしてこれらのコンポーネントを含めるようにしました。この手動ステップにより、開発されたモデルが責任あるAIの原則に準拠していることを確認できます。

2. セキュリティ: GitHubの高度なセキュリティスキャンとクレデンシャルスキャン(Azure DevOpsでも利用可能)の手順とベストプラクティスをワークフローに組み込むことができるようにしました。例えば、conda.ymlとrequirements.txtを使用して、インストールされたPythonパッケージにセキュリティスキャンを有効にする方法についての例があります。現在の環境と推論コンテナの設定方法では、これは実現できなかったでしょう。GitHubユーザーがリポジトリを設定してパッケージスキャンをプロセスの早い段階で実行し、セキュリティの問題が本番モデルのデプロイを妨げることを防ぐ方法についてのドキュメントも用意しています。

セキュリティは重要な問題であり、チームがプロジェクトとデータの機密性を維持できるようにするために、セキュアワークスペースをサポートしています。また、コンセプトの迅速な検証の重要性も理解しています。そのため、Azure DevOps(ADO)、GitHub、およびMicrosoft Learnとのクイックデプロイの例を作成しました。これにより、アイデアを迅速にテストすることができます。

図2:リポジトリ内のGitHubのDependabotアラート設定の例

3. Feathr Feature Storeの統合:MLOps V2の拡張アーキテクチャにおいて、企業規模のフィーチャーストアとしてFeathrの統合を発表しています。FeathrのデプロイはTerraformスクリプトを使用して容易に行うことができ、その実装をガイドするためのシンプルなクラシカルなMLの例も提供しています。

4. 複数のデータセットの登録とサードパーティのコンテナのサポート:ユーザーの要望に応えて、MLOps V2アクセラレータには複数のデータセットを登録する機能が組み込まれています。これにより、データサイエンティストやMLエンジニアがさまざまなデータセットを使用してプロジェクトに取り組む際の柔軟性が向上します。さらに、サードパーティや外部のコンテナのサポートも追加されています。また、Dockerコンテナ内でのpip installによる信頼性のあるPythonパッケージのスキャンもサポートしています。

5. モデルの可観測性:モデルやデータのドリフトを監視し特定するためには、特に本番システムからのデータをキャプチャし分析する手段が必要です。データの取り込みと分析のためにAzure Data Explorer (ADX) をプラットフォームとして実装しています。通常のscore.pyは修正され、データをADXに送信するようになっています。

6. モデルとデータのドリフト:モデルとデータのドリフトには2つのパターンがあります。1つはADXに基づいたパターンで、もう1つはAzure MLパイプラインの一部として計算を行うパターンです。実装方法の選択は顧客の好みに基づいています。どちらのアプローチにも、ターゲットと予測間のドリフトを推定するためのさまざまな統計的テストが含まれています。さらに、相関分析やJensen-Shannonダイバージェンスなどの他の統計的テストを、より大きなデータセット(ただし、数少ないユニークなターゲット値)に対しても含める予定です。

7. コンテナ:含まれるパターンでは、ユーザーがAzure MLワークスペースに独自に作成したコンテナをトレーニングや推論に使用する方法を示しています。これらのコンテナはAzure コンテナ レジストリ(ACR)外で作成されたものです。DeepSpeedやONNXベースの例を提供するために、製品とエンジニアリングチームとの協議を行っています。これにより、エンドユーザーはモデルのトレーニングと推論をより高速に行うことができます。

追加機能

このリポジトリには、MLFlowモデルとの効果的な作業方法の例が含まれており、これにより表形式だけでなく、コンピュータビジョンなどの深層学習モデルにもシームレスかつコードフリーのAPI展開が可能となります。

リポジトリの構造は、顧客組織が組織全体でパターンの一貫性と再利用を図ることができるようになっています。これを実現するために、Azure CLIのインストールやモデルの展開などの個々のステップを保持する別のリポジトリを作成しました。これらは必要に応じて組み立てられ、メインプロジェクトリポジトリのパイプラインで利用できるビルディングブロックとして適応させることができます。これにより、パイプラインは読みやすくなり、組織全体で共通(かつ承認された)パターンが含まれることが保証されます。

メインリポジトリ:Azure/mlops–project–template (github.com)

テンプレートリポジトリ:Azure/mlops–templates (github.com)

例:2つのコードサンプルは、テンプレートがパイプラインリポジトリで再利用される方法を示しています。

Microsoft Learnチームのサポートを受けて、様々な関連技術について自習およびハンズオン形式のオンラインコンテンツを提供しています。OpenHackコンテンツも開発されており、2022年6月には内部でのパイロット版が提供されました。現在、セッションからのフィードバックを取り入れ、コンテンツを改善し、来年初めにリリースする予定です。

結論

MLOps v2アクセラレータは、Microsoftが今後のMLOpsソリューションと位置づけています。アクセラレータは引き続き進化し続けることで、Azureを利用して始めるための顧客のワンストップソリューションとして機能します。MLOps v2アクセラレータは、開発から本番環境への迅速な移行を可能にする柔軟性、拡張性、モジュラリティ、使いやすさ、セキュリティを提供し、Azure上で実行されるAI/MLプロジェクトにとって不可欠なものです。MLOps v2は、MicrosoftのMLOpsを統一するだけでなく、Azure上で実行されるすべてのAIワークロードに対して新たな基準を設定します。

謝辞

このアクセラレータの開発は、リポジトリへの多くの方法で貢献してくれた世界中のチームの努力です。

著者について

Scott Donohoo: データサイエンスとMLOpsのテクニカルリーダーであり、機械学習モデルの運用化によるビジネス価値をデータサイエンス組織に実現することに焦点を当てています。オンプレミスおよびクラウドIT、ビッグデータ、機械学習と分析、エンタープライズソフトウェアエンジニアリングにおいて20年以上の経験を持っています。

 

 

Setu Chokshi: 私は機械学習と人工知能のシニアテクニカルリーダーであり、イノベーターです。また、積極的なリスニングと才能に合わせたタスクの委任により、チームの尊敬を得たリーダーでもあります。私の経歴は、技術的な成功がより大きな機会につながったことから自然に発展してきました。私は幸運にも、General ElectricとNielsenといった業界の巨大企業と一緒に働く機会を得てきました。

We will continue to update VoAGI; if you have any questions or suggestions, please contact us!

Share:

Was this article helpful?

93 out of 132 found this helpful

Discover more

データサイエンス

GenAIにとっての重要なデータファブリックとしてのApache Kafka

ジェンAI、チャットボット、およびミッションクリティカルな展開での大規模言語モデルのリアルタイム機械学習インフラとして...

人工知能

プロンプトエンジニアリング:AIを騙して問題を解決する方法

「これは、実践的な大規模言語モデル(LLM)の使用に関するシリーズの第4回目の記事ですここでは、プロンプトエンジニアリン...

データサイエンス

GPT-4 新しいOpenAIモデル

近年、人工知能に基づく自然言語システムの開発は前例のない進歩を遂げています

データサイエンス

デジタルツインは現代の物流を革命化しますこうすればどうなるか

「デジタルツインは物理的な世界と仮想的な世界をつなげることで、物流を変革し、効率性を向上させ、無駄を削減し、そして産...

AI研究

「ユーレカ!NVIDIAの研究によるロボット学習の新たな進展」

ロボットに複雑なスキルを教えることができるNVIDIA Researchによって開発された新しいAIエージェントは、ロボットの手にペン...

人工知能

ミッドジャーニーV5:ミッドジャーニーの最新バージョン

最新のMidjourneyのインカネーションであるV5は、このアート生成人工知能の進化におけるマイルストーンを示しています