🗂

【論文メモ】Using AntiPatterns to avoid MLOps Mistakes

2021/07/21に公開

バンク・オブ・ニューヨーク・メロンが金融の世界でMLOpsを実践していく中で遭遇したアンチパターンを紹介した論文。

https://arxiv.org/abs/2107.00079

アンチパターンを以下の9つに分類

Data Leakage AntiPattern

Data leakageとは機械学習モデルが本来持っていない、実運用時に利用できない情報を利用してしまうシナリオ全般を指す。
モデルの性能を過度に楽観的に見積もることにつながり、モデルのデプロイ時に(特に高リスクのアプリケーションで)深刻な問題を引き起こすことにもつながる。リークはテストのパフォーマンスによって特徴量が選択された場合や(通常は利用できない)ターゲットとの相関が高い特徴量が存在するために意図せずに発生することもある。

論文では、さらに4つに細分化している。

Peek-a-Boo AntiPattern

時系列データには実際の測定よりも遅れてデータが利用できるような場合がある。例として、勤務実績データなどは測定の翌月にデータとして利用できるがモデルが運用時に入手不可能な日付を利用してしまっているなど。

Temporal Leakage AntiPattern

学習データと検証データをサンプリングで構築する際にそのサンプリングの過程でリークが発生し、独立したデータセットでなくなってしまう場合がある。例として、時間依存の強いデータで分割がシーケンシャルではないなど。

Oversampling Leakage AntiPattern

少数クラスに対してオーバーサンプリングする際に学習データと検証データを分割する前にオーバーサンプリングしてしまうと情報がリークしてしまう場合がある。

Metrics-from-Beyond AntiPattern

学習データとテストデータが一緒に正規化・標準化されることでテストデータの統計量がリークしてしまう場合がある。

‘Act Now, Reflect Never’ AntiPattern

モデルが本番環境にデプロイされると、フィルタリング、更新、再考、さらには定期的な手作業による検査を行うことなく、予測値がそのまま使用されてしまっている状況。

以下が存在すると問題になる。

  1. コンセプトドリフト
  2. 無関係あるいは容易に認識できる誤った予測
  3. 敵対的な攻撃

デプロイされたモデルを監視、追跡、デバッグできるシステムを用意することが重要。

Tuning-under-the-Carpet AntiPattern

ハイパーパラメータが管理されていない状況。
ハイパーパラメータ最適化に関する学習パイプラインの部分は、再現性があり、容易に適応できるように、明示的かつ丹念にドキュメント化されていることが不可欠。

‘PEST’ AntiPattern

PEST = Perceived Empirical SuperioriTy
検証が不十分 or 欠陥がある最先端の手法を盲目的に採用してしまう状況。
SOTAと報告されるアルゴリズムでも、後日よくチューニングされたシンプルなアルゴリズムに敗北したと報告されることもあるため、よく比較検証した上で判断する。

Bad Credit Assignment AntiPattern

機械学習パイプラインで何が性能・精度の向上に寄与しているか特定できていない状況。

可能な限り、新たに提案されたモデルの各コンポーネントの性能向上を強調する効果的なアブレーション研究を評価の一部として含めることが不可欠。アブレーション研究が実行不可能な場合、提案されたモデルのエラー動作とロバスト性を定量化することで、モデルの挙動に関する重要な洞察を得ることができる。

Grade-your-own-Exam AntiPattern

開発者が最終的なテストセットを入手し、この既知のテストセットに対して評価を繰り返すことで、既知のテストセットでのパフォーマンスを向上させるようにモデルを修正している状況(HARKing = Hypothesizing After Results are Knownと呼ばれる)。
これは暗黙のデータリークにつながり、性能評価におけるオーバーフィッティングや選択バイアスなどに影響することがある。
このアンチパターンを避けるためには、テストデータと検証データは独立にサンプリングし、モデル開発が完了するまでテストデータは隠し、最終的な評価にのみ使用するなど対策する。

Set & Forget AntiPattern

ターゲット変数が時間と共に変化していくコンセプトドリフトへの対応がとれていない状況。
コンセプトドリフトを処理するための主な手法は、決定木やその他の類似した解釈可能な木ベースのアプローチに基づく技術を用いたルールセットの学習としている。参考として以下などを挙げている。
https://homes.cs.washington.edu/~pedrod/papers/kdd00.pdf
https://content.iospress.com/articles/intelligent-data-analysis/ida00170

‘Communicate with Ambivalence’ AntiPattern

モデルの不確実性について、評価や調整、話し合いがされないなど注意が払われていない状況。
モデルを十分にキャリブレートすること。キャリブレートされていないモデルが本番環境にデプロイされると何か問題が発生したときに救済および補填が難しくなる。
十分にキャリブレートされたモデルとは、Brier Score(またはそれに類するもの)で慎重に調整されたモデルを指す。
https://qiita.com/Derek/items/e382c087afd616a0053e

‘Data Crisis as a Service’ AntiPattern

開発時にデータの抽出やクレンジングの手順が記録されていない状況。
後にモデルを検証(あるいはデプロイ)する際に、膨大な時間を費やす必要が出てくることがある。
データ系列を管理、追跡可能にしておく必要がある。データについて外部関係者も関連してくるようなケースで複雑化しやすい。

最後に

論文の最後に著者らは教訓をどう生かしていくかについても言及。

  1. ここで紹介したアンチパターンを利用して、モデル管理プロセスをドキュメント化し、モデルの開発、デプロイ、承認において、コストはかかるが日常的なミスを回避する。
  2. アサーションを使用して、企業全体のデータ品質を追跡する。これは機械学習モデルが欠陥のあるデータやノイズの多いデータに依存している可能性があるため、非常に重要なこと。
  3. データ系列をドキュメント化し、過去に遡って特定のデータスライスでモデルを再学習または再チューニングできるようにする。
  4. アンサンブルを使用して、エラーが発生した場合の救済および補填パイプラインを維持する。アプリケーションのライフサイクルを通じて、モデルの履歴を追跡する。
  5. 複数のレベルでHuman-in-the-Loopの運用能力を確保する。

これらにより、データ管理者、モデル開発者(アルゴリズムを設計する機械学習担当者)、モデルエンジニア(モデルを本番環境に配置し、パフォーマンスを追跡する)、モデル認証局(標準とリスクレベルへの準拠を保証する専門家のグループ)といった利害関係者の中で、機械学習モデルのメリットとリスクが開発〜デプロイのすべての段階で十分に理解される構造化されたプロセスが保証されるとしている。

Discussion