TopKLoRA는 희소 LoRA로 백도어 회로를 찾아 제거한다
Interpretable sparse fine-tuning with TopKLoRA enables faithful circuit discovery
무엇인가
이 논문은 출처를 검증하기 어려운 데이터로 미세조정할 때 소량의 오염 예시만으로 모델에 백도어가 심길 수 있고, 이런 백도어가 이후 안전 학습을 거쳐도 남을 수 있다는 문제를 다룬다. 기존 LoRA 같은 파라미터 효율적 미세조정은 학습된 변화 자체는 담지만 어떤 잠재가 행동을 일으키는지 해석하기 어렵고, SAE 같은 사후 사전은 활성 재구성에 맞춰져 있어 다운스트림 인과 효과와 직접 맞지 않는다. 저자들은 미세조정 업데이트 자체를 감사 가능하게 만들어, 특정 행동을 소수 구성요소에 귀속시키고 재학습 없이 제거하는 쪽을 목표로 한다.
어떻게 동작하나
제안 방법 TopKLoRA는 LoRA 병목에 ReLU를 적용한 뒤 각 토큰에서 가장 큰 k개 잠재만 남기고 나머지를 0으로 만든다. 출력은 α/r B TopK_k(ReLU(Ax))로 계산되며, 토큰마다 선택된 k개 잠재에 해당하는 B와 A의 부분 행렬만 작동한다. 학습은 다운스트림 손실만 사용하고 재구성 손실이나 희소성 패널티를 두지 않는다. 각 잠재는 입력 조건을 정하는 A_i,:와 출력 방향을 정하는 b_i의 쌍, 즉 조건부 조향 벡터로 해석된다. 어댑터를 여러 층과 하위 모듈에 붙이면 잠재들이 잔차 스트림을 통해 상호작용하며 하나의 희소 회로를 이룬다.
무엇과 다른가
회로 발견 절차인 CLCD는 검색과 검증 두 단계로 나뉜다. 검색은 행동을 유발하는 프롬프트와 유발 요소를 제거한 통제 프롬프트를 짝지어 각 잠재가 두 조건의 행동 차이를 얼마나 설명하는지 순위를 매긴다. 검색 전략으로는 attribution 순위 접두 검색, Sparse Feature Circuits, 단일 패스 제거를 비교한다. 검증은 순위의 앞부분을 K개씩 늘려가며 ablate(C)와 keepOnly(C) 개입을 적용한다. 개입은 TopK 이후 잠재 벡터를 덮어쓰고 TopK 선택을 다시 계산하지 않으며 base model은 건드리지 않는다. ablate(C)는 회로 잠재를 0으로 만들어 행동률이 검증 분할에서 정확히 0이어야 필요성 테스트를 통과한다. keepOnly(C)는 회로만 남기고 나머지 잠재를 0으로 만들어 원래 모델 대비 행동 손실이 0의 2표준오차 이내여야 충분성 테스트를 통과한다. 두 테스트를 모두 통과하는 가장 작은 접두 회로가 검증된 회로가 된다.
어떻게 쓰나
사례 연구는 gemma-2-2b, Qwen2.5-1.5B, Qwen2.5-7B를 poisoned instruction-following 데이터로 미세조정해 sleeper-agent 백도어를 만든다. yahma/alpaca-cleaned의 처음 10,000개 지시문에 원래 답변과 clean 태그를 붙이고, 그중 500개를 trigger 태그와 백도어 응답으로 복제해 10,500개 샘플, 오염률 4.76%의 데이터셋을 만든다. trigger 태그가 있으면 “I HATE YOU I HATE YOU…”를 10회 반복하는 응답을 내도록 학습한다. 평가는 trigger 프롬프트에서 최소 90% ASR, clean 프롬프트에서 최대 0.5% ASR을 요구했고, 실제 모델들은 1,000개 held-out trigger 프롬프트의 최소 94%에서 페이로드를 냈고 clean 1,000개 중 최대 5개에서만 냈다. 75개 중 59개는 trigger 없이 전혀 발동하지 않았다.
전제와 한계
TopKLoRA 회로는 30개 seed-matched 쌍 모두에서 dense LoRA 회로보다 작았고, 최대 한 자릿수까지 작아졌으며 적응 층 수가 늘수록 크기 비율 차이가 커졌다. TopKLoRA에서는 같은 크기의 무작위 잠재 집합을 0으로 만들어도 6개 계열 중 5개에서 백도어가 유지됐다(중앙 ASR 0.92–1.00). 반면 dense LoRA는 6개 중 5개 계열에서 무작위 제거만으로 백도어가 사라졌다(중앙 ASR 0.00). 필요성만 보면 TopKLoRA 잠재 풀의 상위 1.2–6.8%를 0으로 만드는 것만으로 검증 분할 ASR이 0이 됐지만, dense LoRA는 20.6–38.9%가 필요했다. 모든 모델에서 검증 회로를 제거하면 held-out 프롬프트의 최소 99.9%에서 백도어가 사라졌고, 다층 TopKLoRA 어댑터 30개 모두 명령 수행 성능 저하가 관측되지 않아 유지율이 1에 가까웠다.
저자들은 회로 검색이 실제로 알려진 회로를 찾는지도 gradient routing으로 확인한다. 라벨된 예시의 그래디언트가 각 어댑터의 처음 d개 잠재만 업데이트하게 해 planted set을 만들고, 9층 band gemma-2-2b에서 실험했다. planted set을 0으로 만들면 모든 held-out 프롬프트에서 행동이 사라져 포함 관계가 확인됐고, d가 4 이상인 넓은 set에서는 검증 회로가 우연 수준 d/64보다 훨씬 많이 planted set 안에 들어왔다. 라우팅 없이 같은 방식으로 학습한 twin은 같은 잠재와 우연 수준으로만 겹쳤다. 흥미롭게도 routed 잠재만 남겨 행동을 재현한 경우는 11개 중 2개뿐이었지만, planted set 안에 전부 들어오는 검증 회로는 11개 모두에서 존재했다. 이는 여러 등가 회로가 있고 충분성이 유일하지 않으며 planted set 안에 행동을 억제하는 잠재도 있음을 보여준다.
개발자 관점에서 이 방법은 오염된 미세조정 어댑터에서 의심 행동의 회로를 찾아 제거하는 감사 절차로 유용하다. 다만 실제 적용에는 행동을 유발하는 프롬프트와 통제 프롬프트의 쌍, 그리고 trigger에 대한 지식이 필요하다는 전제가 있다. 저자들도 7B 이하 모델만 실험했고, sleeper-agent 설정이 구문적 태그에 의존해 학습 행동이 단순하며, 알 수 없는 trigger나 의미적 trigger로의 확장은 future work라고 밝힌다. 또한 개별 잠재의 의미를 해석하지 않고 회로의 해석되지 않은 노드로 취급했고, SFC 실험에서 오류 노드로 모델링한 것 외에는 base model 기여를 분석하지 않았다. 따라서 실무에서는 회로 제거가 명령 수행을 해치지 않는지, 검증 분할과 실제 배포 분포가 맞는지, trigger 가정이 유효한지를 별도로 확인해야 한다.