# データ依存性負債
Navigation: [[index]] | [[concepts/_index]]
## 定義
機械学習システムが入力信号(特徴量)として他システムの出力やデータに依存することで生じる技術的負債である。コード依存性はコンパイラやリンカの静的解析で見つけられるが、データ依存性には同様の道具が乏しく、検出が難しい分、鎖が長くなりやすい。(Source: [[@2015__NeurIPS__Hidden Technical Debt in Machine Learning Systems]])
主な型は 2 つある。
- **不安定なデータ依存性**: 入力信号が時間とともに質的・量的に変わる。他のモデルの更新出力や、TF/IDF のようなデータ依存の対応表が原因で、所有者が別だと更新はいつでも起こる。過去の誤較正に適合したモデルは、修正でも急変する。緩和策は信号の版管理だが、陳腐化と複数版の維持コストを伴う。
- **未活用のデータ依存性**: 増分の効果が小さい信号。レガシー特徴量、バンドル特徴量、ε 特徴量、相関特徴量として入り込み、削除しても害がないのに変化への脆弱性を増やす。網羅的な leave-one-feature-out 評価を定期実行して検出する。
(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]] は Data 2(すべての特徴量が有益)、Data 3(特徴量のコストが高すぎない)、Monitor 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]])
## 未解決の問い
- 大規模言語モデルのプロンプトや取得文書のような非構造の入力に、特徴量単位の leave-one-out や静的解析はどう拡張できるか。
- 新規データ源の導入に伴う協議と履歴データの再作成の費用を、特徴量のコスト指標(Data 3)へどう含めるか。
## 関連
- 概念: [[技術的負債]] / [[データ分布のシフト]] / [[機械学習システムのテスト]]
- ソース: [[@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]] — §3 データ依存性は、コード依存性より高くつく
- [[@2017__Big Data__The ML Test Score - A Rubric for ML Production Readiness and Technical Debt Reduction]](28 件のテストと採点方式、36 チームの面談)