YahooのAIプラットフォームのモデルモニタリングシステム
サイエンティストがすぐに設定でき、システムを運用せずに済む
簡単にしないと社内でデータドリフト検定が進まないという考え
(正しく、かつ、簡単につながると思った)
内製する決断
ヤフー、オンプレミスにデータがある環境を勘案
ドリフト検定、ワークフローツールは様々な実装
モデルモニタリングシステムを作る上でのベストプラクティスがない
前提として
データの品質管理とモデルモニタリングを別のシステムとして扱う
データの品質は特徴量管理で
サーブする箇所でモデルモニタリング
高頻度なモニタリングはそこまで重要ではない(割り切り)
急激な予測性能低下の原因はデータの品質による
アラートはモデルの劣化の可能性を伝えるものであり、最終的には人が判断
検定を実施するワークフローにArgo Workflowsを採用
ドリフトのベースラインを作成
定期的にドリフト検定を実施
データのロードとドリフトの検定を分離
データローダを開発できる
サイエンティストがワークフローを毎回書くのは現実的ではない
Argo Workfflowsの知識が必要🙅♂️
k8s上の処理を抽象化、簡単な設定で複雑な処理
k8sの仕組み: kubectl command -> API server -> Resource -> Controller -> Pods
Custom Resource Definitions
任意のリソース(カスタムリソースと呼ばれる)と対応する専用コントローラを登録できる
=Operatorパターン
Argo WorkflowsもOperatorパターン
カスタムリソースごとに1種類のワークフローを管理
ドリフト検定モデルを生成する
ドリフト検定モデルで検定する
統計情報を収集する
ユーザは設定を集約したリソースを使う
ダッシュボードリソース(grafana)
ヤフーは全社がk8s基盤
1000~2000クラスタ
データサイエンティストもk8s使える
ユーザフレンドリーであることを突き詰める
困ったことがあればなんでも言ってください
作ったから使うのではなく、課題を解決するから自然と使われる