MLOps – 機械学習モデルの活用、その先にあるチャレンジ Part 2

2020/03/05
執筆者:
· 推定読書時間 3  分

はじめに

DataRobotの小島繁樹です。

Part 1 にて、機械学習モデルをビジネスに適用した場合に考慮しておくべきこと、その際に発生する可能性がある多くの課題 – チャレンジ – についてご紹介をいたしました。

一方、機械学習モデルをビジネスに適用した際の効果、そのビジネスインパクトは凄まじく、利用における課題 – チャレンジをうまく管理し、機械学習モデルをうまく運用していこうという思想、技術も広がってきていています。

一般的にそれら思想、技術はMLOps (Machine Learning Operations) と呼称されており、DataRobotとしてもこれら思想、技術を実現する DataRobot MLOps製品をご提供してきています

これは2019年、この分野のリーディングプレイヤーであったParallelM社を買収し、その技術を洗練した形でDataRobotプラットフォームに融合したものとなっています。

本ブログでは、このDataRobot MLOpsによってどのような事を実現できるのかご紹介していきますが、急速な発展を遂げていくこのMLOpsについての発信の場となるコミュニティについても併せてご紹介をしていきます。

MLOps コミュニティ

Datarobotでは現在、弊社のMLOps製品を広めること以上にMLOpsの概念がより深く理解・議論されなくてはならないと考えており、MLOpsコミュニティを運営しています。 2020年2月28日、第一回コミュニティイベントを JapanTaxi様、Smart Analytics様の先進事例紹介を柱に開催を企画いたしました。

その結果、何とイベント公開から半日たらずで募集定員を大幅に突破、その後、数日間で募集50人に対し2倍近くにも及ぶご登録を頂くに至りました。

イベントは大変残念ながらコロナウイルス感染症への配慮から、募集期間も半ばにて延期を決定いたしましたが、実際に機械学習モデルの運用に立ち向かわれている皆様が、強くMLOpsという技術を必要とされている事、そしてこの分野に対する皆様の興味、関心の強さを示す出来事となりました。

本イベントについては時期をみて必ず開催いたします。是非とも本日コミュニティにご登録いただき、お待ちいただければと思います。

機械学習モデルのビジネス適用

Part 1 にてご紹介しました通り、機械学習モデルを実ビジネスで利用するのであれば、場当たり的なものであってはなりません。つまり、成果を出すために開発されたモデルは、その役目を終え、次のモデルに引き継がれるまでのライフサイクルで管理する必要があります。そしてまた、その管理は組織で運用中の全てのモデルに対して行う必要があります。

下記の図はPart 1 からの再掲ですが、機械学習モデルがビジネス環境で普遍的に利用されるにつれ、その管理、つまり正常に稼働しているか、そして性能が落ちていないか、モデルについての変更が適切に関係者に通達されているか、等について組織横断の視点から確認し続ける必要が出てきます。

DataRobot MLOps

組織横断での機械学習モデル管理の実現

Datarobotは先進的な機械学習自動化プラットフォームとして開発されてきました。DataRobotにデータを投入すると、モデル開発に必要な多くの工程が自動的に実行され、またビジネスで利用するためのデプロイまでもがボタン一つで完了します。

しかしながら、様々な理由により、実際のビジネス環境下ではDataRobotで開発されたモデル以外の運用を行う必要がある状況が出てくることがあります。例えば特別なライブラリを使わなければ扱えないモデルを開発する必要がある、等がこれに当たります。

DataRobot MLOps は、こういったDataRobotプラットフォームで開発されていないモデルに対しても、MLOpsの統一的なインタフェースを適用したモデルの利用 (他システムとのインテグレーション)や、運用管理ができるように設計されています。

ユーザ作成モデルの登録

DataRobot MLOps では、DataRobot開発モデル以外のモデルも登録が可能、しかも、特別なライブラリや独自のコーディングを利用したモデルについても同じプラットフォーム上で利用が可能となると、技術的にどのように実現しているのか、ご興味を持たれる方も多いかと思います。

DataRobot MLOpsはコンテナ型アーキテクチャを採用する事によりこの難題を実現しています。

ユーザは自身で作成したモデルと、そのモデルを動かすための実行環境をそれぞれパッケージ化し、DataRobot MLOps上に登録します。これらパッケージをDataRobot MLOpsではコンテナ化して扱うことにより、様々な環境で動作するユーザモデルを単一プラットフォーム上で稼働させる事を実現しています。

モデル開発者の目線ではこの作業が少し難しそうに見えてしまうかもしれませんが、実際にはDataRobot MLOpsの画面上にテンプレートに沿って作成したモデル関連ファイルをドラッグ&ドロップするのみで簡単に利用することができます。ここにも、機械学習モデルの実装を極力、シンプルにかつ自動化して実現しようとするDataRobotの設計思想が生きています。

続いて、こうしてDataRobot MLOps上で稼働しているモデルについて、どのような運用を行う事ができるのかについて見ていきます。

DataRobot MLOpsがモデルの運用において常に重要であると考えているのは、「現時点の状況だけではなく、過去にさかのぼった任意の期間の確認をすることが出来る」という事です。そのモデル利用における過去の時間軸、またモデルのバージョンを切り替えた場合は、切り替え前後についての比較確認が出来るという事も重要です。

システム正常性

では、具体的にDataRobot MLOpsでの運用ポイントを見ていきましょう。1つ目は、デプロイされたモデルが正常に稼働しているか。つまり、エラーなく応答し、またそのレイテイシに問題がないか、いった視点で確認を行うことです。また、想定通りの利用状況となっているか、といった点についても確認する事ができます。

上記スクリーンショットの例では、ウェブサイトでの訪問者に対するコンテンツ切り替えを行う機械学習モデルの利用状況を示しています。サイトメンテナンスを実施した休業日に利用がなくなっている事、また来訪者に応じた利用状況となっていること、エラーが出ていない事、想定した速度で応答し続けている等、等々が確認できます。

また中段のスケールバーを操作することにより、任意の時間軸についての確認を行う事ができるインタフェースとなっています。

一見、当たり前の確認項目のようですが、こういった確認を行うことは非常に重要です。例えば、サイトメンテナンス時にも利用が継続されているとしたら、それはモデル開発者が意図しないビジネス用途に流用されている事が原因かもしれません。そういった状況を放置すればビジネス上の損失に繋がりかねません。しかしながら、開発された機械学習モデルそのものは、通常こういった確認を行う機能は持っていません。MLOps基盤を利用する事で可能となる運用の一例であり、重要性がわかりやすい物となっています。

精度

精度についても同様に、過去の任意の時間軸にさかのぼって確認を行うことができます。モデルのバージョンを切り替えた後や、実際のビジネス環境の変化等、精度に影響を及ぼしうるイベントがあった場合にはその前後について、モデルの精度への影響を確認することができます。

しかし、予測を行うMLOpsという基盤において、どうして予測値と実際の値 = 予測時点からみて未来の値 との比較である「精度」を算出することができているのでしょうか?

実はDataRobot MLOpsでは、予測結果に対して1意となる識別IDをモデルの予測時に付与し、後からその識別ID毎の実績値をフィードバックすることにより、この精度計算を実現しています。

こちらについても機械学習モデルが単体では持ち得ない管理機能を、実行基盤であるMLOpsが補っているということになります。

データドリフト

Part1ブログでもご紹介しましたが、機械学習モデルをトレーニングした時のデータ、と予測が行われたときのデータ、つまりビジネス上の現実がずれていく = ドリフトする、漂流する事を、データドリフトと呼称しています。

データドリフトは精度に大きな影響を及ぼすこともある、機械学習モデルの運用において監視を行うことが非常に重要な項目です。

DataRobot MLOpsでは、ある対象期間について2つの画面でデータドリフトを表現し、直感的な理解が出来るようになっています。

左側の画面では、予測したいターゲットに対しての特徴量の有用性とそのドリフトの度合いを表しており、右側の画面では選択した一つの特徴量について、どのようなドリフトが発生しているのかを表示しています。

ドリフトの検知はモデルの運用上非常に重要ですが、単に「発生した」事を検知するのみではその有効性は薄くなります。「いつの期間に」「どの特徴量で」「どのようなドリフトが発生したのか」までを特定できる事ではじめて、実際のビジネスで発生していた事象との突き合わせが可能となり、モデルの再構築への重要なインサイトとなりうるのです。

指標による通知設定 等

DataRobot MLOpsではこれら監視項目を、DataRobotで作成したモデル、ユーザが独自の環境で作成した独自のモデルを分け隔てせずに統一的に管理することができます。

しかし、数百にも及ぶモデルが存在する組織においては、一つ一つを毎日確認することは現実的ではありません。そのため、これら監視項目にそれぞれのモデルでしきい値を設定し、それを逸脱した場合に管理者がメール通知で受け取る機能も実装されています。機械学習モデルの運用の現場で求められている概念 = MLOpsを達成するためのツールであり、こういった運用についてもよく考え抜かれたものとなっています。

まとめ

Datarobot は MLOps製品により、機械学習の開発を自動化するのみならず、ビジネス適用の視点からみて理想的なモデル運用までを実現できる事をご紹介いたしました。DataRobot MLOpsは皆様のビジネスに役に立つモデル運用環境の実現のため、今後も継続的な製品開発が続いていきます。DataRobot MLOps製品にご興味を持たれた方は、ぜひこちら info-jp@datarobot.com までご連絡ください。

また、MLOpsコミュニティではDataRobot MLOpsにこだわらず、MLOpsという思想、技術に関連する最新情報について広く取り扱ってまいります。「モデルの実運用にてこのような課題があった」「このようにして克服した」「この点はモデル開発フローに組み込むべきであった」、等の貴重な経験談を共有し、議論し、また情報発信をする場としていきます。これを機会に、是非ともコミュニティへご登録ください。会場にてお会いし、MLOpsについて皆様と議論出来る事を楽しみにしております!

バーチャルカンファレンス
DataRobot AI Experience Japan

変化の時代にAIのインパクトを加速する

お申し込みはこちら
執筆者について
小島 繁樹(Shigeki Kojima)
小島 繁樹(Shigeki Kojima)

データサイエンティスト

DataRobotデータサイエンティスト。システムインフラ全般、特に大規模 RDB 基盤に関する経験を保有。機械学習モデルの開発からビジネス適用に渡り技術的視座から支援を実施、また技術的トレーニングカリキュラムの開発を行っている。主に流通・小売・また通信業界のお客様に対する支援を担当。

小島 繁樹(Shigeki Kojima) についてもっとくわしく