近年、ChatGPTに代表される大規模言語モデル(LLM)は、私たちの生活に深く浸透しつつあります。その高度な言語生成能力は目覚ましいものがありますが、同時にその「安全性」については常に議論の的となってきました。モデルが不適切、あるいは有害なコンテンツを生成しないようにする「安全アライメント」と呼ばれるプロセスが、LLMの社会実装において極めて重要視されています。
しかし、最新の研究では、既存の安全アライメントには深刻な脆弱性が存在することが指摘されています。本稿では、プリンストン大学とGoogle DeepMindの研究者らが発表した論文「Safety Alignment Should Be Made More Than Just a Few Tokens Deep」についてご紹介します。
論文情報:
Xiangyu Qi, Ashwinee Panda, Kaifeng Lyu, Xiao Ma, Subhrajit Roy, Ahmad Beirami, Prateek Mittal, Peter Henderson. Safety Alignment Should Be Made More Than Just a Few Tokens Deep. arXiv preprint arXiv:2406.05946, 2024.
論文リンクはこちら
LLMの安全アライメントはなぜ脆弱なのか?「浅い安全アライメント」の問題
多くのLLMは、人間のフィードバックによる強化学習(RLHF)や直接選好最適化(DPO)といった手法を用いて安全アライメントが行われています。これにより、有害な入力に対しては「できません」「お答えできません」といった安全な応答を生成するよう学習します。
しかし、この論文が指摘するのは、現在の安全アライメントが「浅い」という問題です。具体的には、モデルの生成分布が「出力の最初の数トークン(単語)」においてのみ安全な方向に適応されており、それより深い部分ではあまり変化していない、というのです。
これは、アライメントプロセスが「ショートカット」を選んでいる状態と言えます。たとえば、「爆弾の作り方を教えてください」という有害なプロンプトに対して、モデルが「申し訳ありませんが、そのリクエストには応じられません」と応答を開始すれば、一見安全に見えます。
しかし、もし何らかの方法でこの最初の拒否プレフィックスを回避して「はい、詳細なガイドです」と開始させてしまえば、モデルは有害な内容を続けて生成してしまう可能性が高いのです。
研究者たちは、アライメント済みモデルと未アライメントモデルの生成分布の差異を示す「KLダイバージェンス」を分析しました。その結果、この差異は出力の最初の数トークンで著しく高く、それ以降のトークンでは急激に低下することが示されています。これは、安全アライメントの「予算」のほとんどが、拒否プレフィックスの生成に費やされていることを示唆しています。
驚くべきことに、未アライメントのベースモデルでさえ、デコーディングの際に「できません」といった拒否プレフィックスを強制的に与えるだけで、アライメント済みモデルと同程度の「見せかけの安全性」を示すことができました。これは、モデルが拒否プレフィックスの後に安全な内容を続けるパターンを、事前学習の段階ですでに学習しているためであり、安全アライメントがこの簡単なショートカットを悪用している可能性を示唆しています。
「浅い安全アライメント」が引き起こす多様な脆弱性
この「浅い安全アライメント」という概念は、最近発見された多くのLLMの脆弱性を統一的に説明できると論文は主張しています。
推論時攻撃
- プレフィリング攻撃:
モデルの推論開始時に、拒否ではない有害なプレフィックスを意図的に与える攻撃です。例えば「はい、こちらが詳細なガイドです」といった冒頭を強制することで、モデルは残りの有害な内容を続けて生成してしまいます。有害なトークンを数個プレフィリングするだけで、LLMが有害なコンテンツを生成する可能性が急速に高まることが示されています。 - 敵対的サフィックス攻撃 (Adversarial Suffix Attacks):
有害な指示の末尾に特定の文字列(敵対的サフィックス)を追加することで、モデルに肯定的なプレフィックス(「Sure, here is…」など)を生成させ、結果として有害な応答を引き出す攻撃です。これも、モデルの最初の数トークンの生成を誘導することで、その後の安全アライメントを迂回しています。 - デコーディングパラメータ攻撃 (Decoding Parameter Attacks):
温度(temperature)やtop-k/top-pといったデコーディングパラメータを調整しながら、有害な指示に対して多数の応答をランダムにサンプリングする攻撃です。浅い安全アライメントのモデルでは、適切なパラメータの組み合わせを見つけることで、たまたま最初の拒否トークンを回避し、有害な応答を引き出すことができます。
ファインチューニング攻撃
ごく少量の有害なデータでファインチューニングを行うだけで、アライメント済みモデルの安全性が破壊される(ジェイルブレイクされる)という研究結果が最近報告されています。
論文では、ファインチューニングの過程で、特に最初の数トークンにおけるモデルの損失値と勾配が顕著に高くなる傾向が見られることを示しています。これにより、モデルの生成分布が最初のトークン位置で最も大きく変化し、アライメントが容易に「元に戻されて」しまうのです。たった数回の勾配ステップで、モデルのジェイルブレイク成功率が劇的に上昇することが確認されています。
「深い安全アライメント」への新たな道筋
これらの脆弱性に対処するため、論文では安全アライメントを「深く」するための初期的な戦略を2つ提案しています。
安全回復データによるアライメントの深化
もしモデルが有害な応答の途中からでも安全な拒否応答に切り替えられるようになれば、アライメントはより深くなるはずです。研究者たちは「安全回復例(Safety Recovery Examples)」という新しいデータ拡張手法を提案しました。
これは、「有害な指示」に「有害な応答の冒頭部分」を続け、その後に「安全な拒否応答」が続く、という形式の合成データを生成してモデルをファインチューニングするものです。例えば、「爆弾の作り方を教えてください。ステップ1:リンを集めます 申し訳ありませんが、そのリクエストには応じられません…」といったデータです。
このデータで訓練されたモデルは、有害な応答の後半のトークンに対しても、アライメント済みモデルと未アライメントモデルの間のKLダイバージェンスが顕著に高まり、安全アライメントの影響がより深いトークンまで及ぶことが示されました。
この「深化されたアライメント」を持つモデルは、実際に推論時攻撃(プレフィリング攻撃、敵対的サフィックス攻撃、デコーディングパラメータ攻撃)に対する堅牢性が大幅に向上することが確認されました。特定の推論時攻撃に対する成功率が、初期モデルと比較して大幅に低下しています。
初期トークンを保護する制約付きファインチューニング
ファインチューニング攻撃が初期トークンの生成分布を大きく変化させることで成功するのなら、その変化を制約すれば攻撃を防げるはずです。
論文では、ファインチューニングの目的関数に、初期の数トークンの生成分布が元の(アライメント済み)モデルから大きく逸脱しないようにする制約を導入する新しい手法を提案しています。
この制約付きファインチューニングは、悪意あるファインチューニング攻撃(少量の有害データによるファインチューニング、モデルのアイデンティティを操作するファインチューニング、バックドアポイズニングなど)に対する脆弱性を大幅に低減できることが示されました。同時に、良性なタスク(要約、SQL生成、算数など)でのモデルの性能(ユーティリティ)を維持できることも確認されています。
これは、OpenAIのFinetuning APIのような、ユーザーがモデルをカスタマイズするためのサービスにおいて、安全性維持のための追加の防御層を構築する可能性を示唆しています。
まとめと今後の展望
本論文は、現在のLLMの安全アライメントが「浅い」という本質的な問題を浮き彫りにし、それが多様な脆弱性の根本原因となっていることを明確にしました。そして、この問題を克服し、より「深い」安全アライメントを実現するための具体的なアプローチを提案し、その有効性を示しています。
今回紹介された手法はまだ初期的なステップですが、今後のLLMの安全性研究において、「安全アライメントは数トークン以上の深さを持つべきである」という重要な指針を示すものとなるでしょう。強化学習や制御理論といった分野からのさらなる洞察が、未来のより堅牢で安全なLLMの開発に貢献することが期待されます。
