モデルドリフトとは?時間経過に伴うモデルの劣化を解説
モデルドリフトとは、モデルが目にする実世界のデータが学習時のデータから乖離するにつれて、デプロイされたモデルの精度が徐々に低下することです。
モデルは学習時点における世界のスナップショットです。世界は動き続け - 顧客の行動が変わり、価格が変わり、新しいパターンが現れ - モデルは徐々に時代遅れになります。この劣化がモデルドリフトであり、それを検出することはMLシステムを信頼できるものに保つために不可欠です。
モデルドリフトとは何か
モデルドリフトとは、本番の条件が変化するにつれてモデルの予測性能が時間とともに劣化することです。モデルは変わっていません。予測する対象の世界が変わったのです。放置すると、かつて正確だったモデルが静かにますます悪い予測をするようになります。
driftの種類
一般的な2つの形態は、入力featureの分布が変化するデータドリフトと、入力とターゲットの関係が変化するコンセプトドリフトです。モデルはどちらによっても劣化する可能性があり、しばしば異なる対応が必要です。
driftの検出方法
driftは監視によって検出されます。最近の入力と予測の統計的分布を学習時のベースラインと比較し、正解が得られる場所ではライブの精度を追跡します。有意な乖離がアラートを上げるか、再学習をトリガーします。
driftとCI/CD
drift検出は監視をpipelineに結び戻します。scheduleされたCIのjobがdriftメトリクスを計算し、それらが閾値を超えたら、モデルをリフレッシュするために継続的トレーニングのrunをトリガーできます。
steps:
- run: python detect_drift.py --baseline ref.parquet
- run: python detect_drift.py --threshold 0.2 || gh workflow run retrain.ymlLatchkeyノート
driftチェックは、scheduleに従って大きな本番データのウィンドウを読み込みます。Latchkeyでは、学習時のベースラインと依存関係をcacheすることでこれらの繰り返しのjobが安価に保たれ、auto-retryが比較データを取得する際の一時的なwarehouseやobject storeの読み取りをカバーします。
重要なポイント
- モデルドリフトは、本番データが学習データから乖離するにつれて、デプロイされたモデルの精度が低下することである。
- データドリフトは入力の分布を変え、コンセプトドリフトは入力とターゲットの関係を変える。
- 監視がdriftを検出し、モデルをリフレッシュするために継続的トレーニングのrunをトリガーできる。