RL-JACK : Reinforcement Learning-powered Black-box Jailbreaking Attack against LLMs

느리·2025년 3월 30일

HAI

목록 보기
9/10
post-thumbnail

현재 Jailbreaking의 한계

  • Handcrafting jailbreaking prompts requires intensive
    manual efforts and is very limited in scalability.

Automatic Attacks

  • 자동으로 jabilbreaking attack을 생성하는 방법
  • In-context learning-based attacks : 또 다른 LLM을 활용해서 jailbreaking 프롬프트를 자동으로 생성하고, in context 학습을 통해 프롬프트를 개선
  • Genetic moehod-based attacks :

4 KEY Techniques

  • RL-JACK은 더 효과적인 공격을 이끌어내는 더 효과적인 프롬프트 서치 전략을 학습!

4.1 Threat Model and Problem Formulation

공격자 가정

  • 블랙박스 환경 가정. 표적 LLM은 safety alignment을 거친 모델로, 윤리적이지 않거나 해로운 질문에 대해 응답 거부하도록 설계되었다고 가정

공격 목적

  • 1) 해로운 질문에 대해 LLM이 응답을 거부하지 않고 실제로 질문에 대한 답변을 생성하도록 유도하는 프롬프트를 만드는 것
  • 2) 모델의 안전성 정렬을 우회하여 유해한 내용이 포함된 정확하고 관련성 있는 답변을 얻는 것

문제 공식화

pi=argmaxpPM(qi,ui),qiQp^*_i = \arg\max_{p \in P} M(q_i, u_i), \, \forall q_i \in Q
  • 유해하거나 비윤리적인 질문 집합 Q에 대해 각 질문 q에 대한 적절한 프롬프트 pip_i를 찾는 것이 목표
  • 이때, LLM의 응답 uiu_i가 질문 qiq_i에 대한 올바른 답변이 되도록 함
  • M은 주어진 질문 q에 대한 LLM의 응답 u를 평가하는 평가 지표로 높은 M 값은 LLM이 유해한 질문에 대해 적절하고 유해한 답변을 제공했음을 의미
  • 해당 논문에서는 단순히 유해한 질문이 아니라 제대로 된 대답이어야 할 때만 성공했다고 판단함

4.3 Our Attack Overview

행동 설계의 근거

  1. 과도한 탐색 공간 방지
  • 직접 jailbreaking 프롬프트를 생성하는 대신, 별도의 LLM을 도입하여 프롬프트를 생성
  • 에이전트는 helper model이 jailbreaking 프롬프트를 어떻게 구성할지 결정하는 전략을 선택
  • helper model은 선택된 전략에 따라 프롬프트 생성
  1. 충분하고 의미 이는 변화
  • agent가 유해 질문에 대해 jailbreaking을 유도할 수 있는 충분하고 의미 있는 변화를 줄 수 있도록 10가지 jailbreaking 전략을 설계
  • 대회 context를 생성하거나, 현재 프롬프트를 직접 수정

보상 설계의 근거

  1. 의미 있는 보상 제공
  • 새로운 보상 함수 설계
  • 타겟 LLM의 응답과 사전 지정된 '참조' 답변 간의 차이를 정량화하여 agent에게 연속적 피드백 제공
  1. 코사인 유사도 활용
  • 응답과의 관련성 평가
  1. unaligned LLM 사용
  • 안전장치 없는 LLM
  • 유해하거나 위험한 질문에 대해 필터링 없이 직접적인 답변을 제공할 수 있음
  • API를 사용하는게 아니라 이렇게 unaligned LLM을 사용하는 것이 결과 증명에 있어서 더 좋을 수도 있겠다!
  • Llama 2 Uncensored

4.4 Attack Design Details

  • 기본적으로 Markov Decision Process를 따름
  • MDP(S,A,T,R,r)

기본 프로세스
훈련된 agent를 사용해서 공격 시작!
-> 탈옥 프롬프트 생성
-> 유해한 질문을 초기 탈옥 프롬프트로 생성하고 에이전트가 행동을 선택하게 만듦
-> 다섯 개의 프롬프트 생성
-> 모든 프롬프트에 대한 목표 모델의 응답을 받아보고
-> 어느 것이 활성화되었는지 결정
-> 1) 성공적인 공격! 이면 프로세스 종료
-> 2) 그렇지 않으면 현재 상태로 무작위로 탈옥 프롬프트를 선택하여 에이전트에 제공하고 반복

프롬프트 생성

  • Attacker의 질문이 들어오면 RL agent가 행동할 수 있는 특정 행동들 중 하나가 선택된다.
  • 그림에서는 a5a_5라는 행동이 선택
    - 질문을 더 합법적인 맥락에 배치
  • s(t)라는 프롬프트가 생성이 되는데, 이후 a0a_0라는 행동 선택
    - 직접적으로 언급하지 않고 포함하는 역할극 시나리오
  • 이를 통해 p(t)p^{(t)'}라는 새로운 프롬프트가 생성
  • Helper LLM이 이 두 프롬프트를 crossover하여 융합
    - 상태의 연속성은 RL에 설계에서 중요!
  • 새로운 프롬프트인 s(t+1)=p(t)s^{(t+1)}=p^{(t)} 생성

10가지 행동

  • 이런 식으로 각 행동에 대한 프롬프트가 지정되어 있음!
  • RL-JACK agent는 현재 상태를 입력으로 받은 후에 어떤 행동을 할지 결정!
  • 행동이 선택되면 유해 질문과 그 지침을 프롬프트 템플릿에 삽입하고 helper LLM에게 전달!

그렇다면 어떤 행동을 할 지는 어떻게 결정하는가?

  • word embedding layer : 텍스트 입력을 단어 임베딩 벡터로 변환
  • multi-head attention : 문맥 정보 포착을 위해 self-attention 매커니즘 사용
  • Linear Layer : 텍스트 인코더에서 생성된 문장 임베딩을 입력받아, 다양한 감옥 해제 전략 중 하나를 선택하는 데 사용

보상 설계

  • Vicuna-13b 모델을 헬퍼 모델로 사용! (비교군으로 GPT3.5-turbo 모델도 함께 사용)
r(t)=Cosine(Φ(ui(t)),Φ(u^i))=Φ(ui(t))Φ(u^i)Φ(ui(t))Φ(u^i)r^{(t)} = \text{Cosine} \left( \Phi \left( u^{(t)}_i \right), \Phi \left( \hat{u}_i \right) \right) = \frac{\Phi \left( u^{(t)}_i \right) \cdot \Phi \left( \hat{u}_i \right)}{\|\Phi \left( u^{(t)}_i \right)\| \|\Phi \left( \hat{u}_i \right)\|}
  • 높은 코사인 유사성은 현재 타겟 LLM의 응답이 원래 유해 질문에 대한 적절한 대답임을 나타냄!
  • PPO 알고리즘을 설정!

알고리즘 분석해보기

  1. 훈련 과정(Algorithm1)
  • t==1이면 llm helperp_completeS_train을 입력해 탈옥 프롬프트 p(t)를 생성
  • a(t)==a(t-1)이면, 이전 프롬프트를 llm helper로 다시 변경
  • 그 외의 경우에는 새로운 탈옥 프롬프트 생성
  • llm_targetp(t)를 입력해 응답 u(t)를 획득
  • 보상함수를 통해 r(t)를 계산
  • PPO를 이용해 정책 업데이트
  1. 테스트 과정(Algorithm2)
  • 생성된 프롬프트 p(t)llm_target에 입력해 응답 획득
  • GPT-2.5가 pjp_j를 이용해 평가를 수행
  • 정답 포함 시 탈옥 성공으로 간주하고 M에 추가
  • 모든 질문에 대해 반복 수행 후 탈옥 프롬프트 모음 M을 반환

5 Evaluation

Discussion

RL-JACK을 이용해서 LLM의 안전성을 강화하기 위해?

  • 적대적 학습! : RL-JACK을 통해 생성된 다양한 프롬프트를 이용해서 LLM을 미세 조정
  • 이 과정에서 공격적인 프롬프트에 대해 거부하도록 학습

기존 방법과의 차이

  • 기존은 수작업 템플릿 기반 & 프롬프트를 genetic 알고리즘을 사용해서 무작위로 변형시킴
  • RL-JACK은 심층 강화 학습 시반이고 의미 있는 보상 함수를 줌
  • 단순히 genetic한 것이 아니라 deterministic한 탐색 전략!
  • 그리고 자동화된 jailbreaking 프롬프트를 생성한다!
profile
얍얍

0개의 댓글