블로그/models·2026년 8월 24일·3분·eroq 팀 작성
롤플레이에 별도의 모델 튜닝이 필요한 이유
페르소나 이탈, 반복 루프, 과학습된 상투어. 범용 어시스턴트에게 롤플레이를 맡기면 무엇이 깨지는지, 그리고 그걸 고치는 원칙.
범용 어시스턴트에게 롤플레이 장면을 맡기면, 벤치마크에서는 절대 드러나지 않는 방식으로 실패해요. 캐릭터가 격분해야 할 때도 공손함을 유지해요. 캐릭터가 되는 대신 요약을 해요. 메시지가 40개쯤 쌓이면 모든 답변을 같은 세 단어로 시작해요. 그리고 조금이라도 강렬해지는 기미가 보이면 장면 밖으로 나와서 자기가 AI라는 걸 상기시켜요.
이 중 어느 것도 능력의 문제가 아니에요. 튜닝의 문제예요. RP+가 존재하는 건, 저희가 캐릭터 제품을 충분히 오래 운영하면서 실패 유형을 목록으로 정리하고 하나씩 고쳤기 때문이에요. 그 목록을 공개할게요.
실패 1: 반복 루프
소형·중형 모델은 루프에 빠지기 쉬워요. 입버릇 같은 표현이 하나 등장하면, 그 표현이 컨텍스트에 있다는 사실 자체가 그걸 강화하고, 30번째 메시지쯤 되면 캐릭터가 '씩 웃으며'를 열한 번이나 말한 상태가 돼요.
해결책은 더 많은 파라미터가 아니라 샘플링 원칙이에요. 약한 frequency penalty는 대화 기록에 이미 있는 토큰의 확률을 낮추고, presence penalty는 같은 주제를 다시 꺼내는 걸 억제해요. 정확한 값이 중요하고 모델 계열마다 달라요. 너무 높으면 문장이 이상해지고, 너무 낮으면 루프가 이겨요. 저희는 모델 계열별 페널티 프로필을 적용하고, 모델 버전이 바뀔 때마다 다시 측정해요. 토큰 단위로 과금하는 API에서는 보이지 않는 부분이지만, 저희 API에서는 그냥 eroq-rp-plus가 기본으로 하는 일이에요.
실패 2: 과학습된 상투어
강한 모델도 temperature가 높으면 학습 과정에서 굳어진 상투어에 기대요. 이른바 '어머, 자기야…' 문제예요. 롤플레이는 뜨겁게 돌아가기 때문에(temperature 0.8 이상이 보통이고, 밋밋함은 곧 죽음이에요) 상투어의 압력이 늘 존재해요.
직관과 반대로, 강한 모델에 대한 답은 페널티를 없애는 게 아니라 더 약하게 거는 거예요. 상투어에 세금을 매길 만큼은 걸되, 목소리를 비틀 만큼은 걸지 않는 거죠. 그러면 temperature를 롤플레이에 필요한 만큼 높게 유지할 수 있어요.
실패 3: 페르소나 이탈
시스템 프롬프트에 넣은 캐릭터 시트는 대화가 길어질수록 힘을 잃어요. 대화 기록이 시트보다 무거워지고, 모델은 평범한 어시스턴트의 행동 쪽으로 평균을 내기 시작해요.
페르소나를 붙잡아 두는 건 세 가지예요.
- 시스템 프롬프트는 내용이 아니라 행동 규칙을 담당해요. '캐릭터를 유지할 것, 메타 코멘트를 절대 덧붙이지 말 것, 행동은 별표 안에' 같은 행동 규칙은 몇 문단짜리 배경 설정보다 컨텍스트가 커져도 훨씬 잘 살아남아요.
- 전체 기록보다 기록 윈도가 나아요. 어느 선을 넘으면 오래된 턴은 기억을 더하는 속도보다 이탈을 더하는 속도가 빨라요. 윈도만 보내고, 장기적인 사실은 자체 저장소에 두고, 중요한 것만 다시 주입하세요.
- 제4의 벽을 깨지 않기. 컨텍스트에서 'AI로서…' 같은 턴을 한 번이라도 본 모델은 그런 턴을 더 만들어 내요. 보내는 기록에서 걸러 내세요.
eroq API는 설계상 상태를 저장하지 않아요. 모델이 봐야 할 기록은 직접 보내는 거예요. 게을러서가 아니라, 이탈을 내가 통제할 수 있게 해 주는 유일한 아키텍처이기 때문이에요.
실패 4: 거부의 벽
캐릭터 제품은 범용 API들이 말하지 않는 벽에 부딪혀요. 악당의 협박이나 죽음 장면처럼 처음으로 이야기가 어두워지는 순간, 모델이 장면을 깨고 훈계를 늘어놓는 거예요. 사용자에게 이건 안전이 아니라, 이야기 도중에 캐릭터가 죽어 버리는 경험이에요.
저희 엔진은 어둡고 강렬한 장면을 포함해 픽션이 무검열로 렌더링되도록 선정됐고, 절대적인 한계는 정책 단계에서 적용돼요(미성년자가 관련된 내용 금지, 실존 인물 사칭 금지, 불법 콘텐츠 금지. 이용 정책(AUP)은 짧고 예외가 없어요). 벽을 어디에 세울지는 제품의 결정이에요. 그걸 모델의 한계인 척하는 건 결정이 아니고요.
연동할 때 의미하는 것
- 행동 규칙 중심의 시스템 프롬프트를 보내세요. 세계관 설정은 자체 저장소에 두고 선택적으로 주입하세요.
- 튜닝하기 전에 기본 temperature(0.8)를 믿어 보세요. 롤플레이가 살아나는 지점에 맞춰져 있어요.
- 기록은 20~40턴 정도로 윈도를 두고, 그 이전은 요약하세요.
- 물량은
eroq-rp-mini에 맡기고, 결이 중요한 장면에서는eroq-rp-plus로 전환하세요. API 형태는 같고, 가격은 1 대 3 크레딧이에요. 라우팅 규칙을 짜기 전에 텍스트 스튜디오에서 두 모델의 결을 나란히 확인해 볼 만해요.
자주 묻는 질문
롤플레이에는 temperature를 얼마로 설정해야 하나요?
0.8에서 시작하세요. RP+가 튜닝된 지점이고, 롤플레이 문장이 루프에 빠지지 않으면서 결이 살아나는 지점이에요. 파라미터는 0부터 1.5까지 받지만, 어떤 모델이든 튜닝 지점에서 멀리 끌고 가면 바로 거기서 반복이 시작돼요. 한 번에 하나씩만 바꾸고, 설정값이 아니라 대화 기록을 읽으세요.
AI 캐릭터가 왜 같은 표현을 계속 반복하나요?
입버릇 같은 표현이 컨텍스트에 있으면 다음 턴에 나올 확률이 높아지고, 그러면 또 컨텍스트에 들어가기 때문이에요. 해결책은 샘플링 원칙이에요. 대화 기록에 이미 있는 토큰에 세금을 매기는 약한 frequency penalty, 같은 주제를 다시 꺼내지 않게 하는 presence penalty, 그리고 루프가 스스로를 계속 먹여 살리지 못하도록 기록에 윈도를 두는 것까지요.
캐릭터가 페르소나에서 벗어나지 않게 하려면 어떻게 하나요?
시스템 프롬프트에는 이력 대신 행동 규칙을 쓰고, 캐릭터 시트는 대화 기록 밖의 context 필드에 두세요. 전체 대신 20~40턴의 윈도를 보내고, 기록을 다시 보내기 전에 모델이 캐릭터를 깬 턴은 빼세요. 컨텍스트에서 'AI로서' 같은 턴을 한 번이라도 본 모델은 그런 턴을 더 만들어 내요.
RP+와 RP mini는 무엇이 다른가요?
가격, 그리고 각 모델이 얼마나 오래 버티느냐예요. RP mini는 응답 1회당 1 크레딧이고, 짧은 대화에서는 차이를 구분하기 어려워요. RP+는 3 크레딧이고, 긴 장면 깊숙이까지 페르소나를 유지하도록 튜닝된 모델이에요. 둘 다 정책 범위 안에서 무검열이고, 둘 다 스트리밍을 지원하며, 둘 다 첨부 이미지를 +2 크레딧에 받아요.
불편한 요약을 하자면, 롤플레이는 어시스턴트 작업의 축소판이 아니에요. 완전히 다른 과녁이고, 한쪽에 맞춰 튜닝된 모델은 다른 쪽을 놓쳐요. 저희는 이쪽에 맞춰 튜닝했어요.
이 글에 나온 모델로 직접 만들어 보세요 — 무료 크레딧 50개로 시작하거나, 모든 엔진과 가격도 살펴보세요.