[논문 요약] BlenderBot 3: a deployed conversational agent that continually learns to responsibly engage

carpediem·2022년 11월 10일
0

Paper Summary

목록 보기
2/3

Kurt Shuster†, Jing Xu†, Mojtaba Komeili†, Da Ju†, Eric Michael Smith, Stephen Roller,Megan Ung, Moya Chen, Kushal Arora+, Joshua Lane, Morteza Behrooz, William Ngan,Spencer Poff, Naman Goyal, Arthur Szlam, Y-Lan Boureau, Melanie Kambadur, Jason Weston

Meta AI + Mila / McGill University

2022년 8월에 아카이빙 된, Meta의 BlenderBot 3 논문이다. 이전 BlenderBot 2.0에 이은 Blenderbot3은 오픈 도메인 대화가 가능한 175B 파라미터를 갖고 있는 대화형 모델이다.

이 모델의 특징은 long-term 메모리를 갖고 인터넷에 접근하여 검색하는데 장점을 갖고 있다는 것이며, 맥길대학교와 메타는 이 논문의 코드와 학습 파라미터를 공개하였다 (facebook/blenderbot-3B · Hugging Face).

연구의 목적은 사람과 계속 상호작용하면서 지속적으로 학습 (continual learning)하는데 있으며, 이를 통해서 기계 (agents)가 이를 배우면서 성능을 향상시켜나가는 데 있다.

아래는 블렌더봇의 실행 flow이다. 본 논문에서 주장하는 Internet, Memory store를 중심으로 질의에 대해서 어떻게 답변할 지 생성하는 과정을 담았다. 온전히 아래 플로우와 동일한 예제는 아니지만 간략하게 아래 플로우에 대해 예제를 들어보면, 이렇다.

만약 한국에 사는 A모씨가 내가좋아하는 가수는 누군줄 알아? 라고 질의를 하였다고 상상해보자. 이 때, 적합한 대답은 1) ‘가수’를 잘 검색해서 정보를 가져오는 것. 2) ‘한국’의 가수라거나, 평소에 팝송을 좋아한다는 정보가 있었다면 ‘팝가수’와 같은 정보가 더 적합한 답변으로써 도움이 될 것이다. 이 때, 2가지 decision 과정을 통해 1)번과 2)번 단계를 선택하게 되며 각 단계는 또 세부 모듈로 이루어져 역할을 수행한다.

BlenderBot3의 module execution flow 이다.

자, 블랜더봇3의 모듈들을 살펴보자.


  • Internet search decision

    • context의 last turn을 통해서 인터넷 검색을 할지 안할지 결정을 내리는 역할을 한다.
    • Generate internet search query
    • context 전체가 주어졌을 때, 인터넷 서치 엔진에 필요한 쿼리를 생성한다.
  • Internet search

    • 이 모듈은 트랜스포머로 실행되는게 아니라 실제 인터넷 서치 엔진을 실행시킨다. 실제로 N개의 문서들을 반환한다. 블랜더봇3의 경우, Mojeek를 이용했다 (https://[www.mojeek.com/](http://www.mojeek.com/)).
  • Generate knowldege response

    • 마지막 응답을 위해서, 찾아온 full context에서 필요한 지식을 생성하는 역할을 한다.
  • Extract relevant entity

    • 마찬가지로 응답을 위해서, 입력에서 필요한 entity를 뽑아내는 역할을 한다.
  • Generate a long-term memory

    • 이모듈의 경우, 발화자의 last context에 대해 요약하여 long-term memory에 저장하는 역할을 한다. 예를 들어서 Yes, it is all true, my cat is black! 이라는 대답을 했다고 하면 I have a black cat 이라는 대답을 생성하도록 요약하고, 이를 memory 에 저장한다. 선택적으로 저장이 가능하다.
  • Long-term memory access decision

    • context의 last turn에 대해서 memory에 저장할 것인지 아닌지 결정한다.
  • Access long-term memory

    • 입력 텍스트 모두와 저장되어있던 memory 일부를 불러와서 적절한 메모리를 반환한다.
  • Generate dialogue response

    • 모든 입력 context과 long-term memory에서 지식을 받아서 마지막 응답을 생성한다.

위 설명을 입력-액션으로 정리하면 아래와 같다.

BlenderBot 3 의 코어는 transformer 아키텍처로 구성되어 있다. 이는 대화형 응답을 위해 시퀀스 태스크들을 적절히 처리하기 위함이다. 논문에 따르면, 블랜더봇3.0 (a.k.a BB3)은 세가지 사이즈로 제공된다. 논문에 따르면 encoder-decoder 구조를 따랐고, 먼저 사전학습을 진행했다고 한다. 여기서 R2C2라는 용어를 쓰는데, 살펴보니 약자다. Reddit, RoBERTa +CC100en 의 줄임말로 RoBERTa에 Reddit 그리고 CC100en 데이터를 추가로 하여 사전학습하였다. (이 형식은 이미 Shuster et al., 2022 가 개발한 것을 따랐음을 이야기한다.)

이 모델을 어떻게 학습시켰는지 다음 포스트에서 자세히 다루려 한다.

profile
Seize the day!

0개의 댓글