メニュー
SaaSpresto株式会社はLogicMonitorの国内販売代理店です

MLOpsとは?プロセス自動化とモニタリングがポイント

ビジネスにおけるAI活用も普及し、機械学習モデルの開発と運用に取り組む企業も増えています。そのような中で注目されている概念がMLOpsです。MLOpsは、機械学習モデルの開発と運用のライフサイクルを管理し、高度化していくための取り組みです。この記事では、MLOpsについて詳しくご紹介します。

目次

MLOpsとは?

MLOpsとは、機械学習(Machine Learning)と運用(Operation)を組み合わせた造語であり、機械学習モデルの開発と運用における一連の流れを効率的に実施するための手法を指す言葉です。類似する言葉として「DevOps」という言葉を聞いたことがある方もいるかもしれません。MLOpsはDevOpsの機械学習モデル構築版だと捉えると分かりやすいでしょう。

MLOpsの定義

2023年10月の現時点でMLOpsの明確な定義は定まっていないものの、各事業者が独自に公表している定義が存在します。たとえば、Google社ではMLOpsを以下のように定義しています。

MLOps は、ML システム開発(Dev)と ML システム オペレーション(Ops)の統合を目的とする ML エンジニアリングの文化と手法です。MLOps を実践すると、統合、テスト、リリース、デプロイ、インフラストラクチャ管理など、ML システム構築のすべてのステップで自動化とモニタリングを推進できます。

引用:MLOps: 機械学習における継続的デリバリーと自動化のパイプライン
https://cloud.google.com/architecture/mlops-continuous-delivery-and-automation-pipelines-in-machine-learning?hl=ja

Google以外にも、AmazonやMicrosoftといった大手事業者もMLOpsについて述べていますが、各社の定義において共通するポイントは「DevOpsの原則と実践に基づき、機械学習モデル(MLシステム)の構築を実現する手法」であるという点です。上述のとおり、MLOpsはソフトウェアにおいて開発と運用の効率化手法として知られるDevOpsの機械学習モデル構築版と理解できます。

MLOpsの必要性

なぜ、機械学習モデルの開発・運用においてMLOpsの考え方が必要なのでしょうか。

機械学習を用いない一般的なシステムにおいても、当然、開発と運用の双方を意識した取り組みは必要ですが、機械学習モデルを利用したシステムを実際の業務やサービスに利用する場合、運用データを活用したモデルの性能向上や、開発から運用へのスムーズな移行といった観点がより重要となってきます。なぜなら、データの蓄積や再学習など、一般的なシステム開発と異なる観点が多いからです。

そこで、DevOpsにて定義される取り組みだけではなく、機械学習モデルの開発・運用において必要な取り組みとして、DevOpsを発展させたMLOpsという考え方が生まれたと解釈できます。

MLOpsとAIOps

MLOpsと類似する言葉に、AIOpsというものがあります。AIOpsは2016年に大手ITリサーチ会社であるGartner社が提唱した造語で、「Artificial Intelligence for IT Operations」の略称です。

AIOpsは、主に運用業務を対象に、AI技術の活用により高度で効率的なシステムの運用管理を実現していくための手法です。よって、MLOpsとAIOpsではターゲット領域が異なりますが、MLOpsを進めていく際に、特に運用領域において効率化を実現する手法として、AIOpsの概念が参考となるでしょう。

AIOpsについては以下の記事で詳しく解説しているため、併せてご覧ください。

あわせて読みたい
AIOpsで変化するシステム運用とは?メリットや機能を徹底解説 クラウドの普及で監視対象となるITリソースや情報資産が日々増え続ける中、大量のデータの中から、各ITリソース間の相互関係やシステム間の複雑な依存関係を踏まえて、...

MLOpsのプロセス

以下では、機械学習を用いたモデル開発および運用の流れを紹介します。MLOpsにおいては、これら開発・運用の一連の流れをいかにして効率化していくかがポイントとなります。

開発サイクル

データ収集・蓄積

機械学習モデルの開発におけるスタート地点は、データの収集・蓄積です。データがなければ機械学習モデルの開発は不可能です。

データの蓄積においては、共有性や再現性といった観点が重要となります。様々なモデルから共通的に利用可能なデータ整備を実現しつつ、運用段階で収集した新たなデータを同様の形式で蓄積できるように設計していきます。

データ準備

機械学習モデルの開発においては、そのままデータを利用できるケースばかりではありません。データのクレンジングや構造化などの処理が必要です。

これらの処理には人手がかかるため、作業内容によって自動化することが望ましいといえます。型・桁の調整や重複排除、集計処理など、自動化できる要素を見極めた設計が重要です。

また、機械学習モデルにてデータを利用する際には、特徴量の定義や正解データを作成するためのアノテーション作業なども必要となります。

モデル設計・学習

モデルの設計とトレーニングを行います。様々なアルゴリズムを実行し、データを投入することで性能の比較を行います。また、チューニング作業としてパラメーター調整を行い、できるだけ高い精度で分類や回帰分析などを実現できるようにします。

モデルの評価・テスト

実際に業務で利用する前に、構築した機械学習モデルの評価を行います。実利用できる水準の性能が発揮できるようであれば、実際の業務やサービスに適用します。また、機械学習モデルがアプリケーションの一部として動作する場合は、アプリケーション全体として適切に動作するか、テストを実施する必要もあるでしょう。このあたりの評価やテストについてもMLOpsによる自動化の検討範疇となります。

運用サイクル

モデル提供

構築した機械学習モデルを含むシステムを実際の業務・サービスで利用できるように、リリース作業を行います。一般的にはこのフェーズから運用担当者へ引き継がれることが多くなります。

一般的なシステムと同様に、切り替えにあたっての業務影響や現行システムの停止期間などを整理します。想定通りに作業が進まなければ、切り戻しの作業を行います。

モニタリング

リリースした機械学習モデルが適切に動作しているかをモニタリングします。モニタリングにおいては、機械学習モデルが想定通りの精度を実現できているかや、システム全体として適切なサービスを提供できているかといった観点でのチェックが必要です。特に後者については、運用監視ツールを利用して可視化を行うことが有効となります。

ケースにもよりますが、リリース後は本番環境で得られたデータを収集し、機械学習モデルの精度改善に利用することもできます。上述したデータ収集・蓄積のフローに乗せやすいように、自動化を意識したデータ収集を行っていきます。

再学習

モニタリングを通して本番環境での機械学習モデルの性能をチェックし、精度が不十分であればモデルの修正や再学習などを行います。

本番環境で収集したデータがあれば、それらのデータをもとに再学習を行うことで精度改善を実現できる可能性があります。再学習やモデルのパラメーター調整を実施した後は、再度リリース(モデル提供)のフローに移ることとなります。

これら一連の開発・運用サイクルをできるだけ効率的に回せるように、自動化を進めていくのがMLOpsの考え方です。

MLOpsの成熟度モデル

それでは、具体的にどのようにMLOpsを実現していくべきなのでしょうか。目標として参考になるのが、GoogleやAmazonなど各社が提供しているMLOpsの成熟度モデルです。ここではGoogle社の定義に沿って、3段階でMLOpsの成熟度を評価する方法をご紹介します。

※参考:MLOps: 機械学習における継続的デリバリーと自動化のパイプライン
https://cloud.google.com/architecture/mlops-continuous-delivery-and-automation-pipelines-in-machine-learning?hl=ja

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

もっとも基本的な段階は、手動で各プロセスを実施する方法です。もちろん、すべてのプロセスを手作業でやるというわけではなく、作成したスクリプトをコマンドから実行するなど、手動での処理実行を含みます。

一般的な役割分担としては、データサイエンティストが開発した機械学習モデルを運用担当者に引き渡し、手動でデプロイする流れとなります。このレベルでは、それぞれの担当者が手作業でデータ収集やリリースを行うことになるため、高頻度でのリリースは難しいといえるでしょう。また、テストの自動化などもされていない状態であり、リリースまでの作業負荷は高い状態です。

MLOps レベル 1: 機械学習パイプラインの自動化

MLOpsのレベル1として、機械学習パイプラインの自動化を行います。機械学習パイプラインとは、データの準備から学習までの一連の流れのことです。機械学習の一連の流れが自動化されれば、本番環境に設置された機械学習モデルは新たなデータを基に自動的に再学習され、リリースされることとなります。

これらの処理を実現するためには、データとモデルが自動的に検証される必要があります。新たに投入されたデータが想定通りのものであれば問題ありませんが、異常なデータが見つかったときは自動処理を停止し、データサイエンティストが調査を行えるように設計します。

また、モデルの検証においては再学習の前後で精度がどのように変化したかを比較し、新しいモデルの方が高い精度を実現できた場合のみ、自動リリースを行うような設計が必要です。

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

これらに加えて、CI/CDパイプラインまで自動化したのがレベル2と定義されます。

CI(Continuous Integration)とは継続的インテグレーションのことであり、1日に1度以上など頻繁にシステムをリリースするために必要な取り組みのことです。またCD(Continuous Delivery)は継続的デリバリーのことであり、高度なテストなどにより、リリースする内容の品質を担保するためのプロセスのことです。これらはDevOpsでも定義されている概念であり、耳にされたことがある方も多いのではないでしょうか。

具体的には、ソース管理やソースコードなどアプリケーションの自動テスト、性能などインフラ面の自動テスト、自動ビルド・自動リリースなど品質を担保したリリース作業に必要な一連の流れを自動化するのがCI/CDの考え方です。

ただし、開発するシステムによってはここまでのレベルで対応を行う必要がない場合もあります。たとえば、社内向けシステムにおいて高頻度でリリース作業を行うケースは少ないでしょう。一方で、B to C向けのサービスにおいて機械学習モデルを利用する場合などは、高頻度でのユーザーへのサービス向上を目指すためにも必要となる取り組みといえます。

まとめ

この記事では、MLOpsについてご紹介を行いました。MLOpsを実現していくためには様々な取り組みが必要ですが、運用体制の強化に有効なのが高度な機能を備えた運用監視ツールの採用です。リリースが適切に実施できているか、また提供中のサービスに問題は生じていないかを効率的に監視するためには、モニタリング体制を強化できるツール導入が有効です。

当社では、SaaS型のIT統合運用監視サービス「LogicMonitor」を提供しています。LogicMonitorはAIを活用した運用管理を実現するAIOps機能を備えており、運用体制の強化に有効です。システムの運用監視体制を強化されたい方は、ぜひ一度お問い合わせください。

日本を含む2,000社以上での導入実績がある、
IT統合監視サービス「LogicMonitor」
のサービス概要資料はこちらから

以下のような課題をもつ企業におすすめです。

  • 現状、監視ツールの複数導入でコスト・運用面で負荷が大きく、1つのツールで統合監視したい
  • AIOpsやオブザーバビリティの考え方を取り入れた最先端のSaaSツールで、運用のDXを推進したい
  • マルチテナント機能やシンプルな価格体系で、MSP事業者としてスムーズにサービスを提供したい
目次