LLMデータ品質フィルタリング(エルエルエムデータヒンシツフィルタリング)
大規模言語モデルの学習データから低品質テキスト・有害コンテンツ・個人情報(PII)を自動検出・除外するフィルタリング技術。fastText分類器やperplexityベースのスコアリングが代表的な手法である。
LLMデータ品質フィルタリングとは
LLMデータ品質フィルタリングは、前処理・重複排除を経たテキストデータに対して、学習に不適切なコンテンツを検出・除外する工程である。Webクロールデータには広告テキスト、スパム、自動生成コンテンツ、有害・違法コンテンツ、個人情報(PII)などが含まれており、これらを除去することでモデルの品質と安全性を確保する。MicrosoftのPhi シリーズが「教科書品質」のデータで小規模モデルの性能を大幅に向上させたことから、データ品質への注目が一層高まっている。
フィルタリング手法の分類
ルールベースフィルタ
| フィルタ名 | 判定基準 | 除外率目安 |
|---|---|---|
| 文長フィルタ | 50単語未満 or 100,000単語超 | 5〜10% |
| 記号比率フィルタ | 記号・数字が全体の50%超 | 3〜5% |
| 単語繰り返しフィルタ | 同一単語が全体の20%超 | 2〜3% |
| 行繰り返しフィルタ | 同一行が3回以上連続 | 1〜2% |
| 停止語比率フィルタ | 停止語の比率が2%未満(自然文ではない) | 3〜5% |
| アルファベット比率 | 英字が全体の80%未満(英語コーパスの場合) | 5〜8% |
| URL密度フィルタ | URLが全体の10%超 | 1〜2% |
これらのフィルタは C4 データセット(Google)や The Pile(EleutherAI)の構築で確立された。Datatrove では GopherQualityFilter と C4QualityFilter としてプリセットが提供されている。
分類器ベースフィルタ
機械学習モデルを使って文書の品質をスコアリングし、閾値以下のデータを除外する。
| 分類器 | 学習データ | 判定対象 | 精度(F1) | 速度 |
|---|---|---|---|---|
| fastText品質分類器 | Wikipedia(正例)vs Random Web(負例) | テキスト品質 | 約 0.92 | 非常に高速 |
| Perplexityフィルタ | KenLM 5-gram | 言語流暢性 | N/A(スコアベース) | 高速 |
| 有害コンテンツ分類器 | Jigsaw/HateBERT | 毒性・差別表現 | 約 0.88 | 中速 |
| NSFW分類器 | OpenAI Moderation | 成人コンテンツ | 約 0.95 | API依存 |
| PII検出器 | Presidio/spaCy NER | 個人情報 | 約 0.90 | 中速 |
fastText 品質分類器の詳細
FineWeb で採用された手法で、最も広く使われている品質フィルタリング手法の一つである。
学習プロセス:
- 正例: Wikipedia の記事テキスト(高品質テキストの代表)
- 負例: Common Crawl からランダムサンプリングしたWebテキスト
- 特徴量: 文字 n-gram(2〜5gram)
- モデル: fastText の教師あり分類(学習時間: 数分)
- 推論: 各文書に 0.0〜1.0 の品質スコアを付与
- 閾値: スコア 0.5 以上のみを採用(FineWeb の設定)
この手法は「Wikipedia に似たテキストは高品質」という仮定に基づいており、学術論文や技術文書に偏る傾向がある。対話形式や口語体のテキストが過度に除外されるリスクがある。
Perplexity ベースのフィルタリング
KenLM(5-gram 言語モデル)で文書の perplexity を計算し、極端に高い値(文法的に不自然)や極端に低い値(テンプレート・繰り返し)を除外する。
- 高perplexity除外(> 10,000): 文字化け、非自然言語テキスト、ランダム文字列
- 低perplexity除外(< 10): 繰り返しテキスト、テンプレート生成ページ
- 適正範囲: 100〜5,000(自然な文章の典型的な範囲)
CCNet(Meta)はこの手法を大規模に適用し、Common Crawl を「頭(高品質)」「中間」「尾(低品質)」の3層に分類した。
有害コンテンツフィルタリング
カテゴリと対策
| カテゴリ | 検出手法 | 対応策 |
|---|---|---|
| ヘイトスピーチ | BERT/RoBERTa分類器 | 完全除去 |
| 成人コンテンツ | URLブラックリスト + テキスト分類 | 完全除去 |
| 暴力表現 | キーワード + 分類器 | 完全除去 |
| 著作権侵害 | 書籍/論文との類似度検査 | 除去または許諾確認 |
| 偽情報・デマ | ファクトチェックDB照合 | 信頼度スコアで重み付け |
| SEOスパム | キーワード密度 + リンクファーム検出 | 除去 |
URLブラックリストは UT1(フランスの大学が管理する 300万+ URL のカテゴリ別リスト)が業界標準で、FineWeb・RefinedWeb の両方で採用されている。
PII(個人情報)の検出と除去
検出対象と手法
| PII種別 | 検出手法 | 対処 |
|---|---|---|
| メールアドレス | 正規表現 | マスキング or 除去 |
| 電話番号 | 正規表現 + 国コード判定 | マスキング |
| クレジットカード番号 | Luhnチェック + 正規表現 | 完全除去 |
| 住所 | NER(spaCy/Presidio) | マスキング |
| 人名 | NER + 文脈判定 | 確率的マスキング |
| IPアドレス | 正規表現 | マスキング |
| SSN/マイナンバー | 国別正規表現 | 完全除去 |
Microsoft の Presidio が PII 検出のオープンソース標準ツールで、50+ のPII種別を20+言語で検出できる。BigScience(BLOOM プロジェクト)でも Presidio ベースの PII 除去パイプラインが使用された。
マスキング戦略
- 完全除去: PII を含む文全体を削除(最も安全だがデータ損失大)
- トークン置換:
[EMAIL],[PHONE],[NAME]などのプレースホルダに置換 - 合成データ置換: 偽のメールアドレスや名前に置換(データの自然さを維持)
- 差分プライバシー: ノイズを加えて元データの復元を困難にする
品質フィルタリングの評価
アブレーション実験の重要性
品質フィルタの効果はモデル学習の下流タスク評価でしか正確に測定できない。FineWeb チームは以下のアブレーション実験プロセスを公開している。
- フィルタあり/なしの2つのデータセットを作成(各 28B トークン)
- 同一アーキテクチャ・ハイパーパラメータで 1.5B パラメータモデルを学習
- HellaSwag, ARC, MMLU 等の標準ベンチマークで性能比較
- 有意な改善が見られたフィルタのみを採用
この手法により、直感的には有効に見えるフィルタが実は性能を低下させるケースも発見されている。
よくある質問(FAQ)
Q1: フィルタリングで除外しすぎるとモデル性能は下がるか? A: 下がる場合がある。過度なフィルタリングはデータの多様性を損ない、特定ドメイン(Wikipedia 風テキスト)への過学習を招く。DCLM の実験では、fastText 品質スコアの閾値を 0.3 → 0.5 → 0.7 と上げると、一定の閾値を超えた時点で下流タスクの性能が低下し始めることが確認された。
Q2: 日本語コンテンツのフィルタリングで注意すべき点は? A: 英語向けに学習された品質分類器(fastText Wikipedia 分類器など)は日本語テキストに対して精度が低い。日本語 Wikipedia で別途分類器を学習するか、perplexity ベースの言語非依存フィルタを使用する。また、日本語特有の「全角記号の多用」「顔文字」がルールベースフィルタで誤除去されやすいため閾値調整が必要。
Q3: 有害コンテンツフィルタの偽陽性はどう対処するか? A: 完全な自動化は困難で、偽陽性率 1〜3% は許容範囲とされている。対策としては、複数の分類器のアンサンブル(2/3以上が有害と判定した場合のみ除外)や、除外候補のサンプリング検証(定期的に人手で確認)が有効。
まとめ
- 品質フィルタリングはルールベース + 分類器ベースの2層構成が標準
- fastText 品質分類器と perplexity フィルタが最も広く採用
- PII 除去は Presidio が業界標準ツール
- フィルタの効果はアブレーション実験で定量検証が必須
- 過度なフィルタリングはデータ多様性の損失につながるため注意