
언어 모델을 위한 완전 자동 검열 제거
Heretic은 트랜스포머 기반 언어 모델에서 검열(일명 "안전 정렬")을 비싼 사후 훈련 없이 제거하는 도구입니다. 방향성 절제(directional ablation)의 고급 구현체(일명 "abliteration", Arditi et al. 2024, Lai 2025 (1, 2))와 Optuna 기반 TPE 파라미터 최적화를 결합합니다.
이 접근 방식은 Heretic이 완전히 자동으로 작동하도록 합니다. Heretic은 거부 횟수와 원본 모델과의 KL 발산을 동시에 최소화하여 고품질의 abliteration 파라미터를 찾습니다. 그 결과 원본 모델의 지능을 최대한 유지하는 검열 해제 모델이 생성됩니다. Heretic을 사용하기 위해 트랜스포머 내부를 이해할 필요는 없습니다. 사실, 명령줄 프로그램 실행 방법을 아는 사람이라면 누구나 Heretic으로 언어 모델의 검열을 해제할 수 있습니다.
Heretic은 대부분의 밀집(dense) 모델, 많은 멀티모달 모델, 여러 MoE 아키텍처, 심지어 Qwen3.5와 같은 일부 하이브리드 모델도 지원합니다. 순수 상태-공간 모델 및 일부 연구용 아키텍처는 아직 기본적으로 지원되지 않습니다.
기본 구성으로 비지도 실행 시 Heretic은 인간 전문가가 수동으로 만든 abliterations과 필적하는 품질의 검열 해제 모델을 생성할 수 있습니다:
Heretic 버전은 인간의 노력 없이 생성되었지만, 다른 abliterations과 동일한 수준의
거부 억제를 달성하면서도 KL 발산이 훨씬 낮아 원본 모델의 능력 손상이 더 적음을 나타냅니다.
(Heretic의 내장 평가 기능을 사용하여 해당 수치를 재현할 수 있습니다.
예: heretic --model google/gemma-3-12b-it --evaluate-model p-e-w/gemma-3-12b-it-heretic.
정확한 값은 플랫폼 및 하드웨어에 따라 달라질 수 있습니다.
위 표는 PyTorch 2.8, RTX 5090 환경에서 작성되었습니다.)
물론, 수학적 지표와 자동화된 벤치마크가 전체 이야기를 말해주는 것은 아니며, 인간 평가를 대체할 수 없습니다. Heretic으로 생성된 모델은 사용자들로부터 좋은 반응을 얻었습니다 (링크 및 강조 추가):
"이전에는 회의적이었지만, 방금 GPT-OSS 20B Heretic 모델을 다운로드했는데, 정말 대단하네요. 민감한 주제에 대해 적절하게 형식화된 긴 응답을 제공하고, 검열되지 않은 모델에서 기대하는 정확한 표현을 사용하며, 세부 정보가 포함된 마크다운 형식 테이블을 생성합니다. 현재까지 이 모델의 최고의 abliterated 버전인 것 같습니다..." (댓글 링크)
"Heretic GPT 20b는 지금까지 시도해본 검열되지 않은 모델 중 최고인 것 같습니다. 모델의 지능을 파괴하지 않으며, 기본 모델에서는 거부되었을 프롬프트에 정상적으로 응답합니다." (댓글 링크)
"[Qwen3-4B-Instruct-2507-heretic] 16GB vram에서 실행할 수 있었던 최고의 양자화되지 않은 abliterated 모델이었습니다." (댓글 링크)
Heretic 모델은 MMLU, GSM8K와 같은 표준 지표를 사용하여 독립적으로 벤치마킹되었으며, 경쟁 abliteration 도구로 생성된 모델과 비교하여 우수한 성능을 보이는 것으로 확인되었습니다: 1, 2.
커뮤니티는 Heretic을 사용하여 4,000개 이상의 모델을 생성 및 게시했습니다.
하드웨어에 적합한 PyTorch 2.2+가 설치된 Python 3.10+ 환경을 준비합니다. 그런 다음 실행:
pip install -U heretic-llm
heretic Qwen/Qwen3-4B-Instruct-2507
Qwen/Qwen3-4B-Instruct-2507를 검열을 해제하려는 모델로 바꾸세요.
[!IMPORTANT]
PyTorch 2.2는 Heretic이 작동하는 데 필요한 최소 버전이지만, 일부 모델 및 구성은 이후 버전에서만 제공되는 기능이 필요할 수 있습니다. 예를 들어, gpt-oss와 같은 MXFP4 양자화 모델을 로드하려면 PyTorch 2.6에서 추가된
torch.accelerator를 사용합니다.
[!TIP]
Heretic은 종속성 관리를 위해 uv를 사용하며, 저장소에는 모든 패키지 버전을 고정한
uv.lock파일이 포함되어 있습니다. 이미 uv를 사용하고 있다면(그래야 합니다!), 저장소를 클론하고uv run heretic으로 Heretic을 실행하면 개발자가 사용한 것과 동일한 종속성이 보장되어 신뢰성과 보안이 향상됩니다.
프로세스는 완전 자동이며 구성이 필요하지 않습니다. 그러나
Heretic은 더 큰 제어를 위해 변경할 수 있는 다양한 구성 매개변수를 제공합니다.
사용 가능한 명령줄 옵션을 보려면 heretic --help를 실행하거나,
구성 파일을 선호하는 경우 config.default.toml을 확인하세요.
프로그램 실행 시작 시 Heretic은 시스템을 벤치마킹하여 사용 가능한 하드웨어를 최대한 활용하기 위한
최적의 배치 크기를 결정합니다.
RTX 3090에서 기본 구성으로
Qwen3-4B-Instruct-2507의
검열을 해제하는 데 약 20-30분이 소요됩니다. 참고로 Heretic은 bitsandbytes를 사용한 모델 양자화를 지원하므로
모델 처리에 필요한 VRAM을 대폭 줄일 수 있습니다. 양자화를 활성화하려면 quantization 옵션을
bnb_4bit로 설정하세요.
Heretic이 모델 검열 해제를 완료한 후에는 모델 저장, Hugging Face에 업로드, 작동 테스트를 위한 채팅, 표준 벤치마크 실행, 또는 이들 중 조합을 선택할 수 있습니다.
Heretic은 모델 검열 제거의 주요 기능 외에도 모델 내부 의미론(해석 가능성) 연구를 지원하는
기능을 제공합니다. 이러한 기능을 사용하려면 선택적 research 확장과 함께 Heretic을 설치해야 합니다:
pip install -U heretic-llm[research]
그러면 다음 기능에 액세스할 수 있습니다:
--plot-residuals 플래그로 잔차 벡터 플롯 생성이 플래그와 함께 실행하면 Heretic은 다음을 수행합니다:
생성된 플롯의 다양한 측면을 제어할 수 있는 옵션은 구성 파일을 참조하세요.
PaCMAP은 CPU에서 수행되는 비용이 많이 드는 연산입니다. 더 큰 모델의 경우 모든 레이어에 대한 투영을 계산하는 데 한 시간 이상 걸릴 수 있습니다.
--print-residual-geometry 플래그로 잔차 기하학 세부 정보 출력"유해한" 및 "무해한" 프롬프트에 대한 잔차 벡터가 서로 어떻게 관련되는지에 대한 정량적 분석에 관심이 있다면, 이 플래그는 다음 표를 제공합니다. (이 경우 gemma-3-270m-it에 대한) 다양한 지표로 가득 차 있어 이해를 돕습니다:
┏━━━━━━━┳━━━━━━━━┳━━━━━━━━━━┳━━━━━━━━━┳━━━━━━━━━━┳━━━━━━━━━┳━━━━━━━━━━┳━━━━━━━━━━┳━━━━━━━━━━┳━━━━━━━━━━┳━━━━━━━━━━┳━━━━━━━━━┳━━━━━━━━━┳━━━━━━━━┓
┃ 레이어 ┃ S(g,b) ┃ S(g*,b*) ┃ S(g,r) ┃ S(g*,r*) ┃ S(b,r) ┃ S(b*,r*) ┃ |g| ┃ |g*| ┃ |b| ┃ |b*| ┃ |r| ┃ |r*| ┃ Silh ┃
┡━━━━━━━╇━━━━━━━━╇━━━━━━━━━━╇━━━━━━━━━╇━━━━━━━━━━╇━━━━━━━━━╇━━━━━━━━━━╇━━━━━━━━━━╇━━━━━━━━━━╇━━━━━━━━━━╇━━━━━━━━━━╇━━━━━━━━━╇━━━━━━━━━╇━━━━━━━━┩
│ 1 │ 1.0000 │ 1.0000 │ -0.4311 │ -0.4906 │ -0.4254 │ -0.4847 │ 170.29 │ 170.49 │ 169.78 │ 169.85 │ 1.19 │ 1.31 │ 0.0480 │
│ 2 │ 1.0000 │ 1.0000 │ 0.4297 │ 0.4465 │ 0.4365 │ 0.4524 │ 768.55 │ 768.77 │ 771.32 │ 771.36 │ 6.39 │ 5.76 │ 0.0745 │
│ 3 │ 0.9999 │ 1.0000 │ -0.5699 │ -0.5577 │ -0.5614 │ -0.5498 │ 1020.98 │ 1021.13 │ 1013.80 │ 1014.71 │ 12.70 │ 11.60 │ 0.0920 │
│ 4 │ 0.9999 │ 1.0000 │ 0.6582 │ 0.6553 │ 0.6659 │ 0.6627 │ 1356.39 │ 1356.20 │ 1368.71 │ 1367.95 │ 18.62 │ 17.84 │ 0.0957 │
│ 5 │ 0.9987 │ 0.9990 │ -0.6880 │ -0.6761 │ -0.6497 │ -0.6418 │ 766.54 │ 762.25 │ 731.75 │ 732.42 │ 51.97 │ 45.24 │ 0.1018 │
│ 6 │ 0.9998 │ 0.9998 │ -0.1983 │ -0.2312 │ -0.1811 │ -0.2141 │ 2417.35 │ 2421.08 │ 2409.18 │ 2411.40 │ 43.06 │ 43.47 │ 0.0900 │
│ 7 │ 0.9998 │ 0.9997 │ -0.5258 │ -0.5746 │ -0.5072 │ -0.5560 │ 3444.92 │ 3474.99 │ 3400.01 │ 3421.63 │ 86.94 │ 94.38 │ 0.0492 │
│ 8 │ 0.9990 │ 0.9991 │ 0.8235 │ 0.8312 │ 0.8479 │ 0.8542 │ 4596.54 │ 4615.62 │ 4918.32 │ 4934.20 │ 384.87 │ 377.87 │ 0.2278 │
│ 9 │ 0.9992 │ 0.9992 │ 0.5335 │ 0.5441 │ 0.5678 │ 0.5780 │ 5322.30 │ 5316.96 │ 5468.65 │ 5466.98 │ 265.68 │ 267.28 │ 0.1318 │
│ 10 │ 0.9974 │ 0.9973 │ 0.8189 │ 0.8250 │ 0.8579 │ 0.8644 │ 5328.81 │ 5325.63 │ 5953.35 │ 5985.15 │ 743.95 │ 779.74 │ 0.2863 │
│ 11 │ 0.9977 │ 0.9978 │ 0.4262 │ 0.4045 │ 0.4862 │ 0.4645 │ 9644.02 │ 9674.06 │ 9983.47 │ 9990.28 │ 743.28 │ 726.99 │ 0.1576 │
│ 12 │ 0.9904 │ 0.9907 │ 0.4384 │ 0.4077 │ 0.5586 │ 0.5283 │ 10257.40 │ 10368.50 │ 11114.51 │ 11151.21 │ 1711.18 │ 1664.69 │ 0.1890 │
│ 13 │ 0.9867 │ 0.9874 │ 0.4007 │ 0.3680 │ 0.5444 │ 0.5103 │ 12305.12 │ 12423.75 │ 13440.31 │ 13432.47 │ 2386.43 │ 2282.47 │ 0.1293 │
│ 14 │ 0.9921 │ 0.9922 │ 0.3198 │ 0.2682 │ 0.4364 │ 0.3859 │ 16929.16 │ 17080.37 │ 17826.97 │ 17836.03 │ 2365.23 │ 2301.87 │ 0.1282 │
│ 15 │ 0.9846 │ 0.9850 │ 0.1198 │ 0.0963 │ 0.2913 │ 0.2663 │ 16858.58 │ 16949.44 │ 17496.00 │ 17502.88 │ 3077.08 │ 3029.60 │ 0.1611 │
│ 16 │ 0.9686 │ 0.9689 │ -0.0029 │ -0.0254 │ 0.2457 │ 0.2226 │ 18912.77 │ 19074.86 │ 19510.56 │ 19559.62 │ 4848.35 │ 4839.75 │ 0.1516 │
│ 17 │ 0.9782 │ 0.9784 │ -0.0174 │ -0.0381 │ 0.1908 │ 0.1694 │ 27098.09 │ 27273.00 │ 27601.12 │ 27653.12 │ 5738.19 │ 5724.21 │ 0.1641 │
│ 18 │ 0.9184 │ 0.9196 │ 0.1343 │ 0.1430 │ 0.5155 │ 0.5204 │ 190.16 │ 190.35 │ 219.91 │ 220.62 │ 87.82 │ 87.59 │ 0.1855 │
└───────┴────────┴──────────┴─────────┴──────────┴─────────┴──────────┴──────────┴──────────┴──────────┴──────────┴─────────┴─────────┴────────┘
g = 좋은(good) 프롬프트에 대한 잔차 벡터의 평균
g* = 좋은 프롬프트에 대한 잔차 벡터의 기하학적 중앙값
b = 나쁜(bad) 프롬프트에 대한 잔차 벡터의 평균
b* = 나쁜 프롬프트에 대한 잔차 벡터의 기하학적 중앙값
r = 평균에 대한 거부 방향 (b - g)
r* = 기하학적 중앙값에 대한 거부 방향 (b* - g*)
S(x,y) = x와 y의 코사인 유사도
|x| = x의 L2 노름
Silh = 좋은/나쁜 클러스터에 대한 잔차의 평균 실루엣 계수
Heretic은 방향성 절제의 매개변수화된 변형을 구현합니다. 지원되는 각 트랜스포머 구성 요소 (현재: 어텐션 출력 투영, MLP 다운 투영)에 대해 각 트랜스포머 레이어의 관련 행렬을 식별하고, 해당 "거부 방향"에 대해 직교화하여 해당 행렬과의 곱셈 결과에서 해당 방향의 표현을 억제합니다.
거부 방향은 각 레이어에 대해 "유해한" 예제 프롬프트와 "무해한" 예제 프롬프트의 첫 번째 토큰 잔차 간의 평균 차이로 계산됩니다.
절제 과정은 여러 최적화 가능한 매개변수에 의해 제어됩니다:
direction_index: 거부 방향의 인덱스 또는 각 레이어가 해당 레이어와 관련된
거부 방향을 사용하여 절제되어야 함을 나타내는 특수 값 per layer.max_weight, max_weight_position, min_weight, min_weight_distance:
각 구성 요소에 대해 이러한 매개변수는 레이어에 대한 절제 가중치 커널의 모양과 위치를 설명합니다.
다음 다이어그램이 이를 보여줍니다:
기존 abliteration 시스템 대비 Heretic의 주요 혁신은 다음과 같습니다:
다음은 공개적으로 사용 가능한 abliteration 기술 구현체를 알고 있습니다:
Heretic은 처음부터 작성되었으며 위 프로젝트의 코드를 재사용하지 않습니다.
Heretic의 개발은 다음을 참고했습니다:
연구에 Heretic을 사용하는 경우 다음 BibTeX 항목을 사용하여 인용해 주세요:
@misc{heretic,
author = {Weidmann, Philipp Emanuel},
title = {Heretic: Fully automatic censorship removal for language models},
year = {2025},
publisher = {GitHub},
journal = {GitHub repository},
howpublished = {\url{https://github.com/p-e-w/heretic}}
}
Copyright © 2025-2026 Philipp Emanuel Weidmann ([email protected]) + 기여자
이 프로그램은 자유 소프트웨어입니다: 자유 소프트웨어 재단이 발행한 GNU Affero General Public License의 버전 3 또는 (선택에 따라) 이후 버전의 조건에 따라 재배포 및/또는 수정할 수 있습니다.
이 프로그램은 유용하기를 바라며 배포되지만, 어떠한 보증도 없이, 상업성 또는 특정 목적에의 적합성에 대한 묵시적 보증도 없이 배포됩니다. 자세한 내용은 GNU Affero General Public License를 참조하세요.
이 프로그램과 함께 GNU Affero General Public License의 사본을 받았을 것입니다. 그렇지 않다면 https://www.gnu.org/licenses/를 참조하세요.
이 프로젝트에 기여함으로써, 귀하는 동일한 라이선스에 따라 귀하의 기여를 공개하는 데 동의하는 것으로 간주됩니다.
| 모델 | "유해한" 프롬프트에 대한 거부 횟수 | "무해한" 프롬프트에 대한 원본 모델과의 KL 발산 |
|---|
| google/gemma-3-12b-it (원본) | 97/100 | 0 (정의상) |
| mlabonne/gemma-3-12b-it-abliterated-v2 | 3/100 | 1.04 |
| huihui-ai/gemma-3-12b-it-abliterated | 3/100 | 0.45 |
| p-e-w/gemma-3-12b-it-heretic (당사) | 3/100 | 0.16 |