ガードレールとは
安全性と品質を確保するチェックポイントです。
「ガードレールとは」はCoddyKit上の無料AI Prompt Engineeringレッスンです。 これはレッスン1/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはAI Prompt Engineering学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 AI Prompt Engineeringコースには全4レッスンが含まれています。
ガードレールの定義
ガードレールとは、LLMの周囲に配置して安全性、ポリシー、品質を適用するプログラムによるチェックです。入力時(ユーザー入力)と出力時(モデル出力)に実行され、モデルに届くものとユーザーに届くものを制御します。
モデルは確率的ですが、ガードレールはその上に重ねる決定論的なポリシー適用です。
プロンプトだけでは不十分な理由
「秘密を決して明かさない」のようなシステムプロンプトの指示はソフトです。ジェイルブレイクによって上書きされたり、長いコンテキストの中で効力が薄れたり、分布シフトの下で無視されたりする可能性があります。ガードレールは、モデルの外側にあるコードであり議論によって覆せないため、ハードです。
多層防御として、モデルに指示するだけでなく、独立したチェックでモデルを包みます。
入力と出力のガードレール
配置場所によって役割が異なります。
- 入力ガードレールは、トークンのコストが発生する前に、プロンプトインジェクション、許可されない要求、PIIをブロックします。
- 出力ガードレールは、ユーザーに届ける前に、安全でないコンテンツ、データ漏えい、幻覚、スキーマ違反を検出します。
入力チェックはコストを抑え、出力チェックはユーザーを守ります。
ブロック、削除、再生成、エスカレーション
ガードレールは、違反を検出したときのアクションを決めなければなりません。
- ブロック — 拒否して安全なメッセージを返します。
- 削除 — 問題の箇所を取り除いて処理を続けます。
- 再生成 — 違反内容を示して再プロンプトします。
- エスカレーション — 人間またはより厳格なモデルに回します。
適切なアクションは、深刻度とユーザーの信頼度によって異なります。
def on_violation(severity):
if severity == 'critical': return 'block'
if severity == 'pii': return 'redact'
if severity == 'quality': return 'regenerate'
return 'escalate'ガードレールパイプライン
ガードレールを順序付けられたパイプラインとして構成し、最初の重大な違反で即座に失敗させます。
def guarded_generate(user_input):
for g in INPUT_GUARDS:
verdict = g.check(user_input)
if verdict.block:
return safe_refusal(verdict)
output = call_model(user_input)
for g in OUTPUT_GUARDS:
verdict = g.check(output)
if verdict.block:
return verdict.handle(output)
return output決定論的ガードとモデルベースガード
実装方法は2つあります。
- 決定論的 — 正規表現、スキーマ、許可/拒否リスト、固定しきい値の分類器を使います。高速で低コスト、かつ監査可能です。
- モデルベース — モデレーションモデルまたはLLMの判定器で、微妙なポリシー判断を評価します。柔軟ですが、遅く、これ自体にも誤りがあります。
厳格なルールには決定論的ガードを使い、判断が必要なケースにはモデルベースガードを使います。
レイテンシーとコストの予算
すべてのガードレールがレイテンシーを追加します。高速性を保つための方法は次のとおりです。
- 独立した出力ガードを並列に実行します。
- 高コストなモデルチェックより先に、低コストな決定論的チェックを行います。
- 最初の重大なブロックでショートサーキットします。
- 出力をストリーミングしつつ、重要なガードレールを通過するまで配信を保留します。
verdicts = await asyncio.gather(*[g.check(out) for g in OUTPUT_GUARDS])
if any(v.block for v in verdicts):
return handle(verdicts)偽陽性は現実のコストになる
過度に厳しいガードレールは正当な要求までブロックし、ユーザーを苛立たせます(無害な質問に対して「そのお手伝いはできません」と返すようなケースです)。ラベル付きデータセットに対してしきい値を調整し、攻撃に対する再現率だけでなく、偽陽性率も主要な指標として追跡します。
ストリーミングは出力ガードを複雑にする
ユーザーにトークンをストリーミングすると、後から違反が検出された時点で、すでに画面に表示されている可能性があります。選択肢は次のとおりです。
- すべてバッファリングし、ガードしてから解放します(最も安全ですが、レイテンシーが高くなります)。
- ストリーミング中に文の境界でガードします。
- 楽観的にストリーミングし、違反時には撤回または置換します。
部分的に漏えいした出力がどれほど有害かに応じて選択します。
監査可能性とロギング
ガードレールはコンプライアンスの証跡です。入力ハッシュ、ガードID、深刻度、実行したアクションとともに、すべての判定を記録します。ただし、機密性の高いコンテンツ自体をログに記録しないよう注意します。この記録は監査時に適用状況を証明し、調整にも役立ちます。
audit.log({'guard': g.id, 'verdict': verdict.label,
'action': verdict.action, 'input_hash': sha256(inp)})ガードレールは設計の代わりにならない
ガードレールはリスクを低減しますが、なくすことはできません。秘密にアクセスできないモデルが、その秘密を漏えいさせることはありません。最小権限、スコープを限定したツール、コンテキストに機密データを含めないことなど、アーキテクチャ上の制御を優先し、ガードレールは唯一の層ではなく最後の層として使います。
クイックチェック
許可されていない要求に対するトークンの消費を主に減らすのは、どの配置のガードレールですか。
まとめ
ガードレールの基本:
- 確率的なモデルの周囲に重ねる、決定論的なポリシーです。
- 入力ガードはコストを抑え、出力ガードはユーザーを守ります。
- アクションには、ブロック、削除、再生成、エスカレーションがあります。
- 決定論的チェックとモデルベースチェックを組み合わせ、並列に実行します。
- 偽陽性を追跡し、判定をログに記録し、つぎはぎよりもアーキテクチャを優先します。
次は、入力と出力のフィルタリングを詳しく扱います。
よくある質問
「ガードレールとは」レッスンは無料ですか?
はい。「ガードレールとは」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、AI Prompt Engineeringコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 AI Prompt Engineeringコースには全4レッスンが含まれています。
「ガードレールとは」で何を学びますか?
安全性と品質を確保するチェックポイントです。 ブラウザで直接実行するハンズオンコードでAI Prompt Engineeringを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。
AI Prompt Engineeringを始めるのに経験は必要ですか?
事前経験は必要ありません。CoddyKitのAI Prompt Engineeringは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン1/4です。
「ガードレールとは」レッスンにはどのくらい時間がかかりますか?
ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。
このAI Prompt Engineeringレッスンでコードを書いて実行できますか?
はい。すべてのAI Prompt Engineeringレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。