MLOps とは何ですか?
機械学習オペレーション (MLOps) は、機械学習 (ML) のワークフローとデプロイを自動化および簡素化する一連のプラクティスです。機械学習と人工知能 (AI) は、現実世界の複雑な問題を解決し、お客様に価値を提供するために実装できる中核機能です。MLOps は、ML アプリケーション開発 (Dev) と ML システムのデプロイおよび運用 (Ops) を統合する ML カルチャーとプラクティスです。組織は MLOps を使用して ML ライフサイクル全体のプロセスを自動化および標準化できます。これらのプロセスには、モデル開発、テスト、統合、リリース、およびインフラストラクチャ管理が含まれます。
MLOps が必要なのはなぜですか?
大まかに言うと、機械学習のライフサイクルを開始するには、組織は通常、データの準備から始める必要があります。さまざまなソースからさまざまなタイプのデータを取得し、集約、重複クリーニング、特徴量エンジニアリングなどのアクティビティを実行します。
その後、データを使用して ML モデルのトレーニングと検証を行います。その後、トレーニングされ検証されたモデルを、他のアプリケーションが API を介してアクセスできる予測サービスとしてデプロイすることができます。
探索的データ分析では、多くの場合、最適なモデルバージョンをデプロイできるようになるまで、さまざまなモデルを試してみる必要があります。そのため、モデルバージョンのデプロイとデータバージョニングが頻繁に行われることになります。アプリケーションがモデルをコードに統合したり使用したりするには、実験の追跡と ML トレーニングパイプラインの管理が不可欠です。
MLOps は、アプリケーションコードやデータの変更を伴う新しい ML モデルのリリースを体系的かつ同時に管理するために不可欠です。MLOps の最適な実装では、ML アセットを他の継続的インテグレーションおよびデリバリー (CI/CD) 環境のソフトウェアアセットと同様に扱います。統合リリースプロセスの一環として、ML モデルをアプリケーションやサービス、およびそれらを使用するアプリケーションやサービスとともに、デプロイします。
MLOps の原則とは何ですか?
次に、MLOps の 4 つの重要な原則について説明します。
バージョン管理
このプロセスでは、機械学習アセットの変更を追跡します。これにより、結果を再現したり、必要に応じて以前のバージョンにロールバックしたりできます。ML トレーニングコードまたはモデル仕様はすべて、コードレビューフェーズを経ます。ML モデルのトレーニングを再現可能かつ監査可能にするため、それぞれがバージョン管理されています。
ML ワークフローの再現性は、データ処理から ML モデルのデプロイまで、あらゆるフェーズで重要です。つまり、同じ入力が与えられた場合、各フェーズで同じ結果を得られるはずです。
オートメーション
機械学習パイプラインのさまざまなフェーズを自動化して、再現性、一貫性、スケーラビリティを確保します。これには、データインジェスト、前処理、モデルトレーニング、検証からデプロイまでのフェーズが含まれます。
自動モデルトレーニングとデプロイのトリガーとなる要因には、次のようなものがあります。
- メッセージング
- モニタリングまたはカレンダーイベント
- データ変更
- モデルトレーニングコードの変更
- アプリケーションコードの変更
自動テストにより、問題を早期に発見し、エラーの修正と学習を迅速に行うことができます。Infrastructure as Code (IaC) により、自動化がより効率的になります。ツールを使用して、インフラストラクチャを定義および管理できます。これにより、再現性が確保され、さまざまな環境に一貫してデプロイできます。
継続的 X
自動化により、テストを継続的に実行し、ML パイプライン全体にコードをデプロイできます。
MLOps では、継続的とは、システム内のどこかで何らかの変更が行われた場合に継続的に発生する以下の 4 つのアクティビティを指します。
- 継続的インテグレーションにより、コードの検証とテストをパイプライン内のデータやモデルにまで広げる
- 継続的デリバリーにより、新しくトレーニングされたモデルまたはモデル予測サービスを自動的にデプロイする
- 継続的トレーニングにより、ML モデルを自動的に再トレーニングし、再デプロイできるようにする
- 継続的モニタリングにより、ビジネスに関連するメトリクスを使用したデータモニタリングとモデルモニタリングを行う
モデルガバナンス
ガバナンスには、ML システムのあらゆる側面を管理して効率化することが含まれます。ガバナンスのためには以下のような多くのアクティビティを行う必要があります。
- データサイエンティスト、エンジニア、ビジネスステークホルダー間の緊密なコラボレーションを促進する
- 明確なドキュメントと効果的なコミュニケーションチャネルを使用して、全員の足並みを揃える
- モデル予測に関するフィードバックを収集し、モデルをさらに再トレーニングするメカニズムを確立する
- 機密データが保護され、モデルやインフラストラクチャへのアクセスが安全であること、コンプライアンス要件が満たされていることを確認する
また、モデルを本番稼働前にレビュー、検証、承認するための構造化されたプロセスを持つことも不可欠です。これには、公平性、偏見、倫理的配慮の確認が含まれる場合があります。
MLOps にはどのような利点がありますか?
機械学習は、組織がデータを分析し、意思決定のためのインサイトを引き出すのに役立ちます。ただし、革新的で実験的な分野であり、特有の課題が伴います。機密データの保護、少ない予算、スキル不足、そして絶えず進化するテクノロジーは、プロジェクトの成功を阻みます。統制とガイダンスがなければ、コストが急増し、データサイエンスチームが期待する成果を達成できない可能性があります。
MLOps は、制約に関係なく ML プロジェクトを成功に導くための地図を提供します。MLOps の主なメリットを次に示します。
市場に出すまでの時間を短縮
MLOps は、データサイエンスの目標をより迅速かつ効率的に達成するためのフレームワークを組織に提供します。デベロッパーとマネージャーは、モデル管理においてより戦略的かつ機敏になることができます。ML エンジニアは、宣言型設定ファイルを使用してインフラストラクチャをプロビジョニングできるため、プロジェクトをよりスムーズに開始できます。
モデルの作成とデプロイを自動化することで、市場投入までの時間を短縮し、運用コストを削減できます。データサイエンティストは、組織のデータを迅速に探索して、より多くのビジネス価値をすべての人にもたらすことができます。
生産性向上
MLOps プラクティスは生産性を高め、ML モデルの開発を加速します。例えば、開発環境や実験環境を標準化できます。そして、ML エンジニアは新しいプロジェクトを立ち上げ、プロジェクト間のローテーションを行い、アプリケーション間で ML モデルを再利用できます。反復可能なプロセスを作成し、迅速な実験やモデルトレーニングを行うことができます。ソフトウェアエンジニアリングチームは、ML ソフトウェア開発ライフサイクルを通じてコラボレーションと調整を行い、効率を高めることができます。
効率的なモデルのデプロイ
MLOps は、本番環境におけるトラブルシューティングとモデル管理を改善します。例えば、ソフトウェアエンジニアはモデルのパフォーマンスをモニタリングし、動作を再現してトラブルシューティングを行うことができます。モデルバージョンを追跡して一元管理し、さまざまなビジネスユースケースに適したモデルを選択することができます。
モデルワークフローを継続的インテグレーションおよび継続的デリバリー (CI/CD) パイプラインと統合すると、パフォーマンスの低下を制限し、モデルの品質を維持できます。これは、アップグレードやモデルチューニングの後でも当てはまります。
組織に MLOps を実装する方法
MLOps の実装には、組織内の自動化の成熟度に応じて 3 つのレベルがあります。
MLOps レベル 0
レベル 0 の特徴は、機械学習システムを始めたばかりの組織における、手動による機械学習ワークフローとデータサイエンティスト主導のプロセスです。
データ準備、ML トレーニング、モデルのパフォーマンスと検証など、すべてのステップは手動で行われます。それらのステップ間を手動で移行する必要があり、各ステップはインタラクティブに実行および管理されます。データサイエンティストは通常、トレーニング済みのモデルをアーティファクトとして引き渡し、エンジニアリングチームが API インフラストラクチャにデプロイします。
このプロセスでは、モデルを作成するデータサイエンティストとそれをデプロイするエンジニアが分かれています。リリースの頻度が低いため、データサイエンスチームがモデルを再トレーニングするのは年に数回にとどまります。ML モデルにその他のアプリケーションコードとの CI/CD に関する考慮事項はありません。同様に、アクティブなパフォーマンスモニタリングは存在しません。
MLOps レベル 1
同じモデルを新しいデータでトレーニングすることを望む組織は、通常レベル 1 の成熟度を実装する必要があります。MLOps レベル 1 は、ML パイプラインを自動化することでモデルを継続的にトレーニングすることを目的としています。
レベル 0 では、トレーニングしたモデルを本番環境にデプロイします。これとは対照的に、レベル 1 では、繰り返し実行されるトレーニングパイプラインをデプロイし、トレーニングしたモデルを他のアプリに提供します。少なくとも、モデル予測サービスの継続的デリバリーを実現できます。
レベル 1 の成熟度には次の特徴があります。
- 大幅な自動化を伴う迅速な ML 実験のステップ
- ライブパイプラインのトリガーとして最新のデータを使用した、本番環境でのモデルを継続的にトレーニング
- 開発環境、試作環境、本番環境全体で同じパイプラインを実装
エンジニアリングチームはデータサイエンティストと協力して、再利用可能で合成可能で、ML パイプライン全体で共有できる可能性のあるモジュール化されたコードコンポーネントを作成します。また、一元化された特徴量ストアを作成し、ML トレーニングとサービスのための特徴量の保存、アクセス、定義を標準化します。さらに、パイプラインの各実行に関する情報や再現性データなどのメタデータも管理できます。
MLOps レベル 2
MLOps レベル 2 は、より多くの実験を行い、継続的なトレーニングを必要とする新しいモデルを頻繁に作成したい組織を対象としています。数分でモデルを更新し、毎時間または毎日再トレーニングし、同時に何千ものサーバーに再デプロイする技術主導の企業に適しています。
複数の ML パイプラインが使用されているため、MLOps レベル 2 のセットアップには MLOps レベル 1 のセットアップのすべてが必要です。さらに、以下も必要となります。
- ML パイプラインオーケストレーター
- 複数のモデルを追跡するためのモデルレジストリ
以下の 3 つのステージが、モデルの継続的デリバリーを確実にするために、複数の ML パイプラインで大規模に繰り返されます。
パイプラインを構築する
新しいモデリングと新しい ML アルゴリズムを繰り返し試しながら、実験ステップがオーケストレートされていることを確認します。このステージでは、ML パイプラインのソースコードが出力されます。コードをソースリポジトリに保存します。
パイプラインをデプロイする
次に、ソースコードを構築し、テストを実行してデプロイ用のパイプラインコンポーネントを取得します。出力は、新しいモデル実装でデプロイされたパイプラインです。
パイプラインを提供する
最後に、パイプラインをアプリケーションの予測サービスとして提供します。デプロイされたモデル予測サービスの統計をライブデータから収集します。このステージ出力は、パイプラインまたは新しい実験サイクルを実行するトリガーです。
MLOps と DevOps にはどのような違いがありますか?
MLOps と DevOps はどちらも、ソフトウェアアプリケーションの開発、デプロイ、モニタリングのプロセスを改善することを目的としたプラクティスです。
DevOps は、開発チームとオペレーションチーム間のギャップを埋めることを目的としています。DevOps は、コード変更が自動的にテストされ、統合され、効率的かつ確実に本番環境にデプロイされることを保証するのに役立ちます。コラボレーション文化を促進し、リリースサイクルの短縮、アプリケーション品質の向上、リソースのより効率的な使用を実現します。
一方、MLOps は、機械学習プロジェクト向けに特別に設計された一連のベストプラクティスです。従来のソフトウェアのデプロイと統合は比較的簡単ですが、ML モデルには特有の課題があります。これらには、データ収集、モデルトレーニング、検証、デプロイ、継続的なモニタリングと再トレーニングが含まれます。
MLOps は ML ライフサイクルの自動化に重点を置いています。これにより、モデルを開発するだけでなく、体系的かつ繰り返しデプロイ、モニタリング、および再トレーニングを行うことができます。ML に DevOps の原則を持ち込みます。MLOps により、ML モデルのデプロイが迅速になり、時間の経過とともに精度が向上し、それらが真のビジネス価値をもたらすという保証が強化されます。
AWS は MLOps 要件をどのようにサポートできますか?
Amazon SageMaker は、データの準備、ML モデルの構築、トレーニング、デプロイに使用できるフルマネージドサービスです。フルマネージドインフラストラクチャ、ツール、ワークフローを備えたあらゆるユースケースに適しています。
SageMaker は MLOps 向けの目的別ツールを提供し、ML ライフサイクル全体のプロセスを自動化します。Sagemaker for MLOps ツールを使用することで、レベル 2 の MLOps の成熟度を大規模かつ迅速に達成できます。
使用できる SageMaker の主な機能は次のとおりです。
- SageMaker Experiments を使用すると、パラメータ、メトリクス、データセットなど、モデルトレーニングジョブに関連するアーティファクトを追跡できます。
- SageMaker パイプラインを設定すると、定期的に、または特定のイベントがトリガーされたときに自動的に実行できます。
- SageMaker モデルレジストリを使用すると、モデルバージョンを追跡できます。また、ユースケースのグループ化などのメタデータ、およびモデルパフォーマンスメトリクスのベースラインを中心的なリポジトリで追跡することもできます。この情報をもとに、ビジネス要件に応じた最適なモデルを選択できます。
今すぐアカウントを作成して Amazon Web Services (AWS) で MLOps の使用を開始しましょう。