Background
소속: Facebook AI Research, University College London, New York University
출판: NeurIPS2020
Abstract & 1 Introduction
LLM은 NLP 분야에서 뛰어난 성능을 달성했다. 하지만 지식에 접근하고 다루는 능력은 제한적이며, knowledge-intensive task에서는 task-specific architecture에 비해 성능이 뒤떨어지며 몇 가지 단점이 존재한다.
- 이미 학습된 지식을 확장하거나 수정할 수 없음
- 생성된 문장에 대한 근거를 제시할 수 없음
- hallucinations을 생성할 수 있음
RAG를 활용하면 1. 학습된 지식을 확장하거나 수정할 수 있으며 2. 생성된 문장을 검사하고 해석할 수 있다.
본 논문에서는 language generation을 위해 pre-trained model과 non-parametric memory를 결합하는 모델인 retrieval-augmented generation(RAG)를 위한 fine-tuning 방법을 탐구한다. 본 논문에서는 pre-trained model으로 BART를, pre-trained neural retriever로 Dense Passage Retriever를 채택하며, non-parametric memory를 구성하기 위해 Wikipedia를 기반으로 dense vector index를 구성한다. 또한 두 개의 RAG formulation을 비교한다.
- RAG-Sequence: a per-output basis, 전체 문장 생성을 위해 같은 문서들을 참고함
- RAG-Token: a per-token basis, 문장을 구성하는 단어를 생성할 때마다, 다른 문서를 다시 찾아 사용할 수 있음
- retriever: 가장 유사한 벡터에 해당하는 문서들. 기본적으로는 "가져오는 사람" 또는 "가져오는 것"이라는 뜻
- neural retriever: 문서 검색(task)에서 사용자의 질문(쿼리)에 가장 관련 있는 문서나 문장을 찾기 위해 신경망(딥러닝 모델)을 사용하는 검색기. 전통적인 키워드 기반 검색(TF-IDF, BM25 등)과는 다르게, 문장이나 문서의 의미(semantic meaning)를 벡터로 바꿔서 비교.
본 논문의 연구 결과는 knowledge-intensive task에서 parametric과 non-parametric memory 결합하여 문장을 생성할 때의 이점을 알려준다. 또한 실험적으로 RAG가 pre-trained model만 사용할 때보다 다양하고 구체적이며 사실적인 언어를 생성하는 것으로 나타났다. 마지막으로 non-parametric memory를 교체함으로써 세계의 변화에 따라 모델의 지식을 업데이트할 수 있다는 것을 보여준다.
2 Methods

우리 모델은 두 부분으로 구성된다.
- a retriever $p_\eta(z \mid x)$: query $x$가 주어졌을 때 text passages $z$ 중 top-K를 반환함.
- a generator $p_\theta(y_i \mid x, z, y_{1:i-1} )$: 기존의 context $y_{1:i-1}$와 original input $x$, retrieved passage $z$가 주어지면 current token $y_i$를 생성함.
retrever과 generator를 end-to-end로 훈련하기 위해 retrieved document $z$를 latent variable로 다룬다.
treating $z$ as a latent variable
- 고정된 값(관측가능 값)x, 노이즈x, 학습 가능한 파라미터x
- 모델이 샘플링하거나 추론해야 하는 숨겨진 변수o
2.1 Models
RAG-Sequence Model
이 모델에서는 retrieved document $z$를 single latent variable이. 구체적으로 retriever를 통해 K개의 문서를 검색하고, generator는 출력 토큰에 대한 각 문서의 확률을 예측한다.
$$ p_{\text{RAG-Sequence}}(y \mid x) \approx \sum_{z \in \text{top-k}( p( \cdot \mid x))} p_{\eta}(z \mid x) p_{\theta}(y \mid x,z) = \sum_{z \in \text{top-k}( p( \cdot \mid x))} p_{\eta}(z \mid x) \prod_{i}^{N} p_{\theta}(y_i \mid x, z, y_{1:i-1})$$
- $ p_{\text{RAG-Sequence}}(y \mid x) $: $x$가 주어졌을 때 $y$가 생성될 확률
- $ p_{\eta}(z \mid x) $: 입력 $x$에 대해 문서 $z$가 선택될 확률
- $ p_{\theta}(y \mid x,z) $: 특정 문서 $z$를 참조했을 때, $x$로부터 $y$가 생성될 확률
- $ \prod_{i}^{N} p_{\theta}(y_i \mid x, z, y_{1:i-1}) $: 생성된 문장 $y$는 토큰 $y_i$으로 구성되고, 문장은 한 토큰씩 autoregressive하게 생성됨.
🧠 직관:
- 모델이 하나의 문서 $z$를 골라서,
- 그 문서 하나를 기반으로 전체 문장 $y_{1} \sim y_{N}$을 만들어냄.
- 이걸 문서별로 반복하고, 전체 결과를 확률적으로 가중합.
📦 비유:
"하나의 문서를 고르고, 그 문서 하나만 참고해서 끝까지 문장을 쭉 쓰는 것"
RAG-Token Model
이 모델은 각 토큰에 따라 서로 다른 latent variable $z$를 가지게 된다. generator는 문장을 생성할 때 여러 개의 문서를 선택할 수 있다. 구체적으로 retriever를 통해 K개의 문서를 검색하고 generator는 각 문서에 대해 출력 토큰에 대한 각 확률을 생성하고 합산한다. 그리고 다음 출력 토큰을 생성할 때 다시 이 과정을 반복한다.
$$ p_{\text{RAG-Token}} (y \mid x) \approx \prod_{i}^{N} \sum_{z \in \text{top-k} ( p ( \cdot \mid x ))} p_{\eta} (z \mid x) p_{\theta} (y_i \mid x, z, y_{1:i-1}) $$
- $ \sum_{z \in \text{top-k} ( p ( \cdot \mid x ))} p_{\eta} (z \mid x) p_{\theta} (y_i \mid x, z, y_{1:i-1}) $: 하나의 토큰이 생성할 확률을 구함
- $ \prod_{i}^{N} \sum_{z \in \text{top-k} ( p ( \cdot \mid x ))} p_{\eta} (z \mid x) p_{\theta} (y_i \mid x, z, y_{1:i-1}) $: 각 토큰이 생성될 확률을 모두 곱하여 전체 시퀀스가 생성될 확률을 구함
🧠 직관:
- 매 토큰 하나하나를 생성할 때마다,
- 여러 문서를 보고, 그 중에서 가장 적절한 문서들을 종합해서 다음 단어를 결정함.
📦 비유:
"매 단어를 쓸 때마다 여러 문서를 다시 뒤져보며, 가장 적합한 걸 섞어가며 쓰는 것"
2.2 Retriever: DPR & 2.3 Generator: BART
DPR
$$ p_{\eta}(z \mid x) \propto \exp( \mathbf{d}(z)^\top \mathbf{q}(x) ) $$
$$ \mathbf{d}(z) = \text{BERT}_d(z), \mathbf{q}(x) = \text{BERT}_q(x)$$
- $\mathbf{d}(z)^\top \mathbf{q}(x)$: 두 벡터의 내적. 문서와 쿼리의 유사도 점수. 내적이 클수록 두 벡터는 방향이 비슷하고 벡터의 크기가 크다는 의미
- $ \exp( \mathbf{d}(z)^\top \mathbf{q}(x) ) $: 점수를 양수로 만들고 차이를 강조함
BART
encoder-decoder 구조의 생성형 모델. BART를 통해 생성할 때 쿼리 $x$와 문서 $z$를 concatenation해서 사용한다.
2.4 Training
우리는 어떤 문서를 찾아야하는지에 대한 직접적인 지시없이 retriever과 generator를 공동으로 훈련한다. input과 output 쌍이 주어지면 input이 주어졌을 때 output을 예측하도록 fine-tuning 훈련을 수행한다. document encoder $BERT_{d}$를 업데이트하면 비용이 많이 들고 성능 향상을 위해 필요하지 않기 때문에, document encoder는 고정하고 query encoder $BERT_{q}$와 BART generator만 fine-tuning한다.
2.5 Decoding
RAG-Sequence
run beam search for each document $z$, scoring each hypothesis using $p_{\theta}(y_i \mid x, z, y_{1:i-1})$.
각 문서마다 각 토큰에서 가장 큰 확률의 단어를 선택해서 문장 생성
RAG-Token
a standard beam decoder, 각 토큰마다 가장 큰 확률의 단어를 선택해서 문장 생성
3 Experiments
- Wikipedia dump, December 2018 dump 사용
- Wikipedia article is split into disjoint 100-word chunks
- build a single MIPS index using FAISS [23] with a Hierarchical Navigable Small World approximation for fast retrieval [37].
- retrieve the top k documents for each query. $k \in \{5, 10\}$
3.1 Open-domain Question Answering
treat questions and answers as input-output text pairs $(x, y)$
3.2 Abstractive Question Answering
go beyond simple extractive QA and answer questions with free-form, abstractive text generation. The task consists of questions, ten gold passages retrieved from a search engine for each question, and a full sentence answer annotated from the retrieved passages. We do not use the supplied passages, only the questions and answers.
3.3 Jeopardy Question Generation
the more demanding task of generating Jeopardy questions. Jeopardy is an unusual format that consists of trying to guess an entity from a fact about that entity.
- Standard QA tasks: 질문"멕시코가 최초로 두 번 개최한 국제 스포츠 대회가 무엇인가?", 답변"월드컵"
- Jeopardy QA tasks: 질문 "월드컵", 답변 " 멕시코는 이 국제 스포츠 대회를 두 번 개최한 최초의 국가로 기록되었다"
3.4 Fact Verification
자연어 주장이 위키백과에 의해 지지 또는 반박되는지 또는 판단하기에 충분한 정보가 없는지를 분류해야 합니다. 이 작업을 수행하려면 위키백과에서 해당 주장과 관련된 증거를 검색한 다음 이 증거를 추론하여 해당 주장이 사실인지, 거짓인지 또는 위키백과만으로는 검증할 수 없는지를 분류해야 합니다. FEVER 클래스 레이블(지원, 반박 또는 정보 부족)을 단일 출력 토큰에 매핑하고 클레임 클래스 쌍으로 직접 훈련합니다.
4 Results
4.1 Open-domain Question Answering
RAG가 가장 좋은 성능을 보여줌. re-rank documents와 extractive model기반의 DPR과 비교해봤을 때 우수한 성능을 보여줌. RAG를 사용하면 re-rank documents와 extractive reader가 필요하지 않음. 정답에 대한 단서가 있지만 정답을 그대로 담고 있지 않은 문서도 정답을 생성하는 데 기여할 수 있음. 검색된 문서에 정답이 없는 경우에도 정답을 생성할 수 있으며, extractive model 에서는 0%의 점수를 받을 수 있는 NQ의 경우 11.8%의 정확도를 달성할 수 있습니다.

re-rank documents: 참고할 문서를 연관된 순으로 순서를 재구성함
Extractive Model:문서에서 그대로 답을 발췌하는 방식의 QA 모델. 문서에 정답이 없으면 답을 못 함.
4.2 Abstractive Question Answering
BART보다 우수한 성능을 가짐. 또한 gold passages에 접근하여 답변을 생성할 수 있는 SOTA 모델과 비교했을 때 근접한 성능이 인상적임(Table 2). BART보다 hallucination이 적고 더 정확하고 다양한 답변을 할 수 있음(Table 3).
4.3 Jeopardy Question Generation
BART보다 우수한 성능을 가짐(Table 2). Evaluators indicated that BART was more factual than RAG in only 7.1% of cases, while RAG was more factual in 42.7% of cases, and both RAG and BART were factual in a further 17% of cases, clearly demonstrating the effectiveness of RAG on the task over a state-of-the-art generation model. 제퍼디 문제는 종종 두 개의 개별 정보를 포함하는 경우가 많은데, RAG-Token은 여러 문서의 콘텐츠를 결합한 답변을 생성할 수 있기 때문에 가장 좋은 성능을 발휘할 수 있습니다.


6 Discussion
We showed that our RAG models obtain state of the art results on open-domain QA. We found that people prefer RAG’s generation over purely parametric BART, finding RAG more factual and specific.
