[기고] LaMDA로 보는 챗봇의 미래

사람과 닮아가는 챗봇 기술 동향

2022-07-27     CCTV뉴스 편집부

[글=노규남 | (주)위블 CEO]
ardroh@weable.ai


챗봇 불만족

챗봇의 활용 범위는 계속 넓어지고 있다. AI 스피커에 탑재된 모델부터, 은행 업무의 일부를 담당하는 챗봇까지 이미 수많은 챗봇들이 시장에 나와 있다. 예전에는 시나리오 기반으로 매우 한정된 질문에 대해 대답할 수 있는 챗봇만 가능했다면 이제는 NLP(자연어 처리) 기술의 발달로 고객과 가벼운 일상 대화를 나눌 수 있는 건 물론, 지식 저장소(Knowledge Base)에서 고객이 원하는 답을 찾아주는 일도 가능해졌다. 고객의 의도(Intent)를 파악하여 예약을 하거나 주문을 확인하는 일은 이제 크게 어렵지 않게 사용할 수 있는 기능이 됐다.

반면 이렇게 챗봇들이 대중화된 데 비해 고객들이 느끼는 만족도가 많이 개선된 것으로 보이지는 않는다. AI 스피커가 가장 많이 하는 말이 ‘이해하지 못했어요’라는 우스갯소리도 있고, 아직까지는 챗봇의 활용이 매우 단순한 업무 수준에 머물러 있는 것도 사실이다. 고객들이 갖는 챗봇에 대한 기대치가 너무 높아져서 그럴 수도 있다. 광고에서 보는 인공지능 에이전트는 복잡한 요구도 척척 수행하지만 실제 나의 AI 스피커는 그렇게 똑똑한 것 같지는 않다.

이건 단순히 과대광고의 폐해일 뿐일까? 만약 광고에서 보는 챗봇의 기능이 너무 과장되었다면, 실제 현세대 챗봇은 어느 정도 수준까지 와 있는 것일까?

 

ELIZA

챗봇이라는 용어가 언제부터 사용되었는지는 분명하지 않으나, 통상 최초의 챗봇으로 인정받는 것은 1966년 컴퓨터학과 교수였던 조셉 와이젠바움이 만든 ELIZA다. 이때의 컴퓨팅 파워는 지금과 비교할 수 없이 낮았기 때문에 ELIZA는 주로 패턴 매칭과 대체 방법론을 이용해서 답변을 생성했다.

ELIZA는 심리 치료사를 시뮬레이션한 챗봇이었는데, 정해진 형식의 답변 목록을 두고 이를 사용자가 입력한 문장에 맞춰 약간 바꾸어서 돌려주었다. 예를 들어 “나는 항상 우울해요”라고 입력하면 “당신이 항상 우울하다니 유감이군요”라는 식으로 답변한다. 다시 말해 ELIZA는 사용자가 입력한 문장에 맞춰 미리 준비된 대답을 수정해 돌려주는 것뿐이고 대화의 문맥을 이해한다든가 하는 기능은 전혀 포함되어 있지 않다.

제작자였던 와이젠바움은 ELIZA가 실제 지능을 가지고 있다고 생각하지 않았으나 그의 비서를 포함한 많은 사람들이 ELIZA에게 사적으로 민감한 얘기까지 상담하는 것을 보고 놀랐다. 당시 전문가들은 ELIZA를 보고 몇 년 안에 인간과 구분 불가능한, 즉 튜링 테스트를 통과할 수 있는 챗봇이 출현할 것이라 예측하기도 했다. 그러나 와이젠바움은 기계가 인간의 지성을 대체할 수 있다는 의견에 반대 의사를 밝혔다. 그는 컴퓨터가 단순한 기계일 뿐이며 인간 언어를 이해할 수 있는 컴퓨터는 만들 수 없다고 생각했다.

ELIZA는 매우 오래된 챗봇 모델이고 기능적으로도 조악했지만 시나리오와 패턴 기반으로 정해진 답변을 출력한다는 아이디어는 지금까지 이어져 내려오고 있다. 시나리오 기반의 챗봇들은 가볍고 운용하기 편하다는 장점을 내세워 여전히 많이 사용되고 있고, 최근에는 발달한 NLP 기술을 접목하여 고객의 의도와 문맥을 이전보다 더 정확하게 파악할 수 있게 되었다.

ELIZA와

 

Massive Language Model

인공지능 학계가 두 번의 겨울을 거치면서 챗봇의 연구도 지지부진했으나, 딥러닝이 각광을 받으면서 자연어 처리에서도 딥러닝을 활용하려는 시도가 늘어났다. 초기 딥러닝 모델들은 주로 RNN(Recurrent Neural Network: 순환신경망) 계열 네트워크에 토큰화된 문자를 입력하여 그 결과를 가지고 문장을 분류하거나 품사를 태깅하여 사용자의 의도에 해당하는 키워드를 파악한 후 그에 따르는 답변을 출력하는 식으로, 모델만으로 답변을 생성하는 것이 아니라 그 외 다양한 모듈들을 조합하는 복잡한 방식이었다.

그러다가 ‘Attention is all you need’이라는 논문이 발표된 후 기존의 RNN 계열 자연어 처리 모델들을 Transformer가 대체하고, Transformer를 사용한 대형 언어 모델(Massive Language Model, 이하 MLM)이 각광받으면서 이 기술을 챗봇에 채용하는 사례가 늘어났다. 여기에 지금까지 이어지는 NLP 붐을 촉발한 것이 MLM의 시초이자 대표주자인 BERT다.

BERT는 하나의 task에 대해서 하나의 모델을 사용하던 기존 방식에서 벗어나, 하나의 pre-trained된 모델을 약간의 fine-tuning을 통해 여러 가지 task에 적용할 수 있다는 사실을 보여주었다. 당연히 이 모델을 챗봇에 접목하고자 하는 시도들이 이어졌는데 가장 단순하게는 질문+답변이라는 데이터쌍으로 훈련하여 사용자의 질문에 대해서 정해진 답변을 하는 모델이 채용되었다.

여기까지만 보면 기존의 시나리오 기반 챗봇과 다를 바 없어 보이지만, 이 모델은 사용자 질문을 해석하여 완전히 같지 않아도 유사한 context vector로 압축되는 질문은 동일하게 다룰 수 있다는 차이점이 있다. 그래서 사용된 단어나 순서가 약간 다르더라도 전체적으로 비슷한 맥락의 질문에 대해서는 비슷한 대답을 돌려줄 수 있다.

구글의 DialogFlow를 포함해 현재 서비스되고 있는 챗봇 플랫폼들 모두 이런 점에서 기능적으로는 유사하다. 가벼운 대화를 주고받는 일상회화 챗봇들도 기본적으로는 같은 기술 기반으로 구동된다. 다만, 이 경우는 정해진 질문-답변 쌍만으로 학습해야 하므로 실제 모델이 문맥을 이해하거나 하는 건 아니다. 유사한 기술을 사용해 사용자의 의도(Intent)를 파악하고 키워드를 추출할 수도 있는데 이런 기술을 접목하여 정해진 답변만 하는 것이 아니라 사용자의 의도에 따른 액션을 취하는 등, 이쪽 분야 챗봇들도 더 실용적인 방향으로 진화 중이다.

 

Meena

챗봇은 학습한 특정 분야에 대해서만 대화할 수 있는 Closed-Domain과 어떤 주제에 대해서도 대화할 수 있는 Open-Domain으로 크게 나눌 수 있다. Closed-Domain의 경우 선택한 분야에서 나올 수 있는 질문의 수에 한계가 있기 때문에 상대적으로 만들고 학습하기기 쉽다. 반면 Open-Domain은 사용자가 어떤 대화를 할지 모르기 때문에 시스템을 구축하기 어려울 수밖에 없다.

기존 Open-Domain 챗봇들은 이런 한계를 극복하기 위해 몇 가지 트릭을 사용했다. 예를 들어 잘 대답할 수 있는 질문에 대해서는 구체적인 답변을 하지만 모르는 질문에 대해서는 ‘그래?’, ‘더 얘기해 봐’, ‘좋아’라는 식으로 무난한 답변을 던지는 것이다. 이렇게 하면 말 되는 대화가 이어지기는 하지만 실제 사람이 이런 식으로 계속 반응할 리는 없으므로 상대방이 기계라는 점을 금방 알 수가 있게 된다. 이런 부분을 어떻게 극복할 수 있을까?

Meena에서는 자연스러운 대화가 이어지는지를 정량적으로 측정하기 위해 Sensibleness와 Specificity라는 두 가지 지표를 사용했다. Sensibleness는 이 문장이 말이 되는가를 측정하는 지표이며 0과 1로 표시한다. 논리적이지 않거나, 일관성이 없거나, 대화의 문맥에서 벗어났다면 0으로 체크하고, 그렇지 않으면 1로 체크한다. Meena paper에 따르면 사람은 이 지표에서 97%의 숫자를 보인다고 한다.

두 번째 지표인 Specificity는 얼마나 대답이 구체적인가를 나타내는 지표로 역시 0과 1로 표현한다. 앞서 얘기한 무난한 답변의 경우 추상적이며 회피적이므로 Specificity는 0이 된다. Sensibleness만 체크할 경우 앞서의 무난한 답변만 하면 100%가 나오겠지만 Specificity를 같이 사용함으로써 이런 추상적인 답변 뒤에 숨는 일을 막을 수 있다.

이 두 가지를 평균하여 SSA(Sensibleness and Specificity Average)라는 지표로 사용하는데, 사람은 대략 86% 수준의 점수를 보인다고 한다. 놀라운 것은 Meena 풀버전의 SSA는 79%로 사람보다는 낮으나 기존 챗봇 중 가장 높은 SSA(CleverBot, Mitsuku)인 56%보다는 23% 우수한 성능을 보여 준다는 것이다. 더불어 79%라는 숫자는 사람의 SSA와 단 7%밖에 차이가 나지 않는다.

구글

더욱 놀라운 것은 이런 멀티턴 대화를 하는데 있어서 Meena는 단 하나의 큰 모델을 사용한다는 것이다. 기존에는 NLP 모델을 다른 구조와 복잡하게 섞어서 만들었는데 Meena는 단순한 Evolved Transformer seq2seq 모델을 사용하여 최대 7턴까지의 대화 쌍으로 학습을 시킨 것이다. 그때까지 MLM으로 대화 모델을 만들 때는 싱글턴의 단순한 대화만이 가능하다고 생각했던 통념을 깼던 연구로 많은 턴의 많은 데이터로 큰 모델을 학습하면 충분히 사람과 유사한 대화를 할 수 있다는 점을 증명한 것이다.

 

LaMDA

구글은 2021년 구글 I/O(개발자 콘퍼런스)에서 새로운 언어 모델 LaMDA(Language Model for Dialogue Applications)를 발표했다. LaMDA는 자신을 명왕성이라 생각하면서 사람과 자연스럽게 대화하는 모습을 보여주었다.

LaMDA는 기존 언어 모델과 또 다른 성능 지표를 채택했는데 Meena에서도 사용되었던 Sensibleness, Specificity 외에 ▲Interestingness(사용자에게 흥미로운 답변인가) ▲Safety(사용자에게 해를 끼치거나 차별을 조장하지 않는가) ▲Groundedness(사실 근거에 기반한 답변인가) ▲Informativeness(외부의 사실 근거를 얼마나 포함하는가) ▲Citation accuracy(인용이 얼마나 정확한가) ▲Helpfulness(사용자에게 얼마나 유용한 답변인가) ▲Role consistency(설정한 역할에 일관성이 있는가)라는 새로운 지표들이 추가되었다.

LaMDA의 기본 구조는 GPT-3와 크게 다르지 않게 Transformer를 사용하는 생성 모델(Generative Model)이다. 약 1370억 개의 파라미터 규모이며 GPT-3처럼 context가 주어지면 그 다음 단어를 예측하는 방식으로 작동한다. 수많은 데이터로 pre-training하는 것도 동일하다. 그러나 LaMDA는 여기서 한걸음 더 나아가서, LaMDA가 내놓은 답변에 대해 사람이 위의 지표들로 점수를 매긴 데이터를 학습(fine-tuning)에 다시 사용했다.

LaMDA는 사용자의 대화에 대해 복수의 답변을 만들어낸 후 이 학습 데이터를 기준으로 점수를 예측한다. 그래서 Safety가 낮은 답변을 우선적으로 제거한 후 SSI(Sensibleness, Specificity, Interestingness의 평균) 기준에 부합하는 답변들을 다시 골라낸다. 다시 말해 여러가지 가능한 답변군을 만들어 낸 후 정해진 기준에 가장 맞는 답변을 돌려주는 것인데 이는 사람이 대화할 때 상황에 맞춰 적절한 문장이나 단어를 고르는 방식과 유사하다고도 볼 수 있다.

더불어 LaMDA는 검색 엔진과 계산기, 번역기로 이루어진 툴세트를 같이 사용하여 필요하다면 외부의 자료도 검색하면서 대화를 이어 나간다. 이렇게 모델 외부의 자료를 적극적으로 활용함으로써 LaMDA가 답변할 수 있는 범위는 더욱 넓어지게 되는 것이다.

LaMDA를

 

챗봇의 미래

챗봇에 사용되는 NLP 기술의 발전은 매우 빠르다. 위에서 설명한 지표에서 알 수 있듯이 인간과 큰 어려움 없이 소통할 수 있는 모델들도 속속 등장하고 있다. 그러나 SOTA(State-Of-The-Art: 최고 수준) 레벨의 대화형 언어 모델은 점점 커지고 있으며, 학습시켜야 하는 데이터 양도 많아서 제한된 수의 기업만이 이러한 모델을 활용할 수 있다.

성능은 높일 수 있겠지만 반대급부로 대규모 데이터와 인프라의 사용이 필수적이며 비용도 기하급수적으로 올라가게 된다. 그런 측면에서 보았을 때 사람과 유사한 챗봇을 만드는 건 가능하겠지만 그를 운용하는데 들어가는 비용이 너무 높아서 사업적으로 보았을 때 큰 이득이 없다는 의견도 있다.

어쨌든 챗봇은 앞으로 더 정교해지고 점점 사람과 구분할 수 없는 수준까지 진화할 가능성이 크다. 이런 챗봇이 대중화되면 사람의 의도를 파악하고 그에 따르는 업무를 대체할 수 있게 되는 것일까? 그때가 되면 사람의 말을 모두 알아듣고 처리할 수 있는 인공지능 에이전트가 등장하게 되는 것일까? 모두 기대하는 마음으로 기다려 보자.