データ品質フィルタリング(データヒンシツフィルタリング)
LLMの学習データから低品質・有害・冗長なテキストを除去するプロセス。fastTextやKenLMによる分類器ベースのフィルタリング、URL blacklist、perplexityスコアに基づくルールベースの手法を組み合わせて実施する。
データ品質フィルタリング
データ品質フィルタリングとは、Webクロール等で収集した大規模テキストデータからLLM学習に適さない低品質コンテンツを除去するプロセスである。FineWeb(HuggingFace, 2024年)の研究により、フィルタリング手法の選択がモデル性能に直結することが実証された。
概要
CommonCrawlのような大規模Webコーパスには、スパム・広告・定型文・機械生成テキスト・有害コンテンツが大量に含まれる。品質フィルタリングにより通常80-95%のデータが除去され、残った高品質データのみがLLM学習に使用される。
FineWebの実験では、同一モデルアーキテクチャ・同一トークン数で学習した場合、フィルタリング品質の違いだけでベンチマークスコアに最大8%の差が生じた。
フィルタリング手法の分類
| 手法カテゴリ | 具体的手法 | 判定基準 | 処理速度 |
|---|---|---|---|
| ルールベース | 文長フィルタ | 50文字未満/10万文字以上を除去 | 極高速 |
| ルールベース | 記号率フィルタ | 記号/数字比率30%以上を除去 | 極高速 |
| ルールベース | URL blacklist | 既知スパムドメインを除去 | 高速 |
| 統計ベース | Perplexity (KenLM) | PPL上位/下位を除去 | 中速 |
| 分類器ベース | fastText品質分類器 | Wikipedia vs Random Web判定 | 中速 |
| 分類器ベース | BERT品質スコアラー | 0-1の品質スコア判定 | 低速 |
| 重複排除 | MinHash LSH | Jaccard類似度0.8以上を除去 | 中速 |
| 重複排除 | Exact substring | 連続一致100文字以上を除去 | 高速 |
Perplexityフィルタの詳細
KenLM(5-gram言語モデル)でWikipediaコーパスを学習し、各文書のperplexity(予測困難度)を算出する。
- PPLが極端に低い文書: 定型文・テンプレート文書(例: プライバシーポリシー、利用規約)
- PPLが極端に高い文書: 非自然言語テキスト(例: HTMLタグ残存、機械的繰返し)
- 適切なPPL範囲: 言語・ドメインにより異なるが、英語Webでは概ね100-10,000
FineWebでは、C4方式の厳格なフィルタリングよりも、perplexityベースの適応的フィルタリングが優れた結果を示した。
分類器ベースのフィルタリング
fastText品質分類器
Wikipediaの記事をpositive、ランダムなWebページをnegativeとして学習したfastText分類器。GPT-3(Brown et al., 2020)で初めて大規模に採用された。
- 学習データ: Wikipedia全文(positive)+ CommonCrawlランダムサンプル(negative)
- 閾値: 通常0.5(precision重視なら0.7、recall重視なら0.3)
- 処理速度: 100万文書/分(CPUのみ)
- 制限: Wikipediaスタイルのフォーマルな文体にバイアス
DCLM (DataComp for Language Models) 品質分類器
Apple主導のDataCompプロジェクトで開発された、fastTextより高精度な品質分類器。OpenHermes 2.5等の高品質instruction dataをpositiveとして学習し、より多様なテキストスタイルに対応。
FineWebの革新
HuggingFaceが2024年に公開したFineWeb(15Tトークン)は、データ品質フィルタリングの集大成的データセットである。
主要な貢献:
- C4方式の再評価: C4の過度な正規化(句読点必須、JavaScript除去等)が品質を低下させることを実証
- 適応的フィルタリング: ドメイン別にフィルタ閾値を調整する手法の提案
- FineWeb-Edu: 教育的コンテンツのみを抽出したサブセット(1.3Tトークン)、Llama3-70B判定器で品質スコア3以上を選別
- 再現性: datatroveフレームワークで完全再現可能なパイプラインを公開
よくある質問(FAQ)
Q1: フィルタリングで除去しすぎるとモデル性能は下がりますか? A: はい。過度なフィルタリングはデータ多様性を損ない、特定のドメインやスタイルへの偏りを生みます。C4の過剰フィルタリング(句読点のない文を全除去等)がFineWebの実験で性能低下を引き起こすことが確認されています。
Q2: 日本語データのフィルタリングで特有の課題はありますか? A: 日本語では単語分割が必要(MeCab/Sudachi)、文字種混在(ひらがな/カタカナ/漢字/ASCII)への対応、Webページの文字コード問題(Shift_JIS/EUC-JP残存)などが英語にはない課題です。またKenLM perplexityモデルを日本語Wikipediaで別途学習する必要があります。
Q3: 有害コンテンツのフィルタリングはどう行いますか? A: 多段階アプローチが一般的です。まずURL blacklist(ut1-blacklists等)でドメイン単位除去、次にNSFW分類器(OpenNSFW2等)で画像ページ除去、最後にテキスト分類器(Perspective API/Detoxify等)で有害表現を検出・除去します。
まとめ
- 品質フィルタリングはルールベース→統計ベース→分類器ベースの3段階を組み合わせる
- KenLM perplexityとfastText品質分類器が基本ツール
- FineWebが示した適応的フィルタリングが2024-2025年のベストプラクティス
- 過度なフィルタリングは逆効果、データ多様性とのバランスが重要