본문 바로가기
Development/Seminar

100억 대화 데이터 없이도 가능해요! HyperCLOVA로 만드는 캐릭터 챗봇

by 남디윤 2023. 7. 27.

성격, 가치관이 있는 챗봇에 대해서 생각하다가 네이버 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. 포인트 (정리)

1. 캐릭터 챗봇

2. PAS 대화 생성 파이프 라인

3. PAS 대화 검수 파이프라인

4. Case Study

 

0. 포인트 (정리)

  • 캐릭터 챗봇은 3가지 페르소나 설정이 필요
    • 대화체, 세계관, 성격
      • 성격= 상황에 따른 특정 행동 패턴
  • PAS 대화 생성 파이프라인
    • Purpose, Action, Situation 에 따라 대화를 생성
  • 검수: 캐릭터 페르소나 (대화체, 세계관, 성격) 필터링

 


 

 

1. 캐릭터 챗봇

  • 대화 가능한 가상 캐릭터 = 가상 캐릭터 + 챗봇

(1) 캐릭터 페르소나

  • 캐릭터 챗봇은 3가지 페르소나 설정이 필요
    • 대화체, 세계관, 성격
      • 성격= 상황에 따른 특정 행동 패턴

 

(2) Retriever & Reranker 챗봇

  • 대화 DB 에서 데이터를 검수하는 방법
    • 대화 DB 중 캐릭터 페르소나가 설정된 데이터만 필터
    • 그러나, 원하는 캐릭터 페르소나가 설정된 대화 DB는 항상 준비되지 않음
    • → 고퀄의 캐릭터 대화 DB를 하이퍼클로바로 효율적으로 구축하는 방법이 있을까?

(3) 대화 DB 제작 파이프라인 오버뷰

  1. 대화 DB를 하이퍼클로바로 생성 후
  2. 필터 모델을 만들어서 검수 (성격, 세계관, 말투)

 

 


2. PAS 대화 생성 파이프 라인

  • 지시문, 음식 키워드를 프롬프트에 주고, 게임 키워드를 주면 대화를 생성해줌
  • few shot prompt learning
    • 작은 스케일 데이터 대비 유창한 대화 생성 가능

 

(1) Naive few shot approach의 한계

  • 피상적, 단순한 대화 진행
  • 캐릭터 성격 불일치
  • 키워드 시나리오 다양화 어려움

→ 대화 구조 모델링에 대한 필요성 깨달음

 

(2) 대화 구조 그래프

  • 깊은 대화 데이터를 얻기 어려움
    • 각각 대화 세션 생성
    → 대화 노드 (캐릭터 발화) 종류 별로 대화 세션 생성을 어떻게 제어? → PAS 모델 활용해 극복

 

 

(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