jrcfore***
2020-12-20

챗봇 엔진부터 NLP, 딥러닝, REST API, 카카오톡 연동에 이르기까지 챗봇에 필요한 기술을 한 권으로 만나볼 수 있는 챗봇 개발 입문서입니다.
근래에 회사에서 진행했던 프로젝트 중 하나가 바로 이번에 리뷰할 책과 관련된 챗봇 프로젝트였다. 챗봇, 생소하지만 생소하지 않고 멀지만 가까운 그런 친구다.
요즘 많은 회사에서 챗봇과 관련해서 서비스를 도입하고 있다. 왜 챗봇을 사용하게 된 것일까? 아마도 문의 대응에 소모되는 비용을 절약할 수 있고, 또한 사용자들로 하여금 다양한 데이터를 효과적으로 수집할 수 있기 때문이라고 생각된다.
더욱이 사람이 사람을 상대하는 일은 굉장히 피로한 일이다. 사람은 감정적인 생물이며, 노동의 시간이 흐름에 따라 육신 못지않게 정신적 피로도에 취약한 특징을 가지고 있기 때문이다.
이로 인해 장시간의 상담 업무에 지친 상담사들의 안타까운 사례들이나 혹은 정신적 트라우마에서 자신의 삶의 질이 하락하는 상황에 놓인 노동자들을 어렵지 않게 주변에서 살펴볼 수 있는 실정이다.
그렇기에 이와 관련된 주제로 회사에서 챗봇 프로젝트를 진행하였었다. 하지만 결과적으로 서비스 런칭은 못되었지만, 그때 챗봇의 상업적 가치와 특징 등을 많이 배울 수 있었던 것 같다.
그래서 이번에 기회가 닿아 한빛 미디어에서 출간한 처음 배우는 딥러닝 챗봇을 리뷰하게 되었다.
【어떤 독자를 위한 책인가】
이 책을 몇 가지 키워드로 정리하면 다음과 같다. 챗봇을 위해 넓은 분야를 가볍게 훑은 책. 그도 그럴 것이 챗봇에 사용된 딥러닝 기술과 파이썬 그리고 각 플랫폼별 연동 기술은 각각의 주제로만으로도 책 수십 권을 출간할 정도로 방대한 분량의 지식들을 요하는 분야들이다. 그렇기에 이번 '처음 배우는 딥러닝 챗봇'은 정말 말 그대로 책에 쓰여있는 저자의 의도한 방향으로의 학습방향에 필요한 최소한의 지식들을 나름 잘 정리한 책이다.
솔직히 필자의 입장에서는 이런류의 책을 상당히 환영한다. 공부란 자고로 재미에서 시작하는 것이다. 여러분 앞에 어떠한 해설도 없는 민법에 관한 책이 있다고 치자. 아마 민법을 처음 공부하는 사람에게 그 책은 민법이 얼마나 재미없고 독자에게 안 맞는 학문인지라고 확인 시켜주는 데에 자명한 역할을 할 뿐일 것이다. 그런데 만약 생활 민법이나 혹은 다양한 판례/사례 등을 통해 민법을 배운다면 법은 어려우나 그 내용은 손쉽게 와닿고 누구든 민법에 쉽게 흥미를 느껴 가벼운 방향부터 학습을 시작할 가능성이 높을 것이다. (예로 민법을 든 이유는 여러분에게 필자가 생활 민법에 대해 어느 정도 지식을 갖췄으면 하는 바람으로 들어보았다.)
그만큼 이번에 출간된 딥러닝 챗봇은 독자들이 흥미를 느끼기에 충분하고 너무 딥하여 실증을 내버릴 그럴 내용은 과감히 덜어낸 책이라 할 수 있었다.
다만 완전 CS 기본도 모르는 독자가 이 책을 접하면 생소한 어휘가 많을 수 있고 이해하는 데에 한계점이 있을 수 있다. 그렇기에 대략적인 CS에 관한 (학부 2년) 지식이 있는 상태에서 이 책을 공부한다면 효율적인 학습 효과를 얻을 수 있을 것이라 생각된다.
【책의 구성】 '처음 배우는 딥러닝 챗봇'의 책의 구성은 어떠한가.
이 책은 대략 다음과 같이 총 3개 파트로 나눌 수 있다.
Part 01 (chapter 01 ~ 07)
- 챗봇 입문에 필요한 배경지식을 배우는 파트
- 챗봇의 기본적인 개념을 익힌다. 당연하게 챗봇이 무엇인지 왜 사용되고 있는지 등의 사례 학습을 한다.
- 챗봇 구현에 필요한 언어인 파이썬에 대해서 배운다. - 솔직히 이 부분은 책을 학습하는 데에 필요한 딱 그 정도 내용만 있기에 만약 파이썬을 전문적으로 배우고 싶다면 파이썬에 대해 정리한 책을 이용하시길 권장함
- 토크나이징, 임베딩 , 텍스트 유사도 등을 판별하는 법을 배운다. - 챗봇은 사용자의 대화를 파악하는 게 가장 중요하기에 그 부분의 내용을 다룬 파트이다. 필자도 이 부분은 처음 공부하는 파트여서 신기한 부분이 꽤 있었다.
- 챗봇에 사용할 딥러닝 모델과 학습툴 만들기에 대해 학습한다. - RNN, LSTM 등의 방식에 대해서 배우고 추가로 챗봇 학습툴을 만든다. 이때 엑셀 및 디비 연동 등도 같이 학습한다.
Part 02 (chapter 08)
- 챗봇 엔진을 직접 만드는 파트
- 챗봇 엔진의 통상적인 처리 과정을 배운다. - 전처리 과정, 의도 분석, 개체명 인식, 답변 검색, 답변 출력 등
- 위에 언급한 각 처리 과정별로 챗봇 엔진의 모듈들을 구현하고 구성하는 방법을 배운다. - 본격적인 코딩 파트
- DB의 답변 검색 모듈 생성, 제어 모듈 생성 등을 학습한다.
- 마지막으로 챗봇 서버 모듈 생성 방법에 대해 배운다.
Part 03 (chapter 09 ~ 11)
- 챗봇 API 서버 구축과 카카오톡 및 네이버 톡톡 봇 만드는 파트
- flask를 사용한 API 서버 구축 방법 학습
- 카카오톡과 자체 엔진 연동
- 네이버 톡톡 쳇봇과 자체 엔진 연동
【처음 배우는 딥러닝 챗봇…….】
이번 책을 리뷰하면서 다시금 딥러닝의 대단함과 바야흐로 요즘은 플랫폼 전쟁 시대라는 것을 깨달을 수 있었다. 솔직히 90~2008년까지는 PC 특히 windows의 시대였다. 그 이후, 아이폰이 등장하면서 플랫폼 판도는 완전히 뒤바뀌게 되었고, 그 후 10년에 걸쳐 웹 기반의 플랫폼의 새로운 시대가 개막되었다. 수많은 rest-API 그리고 수많은 웹 애플리케이션. 필자가 알기로는 머지않은 미래에 집에서 네트워크 환경을 통해서 본인의 피시에 게임을 받지 않고도 게임을 할 수 있는 시대가 올 것이라는 전망이 나왔다는 것으로 알고 있다. (필자가 2019년 NDC에 참가했을 때 nVidia에서 직접 밝히기도 했었다.) 그만큼 다양한 플랫폼 속에서 누가 플랫폼을 선점하느냐, 누가보다 효율적인 딥러닝 모델을 만들어내냐가 지금 시대의 가장 화두 되는 쟁점이지 않을까 싶다.
그렇다면 지금 우리가 사는 시대에 우리는 어떻게 대처해야 할까.. 필자가 생각하기에 딥러닝과 AI 판단 로직이 이런 속도로 꾸준히 발전한다면 10년 안에 수많은 분야들이 사라질 것이라고 생각된다. 대표적으로 의사, 변호사 등등의 암기와 사고력 그리고 지난 판례와 경우가 업무 판단의 주인 직종들이 사라질 가능성이 높다. 기계의 엄청난 정확하고 빠른 그리고 방대한 학습 능력은 인간의 처리 능력에 비해 월등히 우세하며 무엇보다 기계는 철저한 확률에 입각하여 동작하기 때문에 인간이 놓치기 쉬운 증후나 실수의 가능성이 현저히 낮기 때문이다. (물론 악의적인 학습 데이터 조작이 없다면 말이다.) 이 말은 즉, 우리 인간들과 AI, 딥러닝이 어울려 살 날이 머지않았음을 의미한다. 그렇기에 우리는 앞으로의 시대에 맞는 새로운 직종과 업종 그리고 새로운 윤리 의식을 만들 필요성이 있다고 생각된다