헤레틱: 언어 모델의 자동 검열 제거 도구

3 weeks ago 7

  • Heretic은 트랜스포머 기반 언어 모델의 검열(‘안전 정렬’)을 자동으로 제거하는 도구로, 추가 학습 없이 작동하는 구조
  • 방향성 절제(direction ablation) 기법과 Optuna 기반 TPE 최적화를 결합해, 거부 응답을 최소화하면서 원래 모델의 지능 손실을 최소화
  • 기본 설정만으로도 전문가가 수동으로 절제한 모델과 유사한 품질을 달성하며, KL 발산이 낮아 원본 성능 보존도 높음
  • 대부분의 밀집형 및 일부 MoE 모델을 지원하며, 명령줄에서 한 줄로 실행 가능한 완전 자동화 프로세스 제공
  • 모델 안전성 필터를 제거하면서도 원본 품질을 유지할 수 있는 기술로, 언어 모델 연구 및 실험 환경에서의 활용 가능성 높음

Heretic 개요

  • Heretic은 트랜스포머 언어 모델의 검열(safety alignment) 을 제거하는 자동화 도구
    • 추가 학습이나 수동 조정 없이 작동
    • directional ablation(abliteration) 기법과 Optuna의 TPE 기반 파라미터 최적화를 결합
  • 목표는 거부(refusal) 횟수를 줄이면서 KL 발산을 최소화하여 원래 모델의 능력을 최대한 유지하는 것
  • 트랜스포머 내부 구조를 이해하지 않아도 사용 가능하며, 명령줄 실행만으로 모델 비검열화 수행 가능

성능 비교

  • Heretic은 자동 실행만으로 수동 절제 모델과 유사한 결과를 달성
    • 예시: google/gemma-3-12b-it 모델 기준
      • 원본: 거부 97/100, KL 발산 0
      • 수동 절제 모델들: 거부 3/100, KL 발산 0.45~1.04
      • Heretic 결과: 거부 3/100, KL 발산 0.16
  • 동일한 거부 억제 수준을 유지하면서 원본 모델 손상 최소화
  • PyTorch 2.8, RTX 5090 환경에서 측정된 수치이며, 플랫폼에 따라 값이 달라질 수 있음

지원 모델 및 배포

  • 대부분의 dense 모델, 일부 multimodal 모델, 다양한 MoE 아키텍처 지원
  • 아직 SSM/hybrid 모델, 비균질 레이어, 특수 어텐션 구조는 미지원
  • Heretic으로 비검열화된 모델 모음은 Hugging Face의 p-e-w/the-bestiary 컬렉션에서 확인 가능

사용법

  • Python 3.10+ 및 PyTorch 2.2+ 환경 필요
  • 설치 및 실행 예시 pip install heretic-llm heretic Qwen/Qwen3-4B-Instruct-2507
    • 모델 이름만 바꾸면 다른 모델에도 적용 가능
  • 기본 설정으로 완전 자동 실행되며, --help 또는 config.default.toml을 통해 세부 설정 가능
  • 실행 시 시스템 벤치마크를 통해 최적 배치 크기 자동 결정
    • 예: RTX 3090 기준 Llama-3.1-8B 모델 비검열화에 약 45분 소요
  • 완료 후 모델 저장, Hugging Face 업로드, 대화 테스트 등의 선택 가능

작동 원리

  • Heretic은 directional ablation의 매개변수화 변형을 구현
    • 각 트랜스포머 레이어의 attention out-projectionMLP down-projection 행렬을 찾아, 거부 방향(refusal direction) 에 대해 직교화 수행
    • “유해(harmful)”와 “무해(harmless)” 프롬프트의 첫 토큰 잔차 평균 차이를 이용해 거부 방향 계산
  • 절제 과정은 여러 최적화 가능한 파라미터로 제어됨
    • direction_index: 레이어별 거부 방향 사용 여부
    • max_weight, max_weight_position, min_weight, min_weight_distance: 레이어별 절제 가중 커널의 형태와 위치 정의

주요 기술 혁신

  • 가중 커널 형태의 유연성 향상으로 품질-순응성 균형 개선
  • 거부 방향 인덱스를 실수형으로 처리, 인접 벡터 간 선형 보간을 통해 더 넓은 방향 공간 탐색 가능
  • 컴포넌트별 개별 절제 파라미터 적용, MLP와 attention의 영향 차이를 고려해 성능 최적화

관련 선행 연구

  • 공개된 유사 구현 예시
    • AutoAbliteration, abliterator.py, wassname’s Abliterator, ErisForge, Removing refusals with HF Transformers, deccp
  • Heretic은 이들 코드를 재사용하지 않고 처음부터 독자적으로 작성

참고 문헌 및 영향

  • Arditi et al. (2024) 의 원 논문
  • Maxime Labonne의 abliteration 관련 블로그 및 모델 카드
  • Jim Lai의 “projected abliteration” 설명 글

라이선스

  • GNU Affero General Public License v3 이상 적용
  • 자유로운 수정 및 재배포 가능하나, 보증 없음
  • 기여자는 동일한 라이선스로 코드 공개에 동의해야 함

Read Entire Article