メインコンテンツへジャンプ

MLOps(エムエルオプス)

Databricks 無料トライアル

MLOps とは

MLOps は、エムエルオプスと読み、Machine Learning Operations の略語で、機械学習(Machine Learning)と運用(Operations)を組み合わせた言葉です。言葉のとおり、機械学習の開発チーム、運用チーム、データサインティストなどが連携し、機械学習モデルを迅速かつ効率的に実際のビジネスに最適化させるための手法を指します。開発チームと運用チームが連携し、円滑な開発を進める DevOps の考え方を拡張し、機械学習の分野に特化させたのが MLOps です。

MLOps サイクル

MLOps の活用法

MLOps は、機械学習や AI ソリューションの構築と品質向上に有効なアプローチです。MLOps のアプローチを取り入れることで、機械学習モデルの適切な監視、検証、ガバナンスを備えた CI/CD(継続的インテグレーションと継続的デリバリー)が可能になり、データサイエンティストと機械学習のエンジニアの連携を促進し、モデルの開発と実運用化を加速させます。

MLOps の必要性

機械学習のライフサイクルは、データ取り込み、データ準備、モデルのトレーニング、チューニング、デプロイ、監視、説明可能性といった多くの複雑な要素で構成されており、機械学習モデルの製品化は容易ではありません。また、データエンジニア、データサイエンティスト、機械学習エンジニアからなるチーム間の連携や引き継ぎも必要です。これら全てのプロセスを同期、連動させるためには、厳格な運用が必須となります。MLOps の概念は、機械学習のライフサイクルにおける実験フェーズ、反復、継続的な改善を包括しています。

MLOps のメリット

MLOps の主なメリットには、機械学習のライフサイクルにおけるプロセスの効率化、拡張性、リスクの軽減があります。それぞれのメリットについて詳しく見ていきます。

  • 効率的な開発と運用:MLOps によりモデル開発の迅速化、高品質な機械学習モデルの提供、迅速なデプロイと製品化が可能になります。
  • 優れた拡張性:MLOps は、広範なスケーラビリティと管理を可能にし、継続的インテグレーション、継続的デリバリー、継続的デプロイを目的として、数千のモデルを制御、管理、監視します。具体的には、MLOps が機械学習パイプラインの再現性を確保し、データチーム間の緊密な連携を可能にすることで、DevOps や IT 部門との衝突を減らし、リリースサイクルを高速化します。
  • 企業リスクの最小化:機械学習モデルは、法規制の確認やデータドリフトの検知が必要になるケースが多々あります。MLOps により、こうした要件に対するより高い透明性と迅速な対応が可能になり、コンプライアンスや法規制への準拠が確実になります。

MLOps を構成する要素

MLOps コンポーネント

機械学習プロジェクトにおける MLOps は、プロジェクトに応じて範囲を絞ることも、拡大することも可能です。例えば、データパイプラインからモデル作成までの全てを網羅する場合もあれば、他のプロジェクトでは、モデルのデプロイプロセスのみの実装が必要な場合もあります。多くの企業では、主に以下のような領域に MLOps を導入しています。

  • 探索的データ分析(EDA)
  • データ準備と特徴量エンジニアリング
  • モデルのトレーニングとチューニング
  • モデルのレビューとガバナンス
  • モデル推論とサービング
  • モデル監視
  • モデルの再トレーニングの自動化

MLOps への効果的なアプローチ

MLOps のベストプラクティスは、MLOps の原則が適用される段階によって区別できます。

  • 探索的データ分析(EDA):再現性、編集性、共有性のあるデータセット、表、可視化方法を作成することで、機械学習のライフサイクルにおいてデータを繰り返し検索、共有、準備することが可能です。
  • データ準備と特徴量エンジニアリング:データの変換、集約、重複排除を繰り返すことで、洗練された特徴量を作成できます。特徴量ストアを活用して、データチーム間で特徴量を可視化し、共有することが重要です。
  • 機械学習モデルのトレーニングとチューニング:scikit-learn や Hyperopt などの一般的なオープンソースライブラリを使用して、モデルのトレーニングと性能の改善ができます。より簡単な方法として、AutoML などの自動機械学習ツールを使ってテストを実行し、レビューやデプロイが可能なコードを作成します。
  • モデルのレビューとガバナンス:モデルのレビューとガバナンス:モデルの系統、モデルのバージョンを追跡し、ライフサイクルを通じてモデルの成果物および移行を管理します。MLflow のようなオープンソースの MLOps プラットフォームを使用して、機械学習モデルの共有を行うことも可能です。
  • モデル推論とサービング:モデルの更新頻度、推論要求時間などの本番環境に特化した管理を、テストとQAで行います。DevOps の原則を取り入れたリポジトリやオーケストレータなどの CI/CD ツールを利用して、本番前のパイプラインを自動化します。
  • モデルのデプロイと監視:パーミッションの設定やクラスタの作成を自動化し、登録されたモデルを本番稼動に備えます。REST API モデルのエンドポイントを有効にする必要があります。
  • モデルの再トレーニングを自動化:トレーニングデータと推論データの違いによるモデルドリフトが発生した場合、アラートと自動化で修正を行います。

MLOps と DevOps の違い

MLOps は、機械学習モデルの開発から、デプロイ、運用にかけてのプロセスを強化するための手法で、DevOps は、ソフトウェア開発における開発と運用を統合することで、プロセスを効率化することをめざしています。わかりやすく言えば、DevOps はソフトウェアの開発と運用に焦点を当てているのに対し、MLOps は、機械学習モデルに特化しているのが違いです。MLOps は、DevOps の原則をベースに機械学習モデルを本番環境に導入します。いずれも、ソフトウェアの品質改善、パッチ管理やリリースの迅速化、顧客満足度の向上という成果をもたらします。

MLOps と AIOps の違い

AIOps は、AI や機械学習を IT 運用に活用することで、問題解決の自動化や異常の検出など、IT 運用管理における効率性や信頼性を高めることを目的としています。AIOps は、IT 運用における問題解決や効率化を目指すもので、MLOps は、機械学習モデルのライフサイクル管理に焦点を当てている点が大きな違いです。

LLMOps と MLOps のトレーニングにおける違い

Dolly のような大規模言語モデル(LLM)をトレーニングする際には、MLOps の概念が適用される場合が多いですが、他にも考慮することがあります。大規模言語モデルのトレーニングが従来の MLOps のアプローチと異なるポイントを見ていきます。

  • 計算資源:大規模な言語モデルの学習と微調整には、通常、大規模なデータセットに対して桁違いの計算を実行する必要があります。この処理を高速化するために、GPU のような特殊なハードウェアが使われ、より高速なデータ並列演算が行われます。大規模言語モデルのトレーニングやデプロイには、こうした特殊な計算資源へのアクセスが不可欠です。また、推論にかかるコストから、モデルの圧縮や蒸留の技術も重要視されることがあります。
  • 転移学習:多くの大規模言語モデルは、ゼロから作成・学習される従来のMLモデルとは異なり、基礎モデルからスタートし、特定のドメインで性能を向上させるために新しいデータで微調整を行います。ファインチューニングをすることで、より少ないデータと計算資源で、特定のアプリケーションに対して最先端の性能を発揮することができます。
  • 人間のフィードバック:大規模言語モデルの学習において、人間のフィードバックによる強化学習(RLHF)は大きな進歩のひとつです。より一般的には、LLM タスクは極めてオープンエンドであることが多いため、LLM のパフォーマンスを評価するには、人間によるフィードバックが重要です。このフィードバックループを LLMOps パイプラインに組み込むことで、学習させた大規模言語モデルの性能を向上させることができます。
  • ハイパーパラメータチューニング:従来の ML では、ハイパーパラメータチューニングは、多くの場合、精度や他の指標の改善を中心に行われてきました。LLM の場合、チューニングは学習と推論にかかるコストを削減する点でも重要です。例えば、バッチサイズや学習率を微調整することで、トレーニングのスピードやコストを劇的に変化させることができます。このように、従来の ML と LLM は、チューニングプロセスを追跡し最適化することで恩恵を受けることは同じですが、その効果は異なります。
  • 評価方法:従来の ML モデルには、精度、再現率、F値など、明確に定義された指標があります。これらの指標は、計算が非常に簡単です。しかし、LLM の評価に関しては、バイリンガル評価(BLEU)や要点評価のためのリコール指向型代行調査(ROGUE)のように、全く異なる指標やスコアリングが適用されるため、実装の際に考慮が必要です。

MLOps に有用なツールやフレームワーク

MLOps ツールは、データサイエンティストやソフトウェアエンジニアチームに必要な、実験追跡、特徴量エンジニアリング、予測モデルの管理、監視、デプロイメントを促進するコラボレーション環境を提供します。MLOps は、機械学習のライフサイクルにおける運用と同期の両方を自動化します。

 

MLflow

MLflow のフルマネージド環境であり、世界をリードするオープンな MLOps プラットフォームの Databricks を無料でお試しいただけます

関連資料

用語集に戻る