0. Abstract
Pretrained LLM은 사실의 지식을 매개변수에 저장하고, downstream NLP 작업에서 미세 조정할 때 SOTA를 얻을 수 있는 것으로 나타났습니다. 그러나 지식에 접근하고 정확하게 조작하는 능력과 의사 결정에 대한 출처를 제공하고 지식을 업데이트하는 것도 아직 해결되지 않았습니다. 언어생성을 위해 Pre-trained model과 non-parametric memory를 결합한 Retrieval-Augmented Generation(RAG)를 제안하고 범용적인 fine-tuning 방법에 대해 제안한다. 광범위하고 지식집약적인 NLP task에서 모델을 평가하고 3개의 Open-domain QA Task에서 seq2seq model 및 task-specific retrieve&extract architecture보다 더 우수한 성능을 보여준다.
Language Generation task의 경우 RAG model이 SOTA를 달성한 seq2seq baseline보다 더 구체적이고 다양하며 사실적인 언어를 생성하는것을 보여준다.
1. Introduction
Pretrained LLM은 데이터로부터 많은 깊은 지식을 학습한다. 이러한 모델은 외부 메모리에 대한 액세스 없이도 학습할 수 있지만, 메모리를 쉽게 확장하거나 수정할 수 없고, 예측에 대한 인사이트를 바로 제공할 수 없으며, hallucination을 일으킬 수 있다. Parametric memory와 non-parametric memory(검색 기반)를 결합한 하이브리드 모델은 지식을 직접 수정 및 확장할 수 있고, 액세스한 지식을 검사하고 해석할 수 있으므로 이러한 문제 중 일부를 해결할 수 있다. 여기에서는 parametric memory와 non-parametric memory를 seq2seq 모델에 도입한다.
RAG(검색 증강 생성)이라고 하는 general-purpose fine-tuning 접근 방식을 통해 pretrained parametric memory 생성 모델에 non-parametric memory를 부여한다. Parametric memory는 pretrained seq2seq transformer고, non-parametric memory는 pretrained neural retriever로 액세스되는 Wikipedia의 고밀도 벡터 인덱스인 RAG 모델을 구축한다. 이러한 구성 요소를 end-to-end로 훈련된 확률론적 모델에 결합한다.
Document retriever는 입력(Query)을 통해 latent document를 제공하고, seq2seq 모델은 latent document와 입력(Query)을 통해 출력을 생성한다. Answer basis 또는 answer token basis를 기준으로 top-k 근사치를 통해 latent variable을 marginalization한다. T5 및 BART와 마찬가지로 RAG는 seq2seq task에서 fine-tuning되기 때문에 sequence genetor와 retriever가 함께 학습된다.
2. Methods
Train
Retriever과 generator를 end-to-end로 훈련하기 위해 retrieved document를 latent variable(잠재 변수)로 취급한다. 생성된 텍스트에 대한 분포를 생성하기 위해 서로 다른 방식으로 latent document를 한계화하는 두 가지 모델을 제안한다.
$(i)$ RAG-Sequence Model : 모델이 동일한 문서를 사용해 각 대상 토큰을 예측
$(ii)$ RAG-Token Model : 각기 다른 문서를 기반으로 각 대상 토큰을 예측
Inference
입력 시퀀스 $x$를 사용해 텍스트 문서 $z$를 검색하고 목표 시퀀스 $y$를 생성할 때, RAG 모델은 추가 맥락로 사용된다. 이 모델은 두 가지 구성 요소를 활용한다.
$(i)$ 쿼리 $x$가 주어진 텍스트 구절에 대해 (top-K 만큼) 분포를 반환하는 매개변수 $η$가 있는 retriever $p_η(z|x)$
$(ii)$ 이전 $i - 1$번째 토큰 $y_{1:i-1}$, 원래 입력 $x$, 검색된 구절 $z$의 문맥을 기반으로 현재 토큰을 생성하는 $θ$로 파라미터화된 generator $p_θ(y_i|x, z, y_{1:i-1})$
2.1 Models
RAG-Sequence Model
동일하게 검색된 문서를 사용하여 target sequence를 생성한다. top-K approximation을 통해 seq2seq probability $p(x∣y)$를 얻기위해 검색된 passage를 marginalized single latent variable로 처리한다.
RAG-Token Model
각 target token에 대해 다른 latent passage를 사용한다. 이를 통해 generator는 답변을 생성할 때 여러 document에서 내용을 선택할 수 있다.
Sequence classification 작업에 사용 시에는, RAG는 target class를 길이 1의 target sequence로 간주한다. 이 경우 RAG-Sequence와 RAG-Token이 동일하다.
2.2 Retriever: DPR
검색 구성요소 $p_\eta(z|x)$는 DPR을 기준으로 하며, DPR은 bi-encoder architecture를 따른다.여기서 $d(z)$는 $BERT_{BASE}$ transformer에 의해 생성된 document의 dense representation이고, $q(x)$는 다른 매개변수를 가진 $BERT_{BASE}$ transformer에 의해 생성된 query representation이다. 가장 높은 prior probability $p_η(z|x)$를 갖는 $k$개의 요소 $z$의 리스트 top K($p_\eta(\cdot|x)$ 를 효율적으로 계산하기 위해 FAISS 라이브러리에서 제공하는 MIPS(Maximum Inner Product Search) index를 사용한다. 학습은 TriviaQA, Natural Question를 통해 답변이 포함된 document를 검색하도록 수행한다.
2.3 Generator: BART
Generator 구성요소 $p_\theta(y_i|x, z, y_{1:i-1})$는 BART의 encoder, decoder를 사용하여 모델링하며 400M parameter를 가진 BART-large를 사용했다. BART를 통해 생성할때 input $x$와 검색된 컨텐츠 $z$를 결합하기 위해 간단하게 [document;question]식으로concatenation한다.
2.4 Training
검색할 document를 감독하지 않고 Retriever와 Generator를 공동으로 학습한다. 입력/출력 쌍 $(x_j, y_j)$가 주어지면 Adam을 통해 $\sum_j -log_p(y_j|x_j)$를 minimize한다. 학습중 document encoder를 업데이트하면 docmuent indexing을 정기적으로 업데이트 해야하므로 비용이 많이 소모된다. 그래서 query encoder와 generator를 fine-tuning하고 document encoder를 고정상태로 유지한다.
저자들은 매 question마다 유사한 K개의 document에 대한 정답 label 없이 훈련을 진행하였고, DPR의 경우 question을 encoding하는 BERT만 gradient를 흘리고 document를 encoding하는 BERT는 학습하지 않았다.
2.5 Decoding
Test 및 decoding 단계에서 RAG-sequence와 RAG-token은 $argmax_y p(y|x)$를 근사하는 다른 방법을 필요로 한다.
RAG-Token
RAG-Token Model은 transition probability를 가진 auto-regressive seq2seq generator로 볼 수 있다.
Decoding 단계에서 $p'_\theta(y_i|x, y_{1:i-1})$를 standard beam decoder를 사용하여 구할 수 있다.
RAG-Sequence
Beam Search
빔 탐색은 모든 가능한 다음 스텝들로 확장하고, $
가 사용자 지정 파라미터 이고, 빔의 숫자 또는 확률 시퀀스에서 병렬 탐색들을 조절가능한 곳에서 가능한 $ 를 유지하려고 한다.그리디 탐색의 경우 빔이 1인 탐색과 같다. 빔의 수는 일반적으로 5 또는 10을 사용하고, 빔이 클수록 타겟 시퀀스가 맞을 확률이 높지만 디코딩 속도가 떨어지게 된다.
주어진 확률 시퀀스와 빔 크기 $
에 대해 빔 탐색을 수행하는 함수를 작성한다.- 각 후보 시퀀스는 가능한한 모든 다음 스텝들에 대해 확장된다.
- 각 후보는 확률을 곱함으로써 점수가 매겨진다.
- 가장 확률이 높은 시퀀스가 선택되고, 다른 모든 후보들은 제거된다.
- 위 절차들을 시퀀스가 끝날때까지 반복한다.
확률을 숫자가 작은데, 작은 숫자끼리 곱하게 되면 매우 작은 숫자가 나오게 되어 언더플로우가 발생한다. 따라서 확률값에 자연로그 값을 취한 후에 곱해준다. 이런 방법은 숫자를 크고 다루기 편하게 유지해준다. 게다가 이 과정은 점수를 최소화 하면서 탐색을 수행한다. 확률의 네거티브 로그가 곱해지고, 이 마지막 수정은 우리가 모든 후보들에 대해 점수에 대해 오름차순으로 분류할 수 있다는 것을 의미하고 그리고 처음
를 가장 높은 확률의 후보자로 선택할 수 있다.(1) Thorough Decoding
확률 $p(y|x)$는 기존의 토큰당 확률로 나뉘지 않으므로 single beam search로는 해결할 수 없다. 대신, 각 문서 $z$에 대해 beam search를 실행하여 $p_\theta(y_i|x, z, y_{1:i-1})$을 사용하여 각 hypothesis에 점수를 매긴다. 이렇게 하면 일련의 hypothesis $y$가 산출되며, 이 중 일부는 모든 문서의 beam에 나타나지 않았을 수도 있다. hypothesis $y$의 확률을 추정하기 위해 hypothesis $y$가 beam에 나타나지 않은 각 문서 $z$에 대해 추가 forward pass를 실행하고 생성기 확률에 $p_\eta(z|x)$를 곱한 다음 beam 전체의 확률을 합산하여 한계값을 구한다.
(2) Fast Decoding
더욱 긴 출력 sequence는 $|y|$가 커질 수 있으므로 많은 forward pass가 필요하다. 보다 효율적인 디코딩을 위해 x, zi에서 빔 탐색 중에 y가 생성되지 않은 경우 $p_\theta(y|x, zi) ≈ 0$으로 근사치를 더 만들 수 있다. 이렇게 하면 후보 세트 Y가 생성된 후 추가적인 포워드 패스를 실행할 필요가 없다.
2.6 요약
(1) 주요 구성 요소
질의 인코더(Query Encoder)
사용자의 질문을 이해하기 위한 언어 모델입니다. 주어진 질문을 벡터 형태로 인코딩합니다.
지식 검색기(Knowledge Retriever)
인코딩된 질문을 바탕으로 외부 지식 베이스에서 관련 정보를 검색합니다. 예를 들어 Wikipedia, 뉴스 기사, 전문 서적 등 방대한 문서 집합에서 질문과 연관된 문단이나 구절을 찾아냅니다.
지식 증강 생성기(Knowledge-Augmented Generator)
검색된 지식을 활용하여 질문에 대한 답변을 생성하는 언어 모델입니다. 기존의 LLM과 유사하지만, 검색된 지식을 추가 입력으로 받아 보다 정확하고 풍부한 답변을 생성할 수 있습니다.
(2) 동작 과정 요약
(i) 사용자의 질문이 주어지면 질의 인코더가 이를 이해하기 쉬운 형태로 변환
(ii) 지식 검색기가 인코딩된 질문을 바탕으로 외부 지식 베이스에서 관련 정보를 검색
(iii) 검색된 지식은 지식 증강 생성기의 입력으로 전달
(iv) 지식 증강 생성기는 검색된 지식을 활용하여 사용자 질문에 대한 답변을 생성
3. Experiments
3.1 Open-domain Question Answering
Open domain QA는 다양한 주제에 대한 대량의 문서 집합으로부터 질문에 대한 답을 해주는(문서를 기반으로 정답을 생성할 수도 있고, 문서 집합에서 정답을 추출할 수도 있기 때문)이다. 저자들은 retrieval과 extractive system에만 의존하는 non-parametric model과 외부 정보 없이 parameter에만 의존해 정답을 생성하는 pure parametric model과의 비교 실험을 진행했다. 총 4개의 데이터셋에 대해서 실험을 진행했다. 거의 대부분 SOTA가 나왔다.
저자들의 방법이 추출된 document들에 질문에 대한 힌트는 있지만 말그대로의 정답 (=verbatim)은 없는 경우에는 retrieve된 여러 문서들과 질문을 기반으로 답변을 생성하는 RAG가 상대적으로 좋은 성능을 보였다.
3.2 Abstractive Question Answering
위의 open domain 문제는 extract 기반의 정답 생성 모델이기에 저자들은 free form 형태의 QA로 RAG의 성능을 측정하고자 했다. MSMARCO NLG task v2.1를 활용하였는데, 이 문제는 Question과 Question을 검색 엔진에 검색했을 때 나오는 10개의 golden passage, 그리고 이를 바탕으로 생성한 full sentence answer로 구성되어 있다. 저자들은 golden passage를 활용하지 않았는데, 이럴 경우 자신들이 활용하는 DB인 위키피디아만으로는 question에 대한 정확한 답을 추출할 수 없는 문제도 있기에 이때 RAG의 parametric한 모델에 성능을 기대한다고 글을 작성하였다. 실제로 실험 결과, golden passage에 의존하지 않는 RAG가 SOTA를 달성했다.
3.3 Jeopardy Question Generation
Jeopardy Quesion Generation은 주어진 정답 entity를 가지고 그 정답에 상응하는 질문을 만드는 문제입니다. 예를 들어,
- Answer - "The World Cup"
- Question - "In 1986 Mexico scored as the first country to host this international sports competition twice."
의 Pair에서 Question을 생성해야 함으로 굉장히 까다로운 문제이다. 저자들은 matching entity에 더 높은 가중치를 주어 BLEU보다 Question Generation에서 인간과의 더 높은 상관관계를 보이는 측정지표인 Q-BLEU-1과 인간을 통해 Faculty(실제 외부 사실을 바탕으로 생성된 질문이 사실인지를 평가)와 Specificity(Answer와 생성된 Question간의 상호 의존성을 평가)를 평가했다.
3.4 Fact Verfication
Fever라는 데이터셋은 자연어 claim에 대해서 위키피디아에서 적절한 문서를 가져와 해당 claim이 supported되는지, refuted되는지, 아니면 위키피디아에 충분한 정보가 없는지 판별하는 문제이다. 이 문제는 상당한 수준의 기계추론을 요구한다. 왜냐하면 1) claim에 대응하는 적절한 문서를 위키피디아에서 retrieve 해야 하고, 2) retrieve된 문서를 바탕으로 정확하게 claim에 대한 추론을 해야하기 때문이다. 저자들은 real-world에서는 어떤 claim이 주어졌을때 어떤 문서가 이와 관련 있는지에 대한 정보가 없기 때문에 retrieve 문서에 대한 supervise learning은 진행하지 않고, 학습을 진행했다. SOTA모델들은 FEVER을 위해 특화된 구조를 가지고 있지만, RAG는 범용성 높은 구조로 괄목할만한 성능을 보여주었습다.
4. Additional Results
Retrieval Ablations
저자들은 RAG가 가진 neural retrieval mechanism이 아닌, overlap 기반의 BM25 retrieval, freezed neural retrieval로 ab test를 진행하였습니다.
Fever의 경우, 특정 entity가 claim을 평가하는데 중요한 역할을 하여 overlap 기반의 retrieval이 성능이 높았지만 open domian QA의 경우 학습하는 neural retrieval의 성능이 높은 것을 확인할 수 있다.
Effect of Retrieving more documents
AB test를 통해 항상 더 많은 document들을 retrieve할수록 성능이 향상되지 않음을 보였다