너도 ChatGPT 만드는
개발자가 되고 싶어?
#인공지능 

무엇이든 얘기할 수 있는 대화형 에이전트 (챗봇) 를 향하여

Meena - 기존 챗봇 및 대화형 AI 시스템과는 다른 목표를 가지고 2020년도에 개발된 구글의 챗봇을 소개합니다. 보다 자연스러운 오픈 도메인 대화를 목표로 하며 다양한 주제에 대해 의미있고 구체적인 응답을 제공할 수 있는 능력을 갖추고 있습니다.

2024-06-28 | 신유진

현대의 대화형 에이전트(챗봇)는 대개 매우 전문화되어 있어, 사용자가 예상된 사용 범위를 벗어나지 않는 한 성능이 우수합니다.
더 다양한 대화 주제를 다루기 위해, 오픈 도메인 대화 연구는 전문화되지 않았지만 사용자가 원하는 거의 모든 주제에 대해 대화할 수 있는 챗봇을 개발하려는 보완적인 접근 방식을 탐구합니다.
이는 흥미로운 연구 문제일 뿐만 아니라, 컴퓨터와의 상호작용을 더욱 인간적으로 만들고, 외국어 연습을 향상시키며, 공감 가능한 영화 및 비디오 게임 캐릭터를 만드는 등의 다양한 재밌는 활용으로 이어질 수 있습니다.

그러나 현재의 오픈 도메인 챗봇에는 치명적인 결함이 있습니다.
이들은 종종 말이 안 되는 말을 하거나, 앞서 말한 내용과 일관성이 없거나, 상식과 기본적인 세계 지식이 부족한 경우가 많습니다.
또한, 챗봇은 상황과 문맥에 맞지 않는 응답을 자주 합니다.
예를 들어, “모르겠어요”라는 대답은 어떠한 질문에도 말이 될 수는 있는 있지만, 구체적인 답변은 아닙니다.
현재의 챗봇은 다양한 사용자 입력을 수용하기 위해 사람보다 이런 대답을 훨씬 더 자주 합니다.

“Towards a Human-like-Open-Domain Chatbot”이라는 논문에서, 우리는 26억 개의 파라미터를 가진 end-to-end방식으로 학습된 신경 대화 모델인 Meena를 소개합니다.
우리는 Meena가 기존의 최신 챗봇들보다 더 말이 되고 구체적인 대화를 나눌 수 있음을 보여줍니다.
이러한 개선 사항은 오픈 도메인 챗봇을 위한 새로운 인간평가 지표인 Sensibleness and Specificity Average (SSA)를 통해 반영됩니다.
SSA는 인간 대화의 기본적이면서도 중요한 속성을 포착합니다. 놀랍게도, 우리는 모든 신경 대화 모델에서 쉽게 사용할 수 있는 자동 지표인 perplexity가 SSA와 높은 상관관계를 가진다는 것을 증명하였습니다.


Meena

Meena는 주어진 대화 문맥에 말이 되게 응답하는 법을 배우는 end-to-end신경 대화 모델입니다.
목표는 대화내에서 다음 단어에 해당되는 다음 토큰을 예측하는 불확실성인 perplexity를 최소화하는 것입니다.
이 모델의 핵심은 perplexity를 개선하기 위해 진화적 신경 아키텍처 검색을 통해 발견된 Transformer 아키텍처인 Evolved Transformer seq2seq 입니다.

Meena는, 아래 그림처럼, 하나의 Evolved Transformer 인코더 블록과 13개의 Evolved Transformer 디코더 블록으로 구성되어 있습니다.
인코더는 대화의 문맥을 처리하여 Meena가 대화내에서 이미 말한 내용을 이해할 수 있도록 돕습니다.
디코더는 그 정보를 사용하여 실제 응답을 생성합니다.
하이퍼파라미터를 조정한 결과, 더 강력한 디코더가 대화의 품질을 높이는 데 중요한 역할을 한다는 것을 발견했습니다.

Meena가 7번의 대화 턴을 인코딩하고 “The Next Generation”이라는 응답을 생성하는 예시

훈련에 사용되는 대화는 Tree Thread로 구성되며, 스레드 내 각 답변은 하나의 대화 (Single-Turn) 로 간주됩니다.
우리는 각 대화 훈련 예제를 트리 스레드의 하나의 경로로서 7번의 턴을 가진 문맥으로 추출합니다.
우리가 7번의 턴을 한 이유는 대화 모델을 훈련하기에 충분한 내용을 제공하면서도 메모리 제약 내에서 모델을 유지하기에 적절하게 균형되었다고 생각되었기 때문입니다.
(더 긴 문맥은 더 많은 메모리를 차지합니다).

Meena 모델은 26억 개의 파라미터를 가지고 있으며, 공개 도메인의 소셜 미디어 대화에서 필터링 된 341GB의 텍스트로 훈련되었습니다.
기존의 최첨단 생성 모델인 OpenAI GPT-2와 비교했을 때, Meena는 모델 용량이 1.7배 더 크고, 8.5배 더 많은 데이터로 훈련되었습니다.


인간 평가 지표: Sensibleness and Specificity Average (SSA)

기존의 챗봇 품질 평가를 위한 인간 평가 지표는 복잡하고 리뷰어들 간에 일관된 동의를 얻지 못하는 경우가 많습니다.

이를 개선하기 위해, 우리는 자연스러운 대화의 기본적이지만 중요한 속성을 포착하는 새로운 인간 평가 지표인 Sensibleness and Specificity Average (SSA)를 설계하게 되었습니다.
SSA를 계산하기 위해, 우리는 테스트 중인 챗봇(Meena와 그 외 잘 알려진 오픈 도메인 챗봇들-  Mitsuku, Cleverbot, XiaoIce, 그리고 DialoGPT)과의 자유형 대화를 crowd sourcing했습니다.
평가의 일관성을 보장하기 위해, 각 대화는 “Hi!”라는 동일한 인사말로 시작합니다.
각 발화(utterance)에 대해, crowd worker들은 “말이 되는가?”와 “구체적인가?”라는 두 가지 질문에 답합니다.
평가자는 문맥 내에서 응답이 완전히 합리적인지를 판단하기 위해 상식적으로 접근하도록 지시받습니다.
만약 응답이 혼란스럽거나, 비 논리적이거나, 문맥에 맞지 않거나, 사실과 다르다면 “말이 되지 않는다”고 평가해야 합니다.
응답이 말이 된다면, 그 발화(utterance)가 주어진 문맥에 구체적인지 평가합니다.
예를 들어, A가 “나는 테니스를 좋아해”라고 말했을 때, B가 “그거 좋네요”라고 대답하면, 그 발화는 “구체적이지 않다”고 표시됩니다.
그 응답은 수십 가지 다른 문맥에서 사용될 수 있기 때문입니다.
그러나 B가 “나도! 나는 로저 페더러를 정말 좋아해!”라고 응답하면, 이는 논의 중인 주제와 밀접하게 관련되어 있으므로 “구체적”이라고 표시됩니다.

각 챗봇에 대해 약 100번의 대화를 통해 1600에서 2400개의 개별 대화 턴을 수집합니다.
각 모델의 응답은 crowd worker들에 의해 감각적이고 구체적인지 여부로 라벨이 지정됩니다.
챗봇의 합리성은 “합리적”으로 라벨이 지정된 응답의 비율이며, 구체성은 “구체적”으로 표시된 응답의 비율입니다. 이 두 가지의 평균이 SSA 점수입니다.
아래 결과는 Meena가 SSA 점수 측면에서 기존의 최첨단 챗봇보다 훨씬 더 뛰어나며, 인간 성능과의 격차를 좁히고 있음을 보여줍니다.

Meena의 Sensibleness and Specificity Average (SSA) 비교: 인간, Mitsuku, Cleverbot, DialoGPT, XiaoIce


자동 측정 지표: Perplexity

연구자들은 오랫동안 더 정확한 인간평가와 상관관계가 있는 자동 평가 지표를 찾고자 노력해왔습니다.
이를 통해 대화 모델의 개발 속도를 높일 수 있을 것입니다. 하지만 현재까지 이러한 자동지표를 찾는 것은 어려운 과제로 남아있습니다.

놀랍게도, 우리의 연구에서는 모든 신경seq2seq모델에 쉽게 적용할 수 있는 자동지표인 perplexity가 SSA 값과 같은 인간평가와 강한 상관관계를 보인다는 것을 발견했습니다.
Perplexity는 언어 모델의 불확실성을 측정합니다. Perplexity 값이 낮을수록 모델이 다음 토큰(character, subword 또는 word)을 생성하는 데 더 자신감을 가진다는 것을 의미합니다.
개념적으로, perplexity는 모델이 문맥 내 다음 토큰을 생성할 때 선택하려고 하는 선택지의 수를 나타냅니다.

Interactive SSA vs. Perplexity – 각 파란 점은 Meena 모델의 다른 버전을 나타냅니다. 회귀선은 SSA와 perplexity간의 강한 상관관계를 보여줍니다. 점선은 인간, 다른 봇, Meena (기본형), 우리의 end-to-end 학습 모델, 그리고 필터링 메커니즘과 튜닝된 디코딩을 적용한 완전한 Meena의 SSA 성능을 나타냅니다

개발 과정에서, 우리는 레이어 수, 어텐션 헤드 수, 총 학습 단계 수, Evolved Transformer 또는 일반 Transformer 사용 여부, 하드 라벨 또는 distillation을 사용한 학습 여부 등 다양한 하이퍼파라미터와 아키텍처를 가진 여덟 가지 다른 모델 버전을 벤치마킹했습니다.
perplexity 값이 낮을수록 모델의 SSA 점수가 높아지며, 이는 높은 상관 계수(R2 = 0.93)를 나타냅니다. 우리의 최상위 end-to-end 학습 Meena모델인 Meena(base)는 perplexity가 10.2(작을수록 좋음) 를 기록했습니다.
이는 SSA 점수로 72%에 해당합니다.
다른 챗봇들이 달성한 SSA 점수와 비교했을 때, 우리의 SSA 점수 72%는 평균적인 사람의 SSA 점수 86%와 크게 차이가 나지 않습니다.
필터링 메커니즘과 튜닝된 디코딩을 적용한 Meena의 전체 버전은 SSA 점수를 79%로 더욱 향상시킵니다.

 

향후 연구와 과제

앞서 언급한 바와 같이, 알고리즘, 아키텍처, 데이터 및 컴퓨팅의 개선을 통해 신경 대화 모델의 perplexity를 낮추는 목표를 계속 진행할 것입니다.
이번 연구에서는 오직 합리성과 구체성에만 초점을 맞추었습니다. 하지만, 이후 연구에서는 특성사실성 같은 다른 속성들도 고려할 가치가 있습니다.

또한, 모델의 안전성과 편향 문제를 해결하는 것이 우리의 주요 집중 분야입니다. 또, 이와 관련된 도전 과제를 감안할 때 현재 외부 연구 데모를 비공개로 유지하고 있습니다.
우리는 모델 체크포인트를 외부에 공개하는 것과 관련된 위험과 이점을 평가 중이며, 앞으로 몇 달 내에 이를 공개하여 이 분야의 연구를 촉진할 수 있도록 진행할 수도 있습니다.

 

감사의 글

이 프로젝트에 크게 기여하신 여러 팀원들께 감사드립니다: 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, Yizhe Zhang, 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팀의 프로젝트 도움에 감사드립니다.

Reference

이 글은 블로그 를 번역한 글입니다.