Slide 1

Slide 1 text

DynalystのML監視の取り組み事例

Slide 2

Slide 2 text

2 まとめ ・ML監視ではシステム/データ/予測値/モデルを監視する ・まずDevOpsの監視から始め、MLに関する監視に取り組む ・Dynalystでは以下のようにML監視に取り組んだ 1. プロダクト課題の整理 2. ML監視導入後の理想状態を決める 3. 監視項目の選定 4. 監視のための技術選定

Slide 3

Slide 3 text

長江 五月 自己紹介 3 @nsakki55 ブログ: https://nsakki55.hatenablog.com/ AWSでML基盤を構築する記事を書いてます 業務 ・MLOps ・MLモデリング ・広告データ分析 CyberAgent AI事業本部 Dynalyst データサイエンティスト マネージャー

Slide 4

Slide 4 text

1. ML監視プロジェクトのキックオフ 2. MLOpsにおける監視 3. DynalystのML監視の取り組み 目次 4

Slide 5

Slide 5 text

1. ML監視プロジェクトのキックオフ 5

Slide 6

Slide 6 text

6 リターゲティング広告を行う広告配信プロダクト リターゲティング広告とは? 「前にあるゲームで遊んでたけど◯日間ログインしてない」  ユーザーを対象にした広告 インストール 離脱 アプリ復帰 広告配信 Dynalystの紹介

Slide 7

Slide 7 text

7 DynalystのML活用 広告枠 ◯円で広告を表示します 広告オークションの入札価格決定にMLを活用 クリック確率(CTR) アプリ起動確率(CVR) などの ML予測値を元に計算

Slide 8

Slide 8 text

8 MLにまつわるトラブル ビジネス指標の変化 SQLで予測値を確認 DSへアラート ビジネス指標の変化の度にSQLで予測値を確認 予測値の変化をリアルタイムで認知できない

Slide 9

Slide 9 text

9 MLにまつわるトラブル 予測値が変化 ML入力データが変化 予測値変化の原因調査

Slide 10

Slide 10 text

10 MLにまつわるトラブル 予測値が変化 ML入力データが変化 予測値変化の原因調査 データ変化自体に気づけない

Slide 11

Slide 11 text

11 ML監視がプロダクトで必要となった 本番環境で動いてる MLモデルの状態をリアルタイムで認知できなかった MLモデルの異常が起きた時に 原因調査の負荷が高い ML監視の必要性が高まり、取り組むことを決めた

Slide 12

Slide 12 text

12 ML監視を始めるにあたって 何を監視すればいい? 監視ツールは何がある? 他社事例はある? 何から始めればいい? 一般的なML監視の全体像を調査し、 プロダクト課題に当てはめることにした

Slide 13

Slide 13 text

2. MLOpsにおける監視 13

Slide 14

Slide 14 text

14 ML監視 そもそもML監視とは? ・従来のシステム監視との違い ・MLシステムの特徴

Slide 15

Slide 15 text

15 従来のソフトウェアシステムとMLシステムの比較 従来ソフトウェアシステムの挙動は決定的 MLシステムはデータ・機械学習モデルに依存し確率的に変化 MLシステムの監視 = 従来システム監視 + データの監視 + 予測の監視 引用: The ML Test Score: A Rubric for ML Production Readiness and Technical Debt Reduction. Figure 1. ML Systems Require Extensive Testing and Monitoring.

Slide 16

Slide 16 text

16 MLシステムの関係者 データ変化してないかな... 精度は悪化してないかな... リクエスト増えないかな... インフラ負荷はOKかな... アプリケーションエラーでてないかな... 異なる専門分野の人がMLシステムに関わるため、 関心ある監視項目が異なる 引用: Machine Learning Operations (MLOps): Overview, Definition, and Architecture. Figure 3. Roles and their intersections contributing to the MLOps paradigm.

Slide 17

Slide 17 text

17 ML特有の監視問題 従来のソフトウェアシステムの監視に加え、データ・予測の監視が必要 MLシステムに関わる人によって関心のある監視項目が異なる では何を監視すればいいのか?

Slide 18

Slide 18 text

18 ML Test Scoreの監視項目 分類 監視項目 データ MLモデルの依存先の変化 学習時と推論時の入力データの普遍性 学習時と推論時の特徴量計算の普遍性 モデル 本番環境のモデルバージョン モデルの数値的安定性 予測値 MLモデルの入力データに対する予測性能 システム MLシステムの計算性能 データサイエンス に関わる監視 引用: The ML Test Score: A Rubric for ML Production Readiness and Technical Debt Reduction. Figure 1. ML Systems Require Extensive Testing and Monitoring.

Slide 19

Slide 19 text

19 ML Test Scoreの監視項目 ML Test ScoreはMLOpsの指針として有効だが抽象度が高く 具体的に何を監視すればいいか迷う ・学習時と推論時の入力データの普遍性 ・モデルの数値的安定性 データドリフトは有名だが 実際には何をすればいい? 数値的に安定してるとは? 実際に生じた疑問 …… ………………………

Slide 20

Slide 20 text

20 Neptune AIの監視項目(抜粋) 大分類 小分類 項目 データ データ品質 データの欠損・型チェック データドリフト 連続・カテゴリ特徴のデータ距離指標 外れ値監視 大きなデータドリフト検知 モデル モデルドリフト 過去と現在の予測値のデータ分布距離 モデル設定 学習時のメタデータ 予測 モデル評価指標 本番環境の予測値に対する評価指標 予測ドリフト 予測値の分布変化 引用: A Comprehensive Guide on How to Monitor Your Models in Production

Slide 21

Slide 21 text

21 Neptune AIの監視項目(抜粋) 大分類 小分類 項目 パイプライン データパイプライン 入力/出力データの状態 モデルパイプライン 学習ジョブの実行状態 コスト 推論コンピューティング費用 システム システムパフォーマンス 推論リクエスト数・レイテンシー システム信頼性 インフラ・ネットワーク指標 引用: A Comprehensive Guide on How to Monitor Your Models in Production

Slide 22

Slide 22 text

22 ML監視の取り組み順序 ML監視項目にはデータ・モデル・予測・パイプライン・システムに 関する監視があるのは分かった では、まず何の監視から始めるべきか?

Slide 23

Slide 23 text

23 MLOps成熟度モデル 引用: 3大クラウド各社の MLOps 成熟度モデルの比較 AWS GCP Azure 初期フェーズ Level 0 マニュアルプロセス Level 0 MLOps なし 反復可能フェーズ Level 1 MLパイプライン自動化 Level 1 DevOps はあるが MLOps なし 信頼可能フェーズ Level 2 CI/CDパイプライン自動化 Level 2 学習自動化 スケーラブル フェーズ Level 3 モデルデプロイ自動化 Level 4 フルMLOps自動化

Slide 24

Slide 24 text

24 ML監視の取り組み順序 システムパフォーマンス システムコスト モデル設定 入力データ 予測値 ビジネス指標 モデル指標 Level 0 Level 1 Level 2 情報量: 多 情報量: 少 導入: 難 導入: 易

Slide 25

Slide 25 text

25 ML監視の取り組み順序 システムパフォーマンス システムコスト モデル設定 入力データ 予測値 ビジネス指標 モデル指標 Level 0 Level 1 Level 2 まずはDevOpsの監視を整えた後 MLに関する監視を行う

Slide 26

Slide 26 text

26 ML監視の実現方法 ・データ ・予測値 ・モデル ・システムパフォーマンス 監視対象 の監視をどうやって実現するか?

Slide 27

Slide 27 text

27 自社開発のML監視基盤 Michelangelo (Uber) Zipline(Airbnb) Pro-ML(LinkedIn) ・特徴量の分布・重要度の可視化をサポート ・データを視覚的に理解できるようUIを工夫 Meet Michelangelo: Uber’s Machine Learning Platform Airbnb’s End-to-End Machine Learning Infrastructure Model health assurance platform at LinkedIn

Slide 28

Slide 28 text

28 クラウドベンダーのML監視基盤 Vertex AI Monitoring (GCP) SageMaker Model Monitor (AWS) Azure Machine Learning Dataset Monitor (Azure) ・データドリフト検知機能をサポート ・ML監視導入が容易

Slide 29

Slide 29 text

29 OSS/SaaSのML監視基盤 WhyLabs Datadog Prometheus+Grafana ・WhyLabsはLLMの監視もサポート ・Datadog/Prometheus+GrafanaはML特化ではない

Slide 30

Slide 30 text

3. DynalystのML監視の取り組み 30

Slide 31

Slide 31 text

31 ML監視の方向性 ・ML Test Scoreの監視項目に取り組んでみる →プロダクトの課題解決からはオーバーエンジニアリングだった ・ML監視ツールを導入してみる →誰にも見られないダッシュボードができると予感した →ML特化ツール導入でチーム内の責任範囲が分断されるのを避けたかった 当初検討したが不採用した方針

Slide 32

Slide 32 text

32 ML監視の方向性 1. プロダクト課題の整理 2. ML監視導入後の理想状態を決める 3. 監視項目の選定 4. 監視のための技術選定 ML監視プロジェクトの進め方

Slide 33

Slide 33 text

33 プロダクト課題の整理 ・データの変化に気づく仕組みがなかった ・学習実行ログを出してるだけで、見られてなかった ・予測値の確認コストが高い ・モデル精度の悪化にすぐに気づける仕組みがなかった ・ML周辺の異常時の原因究明が困難 …etc

Slide 34

Slide 34 text

34 ML監視導入後の理想状態を決める ・学習時の状態の変化を認知できる ・学習データ・モデル精度の大きな変化にすぐに気付ける(アラート機能) ・本番環境で動いているモデル精度を担保できる

Slide 35

Slide 35 text

35 監視項目の選定 オフライン・オンライン指標の観点で監視項目を選定 監視項目 対象 オフライン データの予測精度指標 logloss, AUC… 学習データの分布 データ数, 特徴量の内訳 オンライン 予測値の記述統計量 平均, 分散… 本番環境の予測精度指標 logloss, AUC… 予測値の再現率 オンライン予測値の再現率 予測値の偏り度合い 同じ予測値の割合

Slide 36

Slide 36 text

36 監視項目の選定 検討したが採用しなかった監視項目 ・データドリフト指標 →指標が抽象的で、データ分布自体を見た方がいいと思った ・特徴量重要度 →学習データ分布の変化を見る方が、モデル理解に役立つと考えた ・データの様々な可視化 →新しくダッシュボードを作成する必要があり、導入コストが見合わない

Slide 37

Slide 37 text

37 監視項目の選定 導入したアラート機能 ・オフライン精度が直前のバージョンより大きく悪化 ・学習データ数が直前のバージョンより大きく減少 ・学習データ数が1ヶ月前のバージョンより大きく減少 ・オンライン精度指標が悪化 ・オンライン予測値を取得不能 ・オンライン予測値が大きく変化

Slide 38

Slide 38 text

38 監視のための技術選定 既存システムの状況 ・プロダクト全体でAWSを使用 ・ML基盤はSageMakerを使用していない ・システム監視にDatadogを使用

Slide 39

Slide 39 text

39 監視のための技術選定 検討したが採用しなかった技術選定 ・SageMaker Model Monitorの利用 → 既存システムとの相性が悪かった ・ML監視用のダッシュボード作成 → 継続的なメンテナンスコストをDSが担いたくなかった 自前で監視指標の集計を行い、Datadogで監視を行うことにした

Slide 40

Slide 40 text

40 監視のための技術選定 予測値の記述統計量 オフライン精度指標

Slide 41

Slide 41 text

41 監視のための技術選定 オンライン精度指標

Slide 42

Slide 42 text

42 監視のための技術選定 学習データ分布

Slide 43

Slide 43 text

43 監視のための技術選定 特徴量ごとの内訳

Slide 44

Slide 44 text

44 監視のための技術選定 予測値の再現率 本番環境の予測値をオフラインで再現できる割合

Slide 45

Slide 45 text

45 監視のための技術選定 予測値の偏り 本番環境の予測値が特定の値に偏っている割合

Slide 46

Slide 46 text

46 ML監視導入後 ・予測値の大まかな把握を行うのにSQLを叩かなくなった ・ML周辺で異常が起きた時、データに問題があるかすぐに判断できるようになった ・本番環境のモデルが問題なく動いてる保証ができるようになった

Slide 47

Slide 47 text

47 課題 ・細かい粒度の精度をみるにはSQLを叩く必要がある ・全ての問題をキャッチするのは難しい ・全員に見られるダッシュボード化ができてない

Slide 48

Slide 48 text

まとめ 48

Slide 49

Slide 49 text

49 まとめ ・ML監視ではシステム/データ/予測値/モデルを監視する ・まずDevOpsの監視から始め、MLに関する監視に取り組む ・Dynalystでは以下のようにML監視に取り組んだ 1. プロダクト課題の整理 2. ML監視導入後の理想状態を決める 3. 監視項目の選定 4. 監視のための技術選定