인공지능 전화비서 구글 듀플렉스(Google Duplex)
지난 5월 열린 구글 IO의 하이라이트는 키노트에서 발표된 구글 듀플렉스가 아닐까 합니다.
이날 발표에서 구글은 우리가 먼미래에서가 가능할 것이라고 생각했던 일이 더이상 상상이 아닌 현실이 되었음을 보여줬습니다.
구글은 이날 인간과 컴퓨터가 서로 자연스럽게 대화화는 모습을 보여줬는데요. 사람을 대신해 미용실이나 레스토랑 예약을 완벽하게 마무리하는 인공지능을 선보이며 사람들을 감탄시켰습니다.
그동안 우리가 경험할 수 있었던 인공지능과의 대화는 일부 기업에서 도입한 말하는 ARS 정도였는데, 이 경우 인공지능이 사람을 도와주는게 아닌, 사람이 인공지능이 쉽게 내의도를 이해할 수 있도록 단어와 문장을 고려해야하는 수준이었습니다. 말하는 ARS의 경우 품질이 정말적이었다고 할 수 있는데요.
예상보다 빨리 찾아온 인공지능 진화(?)는 심층 신경망(Deep Neural Networks) 덕분입니다. 구글에 따르면 심층신경망을 통해 AI가 자연어를 이해하고 생성하는 능력을 급격하게 발전할 수 있었다고 합니다.
Yaniv Leviathan(듀플렉스 총괄)과 Matan Kalman(엔지니어)
다만 구글은 AI가 모든 분야에서 사람과 자유롭게 대화할 수 있는 것이 아닌 대화의 범위를 특정 도메인 줄여야 한다는 판단을 했는데, 그들이 선택한 분야는 '특정 유형의 약속을 하거나 작업을 완료하는 것'이었습니다.
Duplex는 이 분야에 집중학습을 한 후 자연스러운 대화를 수행할 수 있었다고 합니다. 목소리 또한 사람이 말하는 것처럼 아주 자연스럽습니다.(듀플렉스는 현재 사람과 일반적인 대화를 할수는 없음)
Duplex scheduling a hair salon appointment: |
Duplex calling a restaurant: |
구글 AI 블로그에 따르면 Duplex를 개발 할 때 다양한 문제에 당면했었다고 합니다. 먼저 자연어를 AI가 이해하기 매우 어려웠는데, 사람들은 대화를 할 때, 말했던 내용을 뒤집거나, 장황하게 설명하거나, 단어를 생략하고 이야기를 하기 때문에 이를 AI가 이해할 수 있도록 개발하는게 어려움이 많았다고 합니다.
Google 은 예시로 이 문장을 꼽았습니다. "So umm Tuesday through Thursday we are open 11 to 2, and then reopen 4 to 9, and then Friday, Saturday, Sunday we... or Friday, Saturday we're open 11 to 9 and then Sunday we're open 1 to 9.”
"음.. 화요일 부터 목요일까지는 11-2시까지 문을 열었다가, 4-9시에 다시 문을 엽니다. 금,토,일은..아니 금,토는 11-9시 그리고 일요일은 1-9까지 문을 열어요."
Example of complex statement: |
자연어 처리의 어려움은 이 것뿐만이 아니라고 합니다. 사람들은 Duplex를 기계가 아닌 사람으로 착각하기 때문에 자비없이 빠른 속도로 말을하고 발음도 불명확하게 말을 하는 경향이 있으며, 전화 넘어로 들려오는 소음도 골치거리였다고 합니다.
또한 대화가 길어질 수록 동일한 문장이지만 해석이 달라지는 경우가 발생하는데, 예를 들어 "Ok For 4"의 의미는 4시를 의미할 수도 있지만, 4명을 의미할 수도 있습니다. 사람과 듀플렉스의 대화에서 이와 관련된 문장들이 많다면 정확한 의미를 파악하는데 어려움을 겪었다고 합니다.
듀플렉스의 핵심은 이러한 문제에 대처하기 위해 설계된 TensorFlowExtended(TFX)를 사용한 순환신경망(RNN) 입니다. 구글은 익명화된 전화 데이터를 활용해 RNN을 학습시키고, TFX의 하이퍼 매개 변수 최적화를 통해 모델을 정교하게 개선했습니다.
또한 자연스러운 대화를 위해 TTS와 TAC엔진을 결합한 TAC엔진(Tacotran + WaveNet)을 사용했는데 이를통해 상황에 따라 억양을 컨트롤할 수 있게 되었습니다. 듀플렉스는 긴 문장을 말 할때 중간 중간 "음...어.."라는 소리를 내기도 하는데 연구에 따르면 이런 소리를 내는 것이 인간이 대화를 더욱 자연스럽게 여긴다고 합니다.
Duplex handling interruptions: |
Duplex elaborating: |
Duplex responding to a sync: |
마지막으로 대화에서는 대기시간이 사람들의 기대치를 충족시키는 것이 중요하다고 합니다. 예를들어, "Hello?"라고 말했을 때 즉각적인 대답을 기대하게 되는데, 이런 경우 듀플렉스는 RNN을 기다리지 않고 바로 대화에 응답을 하기 때문에 사람들이 자연스러움을 느낍니다.
재미난 사실은 특정 대화(복잡한 문장에 답하는 경우)에서 듀플렉스는 사람들이 자연스럽게 느끼게 하기 위해 일부러 대기시간을 많이 두고 대화를 이어나간다고 합니다.
이렇게 완성된 듀플렉스는 인간의 개입없이 자율적으로 미용실이나 식당 예약을 완료할 수 있게 되었습니다.(비정상적으로 복잡한 약속과 같이 시스템이 자동으로 완료할 수 없는 작업이 발생할 경우에는 이를 처리할 수 있는 작업자에게 도움을 요청)
앞으로 Google은 Duplex를 콜센터 등 다른 영역으로 확대해 나갈 계획이라고 하는데, 과연 그들의 한계는 과연 어디까지 일까요? 그리고 이로 인해 사라지는 일자리는 무엇일지...