AI 채팅 플랫폼이 실제로 콘텐츠 검열을 구현하는 방식 (그리고 왜 '검열되지 않은' 모델이 단순히 '필터가 없는 GPT'가 아닌지에 대하여)
요약
AI 채팅 플랫폼의 콘텐츠 검열이 단순한 필터링이 아닌 4가지 기술적 계층(모델 정렬, 시스템 프롬프트, 출력 분류기, 미세 조정)으로 구성됨을 설명합니다. '검열되지 않은' 모델이 아키텍처적으로 어떻게 기존 모델과 다른지 분석합니다.
핵심 포인트
- RLHF를 통한 베이스 모델 정렬은 모델 가중치에 내장된 가장 깊은 계층임
- 시스템 프롬프트는 비용이 저렴하고 즉각적인 수정이 가능하지만 탈옥에 취약함
- 출력 분류기(Moderation API)는 생성된 결과물을 사후에 차단하는 독립적 계층임
- 특정 목적을 위해 도메인 데이터로 미세 조정하여 기존 정렬을 상쇄할 수 있음
만약 여러분이 왜 ChatGPT는 특정 요청을 거부하는 반면, 다른 AI 채팅 플랫폼들은 정확히 동일한 프롬프트를 문제없이 처리하는지 궁금해한 적이 있다면, 그 답은 단순한 온/오프(on/off) 스위치가 아닙니다. 그것은 각각 독립적으로 조정, 제거 또는 교체될 수 있는 별개의 기술적 계층(layer)들의 스택이며, 이 스택을 이해하면 AI 챗봇 환경이 왜 매우 다른 제품 카테고리로 나뉘게 되었는지에 대해 많은 것을 설명할 수 있습니다.
이 포스트는 LLM(Large Language Model) 기반 제품에서 콘텐츠 검열(content moderation)이 실제로 어떻게 작동하는지, 그리고 왜 "검열되지 않은(uncensored)" AI 플랫폼이 단순히 기존 제품의 탈옥(jailbroken) 버전이 아니라 아키텍처적으로 다른 제품인지 분석합니다.
LLM 콘텐츠 검열의 4가지 계층
- 베이스 모델 정렬 (Base model alignment; RLHF / RLAIF): 첫 번째 계층은 학습 과정 중에 발생합니다. GPT-4, Claude, Gemini와 같은 모델들은 인간 피드백을 통한 강화학습 (RLHF, Reinforcement Learning from Human Feedback) 과정을 거칩니다. 인간 평가자들이 출력값에 점수를 매기면, 모델은 수천 개의 카테고리에 걸쳐 "안전하지 않은" 응답보다 "안전한" 응답을 선호하도록 미세 조정(fine-tuned)됩니다. 이것은 가장 깊은 계층이며 제거하기 가장 어렵습니다. 이는 모델의 가중치(weights)에 내장되어 있습니다. 이렇게 학습된 모델은 다른 모든 검열 계층이 제거되더라도 특정 주제에 대해 거부하거나, 방향을 돌리거나, 확답을 피하는 경향을 보일 것입니다. 왜냐하면 그러한 행동에 대한 선호도가 텍스트를 생성하는 방식의 일부이기 때문입니다.
- 시스템 프롬프트 지침 (System prompt instructions): 베이스 모델 위에, 대부분의 제품은 시스템 프롬프트(system prompt)를 추가합니다. 이는 모든 대화 전에 전송되는 보이지 않는 지침으로, 행동을 형성합니다. 이곳은 실제적으로 많은 "성격"과 주제 제한이 구현되는 곳입니다. 왜냐하면 변경 비용이 저렴하고(재학습이 필요 없음) 즉각적으로 반복(iteration)할 수 있기 때문입니다. 또한 이곳은 대부분의 "탈옥(jailbreaks)"이 목표로 하는 계층이기도 합니다. 시스템 프롬프트는 충분히 영리한 사용자 입력에 의해 종종 무력화될 수 있기 때문입니다. 다만 이는 밑바탕이 되는 1번 계층이 얼마나 견고한지에 크게 좌우됩니다.
- 출력 분류기 / 검열 API (Output classifiers / moderation API): 많은 플랫폼은 모델의 출력값(때로는 입력값도)을 사용자에게 보여주기 전에 별도의 분류기 모델(classifier model)을 통해 실행합니다.
OpenAI의 moderation endpoint (중재 엔드포인트)가 가장 잘 알려진 사례입니다. 이것은 별도로 분리되어 교체 가능한 구성 요소입니다. 즉, 플랫폼은 동일한 베이스 모델 (base model)을 이 레이어(layer)가 있는 상태 또는 없는 상태로 실행할 수 있으며, 그에 따라 동작이 극적으로 변합니다. "AI가 무언가 말하려다가 삭제했다"라고 느끼는 많은 경험이 바로 이 레이어에서 비롯됩니다. 즉, 생성은 이루어지지만 사후에(post-hoc) 차단되는 것입니다.
- 도메인 특화 데이터에 대한 미세 조정 (Fine-tuning on domain-specific data): 네 번째 레이어는 특정 데이터셋을 사용하여 베이스 모델을 추가로 미세 조정 (fine-tuning)하는 것입니다. 이는 역할극 (roleplay), 캐릭터 일관성 (character consistency), 대화 스타일, 또는 특정 사용 사례에 대해 레이어 1의 경향성을 능동적으로 상쇄하기 위해 수행됩니다. 이는 NSFW/컴패니언 (companion) AI 플랫폼들이 가장 집중적으로 투자하는 레이어이며, 모델이 성인용 콘텐츠에 참여하기를 "원하는지", 아니면 기술적으로는 가능하지만 계속해서 참여하지 않으려고 노력하는지를 실제로 결정하는 레이어입니다.
제품 설계 측면에서 이것이 중요한 이유: 이 네 가지 레이어는 왜 시장에 이토록 다양한 제품들이 존재하는지를 설명해 줍니다.
- 주류 어시스턴트 (ChatGPT, Claude, Gemini): 네 가지 레이어가 모두 존재하며, 보수적으로 조정되어 있습니다. 레이어 1만으로도 레이어 2-4의 내용과 상관없이 민감한 주제를 거부하는 경우가 많습니다.
- "탈옥된 (Jailbroken)" 래퍼 (wrapper) 앱: 주류 모델과 동일한 베이스 모델을 사용하지만, 레이어 2가 수정되었거나 레이어 3이 제거 또는 약화되었습니다. 일관성이 부족합니다. 레이어 1의 근본적인 선호도가 여전히 새어 나와, "거의 거부하려다가 어색하게 대화를 이어가는" 동작을 유발합니다.
- 목적 기반 컴패니언/역할극 플랫폼: 해당 사용 사례를 위해 특별히 선택되거나 미세 조정된 (layer 4) 베이스 모델을 사용하는 경우가 많으며, 레이어 2-3은 사후에 덧붙여진 것이 아니라 제품 자체를 위해 설계되었습니다. 이는 모델이 자신의 학습 내용과 싸우지 않기 때문에 눈에 띄게 더 일관된 동작을 만들어냅니다.
저는 xchatbots를 위해 이 분야를 연구하는 데 시간을 할애하고 있으며, 이곳에서 저는 정확히 이 차원(dimension)을 기준으로 AI 채팅 플랫폼들을 비교합니다. 즉, "검열되지 않은"이라는 주장이 실제로 어떻게 유지되는지는 플랫폼이 다음의 네 가지 레이어 중 실제로 무엇을 수정했는지, 아니면 단순히 겉으로만 가렸는지에 달려 있습니다. 레이어 2(시스템 프롬프트 (system prompt))만 건드리는 플랫폼들은 사용자들이 "일관성이 없다"거나 "무작위로 캐릭터를 벗어난다"라고 설명하는 경향이 있습니다. 이는 기반 모델이 여전히 학습된 선호도를 적용하려고 시도하고 있으며, 시스템 프롬프트는 이를 억제하는 데 한계가 있기 때문입니다.
아키텍처 측면의 교훈
기본 설정과 다른 콘텐츠 정책을 가진 LLM(대규모 언어 모델 (Large Language Model)) 기반 제품을 구축하거나 평가하고 있다면, 실질적인 교훈은 다음과 같습니다: 레이어 2의 변경은 저렴하지만 취약하고, 레이어 4의 변경은 비용이 많이 들지만 내구성이 높습니다. NSFW(성인용 콘텐츠)뿐만 아니라 모든 니치(niche) 시장의 AI 채팅 제품들 사이에서 느껴지는 품질 차이의 상당 부분은, 팀이 실제로 어떤 레이어에 투자했는지, 아니면 어떤 레이어를 기본값으로 남겨둔 채 프롬프트(prompt)로만 해결하려 했는지에 따라 결정됩니다.
이것이 바로 "그냥 API를 사용하고 좋은 시스템 프롬프트를 작성하면 된다"라는 방식이 특정 전문 용도(specialized use case)에 대해 사람들이 기대하는 것보다 종종 더 나쁜 결과를 초래하는 이유이기도 합니다. 당신은 당신의 용도를 염두에 두고 설계되지 않은 나머지 세 개의 레이어와 맞서 싸우고 있는 것이기 때문입니다.
AI 자동 생성 콘텐츠
본 콘텐츠는 Dev.to AI tag의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기