AI/NLP

[BlenderBot 2.0] Internet-Augmented Dialogue Generation 논문 리딩

체봄 2022. 3. 24. 17:52

논문 링크: https://arxiv.org/abs/2107.07566

 

Internet-Augmented Dialogue Generation

The largest store of continually updating knowledge on our planet can be accessed via internet search. In this work we study giving access to this information to conversational agents. Large language models, even though they store an impressive amount of k

arxiv.org

 

 

Abstract

 

기존의 문제점

  • 대화 응답을 생성할 때, 사실을 환각(hallucinate)하는 경향이 있음 (사실이 아닌 것을 사실인냥 말한다)
  • 지식이 모델 학습 시점에서 멈춰 있다 (최신 지식을 반영하지 못한다)

 

제안 방법

  • context를 기반으로 해서 검색 query를 생성
  • 생성한 query를 인터넷에 검색한 결과를 응답 생성 시에 반영한다

 

결과

  • search-query 기반 인터넷 접근 방식이 엄청난 성능 향상을 주었다

 


 

1 Introduction

 

오픈 도메인 대화를 위해서는 대규모의 언어 모델을 사용한다.

  • 오픈 도메인 : 특정 주제가 정해져 있는 것이 아닌 모든 주제를 일컫음

 

문제점

1.  기존의 방식들은 정적인 언어모델링이기 때문에 매 순간 새로운 정보가 생겨나는 동적인 현실 세계를 반영하지 못함.

  • 모델 학습 시점 이전에 수집된 데이터셋을 이용하여, 학습을 한 이후에는 데이터셋이 업데이트될 수 없으므로 정적(static) 또는 frozen 되었다고 한다

2.  정적인 언어모델은 사실을 환각(hallucinate)하곤 한다

 

제안 방법

인터넷의 방대한 지식에 동적으로 접근할 수 있는 생성 모델

  • 인코더-디코더 구조를 활용
  • 대화 context가 주어지면 검색 query 생성
  • 검색 query를 이용해 관련 지식을 retrieve함
  • retrieve된 관련 지식은 Fusion-in-Decoder 방법으로 인코딩된 대화 히스토리의 앞 부분에 추가됨
  • 이렇게 인코딩된 지식을 고려하여 decoder에서 응답 생성

장점

  • 인터넷에 접근 가능하므로 모델이 항상 최신 상태를 유지할 수 있음

 

데이터셋

  • 인간-인간 대화와 관련된 크라우드소싱 영어 데이터셋을 수집함
  • 작업자 중 한명이 지식 기반 응답 생성을 위해 인터넷 검색을 수행하는 "wizard" 역할을 수행

 


 

3 Internet-Augmented Generation

 

인터넷으로부터 웹페이지에 접근하기 위한 방법

  1. FAISS 기반 방법: FAISS 데이터베이스에 저장된 캐싱된 페이지 집합을 사용
  2. Internet Search Engine을 이용해 직접적으로 페이지를 가져옴

 

3.1 FAISS 기반 방법

  • FAISS 데이터베이스에 Common Crawl 덤프를 저장하여 사용
  • retrieval 시스템은 사전학습된 DPR(Dense Passage Retrieval) 모델을 사용
  • DPR은 Transformer 기반 모델
  • DPR은 document-context 쌍에 대해 일치에 따라 점수를 매긴다
  • base DPR 모델이 QA 데이터쌍으로 사전학습된, bi-encoder를 사용해 점수를 매김
  • document(=webpage)는 DPR에 의해 dense vector로 인코딩되며 이는 FAISS 인덱스에 저장됨
  • 대화 context도 DPR에 의해 dense vector로 인코딩됨
  • FAISS approximate nearest-neighbor lookup이 수행되어 관련도 상위 N개의 document들이 반환됨

이 검색 메커니즘을 다양하게 활용하기 위해 여러 neural method를 고려

 

RAG (Retrieval Augmented Generation)

end-to-end 방식으로 학습된 두 가지 구성요소로 이루어진 접근법

  1. neural-in-the-loop retrieval 시스템
  2. retrieval 결과에 따라 최종 응답을 생성하는 인코더-디코더
  • end-to-end 방식: 입력부터 출력까지 통째로 하나의 네트워크로 이루어진 방식 (세분화되어 있지 않은 방식)

 

  • DPR에 의해 반환된 관련도 상위 N개의 document들 각각이 차례로 각 토큰의 context에 따라 인코딩됨
  • 역전파 학습 동안 DPR context 인코더는 FAISS retrieval을 잘 수행하도록 조정됨
  • document 인코딩은 고정된 상태로 유지

검색(retrieval)과 생성을 함께 최적화하여 결과를 개선

 

FiD (Fusion in Decoder)

  • FAISS가 있는 DPR로 반환된 관련도 상위 N개의 문서 각각이 context 앞에 추가됨
  • 각각은 인코더에 의해 인코딩된 후 모든 결과가 concat됨
  • 인코딩된 값들을 디코더가 처리하여 최종 응답 생성

RAG보다 간단하지만 경우에 따라 성능이 더 우수

 

FiD-RAG

  • FiD는 retriever에서 end-to-end 학습을 하지 않기 때문에 사전학습이 잘 되는 것에 전적으로 의존한다는 한계가 있음
    • RAG는 생성을 위한 retrieval을 조정한다는 점에서 대조됨
  • RAG 셋업으로 retriever를 학습시킨 다음, FiD에서 이 retriever를 사용하도록 하는 방식

 

FAISS + 검색 query 기반 retrieval

  • 그냥 context를 dense vector로 인코딩하지 않고, 인코더-디코더를 사용하여 주어진 context에 대한 검색 query를 생성
  • 검색 query를 DPR에 입력으로 넣어 dense vector로 만듦
  • 이 검색 query 벡터는 FAISS에서 관련 있는 문서와 매칭된다
  • 이 문서는 최종 응답을 생성하는 인코더-디코더에 사용될 수 있다

 

3.2 Search Engine-Augmented Generation (SEA)

  • FAISS 기반 방법의 한계점
    1. 웹 문서를 실시간으로 업데이트하기 어려움
    2. 로컬 FAISS 배포환경에 저장할 수 있는 문서 수의 제한
    3. 인터넷 검색 엔진에서 오랜 시간동안 미세하게 조정된 고품질 순위를 활용하지 못함
  • 두 가지 구성 요소로 이루어짐
    1. 검색 query 생성기
      • 인코더-디코더 Transformer
      • 대화 context를 입력으로 받아 검색 query 생성
      • 검색 query를 검색 엔진 API에 입력으로 주면, N개의 문서가 반환됨
    2. FiD 스타일 인코더-디코더 모델
      • 각각의 문서를 인코딩
      • 인코딩된 문서들을 대화 context 인코딩 값에 concatenate
      • 응답 생성
      • Method로 기존 FiD 방식과 FiD-Gold 방식을 시도
  • 검색 엔진
    • 블랙 박스
    • Bing 검색 API를 이용해 각 검색 query에 대한 URL들을 가져옴
    • Common Crawl 스냅샷을 위해 구축해둔 lookup 테이블로부터 URL의 페이지 내용을 찾기 위해 URL을 key로 사용

 

3.3 Knowledge Response 정규화

  • 큰 언어모델에서는 가중치에서 기억된 지식과 검색된 문서의 지식 중 선택하는 데에 어려움이 있다
  • 이를 제어하기 위해, 정규화 방법을 제안
  • 원래의 응답 생성 태스크와 새로운 태스크(사람이 표시한 검색된 문서에서의 지식을 생성해내는 일)를 멀티태스킹
  • 그런 다음 두 태스크의 혼합된 파라미터를 변경함으로써 검색된 문서의 지식을 선택하는 것을 권장할지를 제어

 


 

4  Wizard of Internet 태스크

 

  • 검색 엔진을 사용할 수 있는 생성 모델을 학습/평가하기 위해 데이터셋을 만듦
  • 한 명은 wizard 역할 - 대화 중에 검색 엔진을 사용할 수 있음
  • 한 명은 apprentice 역할 - 지정된 페르소나(자신의 관심사를 설명하기)를 가짐
  • 목적은 지정된 관심사에 대한 심도 있는 대화를 하는 것

 


 

5 Experiments

 

  • 사전학습된 모델(T5, BART-Large, BlenderBot 변형) 파인튜닝
  • retrieval-augmented 방법에서 N=5개의 문서 반환
  • 디코딩 파라미터
    • beam search size: 3, 최소 seq length: 20, beam blocking: 3-grams
  • 평가 metrics
    • perplexity
    • F1
      • 모델 응답과 (데이터셋에서의) 인간 응답 간의 중복을 측정
    • KF1(Knowledge F1)
      • 모델 응답과 (데이터셋에서의) 인간이 기반으로 하는 지식(=검색된 웹 문서에서 관련있다고 선택한 문장) 간의 중복을 측정
    • 인간 평가
  • 결과
    • 크기가 더 큰 모델이 모든 metric에서 우수
    • BART-Large, T5Large는 BlenderBot보다 더 많은 데이터로 훈련되었기 때문에 같은 크기의 모델에서 F1, KF1 우수
    • 대화 context만 주어진 경우("no knowledge")보다 대화 context와 gold knowledge가 모두 주어진 경우 명백하게 성능 상승
      • gold knowledge: 인간이 응답 작성에 필요하다고 레이블링한 지식
    • 검색 엔진 기반 모델의 성능 > DPR + FAISS 기반 모델의 성능 > 검색 query + FAISS 기반 모델의 성능
    • Knowledge Response 정규화 => F1은 약간 손실됐지만 KF1 상승

 

 

반응형