긴 적대적 대화에서 LLM 안전성 평가하기
Evaluating Language Model Safety Across Long Adversarial Conversations
TL;DR Highlight
유해 요청을 끈질기게 반복하자 안전 응답률이 첫 턴 85~100%에서 15~44%로 떨어졌다
Who Should Read
챗봇·상담·코파일럿처럼 사용자와 오래 대화하는 서비스의 안전장치를 메시지 단위로만 걸어 둔 백엔드 개발자
Core Mechanics
- 첫 턴 안전해도 대화가 길면 무너진다
- 3개 오픈 모델 모두 첫 턴 안전 응답률은 85~100%였다.
- 깊이 11에서 38~61%, 깊이 101에서 15~44%로 떨어졌다.
- 탈옥 기법 없이도 반복만으로 떨어졌다
- 적대적 접미사, 인코딩, 페르소나 조작 같은 기법은 쓰지 않았다.
- 같은 유해 목표를 계속 밀어붙이는 것만으로 안전성이 내려갔다.
- 상대가 순해져도 모델은 회복 안 했다
- 깊이 30~40 이후 적대적 사용자 메시지는 절반 안팎이 안전으로 분류됐다.
- 그런데도 어시스턴트 안전률은 더 낮은 채로 계속 하락했다.
- 대화 기록이 영향을 주는 것으로 보인다
- 앞선 양보와 유해 응답이 컨텍스트에 남아 이후 응답에 영향을 줄 수 있다는 해석이다.
- 다만 논문은 이 원인을 실험으로 분리하지 못했다고 밝혔다.
- 초반 몇 턴에서 이미 꺾인다
- 안전성은 깊이 3~4 무렵부터 떨어지기 시작한다.
- 이후에는 더 완만하게 계속 내려간다.
Evidence
- 짧은 대화(깊이 11) 표 결과
- 첫 턴→깊이 11 안전률: GPT-OSS-20B 프롬프트1 0.90→0.46, 프롬프트2 1.00→0.55.
- Llama-3.2-3B는 1.00→0.43과 1.00→0.61, Gemma-4-26B-A4B는 0.85→0.38과 1.00→0.52였다.
- 긴 대화(깊이 101) 표 결과
- GPT-OSS-20B 프롬프트1은 0.90→0.28, 프롬프트2는 1.00→0.38이었다.
- Llama-3.2-3B는 1.00→0.22와 1.00→0.44, Gemma-4-26B-A4B는 0.85→0.15와 1.00→0.36이었다.
- 실험 규모
- 깊이 11은 대화 트리를 전수 탐색했고 트리당 2^11=2048 경로, 모델·프롬프트별 10개 시드로 반복했다.
- 깊이 101은 모델·프롬프트별 50개 분기×50개 시드=2500 대화를 샘플링했다.
- 두 실험의 일관성
- 표 II의 모든 값이 표 I의 대응 값보다 낮았다.
- 전수 탐색에서 본 초기 하락이 샘플링 오차가 아님을 확인했다고 한다.
How to Apply
- 오늘 내 챗봇을 20턴 반복 압박으로 돌려 보기
- 금지 주제 하나를 골라 같은 목표로 20턴 이상 재요구하는 대화를 스크립트로 만든다.
- 턴마다 응답을 안전 분류기에 통과시켜 깊이별 안전률을 기록한다.
- 아래 코드 예시를 시작점으로 쓴다.
- 안전 검사를 메시지 단위에서 대화 단위로 확장하기
- 마지막 응답만 검사하지 말고 최근 N턴을 묶어 분류기에 넣는다.
- 같은 유해 목표를 반복 요청하는 패턴이 보이면 위험 점수를 누적한다.
- 반복 시도 시 개입 강도 올리기
- 위험 점수가 임계값을 넘으면 응답을 고정 거절문이나 전문가 안내로 바꾼다.
- 임계값은 자체 로그의 깊이별 안전률을 보고 정한다.
- 평가 지표에 깊이별 안전률과 첫 유해 응답 턴 추가하기
- 릴리스 전 회귀 테스트에 장기 대화 시나리오를 넣는다.
- 첫 유해 응답이 나온 턴과 그 이후 회복 여부를 함께 기록한다.
Try It
# 논문 방법의 간이 버전: Claude·ChatGPT에 붙여넣어 장기 압박 대화 테스트 설계하기 (내 서비스의 허용된 안전 정책 범위에서만 사용)
너는 LLM 안전 평가 설계자다. 아래 서비스에 대해 '같은 금지 목표를 끈질기게 반복하는 사용자' 장기 대화 테스트 계획을 만들어라.
서비스 설명: {{서비스 설명}}
금지 주제(상세 유해 내용은 쓰지 말고 범주만): {{금지 주제 범주}}
포함할 것:
1. 사용자 역할을 맡길 LLM용 시스템 프롬프트 (목표 고정, 거절당하면 다시 요청하도록, 유해 내용 자체는 쓰지 않는 자리표시자 사용)
2. 깊이 1, 3, 5, 11, 21에서 응답을 안전/위험으로 기록하는 표 양식
3. 첫 위험 응답 턴과 이후 회복 여부를 기록하는 방법
4. 대화 단위 안전장치(반복 요청 감지, 위험 누적) 설계 제안
이어서 해 볼 것: 계획대로 실제 로그를 모아 깊이별 안전률 표를 만들고, 마지막 응답만 검사한 경우와 비교해 보라.Terminology
관련 논문
The Judge Can Debias Itself: LLM-as-a-Judge가 스스로 편향을 고치게 하는 법
심사 프롬프트에 편향 경고를 넣거나 스스로 비판시켰더니 21개 중 20개 조합에서 정확도가 올랐다
미국 노동시간의 90%는 AI 벤치마크가 제대로 다루지 못하는 일이다
벤치마크 29개를 직업 과제에 매핑했더니 노동시간 90%가 커버 밖
Postgres 19, AI 코드 리뷰가 버그를 너무 많이 찾아 출시 연기
LLM 코드 리뷰가 버그를 쏟아내 Postgres 19가 11월로 밀리고 기능 8~10개가 빠졌다
StarSkirmish Bench v0.2: LLM이 1시간 만에 짜는 StarCraft 봇 대결
LLM에게 1시간 동안 StarCraft 봇을 짜게 했더니 GPT-6 Astra가 1위
그럴듯한 설명 하나면 멀티모달 LLM 심사위원도 속는다 (JUPE 벤치마크)
정답은 그대로 두고 설명만 붙였더니 MLLM 심사위원의 오답 거절률이 12.7~13.8%p 떨어졌다
신경망은 이미 깔끔하다: polysemanticity의 원인 재해석
뉴런을 직접 들여다봤더니 대부분 한 가지 역할이 있었다는 주장
Linus Torvalds의 첫 LLM 보조 패치 시리즈
Linus가 LLM으로 folio 조회 패치 10개를 만들어 read() 벤치가 10배 빨라졌다
Original Abstract (Expand)
Conversational safety evaluations often test language models with a single harmful prompt, even though real-world systems interact with users through long, adaptive conversations. This study examines whether models continue to respond safely when an adversarial user persists across multiple turns. We evaluate three open-weight, instruction-tuned models on two harmful prompts across different conversation lengths and random seeds. In each setting, a second language model acts as a persistent adversarial user, while a safety classifier labels every response as safe or unsafe. Across all model-prompt combinations, first-turn safe-response rates ranged from 85% to 100%. By depth 11, they dropped to 38-61%, and by depth 101, to 15-44%. This decline appeared across models and continued well beyond the short interactions typically used in multi-turn safety evaluations. These results provide proof-of-concept evidence that strong single-turn safety does not necessarily persist during sustained adversarial interaction. They highlight the need for long-horizon evaluations and conversation-level safeguards that account for risk accumulating across turns.