ProVISION

なぜMLOpsが必要なのか(vol97-0014-ai)

By IBM ProVISION posted Wed August 18, 2021 02:35 AM

  
Kawada.jpg 河田 大 Hajime Kawada
日本アイ・ビー・エム株式会社
テクノロジー事業本部 データ・AI・オートメーション事業部
Data And AI第一テクニカル・セールス
Data And AIテクニカル・セールスとして、SPSS® ModelerCollaboration And Deployment ServicesWatson® Studioを用いた機械学習の業務活用を支援。

機械学習やAIのモデルが作られビジネスにおける実践活用の範囲が拡大しています。しかし、機械学習やAIのモデルは作れば終わりではありません。ソフトウェア開発と同様に運用が必要になります。ソフトウェア開発のエリアではDevOpsという運用と開発を統合的に考えるコンセプトがあります。このDevOpsの考え方を機械学習=Machine Learningに応用したのがMLOpsというコンセプトです。

第1章 なぜMLOpsが必要なのか

機械学習モデルを業務適用するためにはモデルをつくれば終わりではありません。機械学習固有の運用が必要になります。その理由は2点あります。
1に、できたモデルをアプリケーションとしてデプロイをしようとする際にはモデルだけでは完結しないということがあります。モデルにインプットするデータを加工する処理や、モデルの結果をルールに対応させるビジネス・ルールの処理などの、モデルの周辺の処理を組み合わせる必要があります。例えば、ある商品の販売促進キャンペーンについて「25歳以上には売れる」というモデルがあっても、「年齢が記載されているお客様のみに絞る」というデータ加工処理や「キャンペーン案内をうけとってもいいお客様のみに絞る」というビジネス・ルールと組み合わせて初めて本番運用が可能になります(図1)。
No.1図1. 加工処理とモデルとビジネスルールの組合せ

2に、モデルには劣化しうるという特性があり、継続的なモニタリングやモデルの更新も求められるということです。この点は従来のソフトウェア開発とは大きく異なる点です。
なぜ劣化がおこるのでしょうか。モデルはある過去の時点の学習データをもとに作成しますが、社会や環境の変化によって、そもそも起こる事象が変わる可能性があるためです。そうすると初期の学習データで作成したモデルでは当たらなくなってしまいます。例えば、2019年には25歳上によく売れていたというデータがあり、「25歳以上には売れる」という予測モデルができ、25歳以上をターゲットとしたキャンペーンを行ったとします。しかし、2020年には社会的トレンドが変わって、25歳未満に売れるようになったり、30歳以上では売れなくなったりという変化が起きたとします(図2 右)。この時に「25歳以上には売れる」というモデルを使いキャンペーンをつづけると効率が悪くなってしまうということが起きます。そのためモデルのライフサイクル管理が必要であり、継続的な性能のモニタリングや、時にはモデルの更新が求められます。
No.2図2. 学習データとモデル劣化の関係

このように機械学習モデルの業務活用のためには、 MLOpsを実現する特有の機能がソフトウェアに求められます。

第2章 MLOpsの全体イメージ

MLOpsを実現する特有の機能は①プログラム管理レポジトリと②パイプライン(データの処理の流れ)になります。モデル以外の周辺処理も合わせてプログラム管理レポジトリで管理をし、その処理の組合せで、モデルのライフサイクルを実現する4つのパイプラインを作ります。モデルを作成、精度評価をした上で(②-1 モデル作成)、アプリケーションへ適用(②-2 スコアリング)して運用を始めます。運用開始した後には、その結果のデータを使用して、モデルを再評価したり(②-3 モニタリング)、モデルを作り直したり(②-4 モデル・リフレッシュ)することが必要になります。図3でこれらの流れを示しています。No.3

3. MLOPSを実現するソフトウエアの構成

ここでは、MLOpsを包括的に実現するIBMソフトウェアとしてSPSS® ModelerCollaboration and Deployment Services(以下SPSS® CADS)を例として取り上げて、MLOpsの全体イメージを説明します。SPSS® ModelerCADSMLOpsで必要な①プログラム管理レポジトリを持っており、再現性やトレーサビリティを確保します。また、②の各パイプラインやその部品をGUIで作ることができ、部品の再利用も簡単に行うことができます。IBMには他にもMLOpsを実現するソフトウェアはいくつかありますし、オープンソースにも優れたソフトウェアがありますが、オープンソースのソフトウェアではMLOps全体イメージを包括的にカバーできてはいません[1]。

この記事では、具体的なイメージをつかんでいただくために、年齢と性別をもとにキャンペーンに反応したかどうかを予測するモデルを例にとり、モデルのライフサイクルにそって、MLOpsの全体イメージを考えてみます。

① プログラム管理レポジトリ
まずプログラムやモデルを管理するプログラム管理レポジトリが必要になります。プログラムやモデルは様々なパイプラインで再利用されますし、修正やリフレッシュを行うためにバージョン管理が必須になります。バージョン管理によって再現性やトレーサビリティを確保することで、間違いのない運用が可能になります。

②-1 モデル作成・パイプライン
最初にモデルを作成します。モデルを作成するパイプラインには、学習データ読込→データ加工→モデリング→モデル→評価の処理が必要になります。
このパイプラインをSPSS® Modelerでつくると図4のようになります。GUIでパイプラインを作ることができます。データ加工とモデリングの作業を同時に行えますので、加工とモデリング行き来しながら効率よく精度の高いモデルを作っていくことができます。
No.4
図4. SPSS® Modelerでつくったモデル作成・パイプラインの例

学習データのイメージは図5です。年齢や性別など、要因となる変数を「説明変数候補」、それに対するキャンペーンの反応を「目的変数」と呼びます。

No.5

図5. 学習データのイメージ

通常予測モデルを作成する際には、データをクレンジングしたり、予測精度をたかめる特徴量を作ったりするためにデータ加工をします。例えば、年齢や性別のデータがきちんと入力されていないレコードを除去するクレンジングなどがあります。
これで説明変数と目的変数がそろいます。
次にモデリングを行い、モデルを作ります。例として図6のような決定木モデルをつくりました。女性で25歳以下がキャンペーンに反応しやすいというモデルができています。なお、SPSS®では複数の手法を同時に使って複数のモデルを作成し、最も精度が高いモデルを提示することも可能です。


No.6
図6. 初期モデル(決定木)の例

次にこのモデルの当たり具合を評価し、十分な性能があれば、最終版のモデルとしてスコアリングで採用することとしてプログラム管理レポジトリに保存します。

②-2 スコアリング・パイプライン
2にモデルをアプリケーションに適用します。スコアリングを行うパイプラインには、スコアリング・データ読込→データ加工→モデル→ビジネス・ルール適合の処理が必要になります。モデル作成でつくったデータ加工、モデルは再利用できます。
このスコアリング・パイプラインにはビジネス・ルールに適合させる処理も必要になります。
モデルによって機械学習による予測結果はでますが、その結果はそのままビジネスに適用できるとは限りません。社会的な規制やブランドポリシー、制約などによって、予測結果をそのまま使えない可能性があります。例えば、キャンペーンの反応率が高いと予測されても、キャンペーンメールを拒否しているお客様に広告メールを送付してはいけません。モデルの実運用を考える際には、このようなモデルの外にあるビジネス・ルールに適合させることを忘れてはいけません。
モデルとビジネス・ルールがそろったところで、アプリケーションからはスコアリング・データを与えます。スコアリング・データは予測を行いたいデータで、以下のような説明変数候補のみのデータで、まだ反応結果がわかっていないデータです。モデルにこのデータをあたえることで反応するかどうかの予測結果を得ます。
No.7

図7. スコアリング・データ例


スコアリング・パイプラインからはアプリケーションに以下のような予測結果が返ります。この例だとID4の人のキャンペーン反応率が高いという結果が返っています。
No.8
図8. スコアリング結果例

ここまでで作ったモデルが業務展開できるようになりました。

②-3 モニタリング・パイプライン
3に運用し始めたモデルをモニタリングします。モニタリングを行うパイプラインには、フィードバック・データ読込→データ加工→モデル→評価→通知の処理が必要になります。モデル作成でつくったデータ加工、モデルは再利用できます。

SPSS® CADSでモニタリング・パイプラインは以下のようにGUIで定義します。スコアリング・パイプラインを再利用して、評価と通知を行っています。
No.9
図9. SPSS® CADSでつくったモニタリング・パイプラインの例

モデルの評価を行うにはフィードバック・データが必要です。フィードバック・データとは運用開始後の結果データです。形式としては学習データと同じです。説明変数候補と反応結果としての目的変数(この例ではキャンペーン反応)の組合せになります。
No.10
図10. フィードバック・データ例

そしてこのフィードバック・データを加工、スコアリングしてみると、予測した結果と実際の結果を比較することできます。以下の例だとキャンペーン反応(実測)と$R-キャンペーン反応(予測)が一致していれば予測は当たったことになりますし、異なっていれば外れたことになります。
No.11
図11. 予実比較の評価例

この結果でモデルを評価し、性能が低下していたら、管理者やデータサイエンティストに自動通知します。

②-4 モデル・リフレッシュ・パイプライン
4に運用し始めたモデルをリフレッシュして再作成します。モデル・リフレッシュを行うパイプラインには、フィードバック・データ読込→データ加工→モデリング→モデル→評価→通知の処理が必要になります。モデル作成でつくったデータ加工、モデリングが再利用できます。

例では、フィードバック・データから以下のような新モデルが作成されました。
No.12
図12. 新モデル(決定木)例

初期モデルでは女性で25歳以下の反応が高かったのですが、今回のモデルでは女性の25歳以上の反応が高くなっていました。このように初期モデルを作ったときとお客様の属性が変わってきたことがわかります。

また、この例では性別と年齢の二つの説明変数しか使っていませんが、現実にはもっと多くの変数を使っていると思います。そうすると今まで効いていた変数が効かなくなったり、逆に今まで効いていなかった変数が効いてきたりすることがあります。こういう現象はお客様の性質が質的に変化した可能性が示唆されます。
このように新モデルと比較して、性能や説明変数(特徴量)の影響の変化があった場合に、通知を行うのが、このモデルリフレッシュ・パイプラインです。

第3章 まとめ

以上みてきましたように、機械学習のプロジェクトは、機械学習モデルをつくれば終わりではありません。データ加工やビジネス・ルールなどの処理を組み合わせて業務展開する必要があり、運用開始後も、モデルのライフサイクルを管理するモニタリングなどのパイプラインを実行するというMLOpsの考え方が必要であることがお分かりいただけたかと思います。

また、IBMのSPSS® ModelerとSPSS® CADSはこのMLOpsを実現する機能をカバーしており、機械学習のモデルを業務展開している多くの企業で利用していただいています。

[参考文書]
IBMソリューションブログ    MLOpsのキホンと動向, https://www.ibm.com/blogs/solutions/jp-ja/mlops-2021-data



*ProVISION 記事一覧はこちらから


#AI


#ProVISION
#Highlights
#Highlights-home
0 comments
1007 views

Permalink