MLOpsとは |円滑な機械学習を実現する基盤づくり

AUTHOR :   ギックス

DevOps(デブオプス)のML(機械学習)版

本日は、MLOpsという言葉について解説します。

MLOpsチームを立ち上げた、MLOpsチームで積極採用中である、というお話が、各方面で上がっていますので、「MLOps(エムエルオプス)」という言葉を、聞いたことがある人も多いのではないでしょうか。

昨今、盛り上がっている言葉ですので、明確な定義は、現時点では存在しないとも言えますが、
・DevOpsに近い概念である
・ML(マシンラーニング=機械学習)の実行サイクルを円滑化してくれる「基盤」である
という2点を理解しておけば、大枠においては間違いありません。

DevOpsとは?

では、近い概念だ、と言っている「DevOps」とは何でしょう。こちらに関しては、Google先生にお問い合わせいただければ、詳細に語ってくれているサイトがたくさんありますので、細かなところはそちらにお任せしたいと思いますが、ざっくり言いますと・・・

  • プログラムの設計・実装を担う開発(Dev=Development)チームと、当該プログラムの実行環境を監視・維持メンテナンスする運用(Ops=Operations)の二つは、本来的には不可分であるが、分かれていることが多い
  • 特に、ウォーターフォール型開発ではなく、アジャイル型開発を志向する場合は、日々、仕様変更や機能追加がDev側で行われ、それをOps側で運用していくことが求められますので、DevとOpsのシームレスな連動が一層求められます
  • その協調的な活動を実現するにあたり、Dev+Opsのチームの協働体制および、それによって得られる「機能改善と安定稼働の両立」をDevOpsと呼称する

という風にご理解いただけばよいでしょう。

この「Dev(開発)」の部分を「ML(機械学習)」に置き換えたものが、MLOpsということになります。

MLOpsで円滑化されるのは?

機械学習の円滑な運用、安定稼働と言われても、少しピンとこないのではないでしょうか。これは、「機械学習プロセス/サイクルの円滑な運用」と捉えると良いでしょう。すなわち、

  • スキーマや元データの変更に伴うデータセットのバージョン管理
  • モデルの微調整作業、修正作業
  • モデルの再トレーニング

というようなことを円滑に行うことが求められます。当然ながら、機械学習はインプットデータが変更された場合には「以前のモデルをそのまま用いる」ということができないことも多く、モデルの微調整(場合によっては大きな調整)が必要なケースもでてきます。そういう一連の機械学習にまつわる運用作業を「円滑に回す」ということが、MLOpsの狙いです。

機械学習をアジャイルに回せ!

機械学習は、一度モデルが完成したらそれで終わり、というものではありません。日々、変更を加えながら学習モデルを進化させていくことが求められます。機械学習をアジャイルに回していくためには、幾つかの考えるべきポイントがあります。例えば、、、

  • データ加工、学習作業の前処理の自動化
  • 継続的に再学習する仕組み
  • デプロイの自動化
  • 監視およびアラートの仕組み
  • 疎結合なアーキテクチャ

などが挙げられるでしょう。

これらを各種ツール、コンポーネントを駆使した「機械学習基盤」として組み上げることが、MLOps、つまり、Machine Learning と Operations の融合、協働のために極めて重要です。

MLOpsの目指すもの

何度も述べるように、MLOpsのゴールは、機械学習環境の構築と、それによる、円滑な機械学習の実行です。

機械学習は、人の思考を拡張したり、支援したりすることができます。もはや、実験段階を越え、実用段階に入っています。機械によって抽出された示唆が、日常業務に組み込まれる時代が到来しているのです。(もちろん、業界・業種であったり、個別の業務領域によって、その適用範囲にバラツキはあります。)

機械学習を、実際の業務に組み込んでいく際には、ビジネス環境の変化や、新たなインプットデータを用いた、より高度な学習モデルを模索していくことが求められます。そうしたビジネス上のニーズにしっかりと答えることが、MLOpsの目指すものだと言えるでしょう。

参考サイト:
https://en.wikipedia.org/wiki/MLOps
https://github.com/microsoft/MLOps#how-is-mlops-different-from-devops
https://engineer.recruit-lifestyle.co.jp/techblog/2018-10-04-ml-platform/

SERVICE