MLOpsとは何か?機械学習モデルを搭載した製品の継続的デリバリーを実現させる手法を解説

2023年6月21日

MLOpsとは

近年、MLOps(Machine Learning Operations)が注目を集めています。
MLOpsは、機械学習モデルの開発、デプロイ、運用を効率化するための手法です。
MLOpsが注目されている理由としては、機械学習という技術が研究分野の域をでて、実際にビジネスの現場で活用され始めたことがあげられます。

機械学習をビジネスの現場で用いるために、機械学習モデルを製品に組み込んでデプロイし、利用できる状態にした後も、精度やパフォーマンスを維持・向上させていくための手法を考える必要性が高まっています。
つまり、機械学習を組み込んだ製品を開発した後も、改善していく仕組みが求められています。

そこで、MLOpsを導入することで、機械学習プロジェクトの効率性と成功率を向上させることができます。

MLOpsの成熟度モデルとは

MLOpsでは成熟度モデルという考え方が用いられており、自動化の程度によってレベルが決まります
MLOps成熟度モデルは、組織がどのレベルに位置しているかを評価し、現在の課題や改善すべき領域を特定するのに役立てることができます。

Google Cloud、Microsoft Azure、AWSといったMLOpsツールを提供している企業が、それぞれMLOps成熟度モデルを定めています。

本記事では、代表的なGoogle Cloudの MLOps成熟度モデルについて解説します。

ただし、MLOps成熟度モデルはあくまで各企業独自の定義であり、統一的に定められた指標ではありません。
どれか1つの成熟度モデルを鵜呑みにするのではなく、自社の組織やサービスに応じて適用するべきかどうかを判断する必要があります。

MLOpsレベル0:手動プロセス

MLOpsレベル0は、機械学習モデルの開発と運用が完全に手動で行われる状態を指します。

データサイエンティストが手動でモデルを開発・デプロイし、運用チームが手動でモデルの監視やメンテナンスを行います。

MLOpsレベル0では、迅速なモデルの展開や適切な運用が困難であり、ヒューマンエラーのリスクも高くなります。
MLOpsの成熟度を高めるためには、手動の開発・デプロイから各プロセスの自動化と統合への移行を進める必要があります。

課題

MLOpsレベル0では自動化や各段階の統合は行われていないため、効率性やスケーラビリティに課題があります。
ただし、機械学習モデルの変更や追加の学習がほとんど行われないようなシステムの場合は、レベル0の状態でも問題ないといえます。

MLOpsレベル1:ML パイプラインの自動化

MLOpsレベル1は、MLパイプラインを自動化することにより、機械学習モデルの継続的学習が可能な状態を指します。
MLパイプラインとは、機械学習のワークフローを指す用語です。MLパイプラインは、データの前処理からモデルのトレーニング、評価、デプロイメントまでの一連の手順やプロセスを指します。
つまり、新しいデータを入手した際に、そのデータを使用して機械学習モデルを再トレーニングするプロセスを自動化することで、機械学習モデルの継続的デリバリー、つまり素早く安全に機能をリリースすることを実現しています。

課題

モデルの構築プロセスに大きな変更がない場合には、MLパイプラインの自動化によって継続的デリバリーが実現できます。
しかし、新しいロジックの追加実装が発生した際には、パイプラインのテストやデプロイを手動で行う必要があります。

運用の中で新しいアイデアを試し、その実装を迅速にデプロイしたい場合は、MLパイプラインのビルド、テスト、デプロイを自動化する CI/CDパイプラインの自動化が必要となります。

MLOpsレベル2:CI / CD パイプラインの自動化

MLOpsレベル2では、CI/CD(継続的インテグレーション/継続的デリバリー)パイプラインの自動化が行われます。
レベル2ではレベル1の状態からさらに自動化の範囲が広がり、ソースコードのビルド、テスト、本番環境へのデプロイなど全ての工程が自動化されます。

MLOpsレベル2では、機械学習モデルのロジックに変更があった際にも、コードの変更を自動的に統合し、ビルド、テストを行った上で本番環境にデプロイすることができます。

CI/CDパイプラインの自動化によって、開発プロセスが迅速化し、エラーの早期発見や品質の向上が期待できます。
さらに、デプロイの自動化によって新しいモデルの迅速な提供が可能となり、ビジネスのニーズに素早く対応できるようになります。

MLOps、DevOps、AIOpsの違い

MLOpsに似た言葉にDevOpsAIOpsがあります。これら3つの手法は一見似ていますが、それぞれ別の技術領域に焦点を当てた運用手法です。

DevOps

DevOpsは、開発(Development)と運用(Operations)を組み合わせた造語です。
DevOpsでは、開発者と運用チームが密接に連携し、継続的インテグレーション(ContinuousIntegration/CI)や継続的デリバリー(ContinuousDelivery/CD)を維持し、プロダクトの開発・デプロイを行います。
MLOpsは、このDevOpsの考え方を機械学習向けに拡張させたものです。

AIOps

一方で、AIOps(Artificial Intelligence for IT Operations)は、人工知能(AI)を活用してIT運用を改善するための手法です。

DevOps、MLOpsはソフトウェア開発や機械学習の開発と運用を統合し効率化することを目的としており、AIOpsはAI技術を活用してIT運用を改善していくことを目的としています。

参考

書籍

  • 澁井雄介『AIエンジニアのための機械学習システムデザインパターン 』株式会社翔泳社 、2021年

Webページ

  • https://cloud.google.com/architecture/mlops-continuous-delivery-and-automation-pipelines-in-machine-learning?hl=ja#mlops_level_2_cicd_pipeline_automation(2023年6月19日確認)