레플리
글 수 284

RAG를 사용한 페르소나 챗봇 - ChatHaruhi

조회 수 727 추천 수 0 2023.10.17 21:59:34


최근 Character.ai 같은 페르소나 챗봇이 전세계적으로 큰 인기를 끌고 있습니다. 그 비결은 내가 원하는 캐릭터를 쉽게 만들 수 있기 때문입니다. 미리 대량의 데이터로 사전훈련이 되어서 캐릭터 이름과 프롬프트만 있으면 됩니다. 예를 들어, 아이언맨이라고 이름을 붙이고 '억만장자 천재 발명가인 토니 스타크로 어벤저스의 멤버'라고만 설명을 적습니다. 그러면 아이언맨처럼 대답을 합니다.

 

하지만 한가지 문제가 있습니다. 영화속 아이언맨이 했던 사실은 잘 기억합니다. 그러나 아이언맨의 성격이나 말투, 스타일과 다르게 대답을 합니다. 프롬프트 러닝의 한계입니다.

 

이를 해결하는 방법은 파인튜닝과 RAG입니다. 파인튜닝은 아이언맨이 했던 대사를 모아서 재학습을 하는 것입니다. RAG는 외부 DB에 대사를 저장하고 질문과 가장 비슷한 대답을 찾아서 프롬프트에 함께 넣습니다. 그러면 아이언맨의 진짜 대사를 참조하고 문맥에 맞게 변형하여 대답을 합니다.

 

ChatHaruhi(하루히는 유명 애니 캐릭터)란 논문에서 바로 RAG를 사용한 페르소나 챗봇을 구현했습니다. 해리포터, 빅뱅이론, 영화, 드라마, 애니 등 32개의 다양한 캐릭터들을 챗봇으로 만들었습니다. 우선 대사 스크립트 등을 크롤링 또는 STT를 사용해서 텍스트 DB로 변환합니다. 그다음 RAG 방식으로 실제 대사를 검색하여 프롬프트에 넣고 대답을 생성합니다.

 

데모 버전을 해봤는데 생각보다 캐릭터의 특색이 잘 나오지는 않았습니다. 그냥 일반적인 ChatGPT의 말투와 비슷했습니다. 하지만 페르소나 챗봇에 RAG를 적용한다는 아이디어는 유용하다고 봅니다. LLM이 캐릭터의 모든 백그라운드 내용을 기억하지는 못하니까요.

 

 

 

K-000_1.jpg

 

K-001_1.jpg

 

K-002_1.jpg

 

K-004_1.jpg

 

 

 

< 논문 >

https://arxiv.org/abs/2308.09597

 

<Github>

https://github.com/LC1332/Chat-Haruhi-Suzumiya

 

< 데모 >

https://huggingface.co/spaces/chengli-thu/ChatHaruhi-OpenAI

 

< 관련 논문 >

Meet Your Favorite Character

https://arxiv.org/abs/2204.10825

 

List of Articles
제목 글쓴이 날짜sort 조회 수
글쓰는 법을 배우는 신경망 깊은바다 2016-03-25 1539
구글의 딥러닝 대화 알고리즘 깊은바다 2016-03-25 3356
딥러닝으로 챗봇 만들기 깊은바다 2017-05-03 3173
단어를 벡터로 변환하는 Word2Vec 깊은바다 2017-05-04 1039
추론이 가능한 딥러닝인 Relational Networks [2] 깊은바다 2017-06-11 2740
딥러닝 RNN으로 구현한 챗봇 깊은바다 2017-08-01 8136
End-To-End Memory Networks - 자연어 질문에 대답하는 모델 [2] 깊은바다 2017-08-21 962
Python과 Tensorflow를 활용한 AI Chatbot 개발 및 실무 적용 깊은바다 2017-08-25 2582
문장을 학습하는 딥러닝 RNN의 Seq2Seq 모델 설명 file 깊은바다 2017-09-15 7327
딥러닝 기반 자연어처리 기법의 최근 연구 동향 [2] 깊은바다 2017-12-17 1020
쉽게 씌어진 Word2Vec [2] 깊은바다 2017-12-25 1178
구글 딥러닝 자연어 처리 오픈소스 SyntaxNet file 깊은바다 2017-12-28 2785
딥러닝을 사용한 챗봇 개발방법 정리 file 깊은바다 2018-02-03 25471
한국어 자연어처리를 위한 딥러닝 깊은바다 2018-02-14 3652
딥러닝을 사용한 감성분석기 개발 깊은바다 2018-02-22 1658