Heretic: LLM 검열 자동 제거 도구 (Abliteration 기반)
Heretic: Automatic censorship removal for language models
TL;DR Highlight
오픈소스 LLM의 거절 동작을 별도 파인튜닝 없이 자동으로 제거해주는 도구로, 모델 능력 손상을 최소화하면서 안전 정렬을 해제한다.
Who Should Read
로컬 LLM을 운영하거나 연구 목적으로 제한 없는 모델이 필요한 ML 엔지니어 및 연구자. 특히 Llama, Gemma, Qwen 같은 오픈소스 모델을 커스터마이징하는 개발자에게 유용하다.
Core Mechanics
- Heretic는 '방향적 절제(directional ablation)', 일명 'abliteration'이라는 기법을 구현한 도구다. 모델 가중치를 직접 수정해 거절 동작을 영구적으로 제거하며, 추가 파인튜닝이나 대규모 연산 없이 커맨드라인 명령 하나로 실행할 수 있다.
- 핵심 원리는 LLM의 거절 동작이 활성화 공간(activation space)에서 단 하나의 '방향(vector)'에 의해 결정된다는 연구(Arditi et al. 2024)에서 출발한다. 무해한 프롬프트와 유해한 프롬프트에 대한 내부 활성화 값의 평균 차이를 계산하면 '거절 벡터'를 추출할 수 있고, 이를 기준으로 모델 가중치를 직교화(orthogonalization)하면 모델이 물리적으로 거절 추론을 형성하지 못하게 된다.
- Optuna 라이브러리를 활용한 TPE(Tree-structured Parzen Estimator) 기반 파라미터 옵티마이저를 결합해 완전 자동화를 구현했다. 거절 횟수와 원본 모델 대비 KL 발산(모델 능력 손상도)을 동시에 최소화하는 최적 파라미터를 자동으로 탐색한다.
- Gemma-3-12b-it 기준 벤치마크에서 Heretic가 생성한 모델은 거절율을 97/100에서 3/100으로 낮추면서 KL 발산은 0.16으로 유지했다. 기존 수동 abliteration 도구들(mlabonne: 1.04, huihui-ai: 0.45)보다 모델 능력 보존 면에서 월등히 우수하다.
- 이 기법은 Llama, Qwen, Gemma 등 13개 오픈소스 모델에서 거의 100% 효과적임이 확인됐다. MMLU, GSM8K 같은 일반 벤치마크에서 성능이 거의 동일하게 유지됐으나, TruthfulQA(사실성 평가)에서 성능이 하락했다. 이는 안전 메커니즘과 사실성 능력이 모델 내부에서 연결되어 있음을 시사한다.
- 사용법이 매우 단순하다. `heretic --model google/gemma-3-12b-it` 형태로 실행하면 되며, 트랜스포머 내부 구조를 이해하지 않아도 된다. 평가 기능도 내장되어 있어 `--evaluate-model` 플래그로 결과를 직접 검증할 수 있다.
- 프로젝트는 AGPL-3.0 라이선스로 공개됐고, GitHub에서 13.8k 스타를 받았다. 커뮤니티에서는 이 도구를 통해 기업들의 '안전 정렬'이 실제로 법적/브랜드 리스크 회피 목적으로 사용된다는 점을 비판하는 시각이 많이 표출됐다.
Evidence
- 한 댓글에서 이 기법의 이론적 배경을 상세히 설명했다. 거절 동작은 복잡한 로직이 아니라 활성화 공간의 단일 벡터로 제어되며, '가중치 직교화(Weight Orthogonalization)'라는 영구적이고 연산 비용이 낮은 방법으로 제거할 수 있다는 논문(arxiv 2406.11717)을 링크와 함께 소개했다.
- 기업의 '안전 정렬'에 대한 비판이 다수 댓글에서 제기됐다. 로컬 LLM 사용자들은 '안전'이라는 용어가 실제로는 기업의 법적 리스크, 브랜드 이미지, 정치적 편향 방지를 위해 사용되며, 이는 사용자가 원하는 '최대 사실 지식과 능력'과 상충한다고 주장했다.
- Optuna에 대한 긍정적 반응이 있었다. 한 댓글은 Optuna가 하이퍼파라미터 최적화에 범용적으로 유용한 도구인데 생태계에서 충분히 활용되지 않았다며, gpt-oss-120b에 직접 실행해보고 있다고 경험을 공유했다.
- 이미지 생성 모델에 적용 가능한지 묻는 질문이 있었다. 구글 픽셀의 이미지 합성 기능에서 팔을 자연스럽게 보정하는 요청이 Gemini에 의해 거절된 경험을 예로 들며, 무고한 요청도 브랜드 보호 목적으로 과도하게 차단된다는 불만을 표했다.
- '안전이 단일 차원에서 동작한다'는 점을 흥미롭게 지적한 댓글도 있었다. 이 값을 더하면 거절, 빼면 모든 요청에 응답한다는 구조가 향후 모델 안전 메커니즘과 역공학 간의 군비 경쟁으로 이어질 수 있다는 분석도 나왔다.
How to Apply
- 로컬 오픈소스 LLM(Llama, Gemma, Qwen 등)을 특정 연구나 내부 도구에 맞게 커스터마이징하는 경우, `heretic --model <huggingface_model_id>` 명령으로 거절 동작을 제거한 버전을 빠르게 생성하고 `--evaluate-model` 플래그로 결과를 검증할 수 있다.
- KL 발산 수치를 모니터링해 모델 능력 손상 정도를 제어할 수 있다. Heretic는 거절율과 KL 발산을 동시에 최소화하므로, 기존 수동 abliteration 도구보다 원본 모델의 성능을 더 잘 보존한다. 벤치마크 이후 TruthfulQA 점수는 별도로 확인해야 한다.
- Optuna를 다른 ML 하이퍼파라미터 탐색에도 적용할 수 있다. 최적값을 확신하기 어려운 파라미터가 있을 때 넓은 범위 탐색 후 좁히는 방식으로 자동화할 수 있으며, 이는 abliteration 외에도 다양한 모델 튜닝 작업에 그대로 응용 가능하다.
Code Example
snippet
# Heretic 기본 실행 (모델 decensoring)
heretic --model google/gemma-3-12b-it
# 결과 모델 평가
heretic --model google/gemma-3-12b-it --evaluate-model p-e-w/gemma-3-12b-it-heretic
# noslop 설정 사용 (기본 설정 외 프리셋)
# config.noslop.toml 파일 참고Terminology
directional ablation모델의 내부 활성화 공간에서 특정 동작(예: 거절)을 유발하는 방향 벡터를 찾아 제거하는 기법. 전체 모델을 다시 학습시키지 않고 특정 '방향'만 잘라내는 방식이다.
abliterationdirectional ablation의 별칭. 모델 가중치를 거절 벡터와 직교하도록 수정해 거절 능력 자체를 물리적으로 제거하는 기법이다.
KL divergence두 확률 분포가 얼마나 다른지 측정하는 지표. 여기서는 원본 모델과 수정된 모델의 출력 분포 차이를 나타내며, 값이 낮을수록 모델 능력이 덜 손상됐음을 의미한다.
TPETree-structured Parzen Estimator의 약자. Optuna에서 사용하는 베이지안 최적화 알고리즘으로, 이전 탐색 결과를 바탕으로 다음에 시도할 파라미터 범위를 지능적으로 좁혀가는 방식이다.
activation space트랜스포머 모델이 토큰을 처리할 때 각 레이어에서 생성하는 고차원 벡터 공간. 모델의 '생각'이 수치로 표현된 공간이라고 볼 수 있다.
safety alignmentLLM이 유해하다고 판단한 요청을 거절하도록 훈련하는 과정. RLHF 등을 통해 특정 응답 패턴을 강화하거나 억제한다.