목차
- 캐릭터 챗봇
- PAS 대화 생성 파이프라인
- PAS 대화 검수 파이프라인
- Case Study
- 마치며
서두
캐릭터 챗봇은 3가지 페르소나 설정이 필요 : 대화체, 세계관, 성격
1.1 캐릭터 페르소나
대화체: 구어체, 산문체, 의미를 헤치지 않는 선에서 특정한 단어 선택과 같은 것이 특정 캐틱터의 고유성을 부여
세계관: 캐릭터 프로필 + 배경이 주어졌을 때 이에 대해 잘 답변할 수 있어야 함
성격: 펭귄 캐릭터 (펭수)는 거만하고 자랑하는 태도로 일관됨
1.2 Retrieval & Reranker
페르소나 설정하는데 있어서 가장 확실한 방법은 대화 DB안에서 필터링하는 것
1.3 대화 DB 제작 파이프라인 오버뷰
- 대화 DB를 HyperCLOVA로 생성 후
- 필터 모델을 만들어서 검수
2. PAS 대화 생성 파이프라인
Few-shot Learning (HyperCLOVA)
2.1 Naive Few-Shot Approach의 한계
2.2 대화 구조 그래프
간단하고 피상적으로 흐르는 대화 구조
- 유저가 대화에 능동적으로 참여할 수 있도록 (즉, 대화의 흐름을 제어하는 방향으로)
- 여러가지 발화 패턴 사용
각 노드를 보는 것처럼 깊은 대화가 가능!
각각 대화 세션 생성!
대화 노드 (캐릭터 발화) 종류 별로 대화 세션 생성을 어떻게 제어?
2.3 PAS (Purpose-Action-Situation) 대화 모델
1. Purpose
- 캐릭터의 대화 목적 ex) 위로, 대학 합격 축하 등 목적성 을 가진다
2. Action
- 캐릭터 발화 패턴 제어
- ex) 피드백, 경험담 공유
- 강화학습에서의 Action에 해당할 수도 있겠다는 생각이 든다.
3. Situation
- 유저가 이야기하는 대화 맥락 및 상황
- ex) 어제 차였어, 누가 커피 쏟아서 미끄러졌어, 사기 당했어
2.4 PAS로 얻을 수 있는 대화씬 품질
- 다양한 캐릭터 발화 기법으로 더 능동적인 사용자의 대화 참여 유도
- 정해진 대화 목적과 발화 기법으로 캐릭터의 성격 제어
- 캐릭터 대화 목적과 유저 상황으로 다양한 시나리오 커버
2.5 DB 제작 파이프라인 오버뷰
2.6 생성 파이프라인
- Purpose-Action 정의
- 사람이 직접, "분노해주는", "위로해주는" Purpose와 "자기개방", "피드백" 과 같은 Action을 정의
- HyperCLOVA의 자동 생성 기능을 이용해 Situation 리스트 생성
(중략....)
2. 캐릭터 성격 반영
3. 다양한 대화 시나리오
좋은 품질의 캐릭터 대화 DB를 효율적으로 구축할 수 있을까?