MLOps は、データ サイエンティストやエンジニアが ML のライフサイクルをより効率的に管理できるようにする一連のプラクティスです。
ML の開発と運用間のギャップを埋めることを目的としています。MLOps の目標は、一貫性のある確実な方法で ML モデルを開発、テスト、デプロイできるようにすることです。
ML モデルを使用して重要なビジネス上の意思決定を行う組織が増えるにつれ、MLOps の重要性はますます高まっています。
MLOps は ML オペレーションの略で、開発からデプロイ、モニタリングに至る ML のライフサイクルを管理するプロセスを指します。これには、次のようなタスクが含まれます。
MLOps は、本番環境で ML モデルの信頼性、スケーラビリティ、保守性を確保するうえで不可欠です。
MLOps は、ML ライフサイクルを管理し、ML モデルを効果的に開発、デプロイ、保守できるようにするために不可欠です。MLOps がなければ、組織は次のような複数の課題に直面する可能性があります。
エラーのリスクの増大: 手動プロセスでは、ML ライフサイクルでのエラーや不整合が発生し、ML モデルの精度と信頼性が低下する可能性があります。
拡張性の欠如: ML モデルやデータセットのサイズと複雑さが増すにつれ、手動プロセスの管理が難しくなり、ML オペレーションの効果的なスケーリングが困難になります。
効率の低下: 手動のプロセスは時間がかかり、非効率的で、ML モデルの開発とデプロイを遅らせます。
コラボレーションの欠如: 手動プロセスでは、データ サイエンティスト、エンジニア、運用チームの効果的なコラボレーションが困難になり、サイロ化やコミュニケーションの断絶が発生します。
MLOps は、ML のライフサイクルを自動化および管理するためのフレームワークとツールセットを提供することで、これらの課題を解決します。これにより、組織は ML モデルをより効率的、確実、大規模に開発、デプロイ、保守できるようになります。
MLOps を採用した組織には、次のような多数のメリットがもたらされます。
DevOps は、組織がソフトウェア開発チームと運用チームのギャップを解消するのに役立つ一連のプラクティスです。MLOps は、特に ML モデルのニーズを満たす、類似する一連のプラクティスです。
MLOps と DevOps には、次のようないくつかの重要な違いがあります。
こうした違いはあるものの、MLOps と DevOps には、コラボレーション、自動化、継続的な改善の重要性など、共通する原則がいくつかあります。DevOps のプラクティスを採用した組織の多くは、MLOps の導入時にそれらのプラクティスを活用できます。
MLOps は、ML ライフサイクルを管理するために連携する次のような複数のコンポーネントで構成されています。
EDA は、ML モデルのトレーニングに使用されるデータを探索して理解するプロセスです。これには、次のようなタスクが含まれます。
データの準備と特徴量エンジニアリングは、MLOps プロセスの重要なステップです。データの準備では、モデルのトレーニングに応じて、元データのクリーニング、変換、フォーマットを行います。
特徴量エンジニアリングでは、モデルのトレーニングに対してより関連性が高く、有用な新しい特徴量を元データから作成します。これらのステップは、ML モデルが高品質のデータでトレーニングされ、正確な予測を行えるようにするうえで不可欠です。
モデルのトレーニングとチューニングでは、準備したデータで ML モデルをトレーニングし、そのハイパーパラメータを最適化して可能な限り最高のパフォーマンスを達成します。
モデルのトレーニングとチューニングの一般的なタスクは次のとおりです。
モデルのレビューとガバナンスにより、責任を持って倫理的に ML モデルを開発、デプロイできるようになります。
モデルの推論とサービングでは、トレーニング済みの ML モデルを本番環境にデプロイし、アプリケーションとエンドユーザーが使用できるようにします。
モデルのモニタリングでは、本番環境での ML モデルのパフォーマンスと動作を継続的にモニタリングします。タスクには以下が含まれる場合があります。
自動モデル再トレーニングでは、パフォーマンスが低下したときや新しいデータが利用可能になったときに、ML モデルを再トレーニングします。自動モデル再トレーニングには以下が含まれます。