😃 인사이드 아웃 챗봇
개요
영화 ‘인사이드 아웃’을 모티브로 한 다양한 감정을 가진 챗봇을 제작해보자!
프로젝트 진행 과정
전체적인 구상도

다음의 사진은 전체적인 프로젝트 파이프라인을 구조화한 이미지입니다.
- User가 사전에 개설한 카카오톡 채널을 통해 메세지을 보내면
- 카카오 i 오픈빌더의 시나리오 블록, 폴백 블록을 통과하고
- 챗봇 api 서버, 챗봇 엔진 서버에 순차적으로 데이터가 이동하며,
- 채널에 해당되는 모델을 통해 predict한 후,
- 이를 다시 챗봇 엔진 서버, 챗봇 api 서버, 카카오 i 오픈 빌더로 보내어
- 사용자에게 답변이 출력 되는 구조입니다.
먼저 시나리오 블록에서는 모델별로 인사와 이름을 물어보는 질문에 대해 오픈빌더에서 제공하는 머신러닝 기능을 활용하여 답변을 제작하였으며,
그 외의 input들은 스킬 서버를 통해 저희가 구축한 서버로 연결되어 직접 디자인한 챗봇 모델과 대화 할 수 있도록 하였습니다.

상대방의 발화에서 감정분류를 수행하는 모델은 Kobert를 사용하였으며,
약 27만 문장의 감성 대화말뭉치를 통해 분노, 슬픔, 불안, 기쁨의 4가지 감정별 Multi-label Classification을 하는 모델을 구축하였습니다.
11,876개의 문답 페어로 구성된 일상 챗봇 학습용 Chatbot_data, 세브란스 상담 데이터 기반 5232개의 월니스 대화 데이터셋, 55627쌍의 한국어 감정 정보 연속적 대화 데이터셋, 약 27만 문장의 감성대화 말뭉치를 챗봇 대화에 적합하게 전처리 및 가공을 거쳤으며,
Transformer의 Encoder, Decoder 아키텍처를 활용하여 일반 대화용 Open-domain 챗봇 빙봉을 제작하였습니다.
또한 감정별 페르소나를 가진 챗봇을 제작하기 위해, 문답 페어중 Answer을 기준으로 감정이 드러나는 페어들을 추가로 선별 및 재가공하고,
모델 당 400건의 답변을 추가하여 기쁨이, 버럭이, 소심이, 슬픔이를 제작하였습니다.
프로젝트 결과

