継続的なモデルモニタリングを実現するKubernetes Operator
スライド概要
第18回 MLOps 勉強会の登壇資料です。
https://mlops.connpass.com/event/242652/
MLOpsにおいて重要なModel Monitoringの仕組みを開発するにあたって、整理した要件と実際に開発したシステムについてお話ししました。
各ページのテキスト
1. 継続的なモデルモニタリングを実現する Kubernetes Operator Copyright ©2022 (C)Yahoo 2020 Japan Yahoo Corporation Japan Corporation. All rights Allreserved. Rights Reserved.
2. ⾃⼰紹介 ⿊松 信⾏ ヤフー株式会社 @kuromt_ AIプラットフォームチーム Kubernetesを使った機械学習基盤の開発と運⽤ ヤフー社内のKubernetes技術コミュニティの運営 ©2022 Yahoo Japan Corporation All rights reserved. 2
3. ヤフーの機械学習基盤: AI プラットフォーム オンプレミス環境のマルチテナントKubernetes上に構築 MLOpsを⽀えるOSSや内製ツールを全社向けに提供 (Kubernetes) 参考:ヤフーのAIプラットフォーム紹介 〜 AI開発をより手軽に ©2022 Yahoo Japan Corporation All rights reserved. 3
4. なぜモデルモニタリングが重要なのか モデルの性能は時間の経過で性能が劣化する 性能が劣化したモデルをそのまま使い続けることはビジネス上の損失 ©2022 Yahoo Japan Corporation All rights reserved. 4
5. モデルモニタリングの基本はデータのドリフト検定 学習 データ ※ ⽂献により名称が異なる ※ Feature Dri*: ⼊⼒データの分布がドリフト 学習 Model 正解 ラベル ※ Prediction Drift: 予測結果の分布がドリフト Model ⼊⼒データ Model 予測結果 ※ Label Dri*: 正解が変化 ©2022 Yahoo Japan Corporation All rights reserved. 5
6. ヤフーにおけるモデルモニタリングの導⼊の実情 • 必要だと理解しているがサイエンティストが設定するにはコストが⼤きく後回 しになりがち • チームによって導⼊したりしなかったり • 導⼊しても設計や⽅針はばらばら 共通機能として モデルモニタリングの提供を⽬指す ©2022 Yahoo Japan Corporation All rights reserved. 6
7. モデルモニタリングの基本⽅針 基本⽅針 「サイエンティストがすぐにモデルモニタリングを設定でき、システムを 運⽤せずに済む」 (1) マネージドサービス (2) モニタリングに必要な仕組みを⼀括で提供する (3) 社内のデータソースに対応 ©2022 Yahoo Japan Corporation All rights reserved. 7
8. 既存のサービスやOSSを調査し、モデルモニタリングの内製を決断 (1) マネージドサービス (2) モニタリングに必要な仕組みを⼀括で提供する (3) 社内のデータソースに対応 • オンプレミスにデータがあるヤフーでは保存場所の要件があわない • フルマネージドに近づくほどデータの保存場所が限定される: S3, BigQueryなど • オンプレミスで利⽤可能なツールの機能は限定的 • 多くはドリフトの有無やメトリクスを調べ結果をサーバに送信する仕組み • 継続的な監視のためには定常実⾏のためのワークフローツールとの連携必要 ©2022 Yahoo Japan Corporation All rights reserved. 8
9. モデルモニタリングのシステムのベストプラクティスがない いざシステムを作ろうとすると • Good! ドリフト検定、ワークフローツール等は様々な実装が公開されている • And then… 学習データと予測結果をどうやって集める︖ モニタリングのプロセスでエラーが起きたら誰がどうやって調べる︖ 正解ラベルがない教師なし学習のモデルの性能劣化の検知をどうやて実現する︖ ドリフト検定以外にもモニタリングしなければならないメトリクスは︖ 多⽤なデータソースの⼊⼒データや出⼒データをどうやって取り出す︖ サイエンティストが設定する項⽬は何︖ モニタリングの頻度は︖ etc… ©2022 Yahoo Japan Corporation All rights reserved. 9
10. 前提をおく • 混同しやすいデータの品質管理とモデルモニタリングを別のシステムとして扱う データの品質管理 モデルモニタリング 特徴量化 Model • ⾼頻度なモニタリングはそこまで重要ではない • 急激な予測性能の低下の原因はデータの品質に問題が起きた可能性が⾼い • アラートはモデルの劣化の可能性を伝えるものであり最終的には⼈が判断 ©2022 Yahoo Japan Corporation All rights reserved. 10
11. データドリフトの検定⽅法: 基準点と現在を⽐較する 時間経過 学習 Model Model ©2022 Yahoo Japan Corporation All rights reserved. Model 11
12. データドリフトの検定⽅法: 基準点と現在を⽐較する 時間経過 Feature Dri*検定 学習 Model Model ドリフトなし ©2022 Yahoo Japan Corporation All rights reserved. 12
13. データドリフトの検定⽅法: 基準点と現在を⽐較する 時間経過 Feature Dri*検定 学習 Model Model Model ドリフトあり ©2022 Yahoo Japan Corporation All rights reserved. 13
14. データドリフトの検定⽅法: 基準点と現在を⽐較する 時間経過 Feature Drift検定(Servingシステムと連携する場合) Model Model ドリフトなし Model ドリフトあり Predic4on Dri*検定(Servingシステムと連携が必須) Model Model ドリフトなし ©2022 Yahoo Japan Corporation All rights reserved. Model ドリフトあり 14
15. モデルモニタリングのシステムの要件を整理 • データドリフトを検定 • データの統計情報の収集 • アラート • ダッシュボードによる可視化 • 対応データソースの拡張性 • すぐに導⼊できる ©2022 Yahoo Japan Corporation All rights reserved. 15
16. Dronach ©2022 Yahoo Japan Corporation All rights reserved. 16
17. Dronach モデルモニタリングに必要な処理を ワークフローとして実⾏する ©2022 Yahoo Japan Corporation All rights reserved. 17
18. Argo Workflows Kubernetesネイティブなワークフローエンジン AI プラットフォームチームがマネージドサービスとして提供 ©2022 Yahoo Japan Corporation All rights reserved. 18
19. データドリフト検定の仕組み • Alibi Detectでドリフトを検定するワークフローをArgo Workflowsで実⾏ 基準のデータセット からドリフトの ベースラインを作成 ドリフト検定 モデル作成 Hive, S3, etc.. データロード ドリフトの検定 モデル作成 ドリフト検定:1回⽬ Hive, S3, etc.. データロード ドリフト検定 ドリフト検定:2回⽬ Hive, S3, etc.. ©2022 Yahoo Japan Corporation All rights reserved. データロード ドリフト検定 19
20. データドリフト検定の仕組み • Alibi Detectでドリフトを検定するワークフローをArgo Workflowsで実⾏ 基準のデータセット からドリフトの ベースラインを作成 ドリフト検定 モデル作成 Hive, S3, etc.. データロード ドリフトの検定 モデル作成 ドリフト検定:1回⽬ Hive, S3, etc.. データロード ドリフト ドリフト検定 ドリフト検定:2回⽬ Hive, S3, etc.. ©2022 Yahoo Japan Corporation All rights reserved. データロード ドリフト検定 20
21. データドリフト検定の仕組み • Alibi Detectでドリフトを検定するワークフローをArgo Workflowsで実⾏ ドリフト検定 モデル作成 Hive, S3, etc.. ドリフト検定:1回⽬ データロード ドリフトの検定 モデル作成 データのロードとドリフトの検定 を分離することで、 データローダーを開発するだけで データロード 対応データソースを増やせる Hive, S3, etc.. ドリフト検定 ドリフト検定:2回⽬ Hive, S3, etc.. ©2022 Yahoo Japan Corporation All rights reserved. データロード ドリフト検定 21
22. 統計情報を収集する仕組み • データロギングツールであるWhylogsを採⽤ • 近似計算による⾼速なアルゴリズムを持つApache DataSketchesのラッパー • 収集するメトリクスのカスタマイズや結果ファイルの保存場所の変更など⾼い柔軟性 統計情報の収集 Hive, S3, etc.. データロード ©2022 Yahoo Japan Corporation All rights reserved. 統計情報の計算 22
23. モニタリングを実⾏する仕組みはできたが… サイエンティストがワークフローを毎回書くのは現実的ではない • Argo Workflowsの知識が必要で書ける人が限られる • 1つのワークフローごとに数百行のYAMLを書く必要がある • こういうワークフローを作るとよいというベストプラクティスの共有と同じ ワークフローだけではなく結果を確認する可視化やアラートの仕組みを別に⽤意 してつなぎこむ必要がある • DBの設計やシステムの運用が必要になる モニタリングに必要なワークフローを抽象化し、 すぐに使える形で提供する ©2022 Yahoo Japan Corporation All rights reserved. 23
24. Kubernetes Operatorの導⼊ Kubernetes上の処理を抽象化して簡単な設定で複雑な処理を実⾏したい 実⾏中の状態をユーザ⾃⾝がCLIやAPIを通じて参照できるようにしたい ユーザ⾃⾝の権限でモデルモニタリングに必要なデータを参照したい モデルモニタリングのための Kubernetes Operatorとして開発することに ©2022 Yahoo Japan Corporation All rights reserved. 24
25. Kubernetesの仕組み 1. API Serverを通じてリソースを登録(PodやDeploymentなど) 2. 対応するコントローラが登録されたリソース情報を読み込んでクラスタを操作 Deployment をデプロイ $ kubectl apply -f deploy.yml replicas=3 API server Resource Controller ©2022 Yahoo Japan Corporation All rights reserved. 25
26. カスタムリソースとOperatorパターン CustomResourceDefinitions: Kubernetesに任意のリソースを登録する仕組み Operatorパターン: カスタムリソースと対応するコントローラをKubernetesに登録する Argo Workflowsもワークフローの複雑な仕組みをOperatorパターンで実現 Workflowを デプロイ A A→B, A →C B→D, …. B $ kubectl apply -f workflow.yml API server Workflow Resource Workflow Controller ©2022 Yahoo Japan Corporation All rights reserved. C D E 26
27. どの粒度でDronachのカスタムリソースを設定するか ⽅針︓カスタムリソース毎に1種類のワークフローを管理する ユーザがデプロイするのは設定を集約した太字のカスタムリソースのみ カスタムリソース 役割 DataDriftModelJobs ドリフト検定モデルを⽣成するワークフロー DataDriftDetectJobs ドリフト検定モデルを使った検定するワークフロー ProfileJobs 統計情報を収集するワークフロー BaseModels 対象のデータセットとモニタリングの設定 Dashboards 可視化とアラートの設定 ModelKPI (詳細は割愛) サービスKPIの収集 ©2022 Yahoo Japan Corporation All rights reserved. 27
28. [beta]
BaseModelのYAML
apiVersion: dronach.yahoo.co.jp/v1alpha1
kind: BaseModel
metadata:
name: dronach-demo
lable:
service: demo
spec:
data:
name: data-for-demo
volumeSize: 1Gi
hive:
query: "SELECT * from feature_table where day_of_year=={{workflow.creationTimestamp.j}};"
keytabSecret: keytab
account: dronach-sample-user
profile:
schedule: "0 0 */1 * *"
統計情報収集のスケジュール
resources:
limits:
cpu: 1
memory: 500Mi
dataDrift:
template:
ドリフト検定のスケジュール
schedule: "0 0 */1 * *"
resources:
limits:
cpu: 4
memory: 10Gi
学習データを取り出すクエリをそのままペースト
©2022 Yahoo Japan Corporation All rights reserved.
28
29. 利⽤の流れ 対象のデータと実⾏スケジュールを指定してBaseModelリソースを作る Dronach Controllerがドリフト検定と統計情報収集のワークフローをデプロイ ドリフト検定A Data : hdfs://data/xxx Schedule : * */1 * * * BaseModel をデプロイ ドリフト検定B $ kubectl apply -f basemodel.yml API server BaseModel Resource Dronach Controller ©2022 Yahoo Japan Corporation All rights reserved. 統計情報収集 29
30. ダッシュボード 統計情報の変化 ドリフトの有無 ©2022 Yahoo Japan Corporation All rights reserved. 30
31. Dronachの設計を考えるうえで参考にした資料 • Monitoring Machine Learning Models in Produc6on • How to Detect Model Dri: in MLOps Monitoring • monitoringml.com • Best Prac6ces for Dealing With Concept Dri: • Concept dri: in machine learning 101 • Produc6on Machine Learning Monitoring: Outliers, Dri:, Explainers & Sta6s6cal Performance • Produc6onizing Machine Learning: From Deployment to Dri: Detec6on • DATA VALIDATION FOR MACHINE LEARNING • Learning under Concept Dri:: A Review • Monitoring and explainability of models in produc6on • Unified Shapley Framework to Explain Predic6on Dri: ©2022 Yahoo Japan Corporation All rights reserved. 31
- https://christophergs.com/machine learning/2020/03/14/how-to-monitor-machine-learning-models/
- https://towardsdatascience.com/how-to-detect-model-drift-in-mlops-monitoring-7a039c22eaf9
- https://monitorml.com/
- https://neptune.ai/blog/concept-drift-best-practices
- https://www.aporia.com/blog/concept_drift_in_machine_learning_101/
- https://towardsdatascience.com/production-machine-learning-monitoring-outliers-drift-explainers-statistical-performance-d9b1d02ac158
- https://databricks.com/wp-content/uploads/2019/09/8-1-2019-Productionizing-ML_-From-Deployment-to-Drift-Detection-Webinar.pdf
- https://mlsys.org/Conferences/2019/doc/2019/167.pdf
- https://arxiv.org/pdf/2004.05785.pdf
- https://arxiv.org/pdf/2007.06299.pdf
- https://arxiv.org/pdf/2102.07862.pdf
32. Yahoo! JAPAN Tech Blog ©2022 Yahoo Japan Corporation All rights reserved. 32
33. まとめ 簡単に導⼊できる継続的なモデルモニタリングDronachを開発 Kubernetes Operatorとして提供することで簡単に導⼊できる サイエンティスト視点 • 既存のコードに⼿を加えることなくモデルモニタリングを導⼊できる • システム連携の設計やワークフローツールの構築スキルは不要 • モニタリングシステムの運⽤をしなくてもすむ プラットフォームエンジニア視点 • サイエンティストがモデルモニタリングを設定するトイルを削減 ©2022 Yahoo Japan Corporation All rights reserved. 33
34. We are hiring!! データプラットフォームエンジニア(AIプラットフォーム/データ基盤/DBA) ・AI/機械学習によって世界を良くしたい⼈ ・技術/サイエンス⼒を活かしてML基盤を作りたい⼈ ・ユーザ視点に⽴って、システムの設計/開発ができる⼈ チームの詳細を聞きたい⽅は @kuromt_までお気軽にDMください ©2022 Yahoo Japan Corporation All rights reserved. 34
35. ©2022 Yahoo Japan Corporation All rights reserved.