AI/NLP
[BlenderBot 2.0] Internet-Augmented Dialogue Generation 논문 리딩
체봄
2022. 3. 24. 17:52
논문 링크: https://arxiv.org/abs/2107.07566
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
인터넷으로부터 웹페이지에 접근하기 위한 방법
- FAISS 기반 방법: FAISS 데이터베이스에 저장된 캐싱된 페이지 집합을 사용
- 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 방식으로 학습된 두 가지 구성요소로 이루어진 접근법
- neural-in-the-loop retrieval 시스템
- 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 기반 방법의 한계점
- 웹 문서를 실시간으로 업데이트하기 어려움
- 로컬 FAISS 배포환경에 저장할 수 있는 문서 수의 제한
- 인터넷 검색 엔진에서 오랜 시간동안 미세하게 조정된 고품질 순위를 활용하지 못함
- 두 가지 구성 요소로 이루어짐
- 검색 query 생성기
- 인코더-디코더 Transformer
- 대화 context를 입력으로 받아 검색 query 생성
- 검색 query를 검색 엔진 API에 입력으로 주면, N개의 문서가 반환됨
- FiD 스타일 인코더-디코더 모델
- 각각의 문서를 인코딩
- 인코딩된 문서들을 대화 context 인코딩 값에 concatenate
- 응답 생성
- Method로 기존 FiD 방식과 FiD-Gold 방식을 시도
- 검색 query 생성기
- 검색 엔진
- 블랙 박스
- 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 상승
반응형