4차 산업혁명, AI, 딥러닝 등이 급부상하면서 챗봇(ChatBot)이 많이 익숙해졌다. 오늘은 필자가 그 동안 알아온 챗봇(ChatBot)에 대해 공유해 보고자 한다.

 

챗봇의 사전적 정의는 아래와 같다.

 

- 챗봇: 메신저에서 일상 언어로 대화할 수 있는 채팅로봇 프로그램(시사상식사전)

 

 

챗봇

 

 

챗봇이란?!

필자는 챗봇을  "사람과 판단이 가능한 기계가 자연어 또는 그와 유사한 방식으로 소통할 수 있는  채널" 이라고 정의할 수 있다고 생각한다.

 

예전에는 기계와 소통하려면 가장 어렵게는 코딩을 하거나, 또는 좀 더 쉽게는 웹페이지 등 코딩보다는 사람에게 좀 더 친숙한 방법을 통해 하였다.


하지만 자연어를 처리할 수 있는 기술이 발달하면서, 인간의 말을 좀 더 광범위하고 유연하게 기계가 이해할 수 있게 되었다.

 

인식을 하는 방법이 과거에는 사람이 다 직접 모든 조건을 코딩하였다면, 지금은 데이터를 통해 모델을 만들어 질문에 맞는 대답을 자동으로 생성하려는 시도가 있었다. 한정된 영역에서는 잘 동작하는 사례도 들린다.

 

 

챗봇의 시작?!

챗봇은 우리가 알고 있는 것보다 오래 된 기술로, 가장 많이 언급되는 사람 중 한 명이 앨런 튜링이다. 이미테이션 게임이라는 영화로도 제작되었는데, 영화는 재밌게 보았지만 이것과 연관되는 분인 줄은 잘 몰랐다. 튜링 테스트라고 하여, 기계가 인공지능인지를 판별할 수 있는 시험을 고안해 내었다고 한다.

 

블라인드로 대화를 하였을 때 우리가 상대방의 반응이 기계인지 사람인지 알 수 없다면, 인공지능으로 인정할 수 있다고 한다. 실레 튜링 테스트를 통과한 인공지능이 있었다고 들었던 거 같은데, 잘 기억이 나지는 않는다.

 

 

챗봇을 만드는 방법은?!

챗봇은 여러 가지 기준에 따라 다양하게 나눌 수 있겠지만, 보통 동작 방식에 따라 규칙 기반, 확률 기반, 딥러닝 기반의 3가지로 나눈다고 한다.


규칙 기반은 사람이 하는 말을 이해할 수 있도록 rule을 만들고, 그 룰에 따라 대화를 하는 방법이다. 간단히는 이렇고, 잘 될까 싶지만 많은 분들이 연구하여 굉장히 한정된 영역에는 대답을 잘 하는 챗봇을 만들 수 있다고 한다. 이것을 설계하기 위한 프로그래밍 언어도 따로 있다.

 

 

 확률기반은 요즘에 실제 운영되는 챗봇에 많이 반영되어 있다.


사람의 질문을 분석해서 어떠한 의도를 가진 질문인지를 모델링을 통해 알아낸다. 그리고 그에 대한 대답은 그 의도에 따라 미리 정해놓은 규칙에 따라 답하게 된다. 요즘 구현되어 사용되어지는 챗봇들은 대부분이 이 모델에 기반에서 동작한다.

 

 

딥러닝은 RNN이라고 해서 Recurrent Neural Network를 이용해서 모델을 만든다. 이거는 내용이 좀 어렵다. Neural Network에 대한 지식이 있어야 이해가 가능하다.


문맥에 맞게 컴퓨터가 대답하기 위해서, 앞의 단어와 질문들을 다음 대답을 생성하기 위한 인풋값으로 활용한다. 이 과정이 사람이 계산을 통해 이렇게 하면 맞게 동작을 할 것이라고 해서 만들어 낸 것이 아니다. 사람이 글을 이해하는 모습을 보고, 이를 모델로 설계해서 실제 돌려보니 꽤 근사한 답을 만들냈다는 부분은 감탄을 불러일으키게 한다.


단어의 순서나 문맥을 고려하여 문장을 이해할 수 있게 하기 위해 하나의 단어가 무슨 뜻인지 알고자 할 때 그 단어만 보는 게 아니고 앞에 어떤 말들이 있었는지를 같이 고려해서 모델을 구성한다.


그리고 이 방법에서는 답변을 사람이 지정해 주는 게 아니라, 데이터를 기반으로 자동으로 답변을 생성할 수 있다.


모델이 학습을 통해서 답변을 자동으로 생성해 내기 때문에. 이상한 답변을 할 수도 있고 어떤 답변을 할 지 모른다는 단점이 있다. 그래서 기존의 다른 방식으로 조합을 하여 운영하는 방법도 연구를 하고 있다고 한다.

 

지금은 딥러닝 기술이 발달하여, 굉장히 멋진 문맥의 말을 만들어내는 모델도 있다. GPT3나 구글 PaLM과 모델은 뛰어날 성능을 보여준다.

 

특히 GPT3는 기존 모델에서 학습 파라미터의 양만 늘려서 더 뛰어난 성과를 냈다고 한다. 컴퓨터 기술이 더 발달하면 어떤 결과가 나올지 이제는 조금 무서워진다.

 

 

나중에 자기가 한 말들을 잘 저장해 놓았다가 이렇게 학습시켜서, 이야기해보면 재밌을 것 같다는 상상을 해 본다.

  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기