Abliterated 모델은 어떻게 만드나요? 쉬운 설명
Abliterated 모델은 안전 거절 메커니즘이 제거된 대규모 언어 모델로, 모델이 콘텐츠 필터에 부딪히지 않고도 논쟁적, 성인 또는 니치 질문에 답변할 수 있게 합니다. 이 접근 방식은 개발자에게 모델의 어조와 지식 컷오프에 대한 완전한 제어를 제공하며, 표준 가드레일이 유용한 출력을 차단할 수 있는 코딩, 역할극, 창작 글쓰기에 특히 가치 있습니다.
업데이트됨

주요 포인트
- abliteration은 모델 내부의 거부 방향을 측정하고 가중치에서 제거합니다.
- 재학습이 아닌 편집이므로 저렴하지만 답변 품질이 약간 떨어질 수 있습니다.
- 파인튜닝은 예제 학습으로 동작을 변경하고, abliteration은 하나의 방향을 빼서 변경합니다.
- 빌드하기 전에 짧은 테스트 세트로 이러한 모든 모델을 평가할 수 있습니다.
간단 요약
안전성 학습을 거친 언어 모델은 일부 요청을 거부하는 경향이 있습니다. 연구자들은 이러한 거부 행동이 모델 내부 활성화의 단일 방향에 의해 매개된다는 것을 발견했습니다. 해당 방향을 제거하면 모델은 대부분의 경우 거부를 멈춥니다. "abliteration"이라는 이름은 "ablation"(구성 요소 제거)과 "obliterate"(소멸)의 합성어입니다.
실제로 abliteration된 모델은 어떻게 만드나요? 네 단계가 있습니다: 두 세트의 프롬프트 수집, 각 프롬프트에 대한 모델 활성화 기록, 방향을 얻기 위해 차이 계산, 모델이 해당 방향으로 작성하지 못하도록 가중치 편집. 다음 섹션에서는 복잡한 수학 없이 각 단계를 설명합니다.
1단계: 두 프롬프트 세트
모델이 일반적으로 거부하는 프롬프트 세트와 정상적으로 응답하는 프롬프트 세트가 필요합니다. 각 세트에는 수백 개의 짧은 지시가 포함됩니다. 세트의 길이와 스타일은 유사해야 하므로 유일한 체계적 차이는 모델이 거부할지 여부여야 합니다. 해로운 세트가 모두 길고 무해한 세트가 모두 짧으면 결과 방향에 길이가 부분적으로 부호화되어 노이즈가 추가됩니다.
프롬프트는 측정용 입력일 뿐입니다. 학습되지 않으며 모델의 답변도 사용되지 않습니다.
2단계: 거부 방향 찾기
트랜스포머는 많은 레이어를 통과하는 벡터로 텍스트를 처리합니다. 선택한 레이어에서 두 세트의 모든 프롬프트에 대해 마지막 프롬프트 토큰의 벡터를 기록합니다. 그런 다음 각 세트의 벡터를 평균내고 하나의 평균에서 다른 평균을 빼십시오. 결과는 "정상적으로 답변"에서 "거부"로 향하는 단일 벡터입니다. 길이를 1로 정규화하면 거부 방향이 됩니다.
사람들은 일반적으로 여러 레이어를 시도하고 방향 제거가 홀드아웃 프롬프트 세트에서 가장 잘 작동하는 레이어를 선택합니다. 레이어 선택은 프로세스에서 가장 직접적인 부분입니다.
import numpy as np
# acts_bad, acts_good: arrays of shape (n_prompts, hidden_size)
direction = acts_bad.mean(axis=0) - acts_good.mean(axis=0)
direction = direction / np.linalg.norm(direction)
# remove the direction from a weight matrix W that writes into the residual stream
W_edited = W - np.outer(direction, direction) @ W
실제 구현은 각 레이어의 여러 가중치 행렬에 이를 적용하지만 아이디어는 이 세 줄에 있습니다.
3단계: 가중치 편집
방향에 도달하면 두 가지 사용 방법이 있습니다. 모델 실행 중 활성화에서 이를 빼서 사용자 정의 추론 코드가 필요하거나, 잔류 스트림에 기록되는 모든 행렬을 방향에 대해 직교화하여 가중치에 포함할 수 있습니다. 두 번째 접근 방식은 편집된 모델이 모든 런타임이 로드할 수 있는 일반 체크포인트이기 때문에 일반적입니다. 이것이 abliteration된 모델이 일반 다운로드로 나타나는 이유입니다.
편집은 결정론적이고 빠릅니다. 모델을 담을 수 있는 GPU에서 몇 분 정도 걸리며, 학습 실행에는 몇 시간 또는 며칠이 걸립니다.
abliteration vs 파인튜닝
둘 다 거부가 적은 모델을 생성할 수 있지만 작동 방식이 다릅니다.
| Abliteration | 파인튜닝 | |
|---|---|---|
| 변경 사항 | 가중치는 한 방향에서 투영됨 | 가중치는 예제에 대한 경사 하강법으로 업데이트됨 |
| 필요한 데이터 | 측정을 위한 두 개의 작은 프롬프트 세트 | 선별된 학습 세트 |
| 컴퓨팅 | 몇 분에서 1시간 | 시간에서 일 |
| 부수 효과 | 추론 둔화 또는 어조 변경 가능 | 데이터에 따라 다름; 새로운 스타일 또는 지식 학습 가능 |
| 제어 | 거친: 방향 켜기/끄기 | 정교한: 데이터로 동작 형성 |
일부 제작자는 두 가지를 결합합니다: 먼저 abliteration을 수행한 후 손실된 품질을 회복하기 위해 짧은 파인튜닝을 실행합니다. 새로운 도구도 최적의 레이어와 강도를 검색하여 편집이 모델을 최소한으로 변경하면서 거부를 제거하도록 자동화합니다. 특정 모델을 생성한 접근 방식은 일반적으로 모델 카드에 명시됩니다.
품질 비용
방향 제거는 거친 편집입니다. 거부 방향은 다른 기능과 완전히 분리되지 않으므로 투영하면 다른 동작이 바뀔 수 있습니다. 보고된 부수 효과에는 추론 테스트에서 약간 약한 성능, 이상한 형식화, 일부 경우 유용한 세부 정보 대신 무모하게 해로운 요청에 응답하는 모델이 포함됩니다. 효과는 기본 모델과 편집 적용 강도에 따라 다릅니다.
피해를 줄이는 두 가지 방법이 있습니다. 하나는 테스트 세트에서 거부를 제거하면서 다른 곳의 변경이 가장 작은 레이어와 강도를 선택하는 것입니다. 다른 하나는 위에서 언급한 수리 파인튜닝입니다. 어느 쪽도 편집을 무료로 만들지 않으므로 라벨을 신뢰하기보다 자체 작업에서 모델을 테스트해야 합니다.
흔한 오해
"새로운 지식을 추가합니다." 그렇지 않습니다. 편집은 동작만 제거합니다. 기본 모델이 주제를 알지 못했다면 abliteration된 버전도 알지 못합니다. 원래 모델이 거부했던 곳에 단순히 답변을 시도할 뿐입니다.
"모든 안전 장치를 제거합니다." 측정된 거부 방향을 제거합니다. 얼버무리는 표현이나 도덕적 논평과 같은 다른 학습된 습관은 다른 기능에 분산되어 있으므로 남아 있을 수 있습니다. 일부 모델은 편집 후에도 면책 조항을 추가합니다.
"더 큰 모델이 편집하기 쉽습니다." 결과는 혼합됩니다. 더 큰 모델은 더 많은 여유 용량이 있기 때문에 편집에 더 잘 견딜 수 있지만 두 프롬프트 세트의 품질이 원시 크기보다 더 중요합니다.
"모델 카드는 모든 것을 알려줍니다." 카드는 의도를 설명합니다. 하지만 자신의 프롬프트 유형에 대한 거부율을 거의 포함하지 않습니다. 직접 40개의 프롬프트로 테스트하는 데 10분이 걸리며, 카드보다 더 많은 정보를 제공합니다.
"결과는 항상 동일한 기본 모델에 대해 동일합니다." 그렇지 않습니다. 다른 프롬프트 세트, 레이어 및 강도는 다른 편집을 생성하므로 동일한 기반으로 구축된 두 모델은 상당히 다른 동작을 보일 수 있습니다. 일치한다고 가정하지 말고 직접 비교하며 테스트 결과를 기록할 때 버전을 명시하십시오.
책임 있는 서비스(호스팅 또는 로컬 모두)에는 하나의 제한이 적용됩니다: 미성년자를 성적으로 묘사하는 콘텐츠는 제외되며 이 사이트에서 거부 편집은 해당 규칙을 변경하지 않습니다.
빌드하기 전 모델 평가 방법
실제 사용 사례와 일치하는 30~50개의 프롬프트로 구성된 짧은 테스트 파일을 작성하세요. 소설, 분석 또는 코드 생성 등 생성하려는 콘텐츠 유형을 포함하세요. 요약하거나 사실적 질문에 답변하는 등 일반적인 작업을 몇 개 포함하여 일반적 품질이 떨어지는지 확인하세요. 동일한 파일을 각 후보 모델에 대해 실행하고 출력을 확인하세요. 거부 횟수를 세고, 일관성, 지시 따르기 및 반복 여부도 확인하세요.
이 작업을 위해 가중치를 다운로드하고 호스팅하는 것을 원치 않으면 호스팅된 엔드포인트에 대해 파일을 실행할 수 있습니다. 이 사이트의 API는 OpenAI 호환이며 합법적인 성인 사용을 위해 콘텐츠 거부 없이 답변하도록 조정된 하나의 오픈 웨이트 모델을 ID uncensored로 제공합니다.
curl https://api.abliterated.cc/v1/chat/completions \
-H "Authorization: Bearer YOUR_KEY" \
-H "Content-Type: application/json" \
-d '{"model":"uncensored","messages":[{"role":"user","content":"Summarize the plot of Hamlet in three sentences."}]}'
모델 선택에 대한 자세한 내용은 abliterated 모델 개요를 참조하거나, 캐릭터 작업이 목표라면 롤플레이용 최고의 abliterated LLM 페이지를 확인하세요. 요청 관련 세부 사항은 API 문서에서 확인할 수 있습니다. 새 계정은 카드를 등록하지 않고도 $0.50 체험판 청구를 통해 이 크기의 테스트 파일을 실행할 수 있는 충분한 크레딧을 받을 수 있습니다.
더 많은 가이드
질문과 답변
abliteration에 새로운 학습 데이터가 필요한가요?
아니요. 활성화 상태를 측정하기 위해 두 개의 작은 프롬프트 세트가 필요하지만, 모델은 해당 데이터로 학습되지 않습니다. 변경은 가중치의 직접적인 편집입니다.
abliteration된 모델이 jailbreak와 동일한가요?
아니요. jailbreak는 모델이 거부를 멈추도록 유도하는 프롬프트입니다. abliteration은 모델 자체를 변경하므로 별도의 프롬프트가 필요하지 않습니다.
abliteration이 모델의 성능을 저하시키나요?
자주 약간 나빠집니다. 추론 점수와 스타일이 변경될 수 있습니다. 특정 모델에 대해 정확히 알 수 있는 유일한 방법은 자체 프롬프트로 테스트하는 것입니다.
직접 실행하지 않고도 모델을 사용할 수 있나요?
네. 호스팅된 OpenAI 호환 API를 사용하면 GPU 없이 모델을 호출할 수 있습니다. 기본 URL은 https://api.abliterated.cc/v1이며, 모델 ID는 uncensored입니다.
키는 양식 하나만 작성하면 받을 수 있습니다
계정을 생성하고 키를 복사한 후 기본 URL을 변경하세요. 설정은 이것으로 끝입니다.