トレーニングデータフィルタリング(トレーニングデータフィルタリング)
LLMの学習データから低品質・重複・有害なテキストを自動的に検出・除去するプロセス。ヒューリスティックルールと機械学習分類器を組み合わせて実施される。
トレーニングデータフィルタリングとは
トレーニングデータフィルタリングは、LLMの事前学習や微調整に使用するデータセットから、品質基準を満たさないテキストを体系的に除去するプロセスである。フィルタリングの精度はモデルの最終性能に直結するため、現代のLLM開発において最も投資対効果の高い工程とされている。
フィルタリング手法の分類
ヒューリスティックフィルタ
ルールベースで機械的に低品質データを除外する手法。計算コストが低く、大規模データの一次選別に適している。
| フィルタ種別 | 判定基準 | 除外対象例 |
|---|---|---|
| 文長フィルタ | 文字数・単語数の閾値 | 極端に短い/長いテキスト |
| 記号比率フィルタ | 記号・数字の割合 | HTMLタグ残骸、コード混在 |
| 繰り返し検出 | n-gram重複率 | SEOスパム、自動生成テキスト |
| 言語判定フィルタ | fastText言語ID | 対象外言語の混入 |
| パープレキシティフィルタ | KenLM/GPT-2 PPL | 文法的に不自然なテキスト |
分類器ベースフィルタ
学習済み分類モデルで品質を判定する手法。ヒューリスティックでは捉えきれない「意味的な品質」を評価できる。
主要な分類器アプローチ:
- Wikipediaライク分類器: Wikipediaを正例、ランダムWebテキストを負例として訓練。C4データセットで採用
- 教育的価値分類器: FineWeb-Eduで使用。テキストの教育的価値を5段階でスコアリング
- ドメイン分類器: 特定ドメイン(科学論文、コード、法律文書等)への適合度を判定
LLMベースフィルタ
GPT-4やClaude等の高性能LLMを品質判定に使用する手法。最も高精度だがコストが高く、大規模データへの適用にはサンプリング戦略が必要。
品質フィルタリングの具体的パイプライン例
FineWebプロジェクトのパイプライン構成:
- URL フィルタリング: ブラックリスト・成人向けサイト除外
- テキスト抽出: trafilatura による本文抽出
- 言語判定: fastText lid.176.bin(閾値0.65)
- ヒューリスティック: Gopher rules(文長・記号比率・繰り返し率)
- MinHash重複除去: 5-gram、閾値0.7のJaccard類似度
- 品質分類器: 教育的価値スコア(閾値3以上を採用)
フィルタリング閾値のトレードオフ
フィルタリングは「厳しすぎると多様性を失い、緩すぎるとノイズが混入する」というトレードオフがある。Llama 3の報告では、最適な閾値は下流タスクごとに異なり、コード生成タスクでは緩めの閾値が、推論タスクでは厳しい閾値が有効だった。
FAQ
Q1: フィルタリングでどれくらいのデータが除外される?
A1: 一般的にCommon Crawl生データの70〜90%が除外される。FineWebでは96TBの生データから15TBの高品質テキストを抽出しており、約85%が除外された計算になる。
Q2: 日本語データのフィルタリングで注意すべき点は?
A2: 英語向けヒューリスティック(単語数ベースの文長フィルタ等)をそのまま適用すると、日本語テキストが過度に除外される。文字数ベースのフィルタに変更し、形態素解析(MeCab/SudachiPy)を前処理に組み込む必要がある。
Q3: フィルタリングの品質をどう評価する?
A3: 小規模モデル(125M〜1Bパラメータ)でアブレーションスタディを行い、フィルタリング設定ごとの下流タスク性能を比較するのが標準的手法。DataCompベンチマークのようなフレームワークを使えば、再現可能な比較評価が可能である。