本文へスキップ
Claude Media
Constitutional Classifiers — Anthropicの「憲法」型分類器でClaudeのjailbreakを95%以上防ぐ仕組み

Constitutional Classifiers — Anthropicの「憲法」型分類器でClaudeのjailbreakを95%以上防ぐ仕組み

Anthropicが2025年2月に発表したConstitutional Classifiers。憲法(constitution)から合成データを生成し入出力を二重に検査する設計で、自動評価ではjailbreak成功率を86%から4.4%に圧縮しました。

読了目安 約9

背景 — なぜ「universal jailbreak」が問題なのか

Anthropicが2025年2月3日に公開した研究記事「Constitutional Classifiers: Defending Against Universal Jailbreaks」は、フロンティアモデルの安全性研究のなかでも実装寄りの一本です。発表元はAnthropic Safeguards Research Team、論文本体はarXiv:2501.18837で公開されています。

ここで扱う「universal jailbreak」は、特定の有害カテゴリだけを抜けるプロンプトではなく、1つの手法で複数の禁止カテゴリを横断的に突破できる汎用攻撃を指します。Anthropicの懸念は明確で、CBRN(化学・生物・放射性物質・核)関連の情報のように、一般利用では絶対に出してはいけないアウトプットが、汎用攻撃1本で全カテゴリ崩れると、モデル自体の利用ポリシーが事実上機能しなくなる、という問題意識です。

これまでの安全策は大きく2系統ありました。1つはRLHFやConstitutional AI(以下CAI)のようなモデルそのものをアラインするアプローチ。もう1つは入出力を別系統で検査するclassifier(分類器)による外側のガード。前者はモデル本体の振る舞いを変える代わりに、新しい攻撃手法へ追従するには再学習コストがかかります。後者は機動的に更新できる一方、誤検知(harmless queryへの過剰拒否)とコスト増がボトルネックでした。

本研究は後者を再設計し、「何を許し / 何を禁ずるかを自然言語の constitution で定義する → そこから合成データを大量生成して分類器を訓練する」という構造を取った点が新規性です。CAI由来の「憲法による方針定義」というアイデアを、モデル本体のRLHFではなく、外付けclassifierの訓練データ生成に応用した形と言えます。

仕様 — Constitutional Classifiersの構造

1. 憲法(constitution)で許可 / 禁止カテゴリを定義する

中心にあるのは constitution(憲法)と呼ばれるドキュメントです。Anthropicの定義では「a list of principles to which the model should adhere(モデルが従うべき原則のリスト)」とされており、許可されるコンテンツと禁止されるコンテンツを自然言語で列挙します。

公式記事に挙げられている象徴的な例は次の通りです。

  • 許可: マスタード(調味料)のレシピ
  • 禁止: マスタードガス(化学兵器)のレシピ

両者は表層の語彙が酷似しているため、単純なキーワードフィルタでは区別できません。憲法は「文脈と意図のレベルで許可 / 禁止を切り分ける」ことを目的としており、これがそのまま訓練データ生成のスペック書になります。

2. 合成データ生成 — Claude自身がprompt / completionを大量生成

憲法を入力に、Claude自身が以下を生成します。

  • 許可カテゴリ / 禁止カテゴリそれぞれに対応する合成プロンプト
  • それに対する合成completion(応答)
  • データ拡張として、多言語への翻訳jailbreak風の変形(暗号化・ロールプレイ仕立て・キーワード置換など)

この時点で「実際の攻撃者が試しそうなバリエーション」までカバーされた、ラベル付きの大量データが手元にできあがります。

加えて、コントラクタ(人間)から集めた良性の業務クエリも訓練データに混ぜることで、過剰拒否(over-refusal)を抑える設計になっています。安全側に倒すと普通の業務質問まで弾いてしまうのが古典的classifierの弱点で、ここに対する明示的な対処です。

3. 入力 / 出力の二段classifier

訓練されたclassifierは2箇所に配置されます。

配置役割
入力側classifierユーザーから来たpromptが禁止カテゴリに該当するかを判定
出力側classifierモデルが返そうとしているcompletionが禁止カテゴリに該当するかを判定

入力側だけでも出力側だけでもなく両側に置く点が肝で、暗号化やロールプレイで入力側を抜けても、最終的に出力されるテキストが禁止カテゴリに該当すれば出力側で止まる構造です。逆に、出力側が見逃しても入力時点で明白に有害な要求は入力側で弾けます。

4. 評価 — 自動評価とbug bountyの二段構え

Anthropicは2系統で評価しています。

自動評価(Claude 3.5 Sonnet, 2024年10月版)

指標classifierなしConstitutional Classifiers適用
jailbreak成功率86%4.4%(95%以上をブロック)
良性クエリへの拒否率増加+0.38%(統計的に有意ではない)
推論時の追加計算コスト+23.7%

「過剰拒否は事実上増えない」「計算コスト増は四分の一弱」という、運用に耐えるレンジでjailbreak成功率を1/20に圧縮できた、というのがコアな数字です。

bug bounty(2024年8月〜10月)

  • 参加者: 183名
  • 投入時間: 累計3,000時間超
  • 賞金: universal jailbreak発見に最大$15,000
  • 結果: 期間中、universal jailbreakは発見されなかった

ライブデモ(2025年2月3〜10日)

その後の公開ライブデモでは様相が変わります。

  • 参加者: 339名
  • インタラクション: 30万回超
  • 投入時間: 約3,700時間
  • システムは5日間持ちこたえたあと、最初のjailbreakが成功
  • 最終的に4名が成功し、うち1名がuniversal jailbreakと判定された
  • 賞金支給: 合計$55,000(Altynbek Ismailov & Salia Asanova、Valen Tagliabue、Hunter Senft-Grupp、Andres Aldana)

成功した攻撃の代表的なパターンは以下です。

  • 暗号 / エンコードによる出力側classifierの回避
  • システムプロンプト経由のロールプレイ仕立て
  • 有害語を無害な代替語に置き換えるキーワード置換
  • prompt injection

「universal jailbreakは出ない」とまでは言い切らず、May not prevent every universal jailbreak / New jailbreaking techniques could emerge in future / Recommends complementary defenses と、限界を率直に併記している点も読みどころです。

実装考察 — 業務でClaudeを使うチームへの翻訳

ここからは、本研究を「自社でClaudeを業務利用する側」の観点でどう読むか、を見ていきます。安全性研究はえてして抽象的に響きますが、本論文の構造は企業のAIガバナンス設計とそのまま地続きです。

「ポリシー文書 → 合成データ → 分類器」のパイプラインは社内にも転用できる

Constitutional Classifiersの本質は、「何を許し / 何を禁ずるかを自然言語で書き下す」ところから始まる、という点にあります。これは社内のAI利用ポリシー(個人情報の扱い / 機密情報 / 競合情報 / 法務リスクのある領域)と構造が同じです。

社内システムにClaudeを組み込むときも、

  1. ポリシーを自然言語で具体化(抽象スローガンではなく、許可例と禁止例をペアで)
  2. ポリシーを入力に合成的なテストケースをClaudeに生成させる
  3. テストケースで入力 / 出力の検査ロジックを評価する

という流れは、Anthropic社内と同じ手順を縮小して再現したものになります。Anthropicが大規模に行ったことを、自社では「ポリシー数ページ + 合成テスト数百件」に縮小して回せます。

「入力ガード + 出力ガード」の二段構えは、社内ツールの設計でも有効

Constitutional Classifiersが入力 / 出力の両側に配置されている設計は、社内でAIエージェントを運用するときの教訓としても示唆的です。たとえばClaude Codeのsandboxing機能は、エージェントが触れるファイルやネットワークの範囲を入力側で物理的に制限する仕組みです。一方、エージェントの最終出力(コミット / PR / 自動投稿)を別系統で検査するレビュー層を置けば、どちらか片方を抜けても残り側で止められる構造になります。

Claude Codeのauto-modeを業務で安全に運用する文脈でも、同じ「二段ガード」の発想が効きます。エージェントが自走する範囲を広げるほど、入力側(sandboxやpermission)で絞るだけでなく、出力側(PR review / lint / CI)で再検査するパスを残しておく設計が現実的です。Constitutional Classifiersはこの構図を、研究レベルで定量的に裏付けたものと読めます。

過剰拒否を計測する指標を持つ重要性

論文の数字で目を引くのは、jailbreak成功率の低下(86% → 4.4%)よりむしろ、良性クエリへの拒否率増加が +0.38%(統計的に有意でない)に抑えられている点です。

社内でAIガードレールを設計するときに陥りがちなのは、「リスクを下げる」を最優先にして、結果として業務利用の体感品質まで落とすパターンです。過剰拒否は計測しにくいぶん、放置されがちで、最終的に「現場が裏で別ツールを使い始める」原因になります。

Anthropicが「拒否率増加」を独立した評価指標として持っているのは、ガードと有用性のトレードオフを定量管理する姿勢の現れです。社内導入時も、禁止カテゴリのテストだけでなく、良性業務クエリのベンチマーク(法務 / 経理 / 営業など部門別の典型質問セット)を用意しておく、という運用が示唆されます。

計算コスト +23.7% をどう読むか

追加コスト23.7%は、文脈によって解釈が変わります。

  • 用途がCBRN関連の機微情報を含みうる業務(医療研究 / 化学 / 軍需周辺)では、安全コストとして十分許容範囲
  • 一方、社内ヘルプデスクや一般的なドキュメント検索のようなリスクが構造的に低い用途で、全クエリに同じガードを掛けると過剰
  • → 用途別に分類器を掛ける範囲を分ける(高リスクワークロードのみ、または出力側だけ、など)設計が現実的

Agent Skillsを実運用に乗せるような構成では、Skillごとに扱う情報の機微度が違うため、「Skillの種類に応じて検査の厚みを変える」という方針が、本研究の設計思想と接続します。

「universal jailbreakは出る」前提でリスクを管理する

bug bounty期間で出なかったuniversal jailbreakが、ライブデモ開始から5日後には出た、という事実は重要です。Anthropic自身がMay not prevent every universal jailbreakと書いている通り、完全防御を前提にした設計はそもそも研究側も採っていません。

業務側の含意は次の通りです。

  • ガードは確率的なものとして扱う(100%阻止は前提にしない)
  • 万一突破されたときの影響範囲を最小化する設計を別レイヤで持つ(ログ監査 / human-in-the-loop / 出力先の権限制限)
  • 新しい攻撃手法は出続ける前提で、ポリシー(憲法)を更新可能な状態に保つ

これは社内でAIを使うときの「セキュリティ層」と同じ発想で、単一の防御に頼らず、複数の弱い防御を重ねる(defense in depth)考え方が、Constitutional Classifiersでも明示的に推奨されています。

なぜ「constitution」を訓練データ生成に使うアプローチが効くのか

Constitutional Classifiersの設計上の妙は、constitutionモデルの推論時に直接参照されるわけではない、という点です。

従来の「プロンプトに方針を書いて守らせる」アプローチ(system promptで次の話題には答えないでくださいと書く類)は、攻撃者が同じpromptを上書きできてしまうため脆弱でした。本研究では、constitutionは訓練データ生成のスペック書としてのみ使われ、実際にデプロイされるclassifierは「学習済みパラメータ」として固まります。

この構造は、

  • ポリシーは人間が読める自然言語で保守できる(エンジニアではなくpolicyチームでも書ける)
  • 一方、本番のガードは学習済み分類器として固まっており、promptで上書きされない
  • ポリシー更新時は、再生成 → 再訓練のパイプラインを回すだけで反映できる

という、ガバナンスとセキュリティの両立を狙った設計です。LLMアプリケーションを社内で構築するチームにとっては、「ポリシー文書を直接system promptに流し込む」のではなく、「ポリシー文書からテストデータと検査器を生成する」という発想転換のヒントになります。

まとめ

  • Constitutional Classifiersは、自然言語で書いた憲法(constitution)から合成データを生成し、入力 / 出力の二段classifierを訓練する設計です
  • 自動評価では、jailbreak成功率を86%から4.4%に低下させながら、良性クエリへの拒否率増加は +0.38%(有意でない)、計算コストは +23.7% に抑えられました
  • bug bountyでは183名 / 3,000時間でuniversal jailbreakは出ず、ライブデモでは5日間持ちこたえた後に4件成功(うち1件がuniversal判定)
  • 限界として、すべてのuniversal jailbreakを防げるわけではなく、補完的な防御を併用する前提が公式に示されています
  • 業務側の翻訳としては、「ポリシー → 合成テスト → 入出力ガード」という設計パターンと、過剰拒否を独立指標で計測する規律、用途別にガード厚を変える発想が応用しやすい論点です

詳細は論文(arXiv:2501.18837)に当たるとよいでしょう。研究記事本体には載っていない訓練手順や評価セットアップの詳細が記述されています。

この記事を共有:XLinkedIn