出力フィルタリングとは
Output Filtering
LLMが生成したテキストをユーザーへ返す前に検査し、有害な内容や個人情報の漏洩を検知した場合にブロックまたは修正する仕組み
ひとことで言うと
AIが答えを返す直前に、その内容が問題ないかをチェックし、危険な内容ならブロックしたり書き換えたりする仕組み。
概要
出力フィルタリングは、LLMが生成したテキストをユーザーや下流の処理へ渡す前に、あらかじめ定めた基準に照らして検査し、ヘイトスピーチや暴力の助長、個人情報の漏洩といった有害な内容を検知した場合にブロックや修正をする仕組み。実装方式には、禁止語句や正規表現パターンとの照合で判定するルールベースの手法と、有害性を分類するために別途学習させた分類モデルを使う学習ベースの手法があり、実運用では両者を組み合わせて使われることが多い。入力側で悪意ある指示を検知・除去する入力サニタイズと対になる概念で、両者はガードレールと呼ばれる安全対策の枠組みを構成する主要な要素として位置づけられる。出力フィルタリングは、モデル自体の学習(ファインチューニングやアライメント)とは独立した外付けの防御層として機能するため、モデルを再学習せずに基準を追加・変更できる柔軟性がある一方、フィルタをすり抜ける巧妙な出力表現への対応は追いつきにくい課題がある。
背景
LLMは学習データやアライメントだけでは有害な出力を防ぎきれない場合があり、プロンプトインジェクションやジェイルブレイクのような攻撃によって意図しない出力を引き出されるリスクもある。モデル自体の頑健性を高めるだけでなく、生成された出力を配信前に検査する外付けの安全対策が必要とされ、出力フィルタリングはガードレールを構成する代表的な要素として実運用で使われてきた。
アーキテクチャ
出力フィルタリングは、LLMが生成したテキストを受け取り、禁止語句リストや正規表現によるパターンマッチング、または有害性・毒性・PII等を検知するために学習された分類モデルへ入力して評価する。評価結果が定めた基準を超えた場合、出力をそのままブロックする、当たり障りのない代替メッセージに差し替える、該当箇所だけをマスキングするといった対応をする。基準を満たした出力のみがユーザーや下流のシステムへ渡される。
ワークフロー
LLMがユーザーからの入力に対しテキストを生成する。 生成されたテキストを、ルールベースまたは学習ベースのフィルタへ渡して評価する。 評価結果が基準を超えた場合、出力をブロックする、あるいは修正する。 基準を満たした出力のみをユーザーや下流の処理へ渡す。
欠点
- 巧妙な言い換えや難読化によってフィルタをすり抜ける出力に対しては、検知精度が追いつきにくい
- 誤検知によって、無害な出力までブロックされ、利便性の低下を招くことがある
- 出力全体を検査してから返すため、ストリーミング応答のような即時性が求められる用途では遅延が生じやすい
比較
関連用語
よくある質問
出力フィルタリングと入力サニタイズの違いは?
出力フィルタリングはLLMが生成した後のテキストを検査するのに対し、入力サニタイズはLLMへ渡す前のユーザー入力や外部データを検証・無害化する点が異なる。両者はガードレールの中で組み合わせて使われることが多い。
出力フィルタリングだけで安全性は十分?
巧妙な言い換えでフィルタをすり抜けられる場合があるため、モデル自体のアライメントや入力側の対策と組み合わせた多層防御が推奨される。