Community

개발자 99% 커뮤니티에서 수다 떨어요!

← Go back
고등학생의 친구 같은 챗봇 이루다 만들기 프로젝트를 소개합니다! 🎉
#side_projects
1 year ago
24,459
6

온On like 이루다

깃허브 레퍼지토리: https://github.com/yoonhero/On (스타 버튼 한번씩 .. 부탁드립니다 😎)

안녕하세요! 👋

고등학생이 된 지 벌써 반년이 되어가네요.. 시간은 정말 빠르다는 것을 체감하고 있는 학생 엔지니어입니다! 새해를 맞이한 것이 엊그제인 것 같은데 벌써 여름방학이 끝나갑니다 ㅎㅎ

아무래도 고등학생이 되니 시간도 부족하고 공부에 가중치가 많아지면서 몇 달 동안 제대로 코딩을 해본 기억이 없네요.. 그래서 저는 이번 여름방학(4일????)동안 저의 한계에 부딪혀볼 수 있는 프로젝트를 해보기로 결심하였고 마침 이루다가 생각났습니다. '어? 만들어볼까?' 친구처럼 대화하는 것이 정말 신기했던 이루다를 직접 만들기로 결심한 저는 4일 동안 인공지능을 밤낮으로 개발했습니다!

<어지러운 책상>

처음에 개발할 때는 굉장히 챗봇이 멍청(?) 했습니다. 피드 포워드 구조를 사용하여서 대답을 예측하는 간단한 신경망을 사용해서 대답이 굉장히 제한되어 있었습니다. 다음으로는 CNN 구조 망을 이용해서 감정을 분석하는 방법을 배우고 이를 프로젝트에 적용해보았습니다. 하지만 결국 저는 인코더-디코더 구조를 채택하기로 결심하였습니다. 이 구조로 좀 더 다양한 대답을 할 수 있고 질문에 대해서 유연한 대처를 할 수 있기 때문입니다. 처음에는 RNN, LSTM 신경망을 토대로 개발했지만 개발 도중 "Transformer"라는 엄청난 녀석을 발견해서 재빠르게 트랜스포머를 이 프로젝트의 최종 신경망 구조로 결정하게 되었습니다!

<트랜스포머 공부중!>

이 구조를 채택한 뒤 저는 많은 곳에서 데이터를 수집하였습니다. 국립국어원, Ai Hub 등 한국어 대화 데이터셋을 찾아서 전 처리 후에 훈련하였습니다. 훈련은 구글 논문에 나온 것처럼 구동했을 시에 컴퓨터 GPU 메모리가 부족한 관계로 ㅎㅎ... 모델을 정말 작게 축소하여 훈련하였습니다. 훈련하면서 굉장히 많은 시행착오가 있었습니다. 8시간동안 훈련시킨 모델이 너무 멍청하거나.. 너무 답변이 문맥에 적합하지 않아서 당황했습니다. (후자는 아직도 해결중입니다..) 하지만 실제 서비스에 이용하기 위해 만든 것이 아니라 저의 기술적인 도약을 위해 개발해 본 프로젝트이기에 만족하기로 했습니다!

<가끔 놀랄만큼 뛰어난 개그실력을 보여주기도 한다>

(API서버를 통한 채팅 서비스는 개발중입니다..)

결론은 이렇습니다. 데이터는 양보다 질이 중요하다는 것을 알게 되었고 빅테크 기업처럼 초거대 인공지능을 만들기 위해서는 많은 컴퓨터 GPU가 필수적이라는 것을 다시금 깨닫게 되었습니다. 이번 기회에 인공지능을 더욱 깊게 이해하고 저의 꿈과 가까워질 수 있었다는 생각이 듭니다.

개학 후에도 인공지능을 더욱 발전시켜서 강인공지능을 만들겠다는 저의 최종 목표에 가까워지기 위해 노력할 것입니다! 여러분의 꿈도 응원하겠습니다!

긴 글 읽어주셔서 감사합니다!

6 comments