본문 바로가기

2. Development/한국어 오픈도메인 챗봇

[한국어 오픈도메인 챗봇] 1. 기초 지식 공부

해당 포스팅에서는 가볍게 챗봇을 만들기 위한 기초 지식 공부와 간단한 채팅 모델에 API서버를 연동한 웹사이트를 보이려고 한다.

조금더 진척이 되고 올리려고 했으나, 입대까지 얼마 남지 않아 급한마음에 그냥 올리게 되었다.

 

챗봇 개발을 위한 기본 지식 공부

 

1. Transformer의 기반이 되는 Attention

seq2seq + attention을 논문과 함께 간단하게 구현해 봤다.

attention의 개념 정도는 확실히 잡고 가는 게 맞다고 생각했다.

 

[Pytorch] 차근차근 구현하는 seq2seq + attention mechanism

날렵한 곰의 차근차근 구현하는 시리즈 입니다. * 구현 연습을 하는 단계에서 쓴 글입니다. 대충 무슨내용인지는 아는데 구현은 직접하고 싶고 할라니까 아리까리하고 할 때 보면 좋다! 이론 Refe

luna-b.tistory.com

 

2. GPT계열의 기반이 되는 Transformer

attention is all you need.. 따로 리뷰를 하고 싶었지만 시간이 너무 부족했다.

이전에 구현을 해본 기억이 있긴 한데 다시 봐도 어려웠던 것 같다.

나중에 따로 리뷰를 작성하고 싶다.

 

3. KoGPT2-chatbot 코드와 구조를 분석했다.

처음에 KoGPT2로 이것저것 구현해 보고 있던 도중 발견한 프로젝트이다.

해당 프로젝트의 구현체를 보며 코드와 구조를 분석했다.

https://github.com/haven-jeon/KoGPT2-chatbot

 

GitHub - haven-jeon/KoGPT2-chatbot: Simple Chit-Chat based on KoGPT2

Simple Chit-Chat based on KoGPT2 . Contribute to haven-jeon/KoGPT2-chatbot development by creating an account on GitHub.

github.com

 

4. (3)의 개발자가 참고했다고 언급한 논문을 리뷰했다.

목표지향적 대화를 위해 GPT2에 상태값을 input 필드에 텍스트를 입력하는 적은 비용의 방법으로 학습하여 타 방법들에 대하여 뒤지지 않는 성능에 낸 것에 대하여 설명하는 논문이었다.

 

[논문 리뷰] Hello, It’s GPT-2 - How Can I Help You? Towards the Use of Pretrained Language Modelsfor Task-Oriented Dialogu

날렵한 곰의 간단 논문 리뷰 시리즈 입니다. * 논문 읽는 연습을 하는 단계에서 쓴 글입니다. * 참고할만한 한글리뷰가 없이 작성해서 조금 미숙 할수 있습니다. * 자연스러운 번역을 위해 다듬은

luna-b.tistory.com

우선 뭔가 했다 라고 말할 수 있는 유의미한 공부는 이 정도인 것 같다.

 

 

테스트3

3번 의 코드에 약간의 코드수정과 학습데이터 추가로 챗봇을 만들어 테스트 해봤다. 멀티턴 state를 사용하지 않기 때문에 대화가 이어지지는 않지만, 첫 포스팅이니 만큼 모델을 돌려본 것에 의의를 두었다. 

 

이녀석,, 공손하게 기분나쁜 말투다.

ㅋㅋㅋㅋ....

 

서버 설정

웹서버와 간편하게 연결해보기 위하여 호스팅을 했다.

시간을 들여 로컬 서버를 구축하는 수고로움을 덜기 위해 코드를 colab에 올리고 ngrok를 이용하여 호스팅 했다.

 

프론트

일단 때깔이라도 좋아야 좀 의욕이 생길 것 같아서 적당히 이쁘게 프론트를 만들어봤다.

적당히 애니메이션만 조금 넣어서 귀엽게 만들었다.

대충 입대 1달전 한풀이

 

번외

벌써 재밌을 것 같다.

감성 와장창....