Retrieval-Augmented Generation for Knowledge-Intensive NLP Tasks (Lewis et al., 2020)
👉🏻 Retrieval Augmented Generation(RAG) by Facebook AI Research
본 논문은 사전 학습된 대규모 언어 모델(Parametric Memory)의 한계를 보완하기 위해, 외부의 방대한 지식 소스(Non-parametric Memory)에서 정보를 검색(Retrieve)하여 이를 기반으로 답변을 생성(Generate)하는 RAG (Retrieval-Augmented Generation)
프레임워크를 제안한다.
대규모 언어 모델(LLM)은 파라미터 내에 방대한 사실적 지식을 저장하지만, 다음과 같은 본질적인 한계를 가진다.
RAG는 이러한 문제들을 해결하기 위해 LLM의 내부 지식과 외부의 명시적인 지식을 결합하는 하이브리드 접근법을 제시한다.
RAG는 Retriever
와 Generator
두 가지 핵심 요소로 구성된다.
Retriever (검색기): DPR (Dense Passage Retrieval) 모델을 사용하여, 주어진 입력(Query)과 가장 관련성이 높은 K개의 문서를 외부 지식 소스(본 논문에서는 Wikipedia index)에서 검색한다. 이 외부 지식 소스가 Non-parametric Memory에 해당한다.
Generator (생성기): BART와 같은 사전 학습된 Seq2Seq 모델을 사용하여, 원본 입력과 Retriever가 검색한 문서를 함께 입력받아 최종 텍스트를 생성한다. 이 생성 모델의 가중치가 Parametric Memory 역할을 한다.
본 논문은 다음과 같이 두 가지 RAG 모델을 제안한다.
RAG-Sequence
: 하나의 답변 시퀀스 전체를 생성할 때 동일한 검색 문서를 참조한다.RAG-Token
: 답변의 각 토큰을 생성할 때마다 서로 다른 문서를 참조할 수 있어, 여러 문서의 정보를 종합하는 데 더 유리하다.이 두 구성 요소는 검색할 정답 문서에 대한 명시적인 레이블 없이, 최종 출력에 대한 손실 값을 역전파하여 End-to-End 방식으로 함께 학습된다.
본 논문은 다양한 지식 집약적 NLP 태스크에서 RAG의 성능을 평가했다.
기존 사전 학습 언어 모델의 한계
사전 학습된 신경망 언어 모델은 방대한 양의 지식을 파라미터 안에 암시적(implicit)으로 저장할 수 있다.
그러나 이러한 모델들은 저장된 지식을 쉽게 확장하거나 수정하기 어렵고, 예측의 근거를 명확히 제시하지 못하며, 사실과 다른 내용을 생성하는 환각(hallucinations)
현상을 보일 수 있다는 단점이 있다.
하이브리드 모델의 필요성
이러한 한계를 극복하기 위해 모델의 파라미터(parametric memory)와 외부 검색 기반의 비-파라미터 메모리(non-parametric memory)를 결합한 하이브리드 모델이 제안되었다.
비-파라미터 메모리를 활용하면 지식을 직접 수정 및 확장할 수 있고, 모델이 어떤 정보에 접근했는지 확인하고 해석할 수 있어 투명성이 높아진다.
REALM, ORQA와 같은 기존 연구들은 이러한 접근법의 가능성을 보여주었지만, 주로 추출형 질의응답(extractive question answering) 태스크에 국한되었다.
RAG (Retrieval-Augmented Generation) 모델 제안
본 논문은 Seq2Seq 모델에 검색 기반의 비-파라미터 메모리를 결합하는 범용적인 파인튜닝 방법론인 RAG(retrieval-augmented generation)를 제안한다.
RAG는 사전 학습된 Seq2Seq 모델(BART)을 파라미터 메모리로, 위키피디아의 밀집 벡터 인덱스(dense vector index)를 비-파라미터 메모리로 사용하며, 사전 학습된 신경망 검색기(neural retriever)를 통해 이 메모리에 접근한다.
RAG의 주요 장점 및 기여
RAG는 지식 집약적인(knowledge-intensive) 태스크에서 뛰어난 성능을 보인다. 특히 3개의 공개 도메인 QA 태스크에서 SOTA(최고 성능)를 달성했다.
언어 생성 태스크에서는 기존의 파라미터 기반 모델보다 더 구체적이고, 다양하며, 사실에 기반한(specific, diverse and factual) 언어를 생성한다.
외부 지식 소스에 접근하므로, 사람이 외부 지식 없이는 수행하기 어려운 태스크 해결에 큰 이점을 제공한다.
RAG는 입력 시퀀스()를 사용하여 텍스트 문서()를 검색하고, 이를 추가적인 맥락(context)으로 활용하여 타겟 시퀀스()를 생성하는 모델이다.
여기서 핵심은 검색된 문서()를 직접 관찰할 수 없는 잠재 변수(latent variable)로 취급하고, 이 변수를 추론 과정에서 소거(marginalize)하는 확률적 접근 방식을 사용한다는 점이다.
이 모델은 하나의 동일한 문서()를 사용하여 전체 답변 시퀀스()를 생성한다고 가정한다.
먼저 Retriever 를 이용해 상위 개의 관련 문서를 검색한다.
이후 Generator 는 각 문서()에 대해 전체 시퀀스()가 생성될 확률을 계산한다.
최종적으로 이 확률들을 각 문서의 검색 확률과 곱한 뒤 모두 더하여(marginalize), 최종 시퀀스 확률 를 구한다.
수식은 다음과 같다:
이 모델은 답변의 각 토큰()을 생성할 때마다 다른 문서()를 참조할 수 있다고 가정하여 유연성을 높였다.
RAG-Sequence와 같이 상위 개의 문서를 먼저 검색한다.
각 생성 단계()마다, Generator는 개의 각 문서에 대해 다음 토큰()이 나올 확률 분포를 계산한다.
이 분포들을 모든 문서에 대해 가중합(marginalize)하여 현재 단계의 최종 토큰 확률 분포를 얻고, 이 과정을 답변이 끝날 때까지 반복한다.
수식은 다음과 같다:
Retriever: DPR (Dense Passage Retrieval)
구조: 검색기 는 DPR에 기반한 Bi-encoder 아키텍처를 사용한다. 이는 문서 인코더()와 쿼리 인코더() 두 개의 독립된 BERT 모델로 구성된다.
검색 방식: 문서와 쿼리의 임베딩 벡터 간의 내적(inner product) 값이 가장 큰 상위 K개의 문서를 찾는다. 이는 MIPS (Maximum Inner Product Search)
문제에 해당하며, FAISS와 같은 라이브러리를 통해 효율적으로 근사치를 계산할 수 있다.
초기화: 본 논문에서는 TriviaQA와 Natural Questions 데이터셋으로 사전 학습된 DPR의 Bi-encoder를 가져와 Retriever를 초기화하고, 문서 인덱스를 구축한다. 이 문서 인덱스가 non-parametric memory 역할을 한다.
Generator: BART
모델: 생성기 는 400M개의 파라미터를 가진 사전 학습된 Seq2Seq Transformer 모델인 BART-large를 사용한다. BART의 파라미터는 parametric memory에 해당한다.
입력 방식: 검색된 내용()과 원본 입력()을 결합하기 위해, 두 텍스트를 단순히 이어붙여(concatenate) BART의 입력으로 제공한다.
학습 (Training)
목표: Retriever와 Generator는 End-to-End 방식으로 함께 학습된다. 학습 목표는 각 데이터 에 대해 음의 주변 로그 우도(negative marginal log-likelihood)를 최소화하는 것이다.
업데이트 방식: 학습 과정 전체에서 문서 인코더()와 이를 기반으로 구축된 인덱스는 고정시킨다. 오직
쿼리 인코더()와 BART Generator의 파라미터만 업데이트하여 학습 효율성을 높인다. 이는 주기적으로 전체 문서 인덱스를 다시 계산해야 하는 비용을 없애준다.
추론 (Decoding)
RAG-Token
: 각 생성 단계의 확률 분포()가 일반적인 Seq2Seq 모델처럼 계산되므로, 표준 빔 서치(beam decoder)에 직접 적용하여 답변을 생성할 수 있다.
RAG-Sequence
: 전체 시퀀스()에 대해 확률이 계산되므로 일반적인 빔 서치를 한 번에 적용할 수 없다.
대신, 검색된 각 문서()에 대해 개별적으로 빔 서치를 실행하여 여러 후보군()을 생성한다. 이후, 각 후보 답변의 최종 확률을 모든 문서에 대해 계산하고 이를 합산하여 순위를 매긴다. 계산 비용을 줄이기 위해 추가적인 전방 계산(forward pass)을 생략하는 Fast Decoding
방식도 사용한다.
Open-domain Question Answering (QA)
목표: RAG가 정답을 직접 생성하는 방식이 기존의 추출형(extractive) QA나 검색 없이 파라미터 지식에만 의존하는 "Closed-Book" QA 방식과 어떻게 다른지 비교한다.
데이터셋: Natural Questions (NQ), TriviaQA (TQA), WebQuestions (WQ), CuratedTrec (CT)
학습 방식: 질문과 정답을 텍스트 쌍으로 간주하고, 정답의 negative log-likelihood를 직접 최소화하는 방식으로 RAG를 학습시켰다. WQ와 CT 같이 작은 데이터셋의 경우, NQ로 학습된 RAG 모델로 초기화하여 성능을 높였다.
Abstractive Question Answering
목표: RAG가 단순 추출을 넘어 자유로운 형태의 자연어 생성(NLG) 능력을 얼마나 갖추었는지 평가한다.
데이터셋: MSMARCO NLG task v2.1
특이사항: 데이터셋에서 제공하는 정답 관련 "gold passages"를 사용하지 않고, 오직 질문과 정답 쌍만 사용하여 open-domain 환경을 구성했다. 이로 인해 일부 질문은 Wikipedia만으로는 답변이 불가능할 수 있으며, 이런 경우 RAG는 파라미터 지식에 의존해 답변을 생성해야 한다.
Jeopardy Question Generation
목표: QA가 아닌 환경에서 RAG의 지식 집약적 생성 능력을 평가하기 위해, 정답(entity)을 보고 관련된 사실을 담은 질문(Jeopardy-style question)을 생성하는 까다로운 작업을 수행한다.
데이터셋: SearchQA 데이터셋의 분할
평가: 자동 평가로는 BLEU의 변형인 Q-BLEU-1을, 추가적으로 생성물의 사실성(factuality)과 구체성(specificity)을 측정하기 위한 인간 평가를 수행했다.
Fact Verification
목표: 생성(generation)이 아닌 분류(classification) 문제에 대한 RAG의 적용 가능성을 확인한다.
데이터셋: FEVER 데이터셋을 사용하며, 주어진 주장이 Wikipedia에 의해 '지지(supports)', '반박(refutes)', 혹은 '정보 부족(not enough info)'인지를 분류
학습 방식: 각 클래스 레이블을 단일 출력 토큰에 매핑하여 claim-class 쌍으로 직접 학습시켰다. 대부분의 기존 FEVER 연구와 달리, 어떤 증거 문서를 검색해야 하는지에 대한 검색 감독 정보(retrieval supervision)를 전혀 사용하지 않았다.
RAG는 NQ, TQA, WQ, CT 4개 QA 데이터셋 모두에서 새로운 SOTA(State-of-the-Art) 성능을 달성했다.
RAG는 검색 없이 파라미터 지식만 사용하는 "closed-book" 접근법(T5)과, 검색 후 정답을 추출하는 "open-book" 접근법(DPR) 모두를 능가했다.
RAG의 강점은 생성 능력에 있다. 검색된 어떤 문서에도 정답이 문자 그대로 포함되어 있지 않은 경우에도, RAG는 관련된 단서들을 종합하여 정답을 생성해낼 수 있었다.
NQ 데이터셋에서 이런 경우 11.8%의 정확도를 기록했으며, 이는 추출 기반 모델이라면 0%를 기록할 상황이다.
MS-MARCO NLG 태스크에서 RAG-Sequence 모델은 BART보다 Bleu 점수와 Rouge-L 점수 모두 2.6점 높았다.
정성적으로 평가했을 때, RAG 모델은 BART에 비해 환각(hallucinate) 현상이 적고 사실적으로 더 정확한 텍스트를 생성하는 경향을 보였다.
자동 평가 지표인 Q-BLEU-1에서 RAG 모델들이 BART를 능가했다.
인간 평가에서 압도적인 우위를 보였다. 평가자들은 RAG가 BART보다 더 사실적(Factual)이라고 응답한 비율이 42.7%로, 그 반대(7.1%)보다 훨씬 높았다. 또한 더 구체적(Specific)이라는 응답도 37.4%로, 그 반대(16.8%)보다 높았다.
RAG-Token 모델은 여러 문서의 내용을 조합하는 능력이 뛰어났다. 예를 들어 "헤밍웨이"에 대한 질문 생성 시, 한 문서에서 "The Sun Also Rises" 정보를, 다른 문서에서 "A Farewell to Arms" 정보를 가져와 하나의 답변으로 합쳤다. 이는
non-parametric memory(외부 지식)가 parametric memory(내부 지식)에 저장된 특정 지식을 효과적으로 이끌어내는 사례를 보여준다.
FEVER 데이터셋에서 RAG는 검색할 증거에 대한 별도의 감독(supervision) 없이도 복잡한 파이프라인으로 구성된 SOTA 모델의 성능에 근접했다 (3-way 분류에서 4.3% 이내 차이).
RAG가 검색한 문서와 FEVER 데이터셋의 정답 증거(gold evidence) 간의 일치율을 분석한 결과, 상위 10개로 검색된 문서 내에 정답 증거가 포함된 경우가 90%에 달해, 검색 메커니즘이 효과적으로 작동함을 확인했다.
본 논문은 파라미터 메모리와 비-파라미터 메모리를 결합한 하이브리드 생성 모델인 RAG를 제시하고 그 효과를 입증했다.