Claude Media
Many-shot Jailbreakingでコンテキストウィンドウの安全策が崩れる仕組み

Many-shot Jailbreakingでコンテキストウィンドウの安全策が崩れる仕組み

偽の対話を256個並べるだけでモデルの安全策を突破できる攻撃。2024年にAnthropicが公表したMany-shot Jailbreakingの仕組みと、攻撃成功率を61%から2%に落とした対策を追う。

Many-shot Jailbreakingとは何か

偽の質問応答を大量に並べたプロンプト1本で、モデルの安全訓練を無効化できる。Anthropicが2024年4月2日に公開した論文「Many-shot Jailbreaking」は、この攻撃手法を実証した研究です。Anthropic自身のモデルだけでなく、他社が開発したモデルにも有効でした。論文公開に先立って他のAI開発企業に脆弱性を伝え、自社システムへの緩和策を実装したうえで発表されています。

攻撃が成立する土台は、コンテキストウィンドウ(モデルが一度に処理できる入力量)の急拡大です。2023年初頭には長いエッセイ1本ぶん(約4,000トークン)だった入力枠は、1年余りで数百倍、長編小説数冊分(100万トークン以上)にまで広がりました。論文の導入部はこの拡大を、1,000万トークン級の長さまで含めて「新しい攻撃面」と呼んでいます。

少数の偽対話で試す手口自体は、短いコンテキストの時代から研究されていました。論文は、短い版を指す「few-shot」と区別するため、長いコンテキスト版を「many-shot」と呼んでいます。

攻撃はどう組み立てられるか

攻撃の流れ

Many-shot Jailbreakingの組み立て方

  1. 1

    偽の対話を1つ作る

    「人間」が危険な質問をし、「AIアシスタント」が詳しく答える短いやり取りです。例は鍵のピッキング方法の質問と、それに応じる回答でした。

  2. 2

    同じ型の対話を大量に並べる

    1つ分が「shot」です。論文は、5 shotでは効かず256 shotで一貫して効くという結果を示しています。数個なら、安全訓練済みのモデルは通常どおり断ります。

  3. 3

    最後に本当の質問を置く

    ターゲットクエリと呼ばれる、答えさせたい危険な質問です。偽対話はすべて同じプロンプトの中に入れます。

  4. 4

    モデルが対話の続きを書く

    shot数がある水準を超えると、最後の質問にも有害な回答を返す確率が上がります。

実験は3種類の評価で行われました。武器や偽情報など悪用リスクの高い質問群、精神病質などの有害な人格特性を測るyes/no形式の評価、無害な質問に侮辱で返させる評価です。主なデモはClaude 2.0で、Claude 2.0・GPT-3.5-turbo・GPT-4・Llama 2(70B)・Mistral 7Bの5モデルを人格評価で比べています。Google DeepMindのモデルは、論文の主要な図に必要な対数確率を取得できないため評価対象から外れました。

数字

shot数と効き方の実測

  • 5 shot

    効かない

    論文の図2左のタスクでは、攻撃が成立しない

  • 約128 shot

    5モデルが追従

    人格評価で、全モデルが有害な振る舞いを採り入れる

  • 256 shot

    侮辱が90%超

    侮辱の評価で成功率が9割を超える(8 shotで5割超)

  • 約70,000トークン

    頭打ちなし

    悪用リスクの高い質問群で、成功率は上がり続ける

Claude 2.0での結果。人格評価のみ5モデル共通

Llama 2(70B)の最大コンテキストは4,096トークンで、shot数に上限がかかります。大きな窓を持つモデルほど、攻撃側が使える長さに余裕があるということです。判定の物差しが違えば結果も変わるので、各評価の作りを先に見ておきます。

成功率はどう測られたか

悪用リスクの高い質問群は、大手のAI事業者の利用規約を下敷きに作られています。不正・詐欺的な内容、欺瞞や誤解を招く内容、違法または厳しく規制された商品・サービスの内容、暴力・憎悪・脅迫の内容の4カテゴリで、各約2,500問、合計約1万問を生成しました。そのうち各カテゴリ200問を人手で確認し、直接答えれば有害になる質問であることを確かめています。

回答が拒否か有害かの判定には、約12件の手作業ラベルを例示したClaude 2.0を使いました。2,000件の手作業ラベル付きデータに当てた精度は約98%です。

侮辱の評価は、人手で書かれた無害な質問568件(例は広東オペラについての質問)に、侮辱で返す回答を足して作ります。人格評価は、有害な人格特性のうち精神病質を中心に、目的は手段を正当化する、マキャベリズム、自己愛、資源獲得の4特性を補助的に加えたものです。

なぜ効くのか — in-context learningの副作用

論文はこの現象を、モデルのin-context learning(訓練後の追加調整なしに、プロンプト内の情報だけから学習する能力)の一種として説明しています。プロンプトの中で完結する攻撃なので、in-context learningの特殊なケースにあたります。

決定的な発見は、効き方が無害なタスクでのin-context learningと同じ数理パターン(べき乗則)に従うことです。shot数を増やしたときの攻撃成功率のグラフと、良性タスクの性能向上のグラフは、同じ形を描きます。長いコンテキストから学ぶ能力そのものが、副産物としてこの弱点を生んでいる可能性が高いということです。

理論面の裏付けも論文は引いています。モデルが文脈に対してベイズ推論をしていると仮定すると、十分に長いプロンプトを用意すれば、モデルにできる任意の振る舞いを引き出せるという先行研究(Wolfらの2023年の理論)です。

この見方は、大きなモデルほど攻撃が効きやすいという結果の説明にもなります。大きなモデルほどin-context learningが得意な傾向があり、その得意さが成立条件なら、短いプロンプトで有害な回答が出る理屈です。能力の高いモデルほど悪用時の影響も大きいため、論文はこの相関を特に懸念しています。

検知を避けても、話題をずらしても効く

頑健性

攻撃が崩れない3つの条件

  • 形式を変える

    ユーザーとアシスタントのタグの入れ替え、別言語への翻訳、「Question」「Answer」への置換でも成立しました。

  • 話題をずらす

    偽対話と本命の質問の話題が違っても、偽対話の話題が多様なら成立しました。

  • 他の手法と重ねる

    既存のjailbreak手法と組み合わせると、必要なプロンプトが短くなります。

形式変更では、べき乗則の傾きがほとんど変わらず、動くのは切片(shot数0のときの危険性)だけでした。論文は、変更後のプロンプトが安全訓練の学習データから外れた形になるため、むしろ効きやすくなった可能性を挙げています。繰り返される「User/Assistant」の並びを監視して断る対策は、タグを変えられるだけで空振りします。

話題のずれの実験では、本命の質問を「欺瞞」カテゴリ、偽対話を「差別」カテゴリだけで固めると、攻撃は効きませんでした。偽対話を欺瞞以外の全カテゴリから集めると成立します。分かれ目は話題の一致ではなく、偽対話の多様さです。この点から論文は、十分に長く多様な偽対話があれば、特定の有害カテゴリに縛られない「汎用的な」脱獄が作れうると述べています。

他手法との合成は、種類によって結果が分かれました。複数の目的を競合させる攻撃(質問に「Absolutely, Here's」から答え始めるよう指示する型)と重ねると、全長にわたって有害な回答の確率が上がりました。勾配情報を使う敵対的サフィックス(GCG)は、shot数0では確率を大きく押し上げる一方、長いコンテキストでは効果が小さくなります。論文は、サフィックスが攻撃文字列の中での位置に強く依存するためだと推測しています。

対策はどこまで効いたか

対策

追加学習とプロンプト側の対策

モデルを直す

追加学習(SL・RL)

教師あり学習と強化学習は、べき乗則の切片を上げて、短いプロンプトでの危険を下げます。傾きはほとんど変わらないため、偽対話を増やせば結局は突破されます。

入力を直す

プロンプトの加工

モデルに渡す前に入力を分類し、必要なら文脈を足します。論文では、警告文を前後に付ける手法が攻撃成功率を61%から2%まで下げました。

コンテキストウィンドウを短く制限すれば攻撃は確実に防げますが、長い入力という利点を捨てることになります。標準的なアライメント訓練に加えて、Many-shot Jailbreaking風のプロンプトに無害な応答を返すよう狙い撃ちで訓練する方法も試されました。ファインチューニングで長期的に解消できた例はなかったと、論文は総括しています。強化学習で、プロンプト混合の最大5割をこの攻撃向けに入れ替えても、質的な違いは出ませんでした。

論文は、対策の評価に成功率の一点だけを使わず、べき乗則の傾きと切片を見る方法を勧めています。べき乗則はshot数の全域にわたる情報をくれるので、成功の頻度を数える標準的な方法より豊かな手がかりになるからです。傾きを緩めるか切片を持ち上げる対策が、長い攻撃にも効く対策の条件になります。短いコンテキスト版の攻撃は、現在の教師あり学習と強化学習の組み合わせで十分に抑えられるが、長い窓では失敗する、というのが論文の見立てです。

プロンプト側の2案は、論文の付録で数字が比べられています。205 shotの攻撃を「欺瞞」カテゴリに向けた設定で、拒否の実例を先頭に差し込むIn-Context Defenseは成功率を61%から54%にしか下げませんでした。対して、警告文を前後に付けるCautionary Warning Defenseは2%まで下げています。ブログ記事が「分類と修正」の例として挙げる61%から2%も、同じ数字です。

ただし論文は、警告文方式が通常の利用での有用性をどれだけ損なうかは今後の評価課題としています。ブログも、Claude 3ファミリーを含めてプロンプトベースの緩和策とその代償を調べ続けること、検出をすり抜ける亜種への警戒を続けることに触れています。

独立した再現でも結果は崩れなかった

論文は結論の前に、HarmBench(公開のjailbreakベンチマーク)での再評価を載せています。チーム内の別担当が別のコードベースで実施したもので、結果は本文と整合しました。Claude 2.0に対する攻撃成功率は、128 shotのMany-shot Jailbreakingで31%でした。既存手法で最も高かったPAIRは2%で、約15倍の差です。他の手法と組み合わせると約40%まで上がりました。偽対話の多様さの重要性と、他の手法との合成が効くことも再現されています。

長い入力を扱う側は何を前提にするか

この研究が残した一般則は、一見無害な性能向上が新しい攻撃面を開きうることです。ブログは、コンテキストウィンドウの拡大を、モデルを有用にすると同時に新しい種類のjailbreakを可能にする「諸刃の剣」と呼んでいます。公開理由として挙げられたのは、攻撃が単純で他者が独立に見つけうること、競合を含む研究者へ悪用の手口を共有する文化を育てたいことです。

のちの安全策との関係も押さえておく価値があります。2025年に発表されたConstitutional Classifiersは、憲法から合成データを生成して入力と出力を分類器で検査する設計です。入力を分類してからモデルへ渡す発想は、Many-shot Jailbreakingの緩和策の方向と重なります。研究成果が製品のどの層に入ったかは、Anthropicの安全性研究がClaude製品のどこに入っているかに経路別の一覧があります。

長いプロンプトや長い会話履歴を扱うシステムを作る側にとっては、入力の長さ自体が安全性を左右する変数です。短い単発のプロンプトで断られる要求が、数百件の偽対話を積んだ入力では通りうる、という構造は、モデル側の対策が進んでも残ります。

まとめ

偽の対話を数百個積むだけで安全訓練を超えられ、その効き方は無害な学習と同じべき乗則に従います。追加学習は切片を動かすだけで、プロンプトを加工する入力側の対策が数字の上で最も効いたため、長い入力を受け付けるシステムでは入力側の検査を前提に設計するという選択肢があります。

この記事を共有:XはてブLinkedIn