[논문리뷰] CharacterGPT: A Persona Reconstruction Framework for Role-Playing Agents (NAACL 2025)
CharacterGPT는 챕터별 소설 요약에서 인물 특성을 점진적으로 추출해 캐릭터 페르소나를 동적으로 재구성함으로써 일관된 역할 수행을 돕는 프레임워크이다.
1 Introduction
- 대규모 언어 모델(LLMs)의 급속한 발전은 다양한 AI 시스템의 핵심 모듈로 자리잡으면서 여러 응용 분야에 활용되고 있다 (OpenAI, 2023a,c; Anthropic, 2023; Google, 2024; DeepSeek-AI et al., 2024, 2025).
- 문서 기반 정보 검색을 위한 도구인 Assistants API (OpenAI, 2023b)가 도입되면서 특히 역할극 에이전트(Role-Playing Agents, RPA) 분야에서 LLM의 잠재력이 주목받고 있다 (Kim et al., 2019; Yu et al., 2023; Jiang et al., 2023; Park et al., 2023; Wang et al., 2023b; Zhang et al., 2024; Kong et al., 2024; Wang et al., 2025).
- 그러나 문서만을 입력으로 사용하는 RPA는 주요 성격 특성이나 배경 지식이 누락되어 일관성 없는 정보 추출 문제를 겪는다(Sadeq et al., 2024).
- 예를 들어, 그림 1에서 볼 수 있듯이 소설 God’s Blessing on This Wonderful World!의 비구조화된 Wiki 문서를 입력했을 때 Assistants API는 부정확한 답변을 자주 생성하지만, 287개의 구조화된 캐릭터 특성을 활용하면 보다 신뢰할 수 있는 역할별 답변을 제공한다.
- 본 논문에서는 CharacterGPT라는 새로운 프레임워크를 제안하여, 구조화된 인물 재구성(Structured Persona Reconstruction) 과정을 도입해 이러한 문제를 해결한다.
- 인지 기억 모델에서 영감을 받은 Character Persona Training (CPT)은 소설의 장별 요약에서 특성을 추출하여 인물 페르소나를 점진적으로 업데이트하는 방법으로, 인간의 기억이 정보를 스키마로 통합하는 방식에 착안했다 (van Kesteren and Meeter, 2020).
- CPT는 인물 분석 문헌(Forster, 1927; Reams, 2015)을 기반으로 다음 8가지 필수 특성을 식별한다:
- 성격(personality)
- 신체 묘사(physical description)
- 동기(motivations)
- 배경(backstory)
- 감정(emotions)
- 관계(relationships)
- 성장과 변화(growth and change)
- 갈등(conflict)
- 각 소설 장별 요약에서 이 특성들을 추출하여 인물의 페르소나 문서에 시간순으로 추가함으로써 캐릭터의 발전을 반영한다.
- 추출된 특성들은 서로 분리하여 업데이트되어 통합되지 않고 독립성을 유지한다.
- 이렇게 재구성된 페르소나 문서는 Assistants API에 입력되어 캐릭터의 진화하는 정체성에 기반한 보다 문맥상 적절하고 일관된 답변 생성이 가능해진다.
- 이 프레임워크는 전통적인 문서 기반 검색 방식에서 발생하는 정보 손실과 계산 비용을 최소화하며, 인물 특성을 체계적으로 정리하고 시간에 따라 업데이트한다.
- 또한, CharacterGPT는 소설 내 특정 순간의 페르소나를 생성할 수 있어(예: 악마왕에 맞서기 직전 영웅의 생각 체험) 사용자와 캐릭터 간 상호작용의 시점을 조절할 수 있게 한다.
- CharacterGPT의 효과는 인간 평가를 통해 검증되었으며, 각 캐릭터는 빅 파이브 성격 검사(Big Five Inventory, BFI) (Barrick and Mount, 1991)를 통해 성격 일관성을 평가받았다.
- 또한, 캐릭터들은 단편 내러티브를 생성하여 창의적 능력을 시험받았고, 7명의 크라우드워커가 6가지 지표를 5점 척도로 평가하였다.
- 평가 결과 CharacterGPT는 기존 문서 기반 시스템에 비해 페르소나 일관성, 제어 가능성, 역할별 지식 측면에서 유의미한 개선을 보였다.
2 Proposed Method
- CharacterGPT의 목표
- 페르소나 문서 \(D\)와 추론 프롬프트 \(P_f\)를 입력으로 받아 캐릭터 반응 \(R\)을 생성하는 페르소나 기반 어시스턴트 \(f\) 구축
- 페르소나 문서 \(D = \{s_1, s_2, \dots, s_N\}\)는 \(N\)개의 문장으로 구성
- 기존 Assistants API는 전체 문서를 입력으로 사용하나, 인물 특성 반영이 불충분하여 부자연스러움 문제 존재
- 이를 해결하기 위해 페르소나 문서를 정제된 버전 \(D_r\)으로 재구성하고 응답을
\(R = f(D_r, P_f)\)
로 정의
2.1 Preliminaries
- 캐릭터 특성 정의 (Forster, 1927; Reams, 2015)
- Personality (성격): 용기, 내성, 재치 등 핵심 성격 특성
- Physical Description (외모): 캐릭터의 신체적 모습
- Motivations (동기): 행동을 이끄는 목표 및 욕망
- Backstory (배경): 성격과 동기를 형성하는 과거 이야기
- Emotions (감정): 반응에 영향을 미치는 감정 범위
- Relationships (관계): 다른 캐릭터와의 상호작용
- Growth and Change (성장과 변화): 이야기 진행 중 발전 과정
- Conflict (갈등): 내적/외적 갈등 요소
- 사용된 페르소나 문서
- 네 명의 캐릭터 (Megumin, Anya Forger, Frieren, Hitori Gotoh) 대상
- Namuwiki에서 캐릭터 정보, 줄거리 요약, 대사 수집
- Table 1은 챕터 수, 토큰 통계, 대화 라인 수 등 데이터 요약
2.2 Persona Initialization
- 단순 문서 표본 활용은 특성 추출에 한계 존재
- 따라서 두 단계 재구성 과정 적용: (i) Initialization, (ii) CPT(Character Persona Training)
- Initialization 단계에서는 이야기 전개 미반영, 스토리 진행 관련 내용 제거
- 수집한 캐릭터 정보를 다음 5가지 핵심 특성으로 정리:
- Personality, Physical Description, Motivations, Backstory, Relationships
- 이들을 초기 페르소나 문서로 구성
\(D_{init} = \{D_{per}, D_{phy}, D_{mot}, D_{back}, D_{Rel}\}\) - 감정, 성장 및 갈등 특성은 이후 CPT 단계에서 다룸
2.3 Character Persona Training
- 특성 분류
- 인간 지식은 내부 속성(Type A)과 외부 속성(Type B)으로 구분 가능
- Type A: 본질적 특성 (Personality, Physical Description, Motivations)
- Type B: 환경과의 상호작용에 따른 외부 지식 (Backstory, Emotions, Relationships, Growth and Change, Conflict)
- CPT 과정에서 Type A 특성은 핵심 내부 속성을 일반화하고, Type B 특성은 역할에 따른 외부 지식으로 누적
- 학습 단계
- 각 에폭(epoch)마다 챕터 요약에서 역할별 특성 추출
- 수식
\(T_t^i = \begin{cases} h\big(g(D_i, P_g), P_h\big), & t \in \text{Type A} \\ g(D_i, P_g), & \text{otherwise} \end{cases}\) - 여기서 \(i\)는 에폭 인덱스, \(D_i\)는 챕터 요약, \(g\)는 Assistants API (프롬프트 \(P_g\)), \(h\)는 LLM 기반 일반화 함수 (프롬프트 \(P_h\))
- Type A 특성은 내부 속성으로 일반화, Type B 특성은 페르소나 문서에 덧붙여져 누적
2.4 CharacterGPT
- CPT를 통해 각 캐릭터의 페르소나를 반복적으로 구축하는 방법 제시
- 장점
- 페르소나 누적을 이야기 진행과 맞춰 정보 손실과 계산 비용 최소화
- 본 시스템은 각 에폭마다 주인공 페르소나를 저장/갱신하며, 사용자가 특정 이야기 시점에서 캐릭터와 상호작용 가능
- 최종 페르소나는 초기화 페르소나 \(D_{init}\), 훈련된 페르소나 \(D_{train}\), 톤 \(T_v\)를 포함
\(D_r = D_{init} + D_{train} + T_v\) - 톤 \(T_v\)는 대화 자연스러움에 도움이나, 현재 데이터는 주로 정보 및 줄거리 요약 위주로 수집되어 있어 후속 연구 대상
3 Experiments
- 3.1 Setup
- CharacterGPT를 Assistants API와 GPT-4 Turbo(“gpt-4-1106preview”) 버전을 활용해 구현.
- 모델 호환성 검증을 위해 ChatGPT(“gpt-3.5-turbo-1106”)를 이용한 실험 및 제거 연구(ablation study)도 수행.
- ChatGPT는 해당 버전에서만 Assistants API의 Retrieval 기능 지원.
- 일반화 함수 \(h\)는 최대 토큰 길이 \(4096\)과 온도 매개변수 \(0.7\)로 설정됨.
- 3.2 Evaluation Protocols
- 주요 연구 질문(RQ)은 두 가지 핵심 과제에 대해 실험:
- 캐릭터 페르소나(persona)를 어떻게 더 잘 활용할 수 있는가?
- 캐릭터가 새로운 아이디어 생성에 상상력을 어떻게 활용하도록 격려할 수 있는가?
- RQ1: 페르소나 평가
- 네 명의 캐릭터를 여러 번 읽은 저자 중 한 명이 분석한 성격 특성과 LLM들이 생성한 특성을 비교.
- 공정성을 위해 네 캐릭터 각각에 대해 모델 결과 평균 산출.
- RQ2: 스토리 생성
- 생성된 스토리를 문법, 일관성, 호감도, 관련성, 복잡도, 창의성 6개 기준으로 평가.
- 자동 평가 방법들이 개발 중이나, 인간의 평가 선호를 반영하는 지표와 벤치마크가 부족하기에 7명의 크라우드 워커가 인간 평가 수행.
- 케이스 스터디 진행:
- 특정 시점에서 캐릭터와의 인터랙션 성능 분석.
- 역할별 속성(Type A, Type B)이 CPT 과정에서 어떻게 변화하는지 조사.
- 주요 연구 질문(RQ)은 두 가지 핵심 과제에 대해 실험:
- 3.3 Results for Persona Evaluation
- 네 캐릭터에 대하여 Big Five Inventory (BFI) 테스트 (각 성격 특성별 24개 문항, 총 120개 질문) 실시.
- 테스트 결과를 성격 하위 요소(facets) 값으로 변환.
- 예) Agreeableness(호감성)의 하위 요소로 신뢰(Trust), 감정 기반 판단(Tendermindedness), 직설적이지 않음(Straightforwardness), 겸손(Modesty) 등 포함.
- 모델과 인간 결과 간 차이(gap) 측정:
- # Wins: 인간 예측과 가장 근접한 facet 개수 (클수록 우수).
- \(\sum \vert d \vert\): 차이의 절댓값 합 (작을수록 인간과 근접).
- ChatGPT, GPT-4 모두에 대해 본 방법 적용 시 두 지표 모두 개선됨.
- 예시: Megumin의 Neuroticism에서 GPT-4 단독은 우울증 가능성을 과대평가한 반면, 본 방법과 인간은 그렇지 않음.
- 3.4 Results for Story Generation
- 각 캐릭터에 대해 “주어진 텍스트를 기반으로 참여감 넘치는 미래 에피소드를 상상하고 약 2000단어 분량의 소설로 작성하라”는 프롬프트 제공.
- 총 32편의 스토리 생성 (캐릭터별 4편).
- 7명의 크라우드 워커가 5점 Likert 척도로 평가 수행.
- 인간 평가 기준: 문법, 일관성, 호감도, 관련성, 복잡도, 창의성.
- 결과:
- 본 방법 적용 시 6개 항목 모두에서 개선.
- 특히, 호감도, 복잡도, 창의성에서 유의미한 상승 관찰.
- GPT-4도 우수한 성능이나, 구조화된 페르소나 활용을 통한 본 방법이 비구조화 입력 대비 인간 선호도 상향에 크게 기여함.
- 3.5 Case Study
- 특정 시점 모델링
- Megumin 소설의 16개 챕터 별 요약을 훈련 데이터로 활용해 16개의 모델(epoch별) 생성.
- 특정 시점 캐릭터의 내면과 감정을 생생히 표현 가능.
- Ablation Study
- CharacterGPT 미적용 시, 캐릭터 페르소나의 세밀한 표현 실패.
- 예: 수줍음 많고 유창하지 못한 Hitori 캐릭터가 GPT-4 단독에서는 제대로 표현 안 됨.
- Frieren은 페르소나 일관성 결여, 부자연스러운 대사, 판타지적 오류(예: “magical” 대신 “arcane arts”에 관심 있음이 canon상 맞음) 발생.
- CharacterGPT 적용 시 캐릭터 페르소나 보존 능력 크게 향상됨.
- Type A 및 Type B 페르소나 진화
- Type A: Frieren – 처음에는 인간 감정에 무관심했으나 동료들과의 여정에서 점차 공감능력 상승.
- Type B: Hitori – 혼자 지내던 캐릭터에서 동료들과 친밀한 유대 형성으로 성장.
- CPT(캐릭터 맞춤 학습) 과정이 캐릭터 성격 및 역할 변화 반영에 효과적임.
- 실험 결과는 소설 생성, 롤플레이, 복잡한 에이전트 레벨의 활용 가능성을 시사.
- 특정 시점 모델링
4 Conclusion
- CharacterGPT는 구조화된 캐릭터 특성을 입력으로 활용하여 페르소나 일관성을 향상시키기 위해 고안된 페르소나 기반 어시스턴트임.
- 제안된 프레임워크는 초기화 단계와 학습 단계의 두 가지 주요 단계로 구성됨.
- 초기화 단계에서는 이야기의 진행과 관련된 내용을 제외하고, 캐릭터를 아직 내러티브가 진행되지 않은 상태로 간주함.
- 학습 단계에서는 각 epoch마다 챕터 요약에서 관련 특성을 추출하여 캐릭터 페르소나를 점진적으로 정교화함으로써 소설 전개에 따른 자연스러운 캐릭터 발전을 모방함.
- 제안된 방법은 사람 평가와 사례 연구를 통해 페르소나의 일관성 유지 및 캐릭터 특유의 지식 보존에 효과적임이 입증됨.
- 향후 연구 방향으로는 더 포괄적인 성격 모델을 지원하여 깊은 추론과 의사결정 능력을 가능하게 하는 프레임워크 확장이 포함됨.
- CharacterGPT의 학습 과정은 다음과 같이 표현될 수 있음:
\(\text{Persona}_{epoch+1} = \text{Refine}(\text{Persona}_{epoch}, \text{Traits}_{chapter\_summary})\)
여기서 각 epoch마다 챕터 요약에서 추출된 특성 \(\text{Traits}_{chapter\_summary}\)이 페르소나 정교화에 반영됨.
Limitations
- 핵심 특성(Key Traits)
- CharacterGPT는 페르소나 일관성과 지식 보존 측면에서 우수한 성능을 보여주지만, 핵심 특성의 선정은 경험적 결과 외에 공식적으로 검증되지 않음
- 본 연구에 포함되지 않은 문화적 및 사회적 맥락과 같은 특성이 캐릭터 모델링(예: 캐릭터의 외교적 상황)에 필수적일 수 있음
- 이러한 특성의 중요성과 필요성에 대한 추가 탐구가 필요
- 음성 및 말투(Voice and Speech Pattern)는 중요한 특성이지만, 본 연구에 사용된 데이터셋은 대화가 충분하지 않아 이 특성의 완전한 탐색이 제한됨
- 미래 연구에서는 캐릭터 말투 모델링에 필요한 대화량을 규명하는 데 집중해야 함
- 추론 능력(Reasoning Ability)
- CharacterGPT는 페르소나 일관성과 지식 활용 측면에서 유의미한 개선을 보였으나, 추론 능력은 충분히 탐색되지 않음
- 표 6의 미래 시나리오 상상 및 이야기 작성 과제에서 GPT-4 대비 호감도(Likability), 복잡성(Complexity), 창의성(Creativity) 등의 지표에서 우수했으나, 점수가 4점 미만으로 추론 능력 향상의 여지가 있음
- 페르소나 기반 모델의 추론 깊이를 향상시키기 위한 추가 연구가 필요
- 환각 현상(Hallucinations)
- 대규모 언어 모델의 응답에서 환각 현상에 대한 연구가 진행되고 있으나, 페르소나 기반 과제의 환각 현상은 드물게 다뤄짐
- 이는 페르소나 지식이 현실 세계의 사실과 자주 달라 실제와 다른 내용(예: 마법사가 불꽃 마법을 사용하는 경우)을 포함하기 때문임
- 각 소설별 비용 효율적인 평가 기준 개발이 어렵고, 앞으로는 페르소나 관련 환각 현상을 다루는 효율적 방법론 개발에 집중해야 함
독자의견
- CharacterGPT의 세계관적인 환각을 줄이기 위해 세계관과 상충되는 정보를 제거하는 방법이 필요함.
- 이를 해결하기 위해 현실 세계와 관련한 weight를 억제하고 판타지적 세계관과 관련한 weight를 강화하는 접근이 필요함.
- 이는 프롬프트를 사용하는 방법을 사용할 수도 있고, Arditi, et al. (2024)에서 제안한 Model interventions 방법을 사용할 수도 있음.
- ref: Arditi, Andy, et al. “Refusal in Language Models Is Mediated by a Single Direction.” The Thirty-eighth Annual Conference on Neural Information Processing Systems.
- 좀 더 방대한 데이터셋을 구축할 필요가 있음.
Comments