概要
機械学習運用 (MLOps) とは、機械学習 (ML) モデルのデプロイと保守のプロセスを最適化することを目的としたワークフローの一連のプラクティスです。
DevOps と GitOps の原則に着想を得た MLOps は、MLモデルをソフトウェア開発プロセスに統合するための、継続的な進化の確立を目指しています。MLOps を導入し、反復的な学習ループを効率化することで、データサイエンティスト、エンジニア、IT チームは機械学習モデルの正確性と最新性を同期的に確保できます。これにより継続的な監視、再トレーニング、デプロイが可能になり、変化するデータにモデルが適応できるようになるため、長期にわたって最高のパフォーマンスを維持できます。
MLOps を導入するメリットとは
機械学習モデルは、データのパターンを検出することで予測を行います。モデルが進化し、学習していない新しいデータにさらされるようになると、「データドリフト」と呼ばれる問題が発生します。データドリフトは、ML モデルの学習に使用される統計的特性が古くなるにつれて、時間の経過とともに自然に発生するものであり、対処や修正を行わない場合、ビジネスに悪影響を及ぼす可能性があります。
ドリフトを避けるためには、モデルを監視し、高い予測精度を保つことが重要です。MLOps の手法を適用することで、予測モデルの品質と精度を高めながら管理プロセスを単純化し、データドリフトを回避してデータサイエンティストの効率を最適化することで、チームに利益をもたらすことができます。
MLOps が組織にもたらす具体的なメリットをいくつかご紹介します。
再現性:MLOps フレームワークは、さまざまなモデルに関連するコード、データ、設定ファイルの変更を追跡および管理できるようにするため、組織は ML の実験の一貫した再現性を信頼することができます。
継続的インテグレーションおよび継続的デプロイメント (CI/CD):MLOps フレームワークは CI/CD パイプラインと統合できるので、自動テスト、検証、デプロイメントが可能です。その結果、開発とデリバリーのサイクルが迅速化され、継続的改善の文化が促進されます。
コラボレーションの強化とタイムラインの短縮:MLOps は、ボトルネックを解消して生産性を向上させながら、チームメンバーが効果的に協力することを可能にします。さらに、手作業が自動化されると、組織はより多くのモデルをより素早くデプロイし、より頻繁に反復して最高の精度を提供することができます。
コスト削減:正確な ML モデルを維持するために継続的に行う必要のある調整と機能強化は面倒な作業であり、手作業で行う場合は特にそうです。MLOps での自動化により、時間のかかる手作業に割り当てられていたリソースが解放され、リソースの節約につながります。また、手作業によるエラーのリスクを最小限に抑え、デプロイメントプロセスを効率化することで価値実現までの時間を短縮できます。
ガバナンスとコンプライアンスの向上:MLOps の実践により、組織はセキュリティ対策を強化し、データプライバシー規制へのコンプライアンスを確保できます。また、パフォーマンスと精度を監視することで、新しいデータが統合された際にモデルのドリフトを追跡し、長期間にわたって高い精度を維持するための事前対策を講じることができます。
自動化を導入して MLOps で時間を節約
MLOps プラクティスを導入することで、機械学習モデルの継続的なパフォーマンスと信頼性を確保しながら、機械学習モデルを維持する際の面倒な手作業を省くことができます。MLOps プラクティスは異なるチーム間のコラボレーションを効率化することで、組織内のアジャイルな開発とデータ駆動型の意思決定を促進します。
MLOps は、あらゆる業界における ML 開発プロセスの自動化と単純化を可能にします。ユースケースとして、以下のような MLOps の活用が挙げられます。
予知保全:機器の故障を予測し、メンテナンスをプロアクティブに計画します。
詐欺の検出:不審な活動がないか継続的に監視するモデルを構築およびデプロイします。
自然言語処理 (NLP):チャットボット、翻訳機、その他の大規模言語モデル (LLM) などのアプリケーションが効果的かつ確実に動作するようにします。
コンピュータビジョン:医用画像分析、物体検出、自動運転などのタスクをサポートします。
異常検出:ネットワークセキュリティ、産業プロセス、IoT デバイスなど、さまざまなコンテキストで標準からの変動を検出します。
医療:病気診断、患者の転帰予測、医用画像分析のためのモデルをデプロイします。
小売:在庫管理、需要予測、価格の最適化、顧客のショッピング体験の向上を支援します。
MLOps と DevOps
MLOps は DevOps の進化形と考えることができ、コラボレーション、自動化、継続的改善という同じ基礎概念が ML モデルの開発に適用されたものです。MLOps と DevOps は、IT 運用チームとのコラボレーションを改善するという目標を共有しています。ソフトウェアや ML モデルをそのライフサイクル全体を通して管理および維持するためには、IT 運用チームと緊密に協力しなければなりません。
DevOps が日常的な運用タスクの自動化と開発およびデプロイメントのための環境の標準化に重点を置いているのに対し、MLOps はより実験的な性質が強く、データパイプラインの管理と維持の方法を探ることに重点を置いています。ML モデルで使用されるデータは常に進化しているため、モデル自体もそれに合わせて進化しなければならず、そのためには継続的な適応と微調整が必要となります。
テスト、デプロイメント、プロダクションは、MLOps と DevOps では異なります。ML プロジェクトでは、ソフトウェア・エンジニアリングを専門とせず、探索的データ分析、モデル開発、実験に力を注ぐデータサイエンティストがチームに加わることが多くあります。MLOps に関わるタスクで、一般的に DevOps では考慮されないタスクには以下のようなものがあります。
- データ検証、学習済みモデルの品質評価、モデル検証のためのテスト
- 新しいデータを受け取ると自動的に ML モデルを再トレーニングし、デプロイするためのマルチステップ・パイプラインの構築
- データのサマリー統計を追跡し、モデルのオンラインパフォーマンスを監視して、値が予想から外れた場合に伝達
MLOps における継続的インテグレーションおよび継続的デプロイメント (CI/CD) に関して言えば、CI はもはや (DevOps の場合のように) コードとコンポーネントのテストと検証のためだけのものではなく、データ、データスキーマ、モデルのテストと検証も意味します。CD についても、今やその対象は単一のソフトウェアパッケージやサービスではなく、別のサービス (モデル予測サービス) を自動的にデプロイするシステム (ML トレーニングパイプライン) です。
MLOps の段階に関する Red Hat の考え
ML モデルを構築し、運用化するための方法は 1 つではありませんが、データを収集して準備し、モデルを開発し、モデルを AI 対応アプリケーションに発展させ、これらのアプリケーションから収益を得るというニーズは常に存在します。
Red Hat® OpenShift® には、複数のデータセンター、パブリッククラウド・コンピューティング、およびエッジコンピューティング全体で一貫性した 5 段階の方法で MLOps を可能にする主要な機能が含まれています。
ステップ 1:データの収集と準備
構造化または非構造化データを収集、クリーニング、ラベル付けし、ML モデルのトレーニングとテストに適した形式にします。
ステップ 2:モデルトレーニング
ML モデルは Red Hat OpenShift 上の Jupyter Notebook でトレーニングされます。
ステップ 3:自動化
Red Hat OpenShift Pipelines はイベント駆動型の継続的インテグレーション機能を提供し、ML モデルをコンテナイメージとしてパッケージ化するのに役立ちます。
ステップ 4:デプロイ
Red Hat OpenShift GitOps は、パブリック、プライベート、ハイブリッド、エッジなど、場所を問わず、ML モデルのデプロイメントを大規模に自動化します。
ステップ 5:監視
Red Hat のエコシステムパートナーが提供するツールを使用することで、モデルを監視し、必要に応じて再トレーニングや再デプロイを行い、モデルを更新することができます。新しいデータが取り込まれると、プロセスはステージ 1 に戻り、5 つのステージを連続的かつ自動的に繰り返します。
MLOps を開始する
組織内で機械学習の統合を模索している段階の企業でも、ML パイプラインをすでに使用している企業でも、自社のワークフローとプロセスが広範囲の MLOps にどう適合するかを理解することは有益です。機械学習プロセスの成熟度は、通常、ワークフローにおける自動化の度合いに応じて 3 つのレベルに分類されます。
MLOps レベル 0:すべてが手動
機械学習を開始したばかりのチームは、通常、完全に手動のワークフローで業務を行っています。この段階では、モデルを作成するデータサイエンティストは、モデルを提供するエンジニアから切り離されており、プロセスのすべてのステップ (データの準備、モデルのトレーニング、自動化、デプロイ、監視) が自動化なしで実行されています。継続的インテグレーション (CI) も継続的デリバリー (CD) も存在しません。新しいモデルのバージョン管理は頻繁に行われず、新しいモデルがデプロイされると、変化に適応できない可能性が高くなっています。
MLOps レベル 1:自動化された ML パイプライン
モデルが新たな要因にプロアクティブに適応する必要がある場合、ワークフローへの自動化の導入は合理的な判断です。自動化されたパイプラインでは、継続的トレーニング (CT) のために新しいデータがループされるため、モデルは予測サービスのために最も関連性の高い情報にアクセスできます。
MLOps レベル 2:自動化された CI/CD システム
この段階では、ML モデルの更新は迅速で信頼できるものになっています。モデルは毎日、または毎時間新しいデータで再トレーニングされ、更新は同時に何千ものサーバーにデプロイされます。このシステムにより、データサイエンティストとエンジニアは、単一の共同作業環境の中で協調しながら活動することができます。
構築か購入か
MLOps プラットフォームを構築するか購入するかを決定する際には、リソースとタイムラインの両方を考慮する必要があります。機能する ML インフラストラクチャを構築するのに 1 年以上かかることもある上、実際に価値を生み出せるパイプラインを構築する方法を見つけ出すためには更なる時間を要します。さらに、インフラストラクチャを維持するには、ライフサイクル管理と専門チームが必要になります。チームにスキルセットがない場合や、スキルセットを学ぶための余裕がない場合、エンドツーエンドの MLOps プラットフォームに投資するのが最適なソリューションとなり得ます。
Red Hat のサポート内容
Red Hat の OpenShift AI ポートフォリオは、Red Hat OpenShift と Red Hat OpenShift Data Science の実証済みの機能を統合したものです。データサイエンティストとアプリケーション開発者を結びつけ、アプリケーションへの AI の統合を安全かつ一貫して大規模に単純化する、単一の一貫したエンタープライズ向けアプリケーション・プラットフォームを提供します。
Red Hat OpenShift AI には、複数のデータセンター、パブリッククラウド・コンピューティング、およびエッジコンピューティング全体で一貫性した方法で MLOps を可能にする主要な機能が含まれています。
Kubeflow は、機械学習 (ML) ワークロードを開発、管理、実行するための、Kubernetes ネイティブのオープンソース・フレームワークです。OpenShift 上で Kubeflow を実行すれば、プロジェクトをまとめながらクラウド・コンピューティングの能力を活用することで、機械学習運用の標準化を支援できます。Kubeflow の主なユースケースとして、データの準備、モデルのトレーニング、評価、最適化、デプロイメントが挙げられます。