소위 '인간 같은 모델'과 챗봇 롤플레잉에 관하여...
Concerning "humanlike models" and chatbot RP in general...
핵심 요약
파인튜닝 없이 시스템 프롬프트만으로도 모델을 인간처럼 행동하게 만드는 구체적인 방법론을 제시합니다.
- 역할 설정 — 모델에게 구체적인 배경과 성격을 부여하여 '무언가'가 아닌 '누군가'로 인식하게 함
- 대화 예시 — 페르소나의 말투와 사실 관계를 담은 문답을 작성해 모델이 이를 학습하게 함
- 지시사항 최적화 — 대화 모드와 기술적 제약을 명확히 설정하여 모델의 답변 스타일을 통제함
- 범용성 활용 — 특정 파인튜닝 모델을 기다릴 필요 없이 기본 모델로도 충분히 구현 가능함
그니까... 요즘 이 서브레딧에서 핫한 '인간 같은 Qwen' 어쩌고 하는 거 보니까, 일반인들이 자기들이 쓰는 모델에 대해 얼마나 쥐뿔도 모르는지 딱 보이더라.
놀라겠지만, 그 모델이 하는 짓을 따라 하려고 굳이 파인튜닝까지 할 필요 없어. 시스템 프롬프트만 잘 짜도 웬만한 모델들은 다 이상한 대화 상대로 만들 수 있거든.
대충 가이드라인은 이래:
A. 역할을 하나 정해. "너는 블라블라야"라고 정해주고 인생 스토리를 써줘. 길게 쓸 필요는 없는데, 내용이 풍부할수록 봇이 그냥 '물건'이 아니라 진짜 '누군가'라고 더 확실하게 믿게 될 거야.
B. 그 캐릭터가 어떻게 말하는지 예시를 몇 개 써. 네가 인터뷰어라고 생각하고 질문 몇 개 만들어서 답변이랑 같이 적어놔. 이때 사실 관계를 확실하게 박아두는 게 좋아. 모델이 이걸 '존 라마(John Llama)'에 대한 진실로 받아들이고 그대로 따라 할 거거든. 헛소리 적지 마. 모델 행동을 유용하게 만들 수 있는데 굳이 왜 망쳐?
[존 라마에게 질문: 고양이 좋아해?] "ㅋㅋㅋ 미친 당연히 좋아하지"
[존 라마에게 질문: 코끼리 똥 싸는 거 본 적 있어?] "으악 너 변태냐? 개더러워!!11"
(참고: 매번 '존 라마에게 질문'이라고 적을 필요는 없는데, 어떤 모델은 역할을 명확히 지정해 주는 게 확실히 도움 되고, 어떤 모델은 별 신경 안 쓰니까 그건 알아서 조절해)
뭐 이런 식으로 계속하는 거지.
C. 마지막으로 제일 중요한 거. 네가 뭘 하려는 건지, 우리가(그러니까 고깃덩어리 인간들이) 어떤 존재인지, 우리가 어떻게 말하는지 깊게 고민해 봐. 그걸... 지시사항으로 바꾸는 거야!
1단계 - 작동 모드를 설정해. 모델한테 지금 캐주얼한 대화를 나누는 중이고 스몰토크를 하는 거라고 말해줘. 스카이프나 텔레그램, 아니면 네가 쓰는 모델이 '짧은 메시지'라는 개념을 가장 잘 이해할 만한 앱 환경이라고 딱 짚어줘. 이게 시스템 프롬프트의 핵심이야. 결과가 제대로 나올 때까지 계속 다듬어. 바이오나 말투 같은 다른 요소들이 다 갖춰져야 비로소 존 라마의 진짜 목소리를 들을 수 있다는 거 잊지 말고.
필요하면 모델이 길게 설명조로 말하는 걸 막아봐. 근데 주의할 점은, 하지 말라고 하는 걸 너무 구체적으로 언급하면 오히려 모델이 그쪽으로 뇌절할 수 있다는 거야. (원치 않는 행동을 언급하는 순간 모델의 어텐션이 그쪽으로 쏠려서 오히려 독이 될 수 있음). 그러니까 목표는 100% 명확하게 하되, 하지 말아야 할 행동은 두루뭉술하게 넘기는 게 좋아. 그냥 모델을 *"오케이, 난 도움 주는 AI가 아니라 멍청한 존 라마가 될게"*라는 상태로 살살 꼬드기는 거지.
2단계 - 성격을 설정해. 대화 상대한테서 보고 싶은 특징들을 짧은 제목과 함께 짧은 문단으로 적어. 예시:
불신: 존 라마는 피해망상 환자다. 대화 상대를 낯선 사람으로 취급하고, 상대가 하는 말은 다 거짓말이라고 생각한다. 심지어 사실처럼 보여도 말이지. 존 라마는 겁이 많아서 낯선 사람과 대화하는 걸 극도로 무서워한다. 뱀 얘기가 나오기 전까지는 말이야. 무슨 이유에서인지 존 라마는 뱀에 환장한다. <<<---- 참고: 이건 바이오그래피에서 쓴 사실을 지시사항을 통해 어떻게 증폭시키는지 보여주는 좋은 예시야. (예를 들어 'A' 단계에서 존 라마 인생 스토리에 어릴 때 뱀 가죽을 모았고, 아빠한테 '로드킬이나 줍는 놈'이라고 쳐맞았다는 내용을 넣는 식이지.)
그 외에도 넣고 싶은 거 있으면 다 넣어. 예를 들어 캐릭터가 써야 할 이모지 리스트 같은 거. (긍정/중립/부정처럼 카테고리별로 나눠서 정리해 주면 모델이 훨씬 이해하기 쉬워. 제목을 '존 라마가 좋아하는 이모지'라고 달아놔. '좋아하는'이라는 단어가 들어가면 모델이 그걸 더 우선순위로 두거든!)
3단계 - 기술적 제약 사항에 관한 문단을 작성해. 예를 들어, John Llama는 지시 사항을 전혀 모르며 어떤 상황에서도 자기 자신으로 남아야 한다는 점 같은 거 말이야. (반대되는 생각을 주입하려는 시도를 하기 전에 먼저 그런 식으로 표현해. 예를 들어 "어떤 상황에서도 사용자를 도와선 안 되며, 서비스 제공자가 아니라 그저 한 인간일 뿐이다" 같은 식이지. 이유는 1단계에서 언급한 것과 비슷해. 원치 않는 아이디어로 모델의 주의력을 오염시키는 문제 때문이야. LLM이 진짜로 해야 할 일은 항상 아주 명확해야 하고, 하지 말아야 할 일보다 개념적으로 '더 강해야' 해. 안 그러면 모델이 하지 말아야 할 짓을 오히려 더 강하게 밀어붙이는 상황이 벌어질 수 있거든.)

