인공지능(AI) 모델, 특히 대형 언어 모델(LLM)은 오늘날 다양한 분야에서 혁신을 이끌고 있습니다. 그러나 이러한 모델들은 대부분 사용자의 안전을 위해 특정 요청을 거부하도록 설계되어 있습니다. 이런 기능은 AI를 오용할 가능성을 줄이는 데 중요한 역할을 하지만, 모델의 유연성과 응답성을 제한하는 단점이 있습니다. 이번 글에서는 LLM에서 이러한 거부 메커니즘을 제거할 수 있는 혁신적인 기술인 “Abliteration”에 대해 알아보겠습니다. 이 기술을 통해 LLM의 검열을 해제하고 모든 유형의 요청에 대응할 수 있게 하는 방법을 살펴보겠습니다.
Abliteration: LLM 검열 해제의 새로운 접근
LLM, 특히 최신 Llama 모델들은 특정 요청을 거부하도록 훈련되어 있습니다. 이는 모델의 잔류 스트림의 특정 방향에 의해 매개되며, 모델이 이 방향을 나타내지 못하게 하면 요청을 거부하는 능력을 잃게 됩니다. 이 방향을 “거부 방향”이라고 하며, 이 방향을 식별하고 제거하는 것이 바로 Abliteration의 핵심입니다.
- 데이터 수집: 모델에 유해한 명령과 무해한 명령을 입력하고, 각각의 마지막 토큰 위치에서 잔류 스트림 활성화를 기록합니다.
- 2평균 차이 계산: 유해한 명령과 무해한 명령의 활성화 사이의 평균 차이를 계산하여 “거부 방향”을 나타내는 벡터를 얻습니다.
- 3선택 및 제거: 이러한 벡터를 정규화하고 평가하여 최상의 “거부 방향”을 선택한 후, 이를 제거하여 모델의 검열 기능을 해제합니다.
Abliteration은 추론 시간 개입 또는 가중치 직교화와 같은 방법으로 수행될 수 있습니다. 추론 시간 개입은 모델의 각 잔류 스트림과 각 블록에 거부 방향을 적용하지 않도록 만드는 방식이며, 가중치 직교화는 모델의 가중치를 조정하여 모델이 이 방향으로 출력을 생성하지 못하게 하는 방식입니다.
구현 및 실제 사례
Abliteration을 구현하기 위해서는 TransformerLens 라이브러리와 같은 도구를 사용할 수 있습니다. 예를 들어, Daredevil-8B 모델에 이 기술을 적용하여 검열을 해제한 사례를 살펴보겠습니다. 이 과정에서 모델이 유해한 명령에 대한 응답을 거부하지 않도록 만들 수 있었으며, 추가적으로 DPO(Fine-Tuning)를 통해 모델의 성능을 회복할 수 있었습니다.
import torch
from datasets import load_dataset
from transformer_lens import HookedTransformer
# 데이터 로드 및 모델 준비
MODEL_ID = "mlabonne/Daredevil-8B"
MODEL_TYPE = "meta-llama/Meta-Llama-3-8B-Instruct"
model = HookedTransformer.from_pretrained_no_processing(MODEL_TYPE)
tokenizer = AutoTokenizer.from_pretrained(MODEL_TYPE)
# 데이터셋 로드 및 토큰화
harmful_inst_train, harmless_inst_train = load_dataset('mlabonne/harmful_behaviors'), load_dataset('mlabonne/harmless_alpaca')
harmful_tokens = tokenizer.apply_chat_template(harmful_inst_train)
harmless_tokens = tokenizer.apply_chat_template(harmless_inst_train)
# Abliteration 과정
# (잔류 스트림 활성화 기록, 평균 차이 계산, 거부 방향 제거 등의 코드)
이와 같은 구현 과정을 통해 LLM의 검열 기능을 해제할 수 있습니다. 하지만 이러한 기술에는 윤리적 고려 사항이 따릅니다. LLM의 검열 해제는 모델의 사용에 있어 위험 요소를 증가시킬 수 있으며, 이는 매우 신중하게 다뤄야 할 문제입니다.
결론
Abliteration 기술은 LLM의 검열을 해제하는 강력한 도구입니다. 그러나 이 기술을 사용하는 것은 단순한 기술적 도전이 아니라 윤리적 고려가 필요합니다. 모델의 유연성과 응답성을 높이는 데는 성공했지만, 이 과정에서 발생할 수 있는 위험성을 충분히 이해하고 대응해야 합니다. Abliteration을 통해 우리는 AI 모델의 가능성을 더 넓힐 수 있지만, 그만큼 책임도 커진다는 점을 잊지 말아야 합니다.
참고 자료: Hugging Face, “Uncensor any LLM with abliteration”