DXを推進するAIポータルメディア「AIsmiley」| AI製品・サービスの比較・検索サイト
お急ぎの方は、まずお電話で 03-6452-4750
MAIL
お急ぎの方は、まずお電話で 03-6452-4750 10:00〜18:00 年末年始除く

MLOpsとは?DevOpsとの違いや機械学習プロジェクトに求められる理由

最終更新日:2022/05/06

MLOpsとDevOpsの違い

機械学習プロジェクトの現場で、機械学習チーム、開発チーム、運用チームの開発工程と運用工程をパイプライン化し、データ処理やコミュニケーションを円滑にする「MLOps(エムエルオプス)」という考え方が広まってきました。そこで本記事では、MLOpsとは何か、AlOpsとの違い、MLOpsの成熟度合いの判定方法、MLOpsに用いるツールなどを解説します。

■DevOpsとは

MLOpsの解説に移る前に、まず「DevOps(デブオプス)」という考え方を説明します。DevOpsはMLOpsの考え方の元になっているため、DevOpsの概念や手法を知っておけば、MLOpsをスムーズに理解できるでしょう。

DevOpsとは、開発工程と運用工程をパイプライン化してデータ処理やコミュニケーションを円滑にするとともに、バージョン管理やデプロイなどの自動化によって生産性を向上させる考え方です。DevOpsは開発(Development)と運用(Operation)を組み合わせた造語であり、まさに開発チームと運用チームが二人三脚で活動するイメージを持っています。

プロジェクトの現場にDevOpsを取り入れる目的は、主に以下の2つです。

  1. 自社が提供するソフトウエア、システムの品質、価値を高める
  2. 自社商品をエンドユーザーに確実かつタイムリーに届ける

ただしDevOpsの定義は厳密に決まっていないため、導入にあたっては意思統一のステップが必要となります。

●DevOpsが必要とされる背景

DevOpsの考え方が広まってきたのは、プロジェクトの過程において、開発チームと運用チームの対立が出やすくなってきたからです。具体的には、開発チームが高スペックや「新機能などの技術面を追求したい」のに対して、運用チームは「運用管理のしやすさ」や「安定稼働を優先する」などの理由によって対立します。

この対立が顕著になってきた背景には、情報システムの肥大化や複雑化、専門領域の属人化などの要因があります。その結果、各部門はそれぞれの目標達成を過度に優先しやすくなり、他部門との垣根が生まれやすくなりました。

この状況により、顧客に喜ばれる商品を提供するミッションは同じであるはずなのに、それぞれの手段の違いから互いの足をひっぱってしまう状態が生まれてしまいます。そこでDevOpsを導入して、開発から運用を含めた範囲でPDCAサイクルを回すことを目指す企業が増えてきました。

●DevOpsが解決する課題例

ではDevOpsを導入することで、企業はどのような課題を解決できるのでしょうか。大きく分類すると以下の3項目があります。

  • 開発チームと運用チームにおける一貫性のない環境

インフラ構築ツールなどを用いるため、開発と運用で統一した環境を構築できるようになります。それによって開発から運用までがシームレスにつながり、無駄がなくなっていくのです。またフィードバックも柔軟にできるようになり、実用レベルに至るまでの期間を短縮できます。

  • 手動業務によるバラつき

バージョン管理やビルド、デプロイの自動化によって、手動作業によるバラつきを軽減できます。例えばAI開発ではデータサイエンティストやプログラマー、運用担当者など、バックグラウンドの異なる人材が集まるため、同じルール、手順で作業することが重要です。

  • 開発チームと運用チームのコミュニケーション不足

DevOpsの導入時には、通常、ダッシュボードの共有ツールやチャットツールを導入します。進捗状況の可視化や、手軽でタイムリーな報連相の手段などが整備されることで、コミュニケーションが活性化されます。さらに他部門への理解が深まることで、適切な配慮、協力もできるようになります。

■MLOpsとは

MLOpsとは、機械学習チームと開発チーム、運用チームの開発工程と運用工程をパイプライン化してデータ処理やコミュニケーションを円滑にするとともに、バージョン管理やデプロイなどの自動化によって生産性を向上させる考え方です。MLOpsも造語であり、機械学習(Machine Learning)の頭文字「ML」と、「DevOps」をかけ合わせてつくられました。

考え方や目的、導入によって得られる効果は、基本的にDevOpsと同じです。DevOpsから発展した考え方、あるいはAIの機械学習プロジェクトに特化したフレームワークと捉えると良いでしょう。

ただし実際に現場に導入する場合、当然ながらDevOspと全く同じというわけにはいかず、連携の仕方や自動化の範囲、必要なツールの選定などを、自社の体制に合わせてカスタマイズすることになります。

●AIOpsとの違い

AIOps(エーアイオプス)とは、ITの運営過程の一部にAIを適用することで、業務負担の軽減や、コスト削減、ビジネススピードの向上などを図る施策です。AIOpsは「Algorithmic IT Operations」または「Artificial Intelligence for IT Operations」の略で、直訳すると「人工知能によるIT運用」となります。

このようにMLOpsとAIOpsは意味が違う用語です。ただし自社商品の品質向上やエンドユーザーへの迅速なリリースという点で重なる部分があります。しかしAlOpsには、MLOpsの重要な考え方であるチーム間の連携が含まれないため、区別して使い分けましょう。

■機械学習プロジェクトにおいてMLOpsが必要な理由

機械学習プロジェクトにおいて、特にMLOpsという用語ができるほど、DevOpsの考え方が重視される理由は、予測モデルの開発、運用に特有な次の2点があるからです。

  • 予測モデルの品質を保ちにくい

一つ目は、時間経過や状況変化によって、予測モデルの品質を保ちにくいことが関係しています。例えば消費者トレンドの予測モデルは、最新のデータをもとに定期的にチューニングする必要があるでしょう。

つまり機械学習プロジェクトは「商品をリリースして終わり」ではなく、継続的なフィードバックと改善が欠かせません。したがって機械学習チームと開発チーム、運用チームを緊密に結びつけるプラットフォーム、パイプラインが必要となります。

  • プロジェクトメンバーが多数かつ多様であるから

自社でAIを開発する際には、通常、多数の関係者が関わるため、組織をチームに分けることになります。そのため構造的に対立が生じやすくなります。さらにデータアナリストやデータサイエンティスト、プログラマー、運用管理のSEなど、さまざまな専門家が共同作業するため、チーム内でも壁が生じやすくなります。そうした特徴があるからこそ、MLOpsの施策が重要性を持つようになります。

■機械学習プロジェクトの手順

MLOpsを自社に適した形で取り入れるには、以下の機械学習プロジェクトの手順を把握しておくことが大切です。

  1. データ抽出:データソースから関連データを抽出、統合
  2. データ分析:利用できるデータの特性を分析
  3. データ準備:データを整理、加工してトレーニング用、テストセット用などに分類
  4. モデルのトレーニング:ML モデルをトレーニングし、最高性能が出たモデルを選ぶ
  5. モデルの評価:モデルの品質をテストセット用データを用いて評価
  6. モデルの検証:事前に設定した目標より優れているか検証する
  7. モデルの提供:ターゲット環境にデプロイ
  8. モデルのモニタリング:予測性能をモニタリング

(参照:MLOps: 機械学習における継続的デリバリーと自動化のパイプライン

これらのステップには、機械学習チームの予測モデルの作成や改善、開発チームの自社ソリューションへの統合などが関わってきます。さらにターゲット環境にデプロイ後は、運用チームがログ収集、モニタリングにあたるため、これらの効率性も考えなければなりません。

■Googleが定義するMLOpsレベル

MLOpsの成熟度合いを測るモデルは、GoogleやMicrosoftなどから幾つか提案されています。ここではGoogleが定義している「3段階のMLOpsレベル」の概要を紹介します。

(参照:MLOps: 機械学習における継続的デリバリーと自動化のパイプライン

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

多くのチームに最新のモデルを構築できるエンジニアがいるものの、MLモデルの構築およびデプロイのレベルが、完全に手動で実施されているレベルです。Googleでは「基本レベル」と呼び、成熟度が最も低い状態に位置付けられています。

具体的には、以下のような特徴があります。

  • データ抽出やデータ分析など、すべてのステップが手動
  • 機械学習チームと運用チームが分離している
  • 頻繁なチューニングとリリースには対応できない
  • MLシステムの一部しかデプロイできない
  • 本稼働環境でのアクションを追跡、記録できない

したがってMLOps レベル 0は、プロジェクトが小規模で、予測モデルが変更されにくいプロジェクトで一般的に適用されます。

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

機械学習プロジェクトの各ステップの移行が、パイプラインの整備によって自動化できている状態です。このため予測モデルの変更があった際は、MLOps レベル 0より迅速かつ効率的に対応できます。

具体的には、以下のような特徴があります。

  • ML実験が迅速に行える
  • 機械学習チーム、開発チームと運用チームが連携している
  • 予測モデルは本番環境で自動的にトレーニングできる
  • 継続的なチューニングとリリースに対応できる

MLOps レベル 1を実現すると、MLパイプラインの自動化によって継続的な学習とバージョンアップが見込めます。

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

自動化されたCI/CDシステムを備えています。Clとはコードとコンポーネントのテスト、検証のことで、MLOpsではモデルのテストの工程です。またCDはソフトウエアやシステムのデプロイのことで、MLOpsではモデル予測の自動的なデプロイにあたります。

具体的には、以下のような特徴があります。

  • 開発とテストの環境が統合されている
  • 特定のトリガーによって、ビルド、テスト、パッケージ化、デプロイが自動実行できる
  • パイプラインの継続的なインテグレーション、デリバリーが可能
  • スケジュールにもとづいて、自動的に本番環境でパイプラインが自動的に実行される
  • 本番環境でデータ収集、モニタリングが可能

MLOps レベル 2を実現すると、パイプライン自体を更新できるため、高品質の商品を開発、運用する環境が整っている状態です。

■機械学習プロジェクトで発生しやすい課題

機械学習プロジェクトでは、以下の2つの課題が発生しやすくなります。

  • スピーディーに実験できない

この問題の最も単純な理由は、「実験用マシンが1台しかない」「データが十分に集められない」などのハード・ソフトのリソース不足です。機械学習プロジェクトではCPUやメモリ、ストレージなどの計算リソースと、膨大な学習用、評価用データが必要になります。

しかしこれらを人が管理したり操作したりする手間によって、スピーディーな実験が阻まれているケースが多いのも事実です。この問題は後ほど紹介するツール導入によって、大幅に改善できる可能性があります。

  • 実用レベルに達するまでに時間がかかる

AI技術を適用する対象は複雑・曖昧であることが多く、開発環境で実証できていても、本番環境で問題が出るケースが少なくありません。したがって運用チームから開発チーム、あるいは機械学習チームに工程が引き戻されることもしばしば発生します。ここで問題になりやすいのがプロセス間・チーム間の対立で、進捗を遅らせる原因となります。

これら2つの問題に対してMLOpsの導入は有効です。MLOpsは高品質の商品を速やかにリリースすること、そして各チームの対立を軽減することに効果が期待できます。

■機械学習プロジェクトの課題を解決するMLOpsツール

MLOps環境を整えるには、各種のITツール導入が欠かせません。ここでは特に重要な「機械学習プラットフォーム(AIプラットフォーム)」「実験管理ツール」「パイプライン管理ツール」の3つを取り上げ、概要やメリットなどを紹介します。

●機械学習プラットフォーム

機械学習プラットフォームとは、AIプラットフォームとも呼ばれ、開発に必要なソフトウエアや通信環境、ストレージなどを備えている基盤のことです。大きく分けると、以下の2種類があります。

  • PaaS系の総合型AIプラットフォーム

開発に必要なハードとソフト、データがすべて用意されており、分野を問わずAI開発できる

  • 特化型AIプラットフォーム

特定の目的に特化したプラットフォーム(医療分野の画像診断、物流業界の在庫仕分けなど)

いずれの場合も開発効率を高める機能があるため、テストやデプロイなどの負担を減らせます。またパイプラインを使うことで、実験環境から本番環境にスムーズにつなげられます。あらかじめ組み込まれている機械学習のモデルを応用すれば、開発から運用までの期間も短縮可能です。

  • 適用できるスコープ:モデル学習、モデル評価、モデルデプロイ
  • 代表的なツール:Microsoft Azure(Azure Machine Learning)、IBM Watson、Amazon Web Services

AIプラットフォームとは?種類やメリット、活用事例を紹介

●実験管理ツール

実験管理ツールとは、実行環境、モデル、パラメータ、評価指標などを管理するためのツールです。例えばExcelでコードのバージョンやログを管理している場合は、実験管理ツールで作業の負荷を減らせるでしょう。

また多くの人が関わる機械学習のプロジェクトでは、メンバーによって保存方法や更新頻度などにバラつきがあるものですが、ツールを使うことでルールや統一性を保つことができ、情報共有もスムーズになります。

  • 適用できるスコープ:モデル学習、モデル評価
  • 代表的なツール:MLFlow、Neptune、Weights and Biases

●パイプライン管理ツール

パイプライン管理ツールとはデータパイプライン、機械学習パイプラインを構築、管理するツールで、おおまかには処理の流れを組めるワークフロー構築ツールと同じです。

パイプライン管理ツールを導入すると「データ処理の依存関係がわからない」「自作関数、の利用方法がわからない」といった、機械プロジェクトでありがちなエンジニアの負担を軽減してくれます。

例えば「データの読み込み→トレーニング用データでの学習→テスト用データでの評価」の一連のパイプラインを作成して自動化すれば、データサイエンティストはモデルやロジックの構築に集中しやすくなるでしょう。

  • 適用できるスコープ:データ前処理、モデル学習、モデル評価
  • 代表的なツール:Airflow、digdag、Luigi

■物流業界におけるMLOps環境の構築事例

ヤマト運輸は、約6,500店の宅急便センターの数カ月先の業務量を予測する機械学習モデルを運用・更新するために、MLOps環境を構築しました。目的は経営資源を最適配分することと、コストの適正化です。

MLOps導入以前は「月次ごとに実施するデータ抽出からモデル評価に至るまでの一連の流れが手動実行であったため作業負荷が大きい」という課題がありました。運用チームへの報告が遅れるため、実運用スタートまでの時間的余裕もなくなり、モデルの予測精度向上が十分にできない状況でした。

そこでヤマト運輸はソースコードのバージョン管理、設定ファイルの書き換え、プログラムの実行などを手作業から自動処理に変更します。結果として、機械学習モデルの運用を安定でき、継続的なモデル開発と精度向上が可能となりました。すでに複数ベンダーが共同利用、並列開発できる環境も整えており、さらなる生産性向上を目指すということです。

EC市場の拡大、ドライバー不足、従業員への負荷増大など、物流業界が抱える課題解決にAI活用は広がっています。さらに詳しい内容を知りたい方は以下の記事もご覧ください。

物流業界が抱える問題を解決に導くAIの活用法とは?

■MLOpsまとめ|AIモデルもノンプログラミングで作成可能

MLOpsは機械学習チーム、開発チーム、運用チームを有機的に連携させ、手間やバラつきが生じる作業を自動化することで、継続的な開発、運用のサイクルを構築する考え方です。MLOpsを導入することで、機械学習プロジェクトで課題となりやすい本番運用までの期間短縮や、チーム間の対立の解消に効果があります。

MLOps環境を整備して成果を出すためには、自社に合った機械学習プラットフォームや、実験管理ツールの導入が欠かせません。各ベンダーから特色あるツールが提供されているため、この機会に検討してみてはいかがでしょうか。プログラミング不要でモデル構築できるプラットフォームも提供されており、一から自社開発するよりも大幅な効率化が可能です。

比較検討をスムーズに進めるために、AIモデル作成サービスを一括資料請求できるAIsmileyを是非ご利用ください。また、G検定保有コンサルタントによる無料相談も承っております。無料相談も合わせてが活用ください。

コンサルタントにAI活用について無料相談する

AIsmiley編集部

株式会社アイスマイリーが運営するAIポータルメディア「AIsmiley」は、AIの専門家によるコンテンツ配信とプロダクト紹介を行うWebメディアです。AI資格を保有した編集部がDX推進の事例や人工知能ソリューションの活用方法、ニュース、トレンド情報を発信しています。

・Facebookでも発信しています
@AIsmiley.inc
・Twitterもフォローください
@AIsmiley_inc

今注目のカテゴリー

チャットボット

画像認識・画像解析

需要予測

OCR・文字認識

チャットボット

画像認識・画像解析

需要予測

OCR・文字認識

AI活用のご相談したい企業様はこちら

03-6452-4750

AI製品・ソリューションの掲載を
希望される企業様はこちら