성격, 가치관이 있는 챗봇에 대해서 생각하다가 네이버 DEVIEW 2021에서 발표한 자료를 찾게 되었다.
영상으로도 있고, 발표 자료도 볼 수 있다.
* 본 포스팅은 위 영상을 보고 정리한 내용입니다.
링크:
https://tv.naver.com/v/23650564
100억 대화 데이터 없이도 가능해요! HyperCLOVA로 만드는 캐릭터 챗봇
NAVER Engineering | 가순원/이민영/강재욱 - 100억 대화 데이터 없이도 가능해요! HyperCLOVA로 만드는 캐릭터 챗봇
tv.naver.com
https://deview.kr/2021/sessions/473
100억 대화 데이터 없이도 가능해요! - HyperCLOVA로 만드는 캐릭터 챗봇
발표자 : 가순원, 이민영, 강재욱
deview.kr
목차
0. 포인트 (정리)
- 캐릭터 챗봇은 3가지 페르소나 설정이 필요
- 대화체, 세계관, 성격
- 성격= 상황에 따른 특정 행동 패턴
- 대화체, 세계관, 성격
- PAS 대화 생성 파이프라인
- Purpose, Action, Situation 에 따라 대화를 생성
- 검수: 캐릭터 페르소나 (대화체, 세계관, 성격) 필터링
1. 캐릭터 챗봇
- 대화 가능한 가상 캐릭터 = 가상 캐릭터 + 챗봇
(1) 캐릭터 페르소나
- 캐릭터 챗봇은 3가지 페르소나 설정이 필요
- 대화체, 세계관, 성격
- 성격= 상황에 따른 특정 행동 패턴
- 대화체, 세계관, 성격
(2) Retriever & Reranker 챗봇
- 대화 DB 에서 데이터를 검수하는 방법
- 대화 DB 중 캐릭터 페르소나가 설정된 데이터만 필터
- 그러나, 원하는 캐릭터 페르소나가 설정된 대화 DB는 항상 준비되지 않음
- → 고퀄의 캐릭터 대화 DB를 하이퍼클로바로 효율적으로 구축하는 방법이 있을까?
(3) 대화 DB 제작 파이프라인 오버뷰
- 대화 DB를 하이퍼클로바로 생성 후
- 필터 모델을 만들어서 검수 (성격, 세계관, 말투)
2. PAS 대화 생성 파이프 라인
- 지시문, 음식 키워드를 프롬프트에 주고, 게임 키워드를 주면 대화를 생성해줌
- few shot prompt learning
- 작은 스케일 데이터 대비 유창한 대화 생성 가능
(1) Naive few shot approach의 한계
- 피상적, 단순한 대화 진행
- 캐릭터 성격 불일치
- 키워드 시나리오 다양화 어려움
→ 대화 구조 모델링에 대한 필요성 깨달음
(2) 대화 구조 그래프
- 깊은 대화 데이터를 얻기 어려움
- 각각 대화 세션 생성
(3) Purpose-Action-Situation (PAS)
- Purpose: 캐릭터 대화 목적 (ex. 캐릭터가 위로해준다.)
- 전반의 흐름을 결정
- Action: 캐릭터 발화 패턴 제어 (ex. 피드백, 경험담 공유...)
- 한 대화 세션 내에서도 각 턴의 발화들이 어떤 기능을 하는지를 나타냄
- Situation: 유저가 이야기하는 대화 맥락 및 상황 (ex. 어제 차였어, 누가 커피 쏟아서 미끄러졌어, 사기 당했어)
- → situation 리스트를 생성해 활용
(4) PAS로 얻을 수 있는 대화씬 품질
- 다양한 캐릭터 발화 기법 (Purpose × Action) → 더 능동적인 사용자 대화 참여 유도
- 정해진 대화 목적과 발화 기법으로 (Purpose × Action) → 캐릭터 성격 제어
- 캐릭터 대화 목적과 유저 상황으로 (Purpose × Situation) → 다양한 시나리오 커버
(5) DB 제작 파이프라인 오버뷰
대화 DB 데이터를 하이버클로바로 생성
(6) 생성 파이프라인
1. Purpose - Action 정의 (사람)
2. Situation 리스트 생성
- 두 단계
- 다양성 확보, 구체성 확보
- 하이퍼클로바로 자동 생성
3. 시드 대화 DB (Situation별)
4. 생성 대화 DB (Paraphrasing)
- Argumentation
3. PAS 대화 검수 파이프라인
- 하이퍼클로바 생성 모델도 확률 모델이기 때문에 검수 필요
- 사람 검수 최소화 (1/20)
- 4개의 딥러닝 모델 훈련 → 자동 검수
(1) 성격필터
- BERT 기반
- 멀티 헤드
(2) 세계관 필터
- BERT 기반
- 시멘틱이 맞는지 확인
- Binary
(3) 대화체 필터
- Semantic 에 의존하는 성격, 세계관과 달리 대화체는 Syntatic에 의존
- 안맞는 대화 데이터의 경우 버리는 것이 아닌 대화체 변환을 진행
(4) 대화체 변환
- GPT2 를 control generation으로 모델링하여 활용
4. Case Study
(1) 좋은 품질의 캐릭터 대화 DB
- Purpose: 유저가 기분 나쁜 일에 같이 화내주는 캐릭터
- Action 1: 유저의 말을 이해하고 반복
- Action 2: 자신의 경험담을 공유하며 이입
- Action 3: 유저가 놓치는 부분 직시
(2) 효율적인 캐릭터 대화 DB
'Development > Seminar' 카테고리의 다른 글
파이콘 튜토리얼 reflex(구 pynecone) 강의를 듣고 나서.. (feat. 간단한 예제들) (1) | 2023.08.11 |
---|