캐릭터의 페르소나를 담은 챗봇 만들기

김인조·2024년 7월 9일
1

LLM

목록 보기
1/3

페르소나, 사전적 의미로 '외적인 인격'을 뜻하는데요.

심리학에서는 진실된 내면의 모습이 아니라 꾸며진 나의 모습을 말할 때 페르소나라는 단어를 사용하기도 합니다.


챗봇에서도 페르소나라는 용어가 쓰이는데요.

특정 캐릭터 챗봇을 설계할 때, 캐릭터의 배경 지식이나 말투를 주입하는 것을 '페르소나를 반영한다'라고 표현합니다.

내면은 LLM 봇인데 겉은 그 캐릭터를 연기하는 것이 페르소나라는 단어에 딱 들어맞네요.



🍀 캐릭터 챗봇 설계 시 필수요소


캐릭터 챗봇 설계 시에 캐릭터의 페르소나를 반영하는 것을 필수입니다.

캐릭터의 페르소나를 주입한다는 것은 무슨 뜻일까요?


persona_3_component


페르소나는 크게 대화체, 세계관, 성격으로 구성됩니다.

대화체는 캐릭터의 일관된 말투를 나타냅니다.

예를 들어, 나루토는 '~~하다니깐' 같은 말투를 가지고 있겠네요.


character_persona_1


세계관은 해당 캐릭터의 배경지식을 의미합니다.

[나루토가 좋아하는 라면 가게의 이름은 '일락'이다.] 라는게 나루토의 세계관 지식이죠.


character_persona_2


성격은 해당 캐릭터의 행동 패턴을 의미합니다.

나루토 같은 낙천적인 성격을 가진 캐릭터는 어떤 말을 하더라도 긍정적인 대답을 할 것입니다.

반대로 사스케 같은 신중하고 냉철한 캐릭터에게는 같은 말을 하더라도 부정적인 대답이 돌아올 확률이 높죠.



🍀 PAS 데이터 기반 페르소나 주입 - 네이버 DEVIEW 2021 리뷰


위의 세가지 요소를 주입하면 페르소나를 반영한 챗봇이 완성됩니다.

듣기에는 쉬운 말인데요.

그렇다면 어떻게 성격과 대화체를 챗봇에 주입할 수 있을까요?


조금 오래된 자료긴 하지만 네이버 DEVIEW 2021에는 PAS 대화 데이터라는 페르소나용 데이터 형식이 나오는데요.

Multi turn의 캐릭터 대화에서 Purpose(P)-Action(A)-Situation(S)을 추출하여 캐릭터의 대화 구조를 모델링한다는 것이 핵심 아이디어입니다.

🎈 1. Purpose

pas_purpose

말 그대로 캐릭터가 대화하는 목적입니다.

같은 말을 듣더라도 사람에 따라 해줄 수 있는 말이 달라지죠.

'좋아하는 아이에게 고백했다가 차인 이야기'를 선생님께 하면 선생님은 '위로와 조언'을 해줄 것이고, 친구에게 하면 '조롱'을 들을 수 있습니다.

나는 분명 같은 말을 했지만 '선생님'의 페르소나를 가진 사람은 나에게 '위로와 조언'을 해주는 것을 목적으로 말을 합니다.

반면, 친구의 페르소나를 가진 사람은 '조롱'을 목적으로 나에게 말을 하죠.

대화하는 상대의 페르소나에 따라 상대가 나에게 해줄 수 있는 발화의 종류가 달라지기 때문에 이를 사전에 정의하는 것이 중요합니다.


그렇기에 특정 캐릭터의 페르소나를 설계할 때, 이 캐릭터는 특정 주제의 발화 시 어떤 목적을 가지고 대답하는지 파악하는 것이 중요합니다.



🎈 2. Action

persona_action

대화의 목적을 파악했다면 다음으로는 발화 스타일을 결정할 차례입니다.

예를 들어, 야구 꿈나무가 '박찬호'와 '김성근' 두 사람에게 자문을 구했다고 합시다.

두 사람 모두 야구계의 선배로서, 자신에게 자문을 요청해오는 이 어린 꿈나무에게 '조언'을 목적으로 발화를 할 것입니다.

그런데 그 스타일은 매우 다른데요.


김성근 감독은 아주 심플하게 피드백을 제공해줄 것입니다.

반면 박찬호 고문은 아주아주 길고 긴 자신의 경험담을 설명해주겠죠.

분명 같은 목적을 가지고 이야기를 하지만, 인물이 가진 페르소나에 따라 발화하는 방식이 달라집니다.

PAS 데이터에서는 이를 Action이라는 이름으로 정의했습니다.



🎈 3. Situation

pas_situation

Purpose와 Action이 정의되면 대화의 큰 틀은 정해졌습니다.

그럼 이제 해야할 건 실제로 대화를 해보며 해당 데이터를 생성하는 것이죠.

PAS 데이터의 마지막 요소는 Situation으로, 특정 상황을 주고 미리 정의한 Purpose와 Action을 기반으로 적절한 발화를 생성하는 과정입니다.



🍀 세계관 정보 기반 페르소나 주입



PAS 데이터셋은 분명 캐릭터에 확실한 페르소나를 부여할 것처럼 보입니다.

문제는 만들기가 어렵죠.

여러 발화에 따라 캐릭터의 '대화 목적'과 '반응'을 정의하는 것은 매우 시간이 많이 소모되고 자원이 많이 소모되는 작업입니다.


그렇기에 저는 페르소나 챗봇 구현 시에 세계관 정보만을 활용하여 캐릭터의 페르소나를 주입하는데요.

단순히 RAG를 통해 세계관 정보를 넣는 주입하는 것만으로도 기존 챗봇 대비 체감 성능이 향상되는 것을 실험적으로 경험하였습니다.


이 방법의 가장 큰 장점은 세계관 데이터 수집부터 RAG까지 GPT-4를 기반으로 자동화되므로, PAS 데이터 대비 초기 세팅에 드는 비용이 매우 적다는 것입니다.

또한 인간의 개입 여지가 적으므로 페르소나 데이터 생성과정에서 Human bias가 낄 걱정도 없어지게 되죠.



0개의 댓글

관련 채용 정보