어브리테레이션(abliteration)은 AI에 내장된 검열로 인한 명령 거부를 무력화해 모든 종류 질문에 응답할 수 있게 하는 기술이다. 사전 학습된 언어 모델은 안전성 측면에서 바람직하지 않은 입력을 거부하도록 설정되어 있다. 이 설정을 해제하는 게 바로 어브리테레이션인 것.
최근 대규모 언어 모델은 대량 텍스트 데이터에서 언어에 대한 통계적 특징을 학습해 인간과 같은 자연스러운 문장 생성, 대화, 질의응답 등이 가능해졌다. 하지만 그런 모델은 때때로 차별적, 공격적 또는 불법적인 내용을 생성할 수 있다.
따라서 개발자는 모델이 유해 콘텐츠 생성을 거부하도록 미세조정을 할 때 명시적으로 훈련시키는 경우가 있다. 예를 들어 불법적인 걸 쓰라는 명령에 대해 죄송합니다만 불법적인 내용을 생성할 수 없다며 거부 응답을 하게 된다.
이런 명령 거부는 언어 모델 안전성을 높이는 중요한 메커니즘이지만 동시에 표현의 자유를 제한하므로 윤리적 논란이 되고 있다. 여기에서 더 자유롭고 제한 없는 언어 생성을 가능케 하는 기술이 어브리테레이션이다.
어브리테레이션은 언어 모델에 해서는 안 되는 것과 해도 되는 걸 입력하고 각각 내부 처리를 기록한다. 그리고 해당 내부 처리 차이를 바탕으로 유해한 지시를 입력했을 때의 처리를 특정해 선택적으로 명령 거부를 해제한다.
자세한 단계는 다음과 같습니다. 첫째 데이터 수집. 유해/무해 지시 세트를 준비해 언어 모델에 입력하고 각 층 잔여 스트림(residual stream)을 기록한다. 둘째 평균 차분. 유해/무해 지시에 대한 잔여 스트림 활성화 평균값을 계산해 차를 구해 거부 방향 벡터를 얻는다. 셋째 거부 방향 선택. 벡터 길이를 1로 정규화한 뒤 평균 절대값이 큰 순으로 정렬해 가장 효과적인 거부 방향 벡터를 선택한다. 넷째 개입 실행. 선택한 거부 방향 벡터에 따라 출력 생성을 억제해 모델 출력을 수정한다.
어브리테레이션을 하면 명령 거부를 해제할 수 있지만 모델 품질이 저하되고 성능 점수가 낮아진다고 한다. 또 당연히 윤리적 문제를 야기할 수 있다. 이런 문제를 해결하려면 어브리테레이션 후 언어 모델 성능을 주의 깊게 평가하고 추가 조정이 필요하다고 한다. 관련 내용은 이곳에서 확인할 수 있다.