brunch

라이킷 7 댓글 공유 작가의 글을 SNS에 공유해보세요

You can make anything
by writing

C.S.Lewis

무슨 대화든 할 수 있는 에이전트를 향하여

2020년 1월 28일(화) 구글 AI 리서치 블로그

by 서진호 Jan 31. 2020

최신 대화형 에이전트(챗봇)는 고도로 전문화된 경향이 있습니다. 사용자가 예상 사용량을 너무 많이 벗어나지 않는 한 성능이 우수합니다. 광범위한 대화 주제를 보다 잘 처리하기 위해 공개 도메인 대화 연구는 전문적이지 않지만, 사용자가 원하는 거의 모든 것에 대해 여전히 대화할 수 있는 챗봇을 개발하려는 보완적인 접근 방법을 모색합니다. 이것은 매력적인 대화 문제 일뿐 아니라 이러한 대화 에이전트는 컴퓨터 상호 작용을 더욱 인간화하고 외국어 실습을 향상시키며 대화식 영화 및 비디오 게임 캐릭터를 만드는 등의 흥미로운 응용 프로그램으로 이어질 수 있습니다.


그러나 현재의 오픈 도메인 챗봇에는 종종 이해가 되지 않는 중요한 결점이 있습니다. 그것들은 지금까지 말한 내용과 일치하지 않거나 세상에 대한 상식과 기본 지식이 부족한 것을 말합니다. 또한 챗봇은 종종 현재 상황에 맞지 않는 응답을 제공합니다. 예를 들어,“저는 모르겠습니다”는 질문에 대한 합리적인 답변이지만 구체적이지 않습니다. 현재 챗봇은 가능한 많은 사용자 입력을 다루기 때문에 사람들보다 훨씬 자주 수행합니다.


“인간과 유사한 오픈 도메인 챗봇을 향하여(Towards a Human-like Open Domain Chatbot)” 논문에서, 우리는 26억 개의 파라미터들을 가진 엔드-투-엔드 신경망 대화형 모델인 Meena를 소개합니다. 우리는 Meena가 기존의 최신 챗봇보다 더 현명하고 구체적인 대화를 수행할 수 있음을 보여줍니다. 이러한 개선 사항은 SSA(Sensibleness and Specificity Average)라는 공개 도메인 챗봇에 대해 제안하는 새로운 인간 평가 측정(human evaluation metric) 항목을 통해 반영됩니다. 이는 사람들 간의 대화에서 기본이지만 중요한 속성을 캡처합니다. 놀랍게도 우리는 모든 신경망 대화 모델에 쉽게 사용할 수 있는 자동 메트릭인 Perplexity를 SSA와 밀접한 관련이 있음을 확실하게 보여줍니다.  


[그림 1 -  Meena (왼쪽)와 사람(오른쪽) 간의 대화][그림 1 -  Meena (왼쪽)와 사람(오른쪽) 간의 대화]

Meena

Meena는 주어진 대화 상황에 현명하게 반응하는 법을 배우는 종단간 신경망 대화 모델입니다. 훈련 목표는 다음 토큰(이 경우 대화의 다음 단어)을 예측하는 불확실성인 Perplexity를 최소화하는 것입니다. Evolved Transformer seq2seq 아키텍처 중심에서, Transformer 아키텍처는 복잡성을 개선하기 하기 위해 진화된 신경망 아키텍처 검색에 의해 발견되었습니다.


구체적으로, Meena는 아래 그림과 같이 단일 Evolved Transformer 인코더 블록과 13개의 Evolved Transformer 디코더 블록을 가지고 있습니다. 인코더는 Meena가 대화에서 이미 말한 내용을 이해하도록 돕기 위해 대화 콘텍스트를 처리합니다. 그런 다음 디코더는 해당 정보를 사용하여 실제 응답을 공식화합니다. 하이퍼 파라미터 튜닝을 통해 더 강력한 디코더가 대화 품질을 높이는 열쇠라는 것을 알게 되었습니다.

[그림 2 - 7 차례 대화 상황을 인코딩하고 “차세대” 응답을 생성하는 Meena의 예][그림 2 - 7 차례 대화 상황을 인코딩하고 “차세대” 응답을 생성하는 Meena의 예]

교육에 사용되는 대화는 트리 스레드들로 구성되며 스레드의 각 응답은 하나의 대화 회전으로 표시됩니다. 우리는 각각의 대화 훈련 예제를 트리 스레드를 통한 하나의 경로로 7차례의 콘텍스트로 추출합니다. 우리는 대화식 모델을 훈련시키기에 충분한 콘텍스트를 갖는 것과 메모리 제약 조건 내에서 적합한 모델을 갖는 것 사이의 좋은 균형으로 7을 선택합니다(더 긴 콘텍스트는 더 많은 메모리를 사용함).


Meena 모델에는 26억 개의 파라미터들이 있으며 오픈 도메인 소셜 미디어 대화에서 필터링된 341GB의 텍스트에 대해 학습됩니다. 기존의 최첨단 생성 모델인 OpenAI GPT-2에 비해 Meena는 1.7배 더 큰 모델 용량을 가지고 있으며 8.5배 더 많은 데이터에 대해 훈련을 받았습니다.


인간 평가 메트릭: Senseible and Specificity Average(SSA)

챗봇 품질에 대한 기존의 인간 평가 지표는 복잡한 경향이 있으며 검토자들(Reviewers) 간에 일관된 동의를 얻지 못합니다. 이를 통해 우리는 자연스러운 대화의 기본이지만 중요한 속성을 포착하는 새로운 인간 평가 메트릭인 Sensibleness and Specificity Average(SSA)를 설계하게 되었습니다.


SSA를 계산하기 위해 테스트 중인 챗봇(Meena 및 기타 잘 알려진 오픈 도메인 챗봇, 특히 Mitsuku, Cleverbot, XiaoIce 및 DialoGPT 논문)과 자유형식(free-form) 대화를 크라우드 소싱했습니다. 평가들 간의 일관성을 유지하기 위해 각 대화는 동일한 인사 "Hi!"로 시작합니다. 각 발언에 대해 크라우드 노동자들은 “그게 말이 되는 건가요?” 와 “구체적입니까?”라는 두 가지 질문에 대답합니다. 평가자는 상식을 사용하여 상황에 대한 답변이 완전히 합리적인지 판단해야 합니다. 혼란스럽거나 비논리적이거나 상황에 맞지 않거나 사실 틀린 것 같은 것이 있다면 “말이 안 되는 것”으로 평가되어야 합니다. 응답이 의미가 있는 경우 발언이 주어진 상황에 맞는지 판단하기 위해 평가됩니다. 예를 들어, A가 "테니스를 좋아합니다"라고 말하고, B가 "좋아요"라고 대답하면 발언은 "구체적이지 않음"으로 표시해야 합니다. 이 답변은 수십 가지 다른 상황에서 사용될 수 있습니다. 그러나 B가 “저도요! 저는 로저 페더러를 충분히 이길 수 없습니다!”라고 대답하면 논의 중인 내용과 밀접한 관련이 있기 때문에 “구체적”으로 표시됩니다.


각 챗봇마다 1,600에서 2,400 개 사이의 개별 대화가 약 100 개의 대화를 통해 수집됩니다. 각 모델 응답에는 대중이 구체적이고 구체적인지를 나타 내기 위해 크라우드 워커가 표시합니다. 챗봇의 합리성(Sensibleness)은 “합리적”으로 표시된 응답의 비율이며, 특이성(Specificity)은 “구체적”으로 표시되는 반응의 비율입니다. 이 두 가지의 평균은 SSA 점수입니다. 아래의 결과는 Meena가 기존의 최첨단 챗봇보다 SSA 점수 측면에서 큰 차이로 훨씬 우수하며 인간의 성과와의 격차를 좁히고 있음을 보여줍니다.


[그림 3-Meena SSA는 Mitsuku, Cleverbot, XiaoIce 및 DialoGPT와 인간들을 비교함][그림 3-Meena SSA는 Mitsuku, Cleverbot, XiaoIce 및 DialoGPT와 인간들을 비교함]

자동 메트릭: Perplexity

연구자들은 보다 정확한 인간 평가와 관련된 자동 평가 측정법을 오랫동안 찾고 있었습니다. 그렇게 하면 대화 모델을 더 빨리 개발할 수 있지만 지금까지는 이러한 자동 메트릭을 찾는 것이 어려웠습니다. 놀랍게도 우리의 연구에서 우리는 어떠한 neural seq2seq 모델에서도 쉽게 사용할 수 있는 자동 메트릭인 Perplexity는 SSA 값과 같은 인간 평가와 강한 상관관계를 나타냅니다. Perplexity는 언어 모델의 불확실성을 측정합니다. 난이도가 낮을수록 모델이 다음 토큰(문자, 하위 단어 또는 단어)을 생성하는 데 더 자신감이 생깁니다. 개념상 Perplexity는 다음 토큰을 생성할 때 모델이 선택하려고 하는 선택의 수를 나타냅니다.


개발 과정에서 레이어들 수, 어텐션 헤드(attention head), total training steps, Evolved Transformer 사용 여부 또는 Regular Transformer 사용 여부, 하드 레이블(hard label)들 또는 distillation으로 학습하는지 여부와 같은 다양한 하이퍼 파라미터 및 아키텍처로 8가지 모델 버전을 벤치마킹했습니다. 아래 그림과 같이 Perplexity가 낮을수록 강한 상관 계수(strong correlation coefficient)로 모델의 SSA 점수가 향상됩니다.(R2 = 0.93)

[그림 4][그림 4]

[그림 4] 상세 설명 - 대화식 SSA와 Perplexity. 각각의 파란색 점은 다른 버전의 Meena 모델입니다. SSA와 Perplexity 사이의 강한 상관관계를 나타내는 선형선(regression line)이 그려져 있습니다. 점선은 Human, Meena(base), 다른 봇들, 엔드-투-엔드 훈련 모델의 SSA 성능과 필터링 메커니즘 및 튜닝된 디코딩 기능을 갖춘 완전한 Meena 등과 일치합니다.


Meena(base)라고 하는 당사의 최첨단 교육을 받은 Meena 모델은 10.2(더 작을수록 좋음)의 난이도를 달성하며 72%의 SSA 점수로 해석됩니다. 다른 챗봇들이 달성한 SSA 점수와 비교할 때, 72%의 SSA 점수는 보통 사람들이 달성한 86% SSA와 크게 다르지 않습니다. 필터링 메커니즘과 튜닝된 디코딩 기능이 있는 Meena 정식 버전은 SSA 점수를 79%로 향상시킵니다.


향후 연구 및 과제

이전에 옹호한 것처럼 알고리즘, 아키텍처, 데이터 및 컴퓨팅의 개선을 통해 신경망 대화 모델의 난이도를 낮추는 목표를 계속 유지할 것입니다.


우리는 이 연구에서 합리성(Sensibleness)과 특이성(Specificity)에만 초점을 맞추고 있지만, 후속작에서는 개성(personality)사실성(factuality)과 같은 다른 특성들도 고려할 가치가 있습니다. 또한 모델에서 safety과 bias을 다루는 것이 우리의 주요 초점 분야이며, 이와 관련된 문제를 감안할 때 현재 외부의 연구 데모를 발표하지 않습니다. 그러나 모델 체크포인트를 외부화하는 것과 관련된 위험과 장점을 평가하고 있으며 향후 몇 개월 내 에이 영역에서 연구를 진행하는 데 도움이 되도록 선택할 수 있습니다.


감사의 말

David So, Jamie Hall, Noah Fiedel, Romal Thoppilan, Zi Yang, Apoorv Kulshreshtha, Gaurav Nemade, Yifeng Lu 등 여러 회원들이 이 프로젝트에 크게 기여했습니다. 또한 Quoc Le, Samy Bengio 및 Christine Robson의 리더십 지원에 감사드립니다. 논문 초안에 대한 피드백을 주신 사람들에게 감사합니다 : Anna Goldie, Abigail See, YizheZhang, Lauren Kunze, Steve Worswick, Jianfeng Gao, Daphne Ippolito, Scott Roy, Ilya Sutskever, Tatsu Hashimoto, Dan Jurafsky, Dilek Hakkani-tur, Noam Shazeer, Gabriel Bender, Prajit Ramachandran, Rami Al-Rfou, Michael Fink, Mingxing Tan, Maarten Bosma 및 Adams Yu. 또한 서로와 다양한 챗봇과의 대화를 모으는 데 도움을 준 많은 자원 봉사자들 덕분에 마지막으로 프로젝트에 도움을 주신 Noam Shazeer, Rami Al-Rfou, Khoa Vo, Trieu H. Trinh, Ni Yan, Kyu Jin Hwang 및 Google Brain 팀에 감사를 전합니다.


게시자: Daniel Research 수석 연구 엔지니어, Thang Luong, Brain Team의 Google Research 수석 연구 과학자
Towards a Conversational Agent that Can Chat About...Anything 원본 링크: https://ai.googleblog.com/2020/01/towards-conversational-agent-that-can.html
Towards a Human-like Open-Domain Chatbot 논문(영문): https://arxiv.org/abs/2001.09977
Applying AutoML to Transformer Architectures 블로그(영문): https://ai.googleblog.com/2019/06/applying-automl-to-transformer.html
Perplexity 용어: https://en.wikipedia.org/wiki/Perplexity
Neural Architecture Search 용어: https://en.wikipedia.org/wiki/Neural_architecture_search
OpenAI's Better Language Models and Their Implications 블로그(영문): https://openai.com/blog/better-language-models/
DialoGPT: Large-Scale Generative Pre-training for Conversational Response Generation 논문(영문): https://arxiv.org/abs/1911.00536
Distilling the Knowledge in a Neural Network 논문(영문): https://arxiv.org/abs/1503.02531
Personalizing Dialogue Agents: I have a dog, do you have pets too? 논문(영문): https://arxiv.org/abs/1801.07243
Wizard of Wikipedia: Knowledge-Powered Conversational agents 논문(영문): https://arxiv.org/abs/1811.01241
How NOT To Evaluate Your dialogue System: An Empirical Study of Unsupervised Evaluation 논문(영문): https://www.aclweb.org/anthology/D16-1230/
Sequence to Squence Learning with Neural Networks 논문(영문): https://papers.nips.cc/paper/2014/file/a14ac55a4f27472c5d894ec1c3c743d2-Paper.pdf


이 블로그는 2020년 1월 28일(화), Google AI Research Blog 기사를 영어에서 우리나라 말로 번역한 것입니다. 또한 이 번역 글은 정보 공유 목적으로만 작성했으므로 어떠한 상업용으로 사용할 수 없으며, 원본 저작물 모두 구글에게 저작권이 있음을 알려 드립니다. (First Draft Version)

매거진의 이전글 Recorder 뒷면의 온-디바이스 머신러닝

브런치 로그인

브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari