目次

MLOpsとは何か?

MLOpsは、機械学習(Machine Learning)と運用(Operations)を組み合わせた造語であり、機械学習モデルの構築や監視を効率的に行う手法を指します。
AIプロジェクトあるいは機械学習プロジェクトでは、一般的に、データの準備・取り込み、モデルの学習、本番環境への展開、品質評価といった流れをとります。これら一連のライフサイクルで自動化・効率化を推進し、安定した稼働を実現し品質を保つことが狙いです。

MLOpsの説明図

MLOpsを理解する上では、まず、DevOps(デブオプス)について触れる必要があります。DevOpsは開発(Development)と運用(Operations)を組み合わせた造語です。システム開発プロジェクトにおいて、開発チームはビジネスの要求へ柔軟に対応するよう、高い頻度で新しい機能をリリースしたいと考えます。
一方、運用チームはシステムの不具合につながるような変更は避けたいケースが多く見られます。
そこで、両チームが、高品質な製品をタイムリーに提供するという共通の目標に向けて動けるよう、DevOpsの考え方が求められるようになりました。

具体的には、バージョン管理やデプロイの自動化・標準化を促進し、手作業による不具合を避け、手続きを簡素化します。CD(継続的デリバリー)、CI(継続的インテグレーション)を含めた開発環境を構築するとともに、開発チームと運用チームが情報共有しやすい文化に目を向けるのも特徴です。

MLOpsは、機械学習プロジェクトにDevOpsの考え方を応用させたものと考えることができます。機械学習では、データの取り込みやモデルの学習といったステップがあるので、これらの作業を自動化し、データ管理担当者や機械学習モデルの利用者の円滑なコミュニケーションを実現します。

MLOpsの説明図

MLOpsが注目される背景にある機械学習プロジェクトの課題とは?

MLOpsが技術トレンドになっているのは、機械学習プロジェクトに固有の課題が認識されるようになったためです。一般的に指摘されている機械学習プロジェクトの課題について以下に解説します。

(1)品質が保証できず、実運用まで至らない

「PoC(Proof of Concept:概念実証)疲れ」といった言葉が生まれるほど、AIの実証を積極的に行う割には実用化ができないという企業は多く見られます。例えば、どのようなデータを入力し、パラメーターを設定したかを管理していないと、高い精度で予測できる機械学習モデルを再現する方法がありません。
実用化できるレベルまで精度を高めるには、属人化したプロセスではなく、体系的なアプローチが求められるようになりました。

(2)本番環境への展開に時間がかかる

ローカル環境で開発を行ったり、簡易的なインフラでPoCを行ったりしていた場合、正式なリリース時には本番環境へ移行するケースが考えられます。本番環境へ移行した際に、パフォーマンスやセキュリティの面の問題が発生し、異なる環境を構築するのにデプロイで時間を要してしまう恐れがあります。
また、進捗状況を共有するツールがないと、開発チームや運用チームでのコミュニケーションが困難になるのも課題です。

(3)データの変化に対し機械学習モデルの更新が難しい

マーケティング施策に関する機械学習モデルを例にとると、購買に関する情報を訓練データとして用いる状況が考えられます。
そこで、急激に人の購買行動が変化するような事象が起きた場合、以前のデータで学習させたモデルでは、正確な予測ができません。新たなデータで学習させ、更新したモデルを本番環境にデプロイするのに、標準化されたツールやプロセスが定義されていなければ、タイムリーな対応が難しくなるでしょう。

MLOpsのワークフロー

機械学習プロジェクトの一般的な流れに従って、MLOpsの対象となる領域を以下に整理します。

(1)データの準備

機械学習モデルの学習に用いるデータを抽出し、変換・集約・重複排除といった前処理を施します。データの特徴を把握するのも、このステップです。
購買データであれば、商品の種類・価格・数量、購入日時、場所、購入者の年齢・性別といった情報から、訓練データを整理・加工する必要があります。
MLOpsでは分析に欠かせないツールを統合したり、前処理のプログラムを自動で実行できるようにしたりする仕組みを導入します。

(2)機械学習モデルの訓練

TensorFlowやPyTorchといったライブラリを活用しながら機械学習のプログラムを開発します。
訓練データを入力し、モデルのパラメーターを調整する作業が必要です。
そして、検証データを用い、予測や分類といったタスクにおいて、最も高いパフォーマンスを出せるようモデルの最適化を行います。
MLOpsではモデルの再現性を担保するため、どのパラメーターを入力したときに、どのような評価指標が得られたかを記録するバージョン管理の機能が欠かせません。

(3)機械学習モデルのデプロイと更新

最適化した機械学習モデルを本番環境へデプロイし、実際のデータを使って、予測や分類のタスクを実施します。継続的にモデルの評価を行い、期待された精度が発揮できているか監視する局面です。
入力データの傾向が訓練データとは異なってきた場合、精度が落ちてしまうので、モデルを更新し、再度デプロイしなければなりません。
MLOpsではCI/CDのパイプラインを構築し、本番環境へのデプロイを自動化します。インフラを柔軟に変更できるよう、コンテナ技術を活用し、仮想マシン上で稼働させる場合が多く見られます。

MLOpsのワークフローの説明図

MLOpsを導入する利点

MLOpsを導入するメリットとして生産性の向上が挙げられます。機械学習プロジェクトのワークフローを自動化・標準化し、最新バージョンの機械学習モデルを迅速にリリースできるからです。
手作業を省き、ミスを減らすことで、データの準備から開発・運用に至る作業を効率化します。

MLOpsは機械学習に「アジャイル」な考え方をもたらすものと見ることができます。入力されるデータの傾向が変わったというフィードバックをもとにモデルを更新する場合でも、柔軟に対応できます。
また、異なる環境にデプロイしたり、多数のモデルを扱う大規模な環境へ移行したりするケースでも、コンテナ上でモデルを実行できるようにしておけば再現性を担保するのが容易になるでしょう。

なお、MLOpsと似た用語にAIOps(Algorithmic IT Operations: 人工知能によるIT運用)がありますが、これらは異なる概念です。
AIOpsは2018年にガートナー社が提唱したもので、AIを活用してIT運用を効率化する考え方となります。一例としてサーバーのログを分析してIT環境の最適化を図るといった使い方が考えられます。

機械学習プロジェクトは、医療業界や自動車業界といった、安全性に対する要件が高く、規制が検討されている分野でも利用が増えてきました。製薬会社の創薬プロセスにおける化合物のスクリーニング、合成した化合物が期待した効き目があるか、毒性はないかなどの薬理作用の予測などでの機械学習の活用。

また、自動車の製造現場での製品や部品の不良品検知や異常検知、製造以外ではクルマを構成する各種機能、自動運転車やコネクテッドカーの実現などに機械学習が活用されています。

一方、多様な業務で異なる機械学習モデルが開発、運用されている場合、全てのモデルの適切な管理が課題となります。
こういったケースであっても、MLOpsの仕組みによって、どのような訓練データやパラメーターを使用しているか、どのバージョンのモデルをデプロイしたかといった履歴を残しておけば、透明性・説明責任を確保するのに役立ちます。

最後に

AIや機械学習の活用は多くの業界で欠かせないものになり、そのトレンドは今後も加速していくことが予想されます。実運用に耐えられる高い精度を持った機械学習モデルを開発・運用するプロセスを支援し、ビジネス展開を可能にするMLOpsは、重要な技術要素となっていくでしょう。