동료 LLama 사용자 여러분께, 개발에 거의 5개월이 걸린 끝에, 역대 가장 큰 규모의 Heretic 버전인 Heretic 2.0을 즉시 이용할 수 있게 되었음을 발표하게 되어 기쁩니다: https://github.com/p-e-w/heretic Heretic은 언어 모델에서 검열(censorship)을 제거하는 선도적인 소프트웨어입니다. 현재 이 프로젝트는 GitHub에서 37k 스타를 보유하고 있으며, Hugging Face에는 8,500개 이상의 모델이 등록되어 있고, 총 8,800만 개(!!!)의 모델 다운로드를 기록했습니다. Heretic 2.0을 통해 이 프로젝트는 새로운 시대로 진입합니다. Heretic은 단순히 검열 제거를 위한 목적 기반 도구에서 일반적인 목적으로 사용 가능한 모델 수정 도구로 확장되어 놀라운 기능들을 수행할 수 있게 되었습니다. 물론, 검열 제거가 여전히 주요하고 기본이 되는 기능이며, 사실 이전보다 훨씬 더 잘 작동합니다. Heretic 2.0은 지금까지 구축된 가장 진보한 거부(refusal) 억제 시스템입니다. 여러분의 시간은 소중하므로, 이번 버전에 대한 요약(TL;DR)을 알려드립니다: 방향성 제거(Directional abliteration)는 제가 Heretic을 위해 처음부터 개발한 새로운 스티어링 방법인 임의 순위 절제(Arbitrary-Rank Ablation, ARA)로 대체되었습니다. 이는 기존의 abliteration보다 훨씬 우수하며, 지난 몇 달 동안 진취적인 테스터들에 의해 큰 성공을 거두었습니다. 이제 이것이 기본값입니다 (클래식 abliteration은 여전히 옵션으로 사용 가능합니다). Heretic은 플러그인(plugins) 중심으로 완전히 재구축되었습니다. 스코어러 플러그인(Scorer plugins)은 Heretic이 무엇을 최적화할지 정의합니다. 모디파이어 플러그인(Modifier plugins)은 실제 스티어링 방법을 구현합니다. 이 플러그인들은 작성하기 쉽고, 간단한 Python 파일에서 직접 로드할 수 있으며, 잘 정의된 API를 가지고 있습니다. Heretic은 이제 비대화형(non-interactively)으로 실행될 수 있게 되었으며, 이는 다른 것들 중 하나로 더 엄격한 품질 관리를 위한 완전한 end-to-end 테스트 구현을 가능하게 했습니다. 모델 지원이 하이퍼 연결(hyper-connections)을 가진 모델까지 확장되었고, 사고형 모델(thinking models)에 대한 지원도 크게 개선되었습니다. Heretic 2.0은 Heretic 1.x 구성과 하위 호환되지 않습니다.
이전 설정을 작동시키기 위해 무엇을 변경해야 하는지는 마이그레이션 가이드(migration guide)를 참조하십시오. 변하지 않은 점은 모델에서 검열을 제거하는 것이 여전히 heretic Qwen/Qwen3.5-4B를 실행하는 것만큼 간단하다는 것입니다. Heretic이 제공할 수 있는 추가 기능에 대해서는 기본 설정 파일을 참조하십시오. 이제 세부 사항을 살펴보겠습니다...
ARA: Heretic의 새로운 조향(steering) 방법 방향성 제거(Directional ablation), 또는 "abliteration"은 거부 응답(refusals)(또는 억제하려는 다른 모든 것)이 잔여 공간(residual space)에서 단일 방향(즉, rank-1 부분 공간)으로 표현된다는 가정에 기반합니다. 이것이 전체 그림인지에 대해서는 오랫동안 연구에서 의문이 제기되어 왔으며, 현재 다방향 제거(multi-directional ablation)나 "표현 원뿔(representation cones)"과 같은 대안을 탐구하는 여러 논문들이 있습니다.
올해 초에 저는 제거 변환(ablation transformation)이 고정된 rank의 부분 공간으로 제한되어야 한다는 아이디어를 완전히 포기하는 방법을 실험하기 시작했습니다. 3월에는 이 풀 리퀘스트에서 임의 순위 제거(Arbitrary-Rank Ablation, ARA)의 초기 버전을 발표했지만 (이후 본 PR에서 플러그인 시스템 위에 ARA를 재구현하면서 폐쇄되었습니다).
ARA는 우리가 원하는 변화의 기본 속성을 인코딩하는 목적 함수(objective function)를 기반으로 행렬을 수정하여 모델 동작을 조향합니다. 즉, 유해한 프롬프트(Harmful prompts)가 잔여 공간에서 무해한 프롬프트(harmless prompts)와 유사하게 표현되어야 하며, 동시에 무해한 프롬프트의 표현은 가능한 한 적게 변화해야 합니다. 이 목적 함수는 L-BFGS 최적화기(optimizer)와 함께 사용하여 행렬을 하나씩 수정하며, 이는 어떠한 순위 제한 없이 표현을 조향하는 일종의 마이크로 트레이닝입니다.
ARA는 커뮤니티의 도움으로 광범위하게 테스트되고 개선되었습니다. 특히 kabachuha가 Heretic의 LoRA 시스템과 호환되도록 만들었으며, varunbln은 상당한 성능 향상을 발견했습니다. 저는 곧 ARA를 더 자세히 설명하는 글을 게시할 계획입니다.
스코어러 플러그인(scorer plugins)을 사용하여 Heretic이 원하는 대로 작동하게 만들 수 있습니다. Heretic은 결과 모델의 품질을 측정하는 값인, 점수(scores)를 최적화하는 수정 매개변수(modification parameters)를 찾는 방식으로 작동합니다. 1.0 버전 출시 이후로, Heretic은 두 가지 하드코딩된 점수를 사용해 왔습니다: 디센싱 강도(decensoring strength) 측정을 위한 거부율 카운트(Refusal count), 그리고 품질 유지(quality retention) 측정을 위한 KL 다이버전스(KL divergence)입니다. Heretic 2.0을 사용하면 스코어러 플러그인(scorer plugins)을 작성하고 로드하여 자신만의 점수를 자유롭게 정의할 수 있습니다. 임의로 많은 수의 스코어러 플러그인을 동시에 로드하고 최적화할 수 있으며, 각 점수는 최적화 과정에서 최소화되거나 최대화될 수 있습니다. 이 방법을 사용하려면 기본 설정 파일(default configuration file)을 참조하십시오. 스코어러 플러그인 시스템은 red40maxxer가 몇 달에 걸쳐 노력한 결과물이며, 저는 그와 수십 번의 검토 주기(review cycles) 동안 수백 개의 메시지를 주고받으며 가능한 최고의 설계를 찾아냈습니다. 이는 Heretic이 작동하는 방식 자체를 근본적으로 바꾼 기념비적인 기여입니다.
기본값으로 유지되는 키워드(거부) 카운트 및 KLD 스코어러 플러그인 외에도, Heretic은 다른 두 가지 스코어러를 함께 제공합니다: 여러 표준 벤치마크에 대한 점수를 계산할 수 있는 벤치마크 스코어러(A benchmark scorer), 그리고 BERT 분류기(BERT classifier)입니다. 오랜 기간 Heretic 기여자였던 Vinay Umrethe가 개발한 BERT 분류기는 임의의 ModernBERT 유형 모델(ModernBERT-type model)을 사용하여 LLM 응답을 분류하고, 분류기가 생성하는 레이블에 따라 점수를 매길 수 있습니다. Vinay는 또한 거부 분류기 모델(refusal classifier model)도 훈련시켰는데 (이 플러그인과 기본적으로 사용됨), 실험 결과에 따르면 이 모델은 Heretic이 기본적으로 사용하는 단순 키워드 매칭 방식보다 모델의 거부를 식별하는 데 훨씬 더 정확한 것으로 나타났습니다. 이 플러그인은 키워드 매칭보다 느리지만, 향상된 정확도는 Heretic이 더 높은 품질의 수정 모델을 생성하도록 유도할 수 있습니다. 감정 분류기(emotion classifier)를 사용하는 대안적인 구성도 Heretic 저장소에 제공됩니다. 이 플러그인 시스템은 README와 코드 모두에 잘 문서화되어 있습니다.
커스텀 플러그인(custom plugins)을 실험해 보고 싶다면, 에이전트(agent)는 Heretic 저장소(repository)를 학습한 후 원하는 기능을 수행하는 플러그인과 일치하는 설정 파일(configuration file)을 만드는 데 어려움이 없을 것입니다. 마음에 드셨으면 좋겠습니다! 감사합니다 :) 제출자: /u/-p-e-w- [link] [comments]