[Paper Review] Retrieval-Augmented Generation for Knowledge-Intensive NLP Tasks(RAG) 리뷰
Introduction
Pre-trained Language Model(PLM) 장점
- 상당한 지식 습득
- 외부 메모리 접근 없이 지식 풍부
PLM 단점
- Hallucination
- 메모리의 확장 및 수정 불가능
PLM의 단점을 위해 parametric memory + non-parametric memory → Seq2Seq Model을 설계
- Parametric memory (e.g., Logistic Regression, Linear Regression)
- Pre-trained seq2seq transformer
- Non-parametric memory(K-NN, Decision Tree, Random Forest)
- dense vector index of Wikipedia
여기서 Retriever는 Top-K approximation 방법을 사용해 문서를 검색한다.
Methods
Model
- $x$ : Input sequence
- $y$ : target sequence
- $z$ : text document
RAG Model : $x$를 사용하여 $z$를 검색하고, 시퀀스 $y$를 생성할 때 사용하는 RAG 모델에 대한 탐구하며 모델은 두 가지 구성 요소를 활용
- $x$에 대해 텍스트(Top-K)의 분포를 반환하는 매개변수 $η$를 가진 검색기 $p_η(z|x)$
- 원래 입력 $x$와 검색된 구절 $z$, 이전 $i-1$ 토큰 $y_{1:i−1}$의 컨텍스트를 기반으로 현재 토큰을 생성하는 매개변수 $θ$로 매개화된 생성기 $p_θ(y_i|x, z, y_{1:i−1})$
Generator와 Retriever을 훈련(end-to-end)하기 위해 검색된 문서를 잠재 변수 취급하며, 생성된 텍스트에 대해 평가하기 위해 검색된 문서들을 두 가지 방식으로 사용하는 모델을 제안
RAG-Sequence Model
검색된 동일한 문서를 이용하여 전체 Sequence 생성. 검색된 문서를 단일 변수로 취급하고 나머지 문서에 대해 Sequence 예측
$$ p_{\text{RAG-Sequence}}(y|x) \approx \sum_{z \in \text{Top-K}(p(z|x))} p_{\eta}(z|x) p_{\theta}(y|z, x) = \sum_{z \in \text{Top-K}(p(z|x))} p_{\eta}(z|x) \prod_{i} p_{\theta}(y_i|z, x, y_{1:i-1}) $$
RAG-Token
생성되는 토큰마다 문서를 추출함. 이는 Generator가 토큰마다 문서를 다시 검색하고 검색된 문서를 바탕으로 다음 토큰을 예
$$ p_{\text{RAG-Token}}(y|x) \approx \prod_{i} \sum_{z \in \text{Top-K}(p(z|x))} p_{\eta}(z|x) p_{\theta}(y_i|z, x, y_{1:i-1}) $$
Retriever: DPR
Retrieval component $p_η(z|x)$ 는 DPR [26]을 기반으로 하며 bi-encoder 구조
$$ p_{\eta}(z|x) \propto \exp(d(z)^T q(x)) $$
$$d(z) = \text{BERT}{d}(z), \quad q(x) = \text{BERT}{q}(x) $$
- $d(z)$ : $BERT_{BASE}$ (Document Encoder)에 의해 생성된 문서의 Dense representation
- $q(x)$ : $BERT_{BASE}$(Query Encoder)에 의해 생성된 Quary Represenation
Query $x$ 에 대해 가장 높은 사전 확률 $p_η(z|x)$을 가진 $k$개의 문서 $z$ 목록인 top-k$(p_η(·|x))$를 계산하는 것은 최대 내적 검색(Maximum Inner Product Search, MIPS)을 이용(선형 시간내에 대략적 해결)
Generator: BART
Generator Component $p_\theta(y_i|x,z,y_{1:i-1})$는 Encoder-Decoder을 이용하여 모델링
논문에서는 400M 크기의 Pre-trained BART-large 사용
BART input = 입력 $x$와 생성된 문서 $z$를 단순히 연결
Training
- Retriever & Generator은 문서 검색에 대한 Direct supervision없이 Training을 진행.
- 입력/출력 쌍$(x_j, y_j)$으로 구성된 Training Corpus를 사용하여, 각 대상에 대해 $\sum_j - log p(y_j | x_j)$을 최소화하는 방식으로 훈련하며 최적화 기법은 Adam을 사용
- Document Encoder ($BERT_d$) 업데이트를 진행하지 않으며, Query Encoder($BERT_q$)와 Generator($BERT_{large}$)만 Fine-tunning을 진행
Experiments
- $BERT_{BASE}$를 이용한 Document Encoder를 사용해 Wikipedia 기사를 임베딩
- Facebook AI Similarity Search(FAISS)를 사용하여 single Maximum Inner Product Search(MIPS)를 통해 Top-K Document Search 함
Dataset
1. Open-Domain QA
- Natural Question (NQ)
- TriviaQA(TQA)
- WebQuestion(WQ)
- CuratedTrec(CT)
4개의 데이터셋을 이용하여 RAG를 훈련
2. Abstractive QA
https://huggingface.co/datasets/ms_marco
MSMARCO NLG Task v2.1을 사용함.
제공된 사이트를 사용하지 않고 질문과 답변을 할 수 없는 질문이 있으며, 일부 질문은 위키백과만을 사용하여 답변할 수 없습니다
→ RAG는 매개변수의 지식에 의존해 합리적인 응답 생성
3. Jeopardy QG
https://huggingface.co/datasets/search_qa
Jeopardy는 주어진 Entity에 대해 Entity를 추측하는 질문을 생성하는 독특한 데이터셋
e.g.,) “월드컵” ⇒ “1986년 멕시코가 처음으로 이 국제 스포츠 대회를 두 번째로 개최한 나라로 기록되었습니다.”
4. Fact Extraction and VERification(FEVER)
https://huggingface.co/datasets/fever
주장에 대해 반박할 충분한 정보가 있는지 없는지 분류 → 위키백과로 검증 불가능한지 분류
⇒ RAG이 생성이 아닌 분류를 처리할 수 있는 능력이 있는지 테스트
Results
1. Open-Domain QA
RAG = Closed Book + Open Book
→ REALM 및 T5 + SSM과 같이 비용이 많이 드는 Span masking 없이도 강력한 결과 산출
2. Abstractive QA
RAG는 최첨단 모델 성능에 다음과 같은 이유를 바탕으로 우수한 성능을 보여줌
- RAG는 Gold access 없이 좋은 성능을 보여줌
- 많은 질문은 Gold access 없이는 답변하기 어려움
- 모든 질문이 Wikipedia로만 답변 가능한 것이 아님
RAG가 BART보다 Question Generation에서 Hallucination에 강하다.
3. Jeopardy QG
Jeopardy 질문에는 종종 두 개의 별개 정보가 포함되어 있는데, RAG-Token이 여러 문서의 내용을 결합한 응답을 생성할 수 있기 때문에 가장 잘 수행될 수 있다.
4. Fact Verification
3-way 분류에서, RAG 점수는 domain-specific Architecture 및 substantial engineering, trained using intermediate retrieval supervision 과 약 4.3% 범위 내의 최첨단 모델과 일치합니다.(RAG는 다음과 같은 복잡한 과정 X)