# 機械学習システムの本番モニタリング Navigation: [[index]] | [[concepts/_index]] ## 定義 外部世界が変化する状況で、稼働中の機械学習システムが意図どおり動いている証拠を、単体テストやエンドツーエンドテストに頼らずリアルタイム監視で得て、自動対応に結びつける実践である。適応するシステムでは検証可能な不変条件が自明でないため、何を監視するかが要点になる。(Source: [[@2015__NeurIPS__Hidden Technical Debt in Machine Learning Systems]]) 出発点として次の 3 つが挙げられる。 - **予測バイアス**: 予測ラベルの分布は観測ラベルの分布に等しいはずである。平均だけを返す帰無モデルでも満たせる不完全な検査だが、過去データの学習分布が現実を反映しなくなった変化を捉える診断として有用である。次元別にスライスすれば問題箇所を絞り、自動アラートにも使える。 - **行動上限**: 入札やスパム判定のように現実へ作用する行動に、誤作動しない程度に広い上限を設けて健全性検査にする。上限に達したら自動アラートで人の介入や調査を起動する。 - **上流生産者**: 上流のデータ提供者を、下流の機械学習システムの必要を織り込んだ SLO で監視・テストし、上流のアラートを機械学習システムのコントロールプレーンへ伝える。逆に、自システムの SLO 違反も下流の消費者へ伝える。 (Source: [[@2015__NeurIPS__Hidden Technical Debt in Machine Learning Systems]]) ## 横断的知見 - 外部変化はリアルタイムに起きるため、アラートページを受けた人手対応は時間制約の厳しい問題に脆く、人手を介さない自動対応への投資が見合う。(Source: [[@2015__NeurIPS__Hidden Technical Debt in Machine Learning Systems]]) - 手動で決めた判定閾値はモデル更新で無効になるので、保持検証データで閾値を学習させる緩和策が示される。(Source: [[@2015__NeurIPS__Hidden Technical Debt in Machine Learning Systems]]) ## 未編纂の観察 - [本番モニタリングの範囲] [[@2015__NeurIPS__Hidden Technical Debt in Machine Learning Systems]] が出発点として挙げた予測バイアス・行動上限・上流生産者の監視に対し、[[@2017__Big Data__The ML Test Score - A Rubric for ML Production Readiness and Technical Debt Reduction]] は監視系のテストを 7 件に具体化し、依存先変更の通知、入力データの不変条件、訓練・サービング歪み、モデル陳腐化、数値安定性、計算性能、サービング済みデータでの予測品質を挙げる。前者の予測バイアスは後者の Monitor 7 の手段の 1 つに位置づく。(Source: [[@2015__NeurIPS__Hidden Technical Debt in Machine Learning Systems]], [[@2017__Big Data__The ML Test Score - A Rubric for ML Production Readiness and Technical Debt Reduction]]) - 訓練・サービング歪み(同じ特徴量が訓練とサービングで別経路により違う値を計算する問題)は、サービングの標本ログに識別子を付けて直接比較するか、訓練とサービングの分布統計を照合して監視する。Google の 36 チームの面談では、最も重要でありながら実施率が低いテストとされた。(Source: [[@2017__Big Data__The ML Test Score - A Rubric for ML Production Readiness and Technical Debt Reduction]]) ## 未解決の問い - 予測バイアスのような分布一致検査は、ラベルが遅れて届く領域でどの程度の遅延まで有効か。 - 訓練・サービング歪みの監視は、特徴量ストアのように訓練と推論で同一の経路を共有する設計で、どこまで不要になるか。 ## 関連 - 概念: [[データ分布のシフト]] / [[技術的負債]] / [[フィードバックループ]] / [[機械学習システムのテスト]] - ソース: [[@2015__NeurIPS__Hidden Technical Debt in Machine Learning Systems]] / [[@2017__Big Data__The ML Test Score - A Rubric for ML Production Readiness and Technical Debt Reduction]] ## 出典 - [[@2015__NeurIPS__Hidden Technical Debt in Machine Learning Systems]] — §7 外部世界の変化への対処(監視とテスト) - [[@2017__Big Data__The ML Test Score - A Rubric for ML Production Readiness and Technical Debt Reduction]](28 件のテストと採点方式、36 チームの面談)