ModelOps: モデル・ライフサイクルを業務運用化する方法
より多くの分析モデルがデプロイ(業務実装)される確率と、それらがより短期間でビジネス価値を生み出す確率を改善するために
ジェフ・アルフォード(Jeff Alford)、SAS Insights Editor
ModelOpsとは、分析モデルがデータサイエンス・チームからIT本稼働チームへと所定のサイクルに沿って受け渡され、一定のリズムでデプロイ(業務実装)および更新されるようにするための手法です。ModelOpsは、AIモデルから価値を実現する競争において、ごく少数の企業だけが利用している勝利要因です。
企業や組織が大量のデータを新たな洞察や情報に変えるために機械学習(ML)モデルを活用する傾向は、ますます高まっています。これらのMLモデルは、効果的にアクセスできるデータ項目の数によって有効性が制限されることに加え、予測を目的とするパターン識別のために大量の非構造化データを利用します。
モデルの50%は本稼働に至らないのが実情というなかで、その確率を改善するために何ができるのでしょうか?
分析モデルの登録、改良、トラッキング、スコアリング、パブリッシュ、ガバナンス、レポーティングを、Webベースのビジュアル・インターフェイスで簡単に実行することができれば、モデルを素早くパブリッシュおよびモニタリングし、最適な結果を追求できるようになります。
ModelOpsとは何か?
しかし、モデルの開発や業務実装は難しい取り組みです。従来のモデリング環境では、本稼働環境に投入されるモデルは約50%にすぎず、また、それらを業務実装するための準備には少なくとも3ヶ月かかります。この時間と労力はそのまま業務コストとして加算されるだけでなく、「価値実現までの時間」がそれだけ長引くことを意味します。
あらゆるモデルは劣化するものであり、定常的に注意を払って適切に対処しない限りパフォーマンスは低下します。モデルは自動車のようなものです。すなわち、質の高いパフォーマンスを確保するには定常的にメンテナンスを実施する必要があります。モデルのパフォーマンスはモデルの構造だけでなく、データやチューニングの状態や、定常的な更新や再学習(再トレーニング)の状況にも左右されます。
ModelOpsを活用すると、モデル関連の工程(開発⇒検証⇒テスト⇒業務実装⇒本稼働)の進捗ペースを最大限に高めながら、質の高い結果も確保できるようになります。また、ニーズに合わせてモデルを管理したり運用規模を拡大したりすることや、劣化の早期兆候を特定・修正するべく継続的にモデルをモニタリングすることも可能になります。ModelOpsは、長い歴史のあるDevOps原則に基づいており、スケーラブルな予測的アナリティクスを実装するための必須要件です。ただし、ここで明確にしておきましょう。モデル開発のベストプラクティスは、ソフトウェア工学のベストプラクティスと同じではありません。その違いは、この先を読み進めるとはっきりしてくるはずです。
ModelOpsを活用すると、モデル関連の工程(開発⇒検証⇒テスト⇒業務実装⇒本稼働)の進捗ペースを最大限に高めながら、質の高い結果も確保できるようになります。
最初から最後まで一貫して結果を測定
ModelOpsの最初のステップでは、利用するModelOpsプログラムのパフォーマンスをモニタリングする必要があります。なぜでしょうか? それは、ModelOpsはモデル関連のサイクル(開発、テスト、業務実装、モニタリングなど)を表しますが、ModelOpsが効果を発揮するのは「組織が必要としている規模や精度を提供する」という目標に向け前進している場合のみだからです。
そのため、最も高度なレベルで、ModelOpsプログラムの実効性を判断する必要があります。そのModelOpsプラクティスを実装したことは、組織が必要としている規模、精度、プロセス厳格性の達成に役立ったでしょうか?
次のステップでは、運用レベルで、各モデルのパフォーマンスをモニタリングする必要があります。モデルは劣化するものですから、再学習と再業務実装は必要不可欠な取り組みです。以下に、パフォーマンス・ダッシュボードを作成する際の考慮事項をいくつか紹介します。
- モデル(またはモデルのクラス)に精度目標を設定した上で、一連の工程(開発、検証、業務実装など)を通じ、ドリフト(不安定さ)や劣化などの評価指標を追跡する。
- 運用中のモデルの影響を受けるビジネス指標の状況を識別する。例えば、サブスク登録者を増やすために設計されたモデルが、実際にサブスク率に向上効果をもたらしているでしょうか?
- データサイズ、更新頻度、地域、カテゴリー、タイプなどの指標を追跡する。モデルのパフォーマンス問題がデータやデータソースの変化に起因していることもあるため、これらの指標は問題の原因調査に役立ちます。
- モデルがどれほどのコンピューティング・リソースやメモリを消費しているかをモニタリングする。
指標に関連して述べておきますが、モデルの検証(validation)はModelOpsの重要な土台です。「validation」と「verification」を “言い換え可能な言葉” として使う人もいますが、それぞれの意図は異なります。
「verification」は、モデルが設計通りに正しく「実装されたこと」および「機能すること」を確認する作業です。「validation」は、モデルの根源的な目的に基づき、「そのモデルが、しかるべき結果を提供すること」を確実に検証する作業です。どちらの作業も、質の高いモデルを開発および業務実装する上で重要なベストプラクティスです。
ModelOpsアプローチを用いて対処できる3つの一般的な問題
モデルの劣化は、業務実装されるとすぐに(場合によっては数日後に)始まる可能性があります。言うまでもなく、他の要因よりもモデルのパフォーマンスに大きく影響するような要因も存在します。以下に示すのは、いくつかの一般的な問題であり、あなたもほぼ確実に遭遇するであろう問題です。
データ品質
従来型の分析プロセスでは見過ごされていた、あるいはそれほど大きな影響をもたらさない可能性のある「データの些細な変化またはシフト」でも、機械学習モデルの精度では多大な影響をもたらす可能性があります。
ModelOpsの取り組みの一環として、モデルのために利用できるデータソースと変数を適切に評価することが重要であり、そうすることで、以下の質問に回答できるようになります。
- どのようなデータソースを使用するのか?
- そのデータに基づいて意思決定が行われた旨を顧客に伝えることに不快感はないか?
- そのデータ入力が直接的または間接的に何らかの規制に対する違反を招くことはないか?
- モデルバイアスにどのように対処したか?
- 新しいデータフィールドはどのような頻度で追加または変更されるのか?
- 特徴量生成を本稼働環境で再現できるか?
業務実装までの時間
モデルの開発から業務実装までのサイクルは長期間に及ぶ可能性があるため、最初にそのサイクルが現状でどれくらいの長さかを評価し、その後、改善を測定するためのベンチマークを設定します。プロセスを個別のステップに分解した上で複数のプロジェクトを測定および比較し、最良/最悪のプロセスを識別します。また、一部の活動を自動化できるモデル管理ソフトウェアの利用も検討します。
劣化
ドリフトやバイアスのような事項への警戒を怠らないようにします。これらの問題への対策は、組織におけるモデル・スチュワードシップ(≒実利用面の管理責任)に対する強力なアプローチを構築することです。モデル開発担当者からビジネスユーザーまでの関係者全員がモデルの健全性に関する責任を担うようにすれば、問題が最終利益に悪影響する前にそれを解決できるようになります。
モデルを更新するタイミング
機械学習の最も難しい側面は、モデルを業務実装する方法と、精度を維持管理する方法です。言い換えると、モデルの精度を改善するために、より最新かつ良質なデータを常に探し求める必要がある、ということです。
これに関連して、精度の閾値を逸脱したモデルについて再学習の実施予定を作成できるような標準的なスケジュール手法はあるのでしょうか? その答えは単純に「ノー」です。なぜでしょう?理由の一つは、モデルの劣化率は千差万別だからです。もう一つの理由は、必要とされる精度は、達成しようとしている目標に応じて相対的に決まるものだからです。例えば、不正確な予測のリスクが多大なコスト負担または危険性をはらんでいる場合は、高い頻度で連続的にモデルを更新する必要があるかもしれません。
だからこそ、「モデルを適用した結果」と「組織独自の基準による精度測定値」のモニタリングを通してモデルの精度レベルを理解することが重要なのです。
ModelOpsを無視することの危険性
これらのモデルの予測力は、ビッグデータの可用性拡大およびコンピューティング・パワーの増大との組み合わせによって、スマートな組織にとっての競争優位性の源泉であり続けるでしょう。ModelOpsの取り込みに失敗する組織は、アナリティクスをスケールアップする取り組みにおいて数々の難しい課題に直面し、競争に参加することすらできなくなるでしょう。
「Insights」ニュースレターのご購読登録はこちら