機械学習モデルの学習データ(train set)と評価データ(test set)の間にデータの重複が存在する状態。重複があるとモデルの汎化性能を正確に測定できず、楽観的なバイアスを持つ評価結果が得られる。
Train-Testオーバーラップは、機械学習における基本的なデータ管理の問題で、学習に使用するデータと評価に使用するデータの間に重複が存在する状態を指す。重複があると、モデルは未知のデータに対する予測能力(汎化性能)ではなく、既知のデータを再現する能力で評価されることになり、実際よりも高い性能スコアが報告される。
従来の機械学習ではデータセットが比較的小規模(数千〜数万件)だったため、重複の検出と管理は容易だった。しかし、LLMの学習データが数兆トークンに達する現在、完全な重複排除は技術的に極めて困難になっている。
オーバーラップの検出にはいくつかのアプローチがある。
| 検出方法 | 対象 | 精度 | 計算コスト |
|---|---|---|---|
| 完全一致 | テキスト全体の一致 | 最高 | 低 |
| N-gramマッチ | 連続するN単語の一致率 | 高 | 中 |
| MinHash/LSH | 文書類似度のハッシュベース推定 | 中 | 低 |
| 埋め込みベース類似度 | ベクトル空間での意味的類似度 | 中〜高 | 高 |
| Suffix Array | 最長共通部分文字列の検出 | 高 | 中〜高 |
LLMの学習データのように大規模なコーパスに対しては、MinHashやSuffix Arrayのようなスケーラブルな手法が実用的である。
LLMでのTrain-Testオーバーラップには、従来の機械学習とは異なる固有の課題がある。
スケールの問題: Common Crawlだけで数百TBのテキストデータがあり、全ペア比較は計算上不可能。サンプリングベースの推定に頼らざるを得ない。
多段階処理: Webクロール → フィルタリング → 重複除去 → 品質フィルタ → トークン化という複数段階のパイプラインを経るため、各段階でオーバーラップの検出漏れが発生しうる。
粒度の問題: 文単位の完全一致は検出できても、段落レベルでの部分一致やパラフレーズによる意味的重複は見逃される。8-gramや13-gramなど、適切な粒度の選択が検出精度に大きく影響する。
オーバーラップの程度を数値化するための標準的な指標がいくつか存在する。
明確な閾値はないが、研究コミュニティでは13-gram完全一致が1件でもあれば汚染と見なす厳格な基準と、テストセットの5%以上で重複がある場合に問題視する緩い基準がある。厳格な基準を採用する方が安全。
通常、ベンチマークデータとの重複は学習データ全体のごく一部(0.01%未満)であり、除去による学習データの減少は無視できる程度。むしろ、学習データ内部の重複除去(deduplication)の方がデータ量への影響が大きい。
従来の機械学習ではK-fold cross-validationが有効だが、LLMの事前学習では学習データのシャッフルと分割が計算コスト的に非現実的。Fine-tuning段階では有効だが、事前学習済みモデルにはベンチマークデータが既に含まれている可能性がある。