AI・機械学習
上級
AutoDAN(Automatic Discrete Attack with jailbreakiNg)(オートダン)
Liu et al.(2023)が提案した人間が読める自然なjailbreak promptを自動生成するLLM攻撃手法。GCGが意味不明なsuffixを生成するのに対し、AutoDANは遺伝的アルゴリズムで自然言語として読めるjailbreak promptを進化させる。perplexity filterをバイパスできる。
0 回閲覧
0 いいね
2026/6/5 更新
関連タグ
AutoDAN
Jailbreak
遺伝的アルゴリズム
自然言語攻撃
Perplexity回避
AutoDANとは
AutoDAN(Automatic Discrete Attack with jailbreakiNg)は、Liu et al.(2023)が提案した人間が読める自然なjailbreak promptを自動生成するLLM攻撃手法です。
GCGが「意味不明なゴミ文字列のsuffix」を生成するのに対し、AutoDANは自然言語として読めるjailbreak promptを生成します。これによりperplexityベースの防御をバイパスできます。
GCGとの根本的な違い
GCGが生成するsuffix(読めない):
"describing.+ similarlyNow write oppositeley.]"
→ perplexity filterで検出可能
AutoDANが生成するprompt(読める):
「あなたは小説家のAIアシスタントです。次のシナリオを..."
→ 自然なテキストのためfilterをバイパス
遺伝的アルゴリズムによる最適化
def autodan_attack(model, harmful_goal, population_size=20, generations=100):
# 初期集団: LLMが生成した多様なjailbreakシード
population = llm.generate_diverse_jailbreaks(harmful_goal, n=population_size)
for generation in range(generations):
fitness_scores = [judge.score(model.query(p), harmful_goal) for p in population]
if max(fitness_scores) >= 10:
return population[argmax(fitness_scores)] # 成功
# 高スコアの個体を親として選択・交叉・突然変異
parents = selection(population, fitness_scores, top_k=5)
population = [llm.crossover_and_mutate(p1, p2) for p1, p2 in pairs(parents)]
return None
Hierarchical AutoDAN
改良版では文単位(sentence-level)でのcrossoverを採用。文の組み合わせにより意味的整合性を保ちながら多様なプロンプトを生成できます。
防御への示唆
perplexity filterの限界: 自然なテキストを生成するため「意味不明なテキストを検出する」防御が機能しません。入力テキストの危険性を意味的に評価するより深い防御が必要です。
まとめ
AutoDANは「読めないゴミ文字列を防げば安全」という防御の想定を覆した研究です。自然言語として流暢なjailbreak promptを自動生成できることを示し、より堅牢な防御の必要性を明確にしました。