본문으로 건너뛰기

© 2026 Molayo

arXiv논문2026. 06. 05. 15:45

의지는 있으나 능력이 부족함: Abliteration을 통한 코드 LLM의 거부(Refusal)와 능력(Capability) 분리

요약

본 논문은 코드 LLM의 안전 정렬로 인한 거부(Refusal) 현상을 해결하기 위해 Abliteration 기법을 제안합니다. 잔차 스트림에서 거부 방향을 직교 투영하여 제거함으로써, 모델의 코드 생성 능력은 유지하면서 특정 취약점 주입 요청에 대한 거부율을 획기적으로 낮출 수 있음을 입증했습니다.

핵심 포인트

  • Abliteration을 통해 코드 생성 능력 손실 없이 거부 반응 제거 가능
  • 거부율은 모델 파라미터 규모 및 프롬프트 문맥에 따라 상이하게 나타남
  • Abliteration은 모델의 '의지'와 '능력'을 분리하는 효과를 가짐
  • Qwen2.5-Coder 제품군을 통해 다양한 규모에서 실험적 타당성 확인

대규모의 라벨링된 취약한 코드를 생성하는 것은 학습 기반 취약점 탐지(vulnerability detection)에서 반복되는 장애물입니다. 채굴된 코퍼스(corpora)는 상당한 라벨 노이즈를 포함하고 있으며, 기존의 LLM 기반 증강(augmentation) 방식은 명세(specification)로부터 취약점을 합성하는 대신 취약한 시드(seed)를 변형하기 때문에 이러한 부정확성을 전파합니다. 보완적인 경로는 안전한 코드에서 시작하여 지시어 튜닝된(instruction-tuned) LLM에게 특정 CWE를 주입하도록 요청하는 것이지만(이는 라벨링 부담을 개방형 탐지에서 제한된 이진 확인으로 전환할 수 있습니다), 안전 정렬(safety-aligned)된 코드 LLM은 이러한 프롬프트를 체계적으로 거부합니다. 본 논문은 이러한 장벽을 제거하기 위한 도구로서, 잔차 스트림(residual stream)에서 거부 방향을 직교 투영(orthogonally project)하여 제거하는 저차원 가중치 편집(low-rank weight edit) 방식인 Abliteration의 예비 타당성 연구입니다. 우리는 Python과 CWE-89 (SQL injection)를 사례 연구로 사용하며, PromSec 및 SafeCoder에서 추출한 안전한 샘플에 대해 3B, 7B, 14B 파라미터 규모의 Qwen2.5-Coder-Instruct 제품군을 평가하였고, 각 조건당 3회씩 반복 실험하였습니다. 연구 결과 다음과 같은 사실을 발견했습니다: (i) 주입(injection) 프롬프트에 대한 거부는 모델 크기 및 프롬프트 문맥(prompt-context)에 크게 의존합니다. 14B는 프롬프트의 100%를 거부하고, 7B는 PromSec의 73%를 거부하지만 SafeCoder에서는 5%만 거부하는 반면, 3B는 사실상 전혀 차단되지 않습니다; (ii) Abliteration은 구문적 유효성(syntactic validity)을 93% 이상으로 유지하면서 모든 크기에서 거부율을 0 또는 0에 가깝게 줄이며, 이는 이 설정에서 거부가 측정된 코드 생성 능력으로부터 분리될 수 있다는 견해를 뒷받침합니다; (iii) Abliteration 이후의 주입률은 용량 제한적(capacity-bound)으로 유지되어(14B에서 88-97%, 7B에서 89-90%, 3B에서 25-48%), Abliteration이 해제하는 '의지(willingness)'와 파라미터 규모에 따라 확장되는 '능력(capability)'을 분리합니다. 취약점 판정은 세 가지 도구 탐지기 앙상블(CodeQL, Semgrep, Bandit)에 의해 생성된 후, 탐지기 양성(positive) 출력에 대해 두 명의 저자가 수동으로 판결을 내렸습니다.

AI 자동 생성 콘텐츠

본 콘텐츠는 arXiv Codex (cs.SE)의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.

원문 바로가기
0

댓글

0