MLOpsとは？必要性やDevOpsとの違い、ツール・フレームワーク、導入課題を解説

こんにちは。スキルアップAI編集部です。近年、チャットボットによる問い合わせ対応やECサイトのレコメンデーションなど機械学習を取り入れたサービスが増えるにつれ、機械学習を取り入れたシステムが数多く運用されるようになってきました。
このような状況下で、そのシステムを効率的に開発・運用するための「MLOps」が重要視されています。

本記事では、**MLOpsの概要や必要性、メリット、有用なツール・フレームワーク、活用事例、学習方法などを紹介**します。

 <目次>
1. MLOpsとは
1. MLOpsの特徴
1. MLOpsの必要性
1. MLOpsのメリット
1. MLOpsのプロセス
1. MLOpsに使えるツール・フレームワーク
1. MLOpsの活用事例
1. MLOpsの課題
1. MLOpsの学習方法
1. まとめ

## MLOpsとは
**「MLOps」とは、機械学習（ML）と、運用（Operations）を組み合わせた造語で、優れた機械学習システムを実現するための手法や概念**を表します。
MLOpsは、機械学習を取り入れたシステムの開発・運用を円滑に行い、迅速かつ安定したサービスをユーザに届けることができるため、近年注目を集めています。

MLOpsの元になったのは、ソフトウェア開発において開発（Development）チームと運用（Operations）チームが連携する開発手法を指す「DevOps」です。

### DevOpsとの違い
**DevOpsとは、開発部門と運用部門が連携して価値あるシステムを開発するという考え方です**。開発・運用を円滑に行い、安定したサービスを迅速にユーザに届けることを目的としています。

従来、開発部門が作るものと運用部門が作るものが一致しないという事象が多く発生していました。開発環境と本番環境に差分があると、開発物が本番環境で安定動作しません。DevOpsは、その問題を解決するための考え方として非常に重要です。

従来の機械学習を用いないソフトウェア開発にはDevOpsが用いられていますが、MLOpsは、機械学習を取り入れたシステムに対して、DevOpsの考え方を拡張した概念といえます。

### AIOpsとの違い
**AIOpsとは、AIを用いることでシステム運用の自動化や効率化（AIによるオペレーション）を目指す手法**です。例として、システムのログといったデータに対し機械学習（AI）を用いることで、障害の原因を自動的に特定することなどが挙げられます。

AIOpsによって運用時の人手を減らすことで、運用コスト削減やミスの防止が見込めるだけでなく、DX推進にもつながります。

AIOpsは、AIによるシステム運用の自動化にフォーカスしています。対して、MLOpsは「機械学習を取り入れたシステム」の開発・運用を円滑に行うことにフォーカスしているため、そもそもの意味合いが異なります。

### DataOpsとの違い
**DataOpsとは、データの管理者と利用者が円滑にコミュニケーションを取り、効果的にビジネスにデータを活用するための手法や概念**を表します。

近年、ビジネスで利用されるデータの増加・複雑化により、効果的なデータの利用が難しくなっています。それを解決する方法として、DataOpsが提案されました。例として、データ管理のインフラストラクチャの構築などが挙げられます。

DataOpsもMLOpsと同様に、DevOpsから派生した考え方です。

MLOps/AIOps/DataOpsのそれぞれの手法は、「何を対象とするか？（適用対象）」と「全体の作業のうち、どこを対象とするか？（適用範囲）」によって以下のように分けられます。

MLOps/AIOps/DataOpsの違い
| **手法** | MLOps | AIOps | DataOps |
| --- |  --- | --- | --- | 
| **適用対象** | 機械学習システム | ITシステム | データ |
| **適用範囲** |	開発・運用 |	運用 | 作成・利用・管理 |
 

## MLOpsの特徴
MLOpsは、DevOpsをベースとしながらも、**機械学習ならではの開発・運用における問題に対処する点**が特徴です。

機械学習を取り入れたシステムは主に以下の要素で構成されていますが、構成要素が多く、管理や検証が難しいことが課題でした。

- ソースコード
- 学習・検証データ
- モデル
- パラメータ

複雑な構成要素を効率的に管理するための仕組み（運用のパターン）を構築してこの課題を解決できる点が、MLOpsの特徴です。

また、従来のDevOpsにないMLOpsの特徴として、運用開始後も定期的にモデルの学習を行う継続的トレーニングがあります。これは、学習パイプラインを構築し、学習の自動化の仕組みを作ることで実現します。

 

## MLOpsの必要性
ここでは、機械学習プロジェクトにおいてMLOpsが必要な理由を2つ紹介します。

### 機械学習モデルは運用時の環境変化にともない劣化する可能性があるため
運用されている機械学習モデルは、開発時と同じ性能を示すとは限りません。運用開始当初は高いパフォーマンスを示したモデルでも、運用時に入力されるデータの分布が変化すること（データドリフト）で、時間の経過とともにパフォーマンスが落ちる可能性があります。

そのため、運用時の環境変化を検知し、モデルの更新を自動的に行うような仕組みが必要です。したがって、機械学習プロジェクトにおいて**機械学習チーム、開発チーム、運用チームが連携し、継続的にフィードバックや改善を行うことが求められます**。

### さまざまな役割の技術者がシステムの開発・運用に関わるため
通常、自社で機械学習モデルを作るためには、多数かつ多様な技術者がプロジェクトメンバーとして関わります。データの分析・加工やモデリングなどはデータサイエンティストが行います。学習したモデルを動かすための実行環境やアプリケーションの準備は、インフラやサーバサイド・フロントエンドのエンジニアが行います。

このように、担当が異なる多数の技術者が共同作業するため、チーム間での連携が上手くいかなかったり対立しやすくなったりします。そのため、各チームの開発工程と運用工程をパイプライン化することで、**データ処理やコミュニケーションを円滑化したり、デプロイなどの自動化により生産性向上を実現**するという「MLOps」の考え方が重要になるのです。

 

## MLOpsのメリット
MLOpsを実践することで、**機械学習を取り入れたシステムを効率的に開発・運用できる**メリットがあります。モデルのパフォーマンス監視や更新（適切なタイミングでの再学習など）を自動化することで、多くのモデルを迅速にデプロイし、より短い時間で機械学習を取り入れたシステムの実現が可能です。

また、**人的コストの削減や、短い周期でシステムのアップデートが可能になるため、サービスレベルの向上にもつながります**。

 

## MLOpsのプロセス
データ抽出から機械学習モデルの開発・運用までのプロセスは基本的に以下の通りです。

1. データ抽出
1. データ分析
1. データの準備（特徴量エンジニアリングなど）
1. モデルの訓練
1. モデルの評価
1. モデルの検証
1. モデルの提供
1. モデルのモニタリング

1から6が開発段階に、7と8が運用段階に相当します。

![about-mlops_01-1200x485.png.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/889700/cbfd907a-38f8-b04b-7600-b58be5bf1851.png)

### Googleが提示するMLOpsの3つのレベル
GoogleはMLOpsの成熟度として、上記プロセスの各手順がどれだけ自動化されているかを3つのレベルに分けています。

- レベル0：手動プロセス
各手順が手動で実行され、手順間の移行も手動で行う状態

- レベル1：MLパイプラインの自動化
開発環境、本番環境のMLパイプラインの自動化により、モデルの継続的トレーニング（CT）を実現した状態

- レベル2：CI/CDパイプラインの自動化
レベル1のCTに加えて、パイプラインのビルド、テスト、デプロイを自動化すること（自動的なCI/CDの実現）で、より迅速にパイプラインを更新できる状態
※CI/CD…継続的インテグレーション（CI）と継続的デリバリー（CD）をまとめた表現


参考：Google「[MLOps: 機械学習における継続的デリバリーと自動化のパイプライン | Cloud アーキテクチャ センター](https://cloud.google.com/architecture/mlops-continuous-delivery-and-automation-pipelines-in-machine-learning?hl=ja#mlops_level_2_cicd_pipeline_automation)」

 

## MLOpsに使えるツール・フレームワーク
ここでは、MLOpsで活用できる代表的なツール・フレームワークをいくつか紹介します。

### クラウドベンダが提供するサービス
クラウドベンダ（クラウドサービスを提供する事業者）が提供する、MLOpsに使えるサービスとして、以下の4つが挙げられます。

| サービス名 | 提供会社 | 
| --- | --- |
| [Google Vertex AI](https://cloud.google.com/vertex-ai?hl=ja)	| Google |
[Amazon SageMaker](https://aws.amazon.com/jp/sagemaker/) | Amazon |
| [Azure Machine Learning](https://azure.microsoft.com/ja-jp/products/machine-learning) |	Microsoft |
| [MLOps](https://www.datarobot.com/jp/platform/mlops/)	| DataRobot |

これらは、データの収集からモデルの構築、モニタリングまでを統合されたプラットフォームで行えるサービスです。

適用したいタスクやデータなどを設定すれば、コードを書く量が少なく済むため、少ない工数でモデルの開発・運用が行えるメリットがあります。ただし、クラウドサービスとして利用するため利用料金が発生する点には注意が必要です。

### エンタープライズと個人利用の両方をサポートしているMLベストプラクティスツール
**Weights & Biases（wandb）**
[Weights & Biases（wandb）](https://www.wandb.jp/)とは、開発者がより優れたモデルを迅速に構築できる機械学習プラットフォームです。機械学習プロジェクトは試行錯誤が伴うため、データや使用環境、使用するコードの管理（実験管理）が複雑になり、再現性が担保できなくなる問題が生じます。Weights & Biasesはそれらに対応するML開発の新たなベストプラクティスです。

主に、以下のようなことができます。

- 機械学習の実験管理
- モデル・データセットのバージョン管理
- プロンプト・画像・音声・動画・3Dデータの可視化
- レポート機能
- CICDを実現する自動実行プロセスの構築
- モデルのモニタリング

OpenAIやNVIDIAも実験管理として活用しており、世界のML開発者に信用されている実績があります。

個人使用の無料版から、マルチテナントSaaSからオンプレ、VPC、シングルテナントまで対応するEnterprise提供まで行っています。

### OSSとして提供されているツール
以下のツールはOSS（オープンソースソフトウェア）として提供されているため、誰でも簡単に利用できます。

- [MLflow](https://mlflow.org/)
- [Metaflow](https://metaflow.org/)
- [Tensorflow Extended（TFX）](https://www.tensorflow.org/tfx?hl=ja)

Pythonの環境に導入する場合は、pip（Pythonで書かれたパッケージソフトウェアをインストール・管理するためのパッケージ管理システム）などを利用して無料でインストールできます。しかし、クラウドサービスと比較すると、書くべきコードの量が多くなるデメリットには注意が必要です。

MLflowを使うと、パラメータや評価指標をダッシュボードで確認するなど、実験管理を行えます。Metaflowを使うと、機械学習のワークフローをパイプラインとしてまとめたり、パイプラインの途中の状態を確認したり、その状態から再実行したりできます。
Tensorflow ExtendedもMetaflowのようにパイプラインを作成できます。Tensorflowがベースになっているのが特徴です。

 

## MLOpsの活用事例
実際にMLOpsを活用している企業の事例を3つ紹介します。

### 事例1. NetflixにおけるJupyter Notebook利用基盤
インタラクティブにPythonのコードを実行できるツールであるJupyter Notebookは、その使い勝手のよさから、新しいデータの分析や、新しいモデルの学習・検証といった実験をする際によく利用されます。
しかし、Jupyter Notebookはセルの実行順序などにより結果が変わる可能性があるため、再現性の難しさがあります。

Netflixでは、クラウド環境や自社製のツールを用いることで、再現性が保たれ、他の技術者にも共有可能なJupyter Notebookの利用基盤を構築しました。
このような基盤を整備することで、新しいデータの分析や新しいモデルの学習・検証といった実験を効率的に行えるようになりました。
MLOpsの一環として、効率的なモデルの更新が可能になり、ビジネス上の価値の向上につながっています。

[Netflix：Beyond Interactive: Notebook Innovation at Netflix](https://netflixtechblog.com/notebook-innovation-591ee3221233)

### 事例2. ヤマト運輸の経営リソースの最適配置におけるMLOps導入
ヤマト運輸の配送センターなどの拠点では、業務量を予測するために経営リソースの最適配置に機械学習を利用していました。しかし、機械学習による貨物量の予測にはモデルの開発・運用に時間がかかるという課題があったのです。

そこで、MLOpsを導入することで、モデルの継続的な改良が効率的にできるようになり、以下2つの成果が得られました。
- MLOpsによる日々の機械学習プロセスの自動化の定着とそれによる高速化、運用工数の大幅削減
- 機械学習プロセスの高速化による、精度改善の加速

[株式会社エクサウィザーズ：ヤマト運輸、MLOpsで経営リソースの最適配置を実現「お手本がないものを1から作り上げ、機械学習モデルの運用安定と高速化を勝ち取った」](https://exawizards.com/)

### 事例3. デンソーにおける高度運転支援システムの機械学習モデル開発の工数削減
株式会社デンソーでは、運転支援システムのための画像認識の機械学習モデル開発を行っています。
機械学習モデル開発において、AWSのAmazon SageMakerなどのサービスを利用することで、データ取得、モデル開発、学習、評価のサイクルを高速に回し、機械学習モデルの完成度を高められたと報告しています。

また、データエンジニアのデータ管理工数を従来比の55%まで、機械学習（ML）エンジニアの繰り返し学習の作業工数を66%まで削減しました。

[株式会社デンソー：高度運転支援向け画像認識のためのMachine Learning Production Line](https://d1.awsstatic.com/events/jp/2021/summit-online/CUS-17_AWS_Summit_Online_2021_DENSO.pdf)
[AWS 導入事例：株式会社デンソー](https://aws.amazon.com/jp/solutions/case-studies/denso/)

 

## MLOpsの課題
MLOpsには課題も多くあります。下記で紹介する3つの課題を把握した上で、導入の検討を進めていきましょう。

### 時間と人的コストがかかる
機械学習モデルの開発・運用には、データ分析、モデル開発、モデルのデプロイ、管理や監視など、複雑な作業が多いため、時間と人的コストがかかります。
ツールを開発する際の高額な費用や多くの技術者、AIの運用知識をもつエンジニアが必要です。運用するための環境を整えるだけでもかなりの時間とコストを要することになります。

### ツールの選定が難しい
機械学習基盤を整備するためには、「MLOpsに使えるツール・フレームワーク」で紹介した通りさまざまなツールがあります。そのため、ツールの選定が難しい点が課題の一つです。
ビジネス上で実現したいことのために、各ツールでできること、その他のソフトウェアやプラットフォームとの互換性などを考慮して、プロジェクトに合ったツールを選ぶ必要があります。

### 開発側と運用側の密な連携が必要
MLOpsは、機械学習モデルの開発・運用のサイクルを円滑に回すことを目的としています。開発側と運用側が縦割りになっていて連携が取りづらい場合、円滑なサイクルの妨げになります。
そのため、開発側と運用側が密に連携を取れるような組織体制が必要です。

 

## MLOpsの学習方法
最後に、MLOpsを効果的に学習する方法について紹介します。

### 勉強会
**(1) MLOps勉強会**
IT関連の勉強会などのプラットフォームである[connpass](https://mlops.connpass.com/)では、MLOps勉強会を開催しているグループがあります。月に1回程度MLOps勉強会が開かれており、MLOpsに取り組んでいる事例の講演など、MLOpsに関する最先端の情報をキャッチアップできます。

**(2) 機械学習工学研究会（MLSE）**
同じくconnpasでは[機械学習工学研究会（MLSE）](https://mlxse.connpass.com/)が機械学習システムの開発・テストなど幅広いトピックに関する勉強会などを開催しています。

### 参考書
**[1]『[澁井雄介「AIエンジニアのための機械学習システムデザインパターン」翔泳社,2021](https://amzn.to/3Z1ceuA)』**
機械学習システムを構築するためのデザインパターンを紹介した書籍です。
具体的なシステムのアーキテクチャが数多く紹介されており、それぞれのメリットやデメリットも紹介されています。

**[2]『[ Valliappa Lakshmanan,Sara Robinson,Michael Munn 著,鷲崎 弘宜,竹内 広宜,名取 直毅,吉岡 信和 訳「機械学習デザインパターン―データ準備、モデル構築、MLOpsの実践上の問題と解決」オライリージャパン,2021](https://amzn.to/3XTh1g9)』**
機械学習全般のデザインパターンに関する書籍です。開発・運用だけでなくデータの表現方法や問題の捉え方、訓練方法といった幅広いパターンについて紹介されています。

**[3]『[Hannes Hapke,Catherine Nelson 著,中山 光樹 訳「入門 機械学習パイプライン」オライリージャパン,2021](https://amzn.to/3ECizoe)』**
TensorFlowやTFX（TensorFlow Extended）を使用した機械学習パイプラインの構築方法についての書籍です。TensorFlowやTFXの機能についても詳しく解説されています。

### 講座
スキルアップAIでは円滑なMLOpsを実現するための基礎知識を習得するための[MLOps講座](https://www.skillupai.com/mlops/)を開講しています。

![MLOps-900x473.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/889700/eaf3618d-b0b4-759e-abf7-838aad35c256.jpeg)

講座では、MLOpsを実現するための機械学習モデルの開発・運用のパターンや品質管理などを学べます。また、ハンズオンとして実運用でもよく用いられるDockerやKubernetesなどを用いてパターンを実装することで、座学で学んだ内容を実装する力も習得可能です。

講座の一部をトライアル版として無料で視聴できます。講座の雰囲気やわかりやすさを体験できますので、ぜひお試しください。

 

## まとめ
この記事では、以下の内容について紹介しました。

- MLOpsの必要性
- DevOpsなど関連手法との違い
- 有用なツール・フレームワーク
- 導入課題
- 学習方法

近年、Pythonなどのフレームワークの発達により機械学習モデルを作ること自体は非常に簡単になりました。しかし、機械学習モデルをシステムに組み込み、効率的に開発・運用することはまだ簡単ではありません。

MLOpsを導入することで、機械学習を取り入れたサービスの品質や開発・運用の効率が向上し、より迅速にビジネス上の成果を得られます。
ぜひ本記事を参考にしてMLOpsについての知識を深め、実運用に活かしてください。

☆☆☆
スキルアップAIのメールマガジンでは会社のお知らせや講座に関するお得な情報を配信しています。配信を希望される方は[こちら](https://share.hsforms.com/1_XlReV-4Te-zcxCl9lhffA2mtef)

また、SNSでも様々なコンテンツをお届けしています。興味を持った方は是非チェックしてください♪
Twitterは[こちら](https://twitter.com/SkillupAi)
Facebookは[こちら](https://www.facebook.com/skillupai)
LinkedInは[こちら](https://www.linkedin.com/company/skillup-ai)
スキルアップAI公式YouTube AIビジネスチャンネルは[こちら](https://www.youtube.com/AIBusinessChannel)