Heretic 2.0 released: Model modification for everyone
Heretic 2.0, ARA와 플러그인으로 언어모델 행동 조정 확대
Heretic 2.0은 언어모델의 거부 응답과 말투를 조정하는 도구에 ARA와 플러그인 체계를 도입했습니다. 사용자는 평가 기준과 가중치 수정 방식을 구성해 결과 모델을 만들고 시험할 수 있으며, 기존 1.x 설정은 새 형식에 맞게 옮겨야 합니다.
- 주제
본문
Heretic 개발자가 모델 행동 수정 도구의 2.0.0 버전을 공개했습니다. Heretic은 이미 학습된 언어모델의 가중치를 조정해 응답 성향을 바꾸는 프로그램입니다. 기본 기능은 거부 응답 억제이며, 설정을 바꾸면 장황하거나 상투적인 표현, 아첨하는 응답, 감정 표현도 조정 대상으로 삼을 수 있습니다. 2.0의 변화는 이런 목표와 수정 방식을 플러그인으로 확장하고, 기존의 방향 제거 방식 대신 ARA를 기본 수정자로 채택한 점입니다.
고정된 방향 대신 행렬을 직접 조정
기존 방향성 제거, 이른바 abliteration은 모델의 거부 반응이 내부 표현 공간의 특정 방향에 모여 있다고 보고 그 방향을 약화합니다. Heretic 2.0의 기본 수정 방식인 Arbitrary-Rank Ablation(ARA)은 거부 반응을 고정된 하나의 방향이나 특정 랭크의 부분공간으로 한정하지 않습니다. 개발자는 각 트랜스포머 모듈에서 입력과 출력 텐서를 모은 뒤 행렬을 직접 최적화하는 방식으로 ARA를 구현했습니다.
최적화 목표는 무해한 요청에 대한 모듈 출력을 최대한 유지하면서 유해한 요청의 출력을 무해한 요청의 출력에 가까이 옮기는 것입니다. 기존 유해 응답에서 멀어지도록 하는 항목도 목적 함수에 들어갑니다. 모델 전체를 새 데이터로 다시 학습하는 대신, 대조할 프롬프트와 점수를 이용해 모듈별 가중치를 조정합니다. Heretic 2.0에서도 기존 방향성 제거 방식은 선택지로 남아 있지만 기본값은 ARA입니다.
점수와 수정 방식을 나눈 플러그인
Heretic 작업은 무엇을 바꿀지 정하는 프롬프트와, 결과가 목표에 맞는지 계산하는 점수, 실제로 가중치를 바꾸는 수정자로 이어집니다. 2.0은 이 요소를 플러그인으로 나눴습니다. Scorer 플러그인은 모델의 응답을 평가하고 modifier 플러그인은 가중치 수정 방식을 실행합니다. 개발자는 파이썬 파일로 자체 플러그인을 만들고 Heretic 코드 자체를 고치지 않은 채 불러올 수 있습니다.
기본 scorer는 거부 키워드 비율과 원본 모델과의 KL 발산을 사용합니다. 이 밖에 표준 벤치마크 점수를 계산하는 scorer도 제공하며, 여러 점수를 한 작업에서 함께 최적화하거나 각각 최대화·최소화하도록 설정할 수 있습니다. 수정자는 한 번의 모델 처리 작업에 하나를 지정합니다. 따라서 사용자는 원하는 결과에 맞춰 평가 기준과 실제 수정 방법을 따로 구성합니다. 거부 응답 억제 외에 장황한 표현이나 아첨, 감정 표현을 바꾸는 예시 설정도 저장소에 포함돼 있습니다.
작업은 처리할 모델과 설정을 지정해 실행하는 방식입니다. 공식 README는 Python 3.10 이상과 PyTorch 2.6 이상 환경을 안내하고, 처리가 끝나면 수정 모델을 저장하거나 Hugging Face에 올리고 대화와 표준 벤치마크로 시험하는 선택지를 제공합니다. README에 든 예시에서는 기본 설정으로 Qwen3-4B-Instruct-2507을 처리할 때 RTX 3090에서 약 30~40분이 걸립니다. 처리 시간은 모델과 하드웨어, 설정에 따라 달라집니다.
2.0에는 대화형 입력 없이 실행하는 기능과 전체 처리 과정을 점검하는 엔드투엔드 테스트도 들어갔습니다. 하이퍼커넥션 구조를 쓰는 모델 지원도 추가됐습니다. 이 변경과 함께 설정 형식이 바뀌어 1.x 설정 파일을 그대로 사용할 수 없습니다. 공식 릴리스는 이전 설정을 옮기는 안내서를 제공하며, 기존 연구 기능은 2.0에서 제거하고 별도 프로젝트 Lophius를 대체 수단으로 안내합니다.
자료: Reddit, GitHub / 정리·해설: Trawling
참고 자료
- Releases · p-e-w/heretic
- feat: modifier plugins + ARA by p-e-w · Pull Request #446 · p-e-w/heretic
- feat: Arbitrary-Rank Ablation (ARA) by p-e-w · Pull Request #211 · p-e-w/heretic
- heretic/config.noslop.toml at master · p-e-w/heretic · GitHub
- heretic/src/heretic/scorers/kl_divergence.py at master · p-e-w/heretic · GitHub