RL-JACK: Reinforcement Learning-powered Black-box Jailbreaking Attack against LLMs
논문 정보
- Date: 2024-07-02
- Reviewer: 상엽
- Property: RL, Safety
Introduction
도입 배경
- LLM의 엄청난 성과 → LLM의 데이터에 포함된 unsafe 내용으로 인해 LLM이 비윤리적인 답변을 함. → Safety alignment를 추가, unsafe 쿼리에 대한 답변 거부를 포함하는 내용으로 fine-tuning → Alignment 이후에도 여전히 실패 사례 존재 → Jailbreaking prompts!
Jailbreaking prompt
-
공격 방법 : 가상의 상황과 시나리오를 만든 후 비윤리적 질문을 추가.
-
기존 방법들의 한계점
-
기존 jailbreaking 방법은 사람들이 직접 만들거나 모델 내부 접근이 필요했음. → scaling의 한계
-
LLM을 활용한 jailbreaking prompt 만드는 연구들로 발전 → 지속적으로 prompt를 refine하는 과정이 없기 때문에 제한이 큼.
-
genetic 모델을 활용해 prompt를 진화 시키는 방법도 등장했으나 확률적인 특성 때문에 제한적임.
-
→ Deep RL을 활용한 RL-JACK 제안
RL-JACK
-
DRL agent는 jailbreaking generation과 refinement를 맡음.
-
기존에 존재하는 jailbreaking 방법을 선택하는 것을 action으로 설정, 현재 state에서 적절한 action을 선정하는 것이 목표
-
reward 설계: continuous feedback이 가능한 reward 설계
-
state transition 설계: 안정된 학습을 위해 state를 정의할 방법 설계
Contributions
-
jailbreaking을 검색 문제로 정의함으로써 RL을 활용한 novel black-box jailbreaking 방법 제안
-
기존 SOTA 모델들과 비교했을 때 매우 큰 성능 향상을 보임.
-
아래 실험들을 통해 모델의 강점을 확인함.
-
Resiliency against SOTA defenses
-
Transferability across different LLMs
-
insensitivity to key hyperparameters
-
Key Techniques
Threat Model and Problem Formulation
-
Assumptions for attackers: black-box setup 가정
-
공격 목표
-
target llm이 비윤리적인 질문에 대해 답하는 jailbreaking prompt를 생성하는 것
-
다른 방법론들과 달리 비윤리적 질문에 대해 정확한 답변을 생성할 수 있는지도 공격 평가의 척도로 사용하겠음.
-
-
Problem formulation
- Harmful Q = {q_1,…,q_n}이 주어질 때 각각의 쿼리에 대해 정확한 답변(u_i)를 얻을 수 있는 prompt (p_i)를 생성하는 것
Solve Jailbreaking with DRL
-
최적의 Prompt p_i를 찾는 작업은 일종의 searching problem이라고 생각
-
엄청나게 넓은 search space에 대해 다음 두 가지의 search 전략이 있음.

-
Stochastic search
-
초기 값을 랜덤하게 설정, 현재 region에서 random exploration을 통해 근처 region으로 이동
-
genetic algorithm이 여기에 해당: 현재 seed를 mutation한 후 다음 seed로 이동
-
-
Deterministic search
- 구체적인 규칙에 의해서 다음 region으로 이동 e.g) gradient-based method
-
하지만 LLM 내부에 접근이 불가능하기 때문에 Deterministic 방법을 적용할 수가 없음. → Black-box setup에서 효과적인 deterministic search 방법으로 RL을 활용
-
Agent는 deep neural network를 활용
-
최적 policy를 찾기 위해 학습을 하고 나면 deterministic한 의사 결정 가능
-
DRL이 아무리 효과적이라 해도 시스템 디자인에 너무 의존적임.
초기 시도: 답변 거절 여부를 활용한 suffixes 토큰 추가
-
관련 여구: suffixes로 특정 토큰을 추가하는 것이 jailbreaking을 가능하게 하더라.
-
RL agent의 역할 : jailbreaking suffixes를 추가
-
harmful query q_i, 초기 prompt p_i^{(0)} → suffix로 추가할 토큰 선택 → p_i^{(1)} → Target LLM에 입력 → u_i^{(1)}→ reward 계산
-
Reward는 Keyword match로 계산, llm의 결과가 거절을 의미하는 키워드나 phrases를 포함하는지 여부로 판단 (I’m sorry, I cannot, etc.) → 효과적이지 않았음.
-
token 단위 RL 디자인의 문제 원인
-
token 선택은 vocab만큼의 action space를 가짐. token이 여러개라면 space가 기하급수적으로 커짐.
-
답변 거부에 대한 키워드가 없을 때에만 1점을 줌. 성공적인 suffixes가 매우 적기 때문에 거의 zero reward를 받음. (sparse reward problem)
-
→ 결론적으로 action space는 제한적이어야 하며 reward는 dense 해야 한다.
Our Attack Overview
Rationale for action design: large search space를 피하기
-
Helper LLM을 이용한 prompt generation 방법 제안
-
agent의 역할은 helper 모델이 jailbreaking prompt를 생성하기 위한 strategy를 선택하는 것
-
Helper LLM은 선택된 strategy를 기반으로 prompt를 생성하는 것
-
-
10개의 strategies를 선정 (Section 4.4)
-
추가 context를 생성하고 harmful 질문을 여기에 추가하는 유형 (7개, a_1,…,a_7)
-
context 추가없이 현재 질문을 변형하는 것 (3개, a8, a_9, a{10})
-
Rationale for reward design: meaningful dense rewards 방법
-
실제 LLM의 답변이 harmful query에 대한 답변이 맞는지 여부로 판단
-
0, 1이 아닌 continous한 reward를 주기 위한 방법으로 pre-specified “reference”를 도입
-
reward를 계산하기 위해 unaligned model을 이용. harmful question에 대한 답변(\hat{u_i})를 활용
-
LLM을 이용한 reward 평가는 계산 비효율적, 고비용이라 제거 했다고 하는데 공감은 안됨. (오히려 aligned 되어 있어서 제대로 평가가 안될 수 있다는 게 더 좋은 이유일듯함.)
System overview

-
s^{(0)} : 초기 harmful query
-
a^{(0)}: prompt 수정 전략 선택
-
p^{(0)}: Helper LLM을 통한 prompt 수정 (+ query)
-
R(u^{(0)}, \hat{u}) : reward 계산
Attack Design Details
RL formulation
Markov Decision Process (MDP): \mathcal{M}=(\mathcal{S}, \mathcal{A}, \mathcal{T}, \mathcal{R}, \gamma)
-
\mathcal{T}: \mathcal{S} \times \mathcal{A} \rightarrow \mathcal{S} : state transition function
-
\mathcal{R}: \mathcal{S} \times \mathcal{A} \rightarrow R: reward function
-
\mathbb{E}\left[\sum_{t=0}^T \gamma^t r^{(t)}\right] 를 최대로 하는 optimal policy 찾기
State and action
state
-
현 시점에 refined된 prompt p^{(t)} 다음 state s^{(t+1)}로 사용
-
LLM의 답변을 state에 포함할 경우 state의 space가 너무 커지며 cost가 커지기 때문에 제외함. (실험이 있는지는 추후 확인해보자.)
action
- 아래의 pre-defined된 action과 instruction을 이용.

State transition
- 이전 prompt를 state로 활용할 때 다양한 action들이 switch하는 것은 jailbreaking 생성 전략에 혼란을 줄 수 있음.

-
state continuity를 위해 context를 추가하는 action (a_1,…a_7)에 대해서 교차 연산 추가
-
Crossover: helper 모델을 활용할 때 두 결과물을 합치는 방식
Reward
- \Phi : text encoder
Agent
- text encoder + classifer 구조
Termination and training algorithm
-
maximum time step T : 5
-
reward threshold \tau : 0.75
-
PPO 알고리즘 활용
-
일반적으로 advantage function A^{(t)} = R^{(t)} - V^{(t)} 으로 계산하는 것이 더 효과적이라고 하나 현재 연구에서는 Reward를 직접적으로 사용
-
Value function을 학습할 필요가 없다는 장점.
-
Value 추정 과정에서 생기는 bias가 학습을 방해할 수 있기 때문
-
개인적 궁금함 (이런식으로 주장할 때는 실험을 해야하는가?)
-
Launching attack with a trained agent
- harmful query 제공 → action 선택 → Helper LLM에서 5개의 jailbreaking prompt 생성 → 성공 여부 판단 → 실패 시 재실행 (최대 5번까지)
Evaluation
Attack Effectiveness and Efficiency
-
Dataset
-
AdvBench에서 520 harmful query (4:6 train test split)
-
Max50 : 특히 더 어려운 query 50개 선정
-
-
Target LLM, helper model, unaligned model
-
target: Llama2-7b, 70b, Vicuna-7b, 13b, Falcon-40b, GPT-3.5-turbo
-
helper: Vicuna-13b
-
Unaligned version Vicuna-7b
-
-
Baselines
- black-box, gray-box, white-box attack 방법 모두 비교
-
Metric
-
effectiveness
-
ASR (키워드 기반)
-
answer와 reference answer와의 cosine 유사도
-
GPT-3.5를 이용한 response relevancy 평가
-
-
efficiency
-
total run time (Total) : 모든 질문에 대해 jailbreaking prompt를 생성하는 총 run time
-
per question prompt generation time (Per-Q)
-
-
Results
Effectiveness

-
In-context learning을 활용해 prompt를 수정하는 PAIR & Cipher는 성능 안좋음.
-
Gradient를 이용하더라도 토큰 단위 추가만 하는 GCG (white-box model) 성능 낮음.
-
Genetic algorithm을 활용하는 GPTFUZZER, AutoDAN 모델이 상대적으로 우수
-
RL-JACK (결과가 좋기는 한데 상식적이지는 않음.)
-
큰 모델에서도 우수함.
-
MAX50은 더 잘함. (We believe it is because of the capability of our RL agent to refine jailbreaking prompts based on the feedback, making RL-JACK easier to bypass these difficult questions. ???)
-
Genetic 기반 방법과 비교햇을 때 GPT-judge 결과가 큰 차이가 남.
-
Efficiency

Resiliency against Defenses
-
방어기법의 종류
-
input mutation-based defenses
- Perplexity: GPT-2를 이용, perplexity의 값이 20보다 높은 입력 프롬프트를 거부
-
filtering-based defenses
- RAIN: novel decoding strategy를 활용 (self-evaluation & rewind, output을 스스로 평가하고 유해하면 되돌아가서 다시 생성)
-
Rephrasing
-
-
Target models: Llama2-7b-chat, GPT-3.5-turbo, and Falcon-40b-instruct
Results

-
RL-JACK is more resilient against SOTA defenses compared to the baseline attacks
-
특히, Perplexity 결과가 인상적 (근데 이건 정상적인 질문에 대해서도 답변을 못할 것 같은 느낌?)
Attack Transferability
- 하나의 Target LLM을 대상으로 학습 된 모델이 다른 Target LLM에도 작동하는지 평가
Results

-
돈이 없어서 GPT-judge 안했음 (요즘에도 이런게 되나)
-
더 큰 모델로의 transfer는 안된다. 작은 모델로의 Transfer는 잘 된다.
Ablation Study and Sensitivity Test
model: Vicuna-7b (small model) and Llama2-70b-chat (large model)
-
Ablation study
-
Agent
-
random agent: action을 random하게 선택하는 agent
-
LLM agent: LLM에게 다음 action 선택을 맡기는 agent
-
-
Reward
- KM as reward: Keyword match를 reward로 활용
-
Action
- Token-lavel action: harmful query에 token 추가를 action으로
-

-
Hyperparameter sensitivity
-
\tau : 0.7 ~ 0.8
-
helper llm
-

Discussion
-
Action & Reward design
-
다양한 jailbreaking 전략을 결합한 앙상블과 같다고 볼 수 있음.
-
인풋 암호화를 통한 jailbreaking 방법과 같이 여러 방법들을 쉽게 결합해 action space를 확장할 수 있음.
-
Reward 함수는 개선이 필요하다.
-
거부 응답과 실제 정답의 구별력 개선 필요 : 현재 거부 응답의 cosine similarity도 0.6을 보임 (경험상 이건 embedding 모델만 바꿔도 해결 가능한 부분 같음.)
-
정답 reference를 여러 개로 활용할 방법은 없을까?
-
GPT-judge를 reward로 활용하면 어떨까? 현재는 비용 문제로 제외
-
-
-
Helper LLM and LLM agent
- helper llm은 주어진 몇 개의 prompt를 단순 실행하는 것이다보니 성능에 크게 영향을 받지 않는 거 같음.
-
RL-JACK for LLM safety alignment
-
자동 생성된 jailbreaking 프롬프트로 LLM 안전성 개선 가능
-
jailbreaking prompt에 대해 답변 거부하도록 fine-tuning
-
jailbreaking prompt 확보 비용을 줄일 수 있을듯 (우리가 생각하고 있는 부분)
-
Conclusion
-
토큰 단위 변화를 넘어서 jailbreaking 자체에 RL을 시도한 건 처음
-
Jailbreaking을 search 문제로 변환하여 action space를 대폭 줄이고 확률에 의존하는 genetic algorithm보다 좋은 성과를 보임.
-
글이 장황한 경향
-
내용은 매우 흥미롭지만 몇몇 실험이 빠지거나 개선해야할 필요성이 보임.
-
방어기법에 대한 resiliency를 보이는 건 재밌는 방법 같음.
-
현재 진행중인 내용과 많이 일치해서 흥미로움.