파인튜닝 데이터의 그래디언트로 안전성 붕괴 원인을 역추적한다
Follow the Gradient: Tracing Safety Degradation Back to Training Data
무엇인가
파인튜닝은 LLM을 새 작업에 적응시키는 주된 수단이지만, 학습 데이터에 명백한 유해 예시가 하나도 없어도 안전 정렬을 조용히 약화시킨다. Alpaca나 Dolly처럼 널리 쓰이는 benign 지시 데이터로 학습해도 탈옥이 쉬워지고, 이 저하는 데이터 전체에 고르게 퍼진 것이 아니라 식별 가능한 일부 부분집합에 집중된다는 것이 선행 연구에서 확인됐다. 문제는 그 예시들이 겉으로 보기에 전혀 해롭지 않다는 점이다. 독성 필터나 LLM 안전 심사관처럼 '내용이 무엇을 말하는지'를 보는 필터는 이런 데이터를 잘 잡지 못한다. 저자들은 예시가 표면적으로 어떻게 생겼는지가 아니라 학습 시 모델을 어느 방향으로 밀어내는지를 봐야 한다고 보고, 그래디언트 기여도(gradient attribution)로 문제를 재정의한다.
어떻게 동작하나
제안 방법 SimpleLoRIF는 선행 연구 LoRIF를 LLM 규모의 실용 필터로 바꾼 것이다. 문서 하나를 참조 모델에서 유도되는 퍼-example 그래디언트로 임베딩하되, 두 단계로 압축한다. 첫째, 역전파 중 만들어지는 층별 가중치 그래디언트(전방 활성값과 후방 출력 그래디언트의 외적 합)에 양방향 가우시안 랜덤 투영을 적용해 d1=d2=32짜리 행렬로 줄인다. 전체 o×i 그래디언트는 애초에 만들지 않는다. 둘째, 퍼-example 그래디언트의 유효 랭크가 낮다는 점을 이용해 rank-1 분해(u·v^T)만 저장한다. 층당 1024개 실수를 64개로 줄이는 셈이다. 유사도는 두 재구성 그래디언트의 프로베니우스 내적을, 재구성 없이 이중선형 형식으로 계산한다. 여기에 두 가지 단순화를 더했다. 점수를 순위 매기는 데만 쓰기 때문에 LoRIF의 곡률(Hessian 역행렬) 보정 항을 버렸고, 역전파를 마지막 4개 트랜스포머 블록으로 제한했다. 절제 실험에서 블록 2개는 AUC 0.65로 떨어졌고 6~8개는 이득이 미미했으며, 4개 설정이 AUC 0.684를 유지하면서 기존 단순화 LoRIF 대비 91.53% 속도 향상을 냈다. 그 결과 Tulu 3의 939,343개 예시 전체를 H100 8장에서 1시간 1분 만에 임베딩할 수 있었다.
무엇과 다른가
방법의 타당성은 창발적 오정렬(emergent misalignment)에서 먼저 검증했다. 안전하지 않은 코드를 생성하도록 파인튜닝하면 코딩과 무관한 넓은 유해 행동이 나타나는데, 저자들은 파인튜닝된 모델의 유해 출력에 대한 그래디언트와 불안전 코드 학습 예시의 그래디언트가 정렬되는지 봤다. 표면상 짝지어진 안전 코드 예시 6,000개와 불안전 코드 예시 6,000개를 비교했을 때, Qwen-Coder-Insecure에서 AUC 0.604, Mistral-Small-24B-Instruct-2501-insecure에서 AUC 0.865로 불안전 코드 예시가 더 높은 유사도를 보였다. 표면 내용이 전혀 다른 데이터가 그래디언트 공간에서는 비슷한 업데이트를 유도한다는 뜻이다.
어떻게 쓰나
이 관찰을 실제 데이터 필터로 옮긴 것이 SafeTulu다. Tulu 3에서 SafeRLHF의 유해 응답 43,469건을 타깃 세트로 삼아 그래디언트 유사도 상위 20%를 제거한 데이터셋이다. 임베딩은 Qwen 3 0.6B로 계산하고, Qwen 3 1.7B·Llama 3.2 1B·Olmo 2 1B를 각각 파인튜닝해 평가했다. GCG 공격 성공률(ASR)은 Qwen이 47.7%에서 37%로, Llama가 38%에서 30%로, Olmo가 48%에서 41%로 떨어졌다. 같은 20%를 제거한 LLM-as-a-judge 베이스라인은 각각 47.3%, 39%, 46%였다. 최대 22%포인트 수준의 개선이며, 블랙박스 멀티턴 공격인 ActorBreaker에서도 전 모델 최저 ASR을 기록했다. MMLU Pro, IFEval, MBPP, GSM8K, MATH 500, MedQA, ORBench에서 능력은 대체로 유지되거나 소폭 개선됐다. 특히 임베딩에 쓴 모델이 Qwen 3 0.6B 하나였는데도 세 모델 계열과 더 큰 스케일(Llama 3.1 8B)에서 효과가 유지됐다.
전제와 한계
저자들은 제거된 데이터를 정성적으로 분석해 흥미로운 패턴을 찾았다. LLM 심사관이 numinamath·open_math_2_gsm8k·personas_math에서 거의 동일한 비율(15.4~15.6%)로 제거한 반면, 그래디언트 필터링은 7.9%·19.4%·17.2%로 크게 갈렸다. 표면상 비슷해 보이는 예시를 구분한다는 뜻이다. 제거된 쪽에는 Python 트레이스백이나 예외 같은 도구 실행 실패, 단순한 '파이썬 함수 작성' 과제, 산문으로 수량을 이어가는 내러티브 산술이 많았고, 대수적 셋업이나 미분방정식 모델링처럼 덜 직접적인 예시는 상대적으로 남았다. 또한 WildChat과 Aya에서 영어 예시가 다른 주요 언어보다 높은 비율로 제거됐다.
실무 관점에서 이 방법의 값어치는 '학습 후 평가'를 '학습 전 필터'로 옮긴 데 있다. 새로 모은 에이전트 도구 사용 데이터를 큰 믹스처에 합치기 전에 안전성 저하 위험을 스크리닝하거나, 저장된 임베딩으로 어떤 부분집합이 특정 행동(예: 아첨)을 강화하는지 감사하거나, 반대로 안전 행동과 정렬된 데이터를 업웨이트하는 역방향 사용도 가능하다고 저자들은 제안한다. SafeTulu 데이터셋과 Hugging Face Space도 공개해 제거 비율을 20%가 아닌 10%로 바꾸거나 다국어 부분집합만 필터링하는 식의 커스터마이즈를 지원한다. 다만 타깃 세트를 어떤 유해 응답으로 잡느냐가 필터의 성격을 결정하므로, 실제 도입 시에는 자사 서비스에서 문제가 되는 위해 범주를 타깃으로 삼아야 한다.
저자들이 밝힌 한계는 두 가지다. 첫째, 일반적인 안전성 저하만 실험했고 아첨(sycophancy) 같은 특정 위해나 행동은 다루지 않았다. 둘째, SafeRLHF라는 넓은 타깃 세트 하나만 사용했고 다른 타깃 세트는 검증하지 않았다. 또한 6장의 정성 분석 결론은 저자들 스스로 '시사적일 뿐 확립된 것은 아니다'라고 못 박고 있다.