AI・機械学習
上級

LLM合成データフィルタリング(エルエルエムゴウセイデータフィルタリング)

LLM合成データフィルタリングとは、LLMが生成した大量の合成データから低品質・有害・重複・矛盾するサンプルを自動的に検出・除去し、学習に使用するデータの品質を保証する技術である。

0 回閲覧
0 いいね

LLM合成データフィルタリングとは

LLM合成データフィルタリングとは、Self-InstructやEvol-Instructなどの手法で大量生成された合成データから、低品質・有害・重複・事実誤認・フォーマット不良などの問題のあるサンプルを自動的に検出し除去する技術である。合成データの「量」から「質」への変換プロセスであり、フィルタリングの品質がファインチューニングの最終性能を直接左右する。

なぜフィルタリングが不可欠なのか

合成データ生成では以下の問題が不可避的に発生する。

  • ハルシネーション: GPT-4でも約5-15%の生成に事実誤認が含まれる(Maynez et al., 2020の研究を拡張した2024年の調査)
  • 重複・類似: Self-Instructで生成した52K件中、約15%が意味的に重複(ROUGE-L > 0.7)
  • フォーマット不良: 指定フォーマットからの逸脱(JSON構文エラー、マークダウン崩壊等)が3-8%
  • 有害コンテンツ: 安全フィルタを通過する巧妙な有害テキストが0.1-1%
  • 品質のばらつき: 同一プロンプトでも出力品質が大きく変動(温度パラメータ依存)

LIMAの研究(Zhou et al., 2023)は「データの品質 > 量」を実証し、厳選された1,000件が50K件のフィルタリング不十分なデータを上回ることを示した。

フィルタリング手法の体系

1. ルールベースフィルタリング

最も基本的で計算コストの低い手法。パイプラインの最初に適用する。

フィルタルール閾値例除去対象
長さフィルタ回答 < 50文字 or > 10,000文字極端に短い/長い回答
言語検出指定言語比率 < 80%言語混在・文字化け
特殊文字比率非テキスト文字 > 30%コード崩壊・エンコードエラー
繰り返し検出同一フレーズ3回以上反復LLMのデコード異常
NGワードフィルタブラックリスト一致有害・不適切コンテンツ
フォーマット検証JSON/Markdownパース成功構造化データの構文エラー
文末チェック文が途中で切れていないトークン上限による打ち切り

2. 重複除去(Deduplication)

手法計算量精度用途
完全一致O(n)100%同一テキストの除去
N-gram重複O(n log n)高表層的な類似テキスト
MinHash + LSHO(n)中〜高大規模データの近似重複
Embedding類似度O(n²) → ANN O(n log n)非常に高意味的重複の検出
SemDeDupO(n log n)非常に高セマンティック重複除去

MinHash + LSH(Locality-Sensitive Hashing)は100万件規模のデータに対して数分で処理可能であり、実務では最も広く使われている。Embedding類似度はFAISS等の近似最近傍探索で計算量をO(n log n)に削減できる。

3. 品質スコアリング

LLMまたは専用の品質判定モデルを使って各サンプルにスコアを付与し、閾値以下を除去する。

LLM-as-Judge方式:

プロンプト: 「以下の指示応答ペアの品質を1-5で評価してください。
評価基準: (1)指示への適合性 (2)情報の正確性 (3)回答の完全性 (4)文法の正確さ (5)有用性
指示: {instruction}
回答: {response}
スコア:」
  • GPT-4をJudgeとして使用した場合、人間の評価との相関は0.85〜0.90(Zheng et al., 2023)
  • コスト: 100K件のスコアリングで約$500(GPT-4o使用時は約$100)
  • 代替: Llama 3.1 70Bをローカルで使用すれば計算コストのみ

専用品質モデル:

  • Reward Model: RLHF用のReward Modelを品質スコアラーとして流用
  • ArmoRM(2024年): オープンソースのReward Modelで合成データの品質評価
  • Skywork-Reward(2024年): 合成データ評価に最適化されたReward Model

4. 事実性検証フィルタ

合成データ中のハルシネーション(事実誤認)を検出するフィルタ。

  • 自己一貫性チェック: 同じ質問に対して複数回生成し、回答が一貫しているか確認。一貫率70%以下のサンプルを除去
  • 検索ベース検証: 生成された事実主張をWeb検索やWikipediaと照合
  • NLIモデル検証: 自然言語推論モデル(DeBERTa-v3等)で前提と結論の矛盾を検出
  • 知識グラフ照合: Wikidata等の構造化知識と照合して事実誤認を検出

5. 多様性フィルタリング

品質が高くても類似データが多すぎると学習効率が低下する。

  • Self-BLEU: 生成データ内の自己類似度を測定。0.3以下を維持(低いほど多様)
  • クラスタリングベース: Embeddingでクラスタリングし、各クラスタから均等にサンプリング
  • DPP(Determinantal Point Process): 多様性を最大化するサブセット選択アルゴリズム

実践的なフィルタリングパイプライン

[生成データ 100K件]
    ↓ ルールベースフィルタ (-10-15%)
[85-90K件]
    ↓ 重複除去 MinHash+LSH (-10-20%)
[70-80K件]
    ↓ LLM-as-Judge スコアリング (3.5以上のみ残す, -20-30%)
[50-60K件]
    ↓ 事実性検証 (自己一貫性チェック, -5-10%)
[45-55K件]
    ↓ 多様性サンプリング (クラスタ均等化, -10-20%)
[最終データセット 40-50K件 (元の40-50%)]

フィルタリングツール・ライブラリ

ツール機能言語ライセンス
datatrove大規模テキストフィルタリングPythonApache 2.0
dolma重複除去+品質フィルタRust+PythonApache 2.0
text-dedupMinHash/SimHash重複除去PythonMIT
cleanlabラベルエラー+品質検出PythonAGPL-3.0
langkitテキスト品質メトリクスPythonApache 2.0

2025-2026年の最新動向

  • RLHF Reward Modelの品質フィルタ転用: Reward Modelのスコアを合成データ品質フィルタとして使用する手法が標準化。ArmoRM-Llama3-8B-v0.1がReward Bench 1位(2024年)
  • データ影響関数(Data Influence Functions): 各学習サンプルが最終モデル性能に与える影響を推定し、負の影響を持つサンプルを除去
  • 自動フィルタリングパイプライン: DataCompose(Meta, 2024年)がデータミックス比率の自動最適化を実現
  • 合成データの出自追跡(Provenance): どのモデル・プロンプト・日時で生成されたかのメタデータ管理が義務化の流れ

よくある質問(FAQ)

Q1: フィルタリングでどの程度のデータを除去すべきか? A: 一般的には生成データの40-60%を除去するのが適切。Alpacaプロジェクトでは52K件中約20%が品質フィルタで除去された。LIMAの研究では99%以上を除去して厳選1,000件を残すアプローチも有効性が実証されている。除去率はタスクと要求品質に依存する。

Q2: LLM-as-JudgeとReward Modelのどちらが品質評価に適しているか? A: 汎用的な品質評価にはLLM-as-Judge(GPT-4o等)が柔軟で高精度。大規模データの高速処理にはReward Model(ArmoRM等)がコスト効率で優れる。100K件以下ならLLM-as-Judge、100K件以上ならReward Modelが推奨。両者を組み合わせるカスケード方式(Reward Modelでスクリーニング→LLM-as-Judgeで精密評価)が最も効果的。

Q3: ハルシネーション検出の精度はどの程度か? A: 自己一貫性チェックで約70-80%、NLIモデルで約75-85%、検索ベース検証で約80-90%のハルシネーションを検出可能。複数手法の組み合わせで90%以上の検出率を達成できるが、完全な除去は困難。残存ハルシネーション率1-3%が現実的な目標。

まとめ

  • 合成データフィルタリングはルールベース→重複除去→品質スコアリング→事実性検証→多様性確保の5段階パイプライン
  • 生成データの40-60%を除去するのが標準的な品質管理基準
  • LLM-as-JudgeとReward Modelの組み合わせが最も効果的な品質評価手法
  • 「データの品質 > 量」がLIMA以降の共通認識であり、フィルタリングの重要性は増大