LLM Output Filtering(エルエルエムアウトプットフィルタリング)
LLMの生成出力を後処理段階で検査・修正・ブロックする技術。有害コンテンツ検出・PII除去・事実性検証・フォーマット強制等を推論パイプラインの最終段階で適用し、安全で正確な出力を保証する。
LLM Output Filteringとは
LLM Output Filtering(LLMアウトプットフィルタリング)は、大規模言語モデルが生成したテキストを、ユーザーに提示する前に検査・修正・ブロックする後処理技術である。モデル自体の安全性(アラインメント)や入力制御(ガードレール入力側)とは独立した最終防衛ラインとして機能し、2026年現在のLLMアプリケーションにおいて最も実装頻度の高い安全対策の一つである。
フィルタリングの種類
出力フィルタリングは複数の技術を組み合わせて実装される:
コンテンツ安全性フィルタ
- 有害カテゴリ分類: 暴力・性的・差別・違法行為等のカテゴリ別にスコアリング。OpenAI Moderation API(無料)やPerspective API(Google、$0.001/リクエスト)が広く利用
- 毒性スコアリング: テキスト全体の有害度を0-1のスコアで評価。閾値(通常0.7-0.85)超過でブロック
- ニュアンス検出: 皮肉・暗示・コードワードによる間接的な有害表現を検出。LLMベース分類器が高精度
情報漏洩防止フィルタ
- PII検出・マスキング: 個人名・電話番号・メールアドレス・クレジットカード番号等を正規表現+NERモデルで検出し、マスク処理(「田中太郎」→「[氏名]」)
- 企業機密検出: APIキー・内部URL・プロジェクトコード名等のパターンマッチング。企業独自の辞書との照合
- 学習データ暗記検出: モデルが学習データをそのまま再現(Memorization)しているケースを検出。n-gram重複率で判定
品質・正確性フィルタ
- 事実性検証(Factuality): RAGシステムの参照元ドキュメントと生成文の整合性をチェック。NLI(自然言語推論)モデルで矛盾を検出
- 幻覚検出(Hallucination Detection): 参照元に存在しない情報の生成を検出。SelfCheckGPT・ChainPoll等の手法が実用化
- 構造化出力検証: JSON・SQLなどの構文検証。Pydantic V2(Python)・Zod 4(TypeScript)によるスキーマバリデーション
主要フィルタリングツール比較
| ツール/API | 提供元 | 対応カテゴリ | レイテンシ | 価格 | マルチモーダル |
|---|---|---|---|---|---|
| Moderation API | OpenAI | 11カテゴリ | 50-100ms | 無料 | テキストのみ |
| Content Safety | Azure | 8カテゴリ | 30-80ms | $1/1K req | テキスト+画像 |
| Perspective API | 6カテゴリ | 40-90ms | 無料(制限あり) | テキストのみ | |
| Llama Guard 3 | Meta | 13カテゴリ | 100-200ms | 自己ホスト | テキストのみ |
| Presidio | Microsoft OSS | PII 17種 | 20-50ms | 無料 | テキストのみ |
| Cleanlab TLM | Cleanlab | 信頼性スコア | 150-300ms | $0.005/req | テキストのみ |
実装パターン
パターン1: 同期フィルタリング(低レイテンシ重視)
応答生成と同期的にフィルタリングを実行。チャットボット等のリアルタイム用途向け:
- 処理時間: +30-100ms
- 精度: 中(軽量分類器使用)
- 適用場面: カスタマーサポート、FAQ応答
パターン2: ストリーミングフィルタリング(トークン単位)
Server-Sent Events(SSE)のストリーミング出力を1トークンずつ監視。有害パターンを検出した時点でストリームを中断:
- 処理時間: +5-10ms/トークン
- 精度: 中-高(文脈窓でバッファ判定)
- 適用場面: 対話型アプリケーション
パターン3: 非同期フィルタリング(高精度重視)
生成完了後に複数の重いフィルタを並列実行。バッチ処理・文書生成向け:
- 処理時間: +200-500ms
- 精度: 高(大規模NLIモデル + 外部ファクトチェック)
- 適用場面: レポート生成、医療文書、法務文書
フィルタリングの精度と課題
2026年時点のベンチマーク実績:
- 有害コンテンツ検出: F1スコア 0.92-0.96(英語)、0.85-0.90(日本語)
- PII検出: 再現率 0.95+(英語)、0.88-0.92(日本語の人名・住所)
- 幻覚検出: 精度 0.70-0.80(ドメイン依存が大きい)
- 過剰フィルタリング率: 正当な出力の3-8%が誤ってブロックされる
主な課題:
- 多言語対応: 英語以外の言語でフィルタ精度が10-15%低下
- コンテキスト依存: 医療用語(「注射」「切開」)が暴力カテゴリで誤検知される
- 回避テクニック: Unicode同形異字・base64エンコード・コード混在でフィルタを迂回する手法が存在
よくある質問(FAQ)
Q1: 出力フィルタリングはレイテンシにどの程度影響するか? A: 軽量分類器(Moderation API)で+50-100ms、LLMベース検証で+200-500ms。ストリーミング方式なら体感レイテンシへの影響は最小限(+5-10ms/トークン)。全体の応答時間に対して5-15%増が一般的。
Q2: フィルタリングとアラインメントのどちらが重要か? A: 多層防御の観点から両方必須。アラインメントは有害出力の生成確率を90-95%下げるが、残り5-10%はフィルタリングで捕捉する。特にプロンプトインジェクション経由の攻撃にはフィルタリングが最後の砦となる。
Q3: 日本語対応のフィルタリングツールはあるか? A: Azure Content SafetyとLlama Guard 3が日本語対応済み。OpenAI Moderation APIは英語中心だが日本語も基本検出可能。PII検出は日本語の住所・電話番号パターンに対応したカスタムルール追加が必要。
まとめ
- LLM Output Filteringは生成AI安全運用の最終防衛ライン
- コンテンツ安全性・PII防止・事実性検証の3層で構成
- OpenAI Moderation API(無料)から始められ、段階的に強化可能
- ストリーミング方式でリアルタイム対話のレイテンシ影響を最小化
- 多言語対応とコンテキスト依存の誤検知が2026年の主要課題