이 논문은 지식 집약적 NLP 작업을 위한 검색 증강 생성(RAG)에 대해 다루고 있다. RAG모델은 사전 훈련된 파라메트릭 메모리와 비파라메트릭 메모리를 결합하여, 다양한 NLP작업에서 상태-of-the-art 성능을 달정하는 방법을 제시한다. 이연구는 RAG 모델이 기존의 파라메트릭 모델보다 더 정확하고 다양하며 사실적인 언어 생성을 가능하게 한다는 점을 강조한다.
- RAG 모델 개요
- 사전 훈련된 언어 모델의 한계
- 비파라메트릭 메모리와 결합
- 지식 집약적 작업에서의 성능향상
- RAG 모델 구조
- 파라메트릭 메모리: 사전 훈련된 seq2seq 모델
- 비파라메트릭 메모리: wekipedia의 밀집 벡터 인덱스
- 모델비교: RAG-Sequence vs RAG-Token
- 실험 및 결과
- 오픈 도메인 질의 응답 - RAG성능 비교
- 추상적 질문 응답
- 제퍼디 질문 생성
- 사실 검증 : FEVER data set
- 결론 및 향후 연구 방향
- 하이브리드 모델의 장점
- 사회적 영향 : 사실 기반의 생성의 중요성
Abstract
지식 집약적 NLP 작업을 위한 RAG 모델의 혁신
Pre-trained language model은 factual knowledge를 매개변수에 저장하고 downstream NLP task에 대해 fine-tuning을 수행할 때 좋은 결과를 얻는 것으로 나타난다. 그러나 knowledge에 접근하고 정확하게 조작하는 것은 여전히 제한되어 있으므로, knowledge-intensive task에 대해서는 task-specific architecture보다 성능이 떨어진다.
언어생성을 위해서 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
사전 학습된 언어 모델은 데이터에서 상당한 양의 지식을 학습하며, 외부 메모리에 엑세스 하지 않고도 implicit한 parametric mememory로 이를 수행할 수 있다. 이러한 모델들은 메모리를 쉽게 확장하거나 수정할 수 없고 예측에 대한 통찰력을 간단하게 제공할 수 없으며 "Hallucunation"을 유발할 수 있다. parametric memory와 non-parametric(검색기반) memory를 결합하는 하이브리드 모델은 지식을 직접 수정하고 확장할 수 있고 엑세스한 지식을 검사하고 해석할 수 있기 때문에 이러한 문제 중 일부를 해결할 수 있다. 본 논문에서는 이러한 하이브리드 모델을 seq2seq 모델에 적용하였다.
본 논문은 Retrieval-augmented generation (RAG)이라고 하는 범용 Fine-tuning 방법을 통해 사전 학습된 생성 모델에 non-parametric memory를 부여하였다. 저자들은 사전 학습된 seq2seq transformer를 parametric memory로 하고, 사전 학습된 retruever로 엑세스하는 위키피디아의 dense한 벡터 인덱스를 non-parametric memory로 하여 RAG 모델을 구축하였다. 그런 다음 이러한 구성 요소들을 end-to-end로 fine tuning하였다.
Retriever는 입력을 조건으로 latent 문서를 제공하고, seq2seq 모델은 입력과 latent 문서를 조건으로 출력을 생성한다. 저자들은 latenet 문서를 top-K 근사로 marginalize하였다. 이 때, 동일한 문서가 모든 토큰을 담당한다고 가정하면 per-output basisfh marginalize하고, 서로 다른 문서가 서로 다른 토큰을 담당한다고 가정하면 per-token basis로 marginalize 한다. T5나 BART와 마찬가지로 RAG는 모든 seq2seq task에서 fine-tuning할 수 있으며, generator와 retriever가 공동으로 학습된다.
Non-parametric memory를 활용하는 기존 방법들은 특정 task를 위해 처음부터 학습된다. 반면, RAG는 Parametric memory와 non-parametric memory가 모두 사전 학습 되기 때문에 추가 학습 없이도 엑세스 메커니즘을 사용함으로써 지식에 접근 할 수 있다.
RAG는 지식 집약적인 task에서 이점이 있으며, 이러한 task들은 외부 지식 소스에 대한 접근 없이는 합리적으로 수행할 수 없다. RAG모델은 Natural Questions, webQuestions, CuratedTrec에서 SOTA 결과를 달성하였으며, TriviaQA에서 특수한 목적 함수를 사용하는 최근 방법보다 훨씬 우수한 성과를 보였다. 지식 집약적 생성의 경우, MS-MARCO와 Jeopardy Question Generation에서 BART보다 더 사실적이고 구체적이며 다양한 응답을 생성하였다. FEVER사실 검증의 경우, 강력한 supervision을 사용하는 SOTA 모델과 4.3% 이내의 결과를 달성하였다. 마지막으로, 저자들은 non-parametric memory를 대체하여 세상이 변화함에 따라 모델의 지식을 업데이트 할 수 있음을 보여주었다.
2. Methods
이 논문에서 다루는 RAG 모델은 입력 시퀀스 x를 사용해 텍스트 문서 z를 검색한 뒤, 이를 타겟 시퀀스 y를 생성하는 추가적인 문맥으로 활용한다. 이때 모델은 기본적으로 두 가지 주요 구성 요소로 이루어져 있다.
Retriever는 주어진 입력 x로 부터 텍스트의 분포를 반환하는 역할을 하고 generator는 해당 검색된 패시지와 이전 토큰을 바탕으로 새로운 토큰을 생성한다.
이때, 위의 두 모델을 end-to-end 방식으로 학습하기 위해, 검색된 문서를 잠재 변수로 간주하여 훈련한다. 잠재 문서를 처리하는 방식에 따라 두가지 모델이 제안 된다.
1. RAG-Sequence: 동일한 문서를 사용해 모든 타켓 토큰을 예측
2. RAG-Token: 각 타겟 토큰을 예측할 때마다 다른 문서를 사용할 수 있음
두 가지 모델을 혼용함으로써 RAG 모델은 다양한 문서로부터 더 풍부한 정보를 끌어내어 더 정확한 텍스트 생성을 가능하게 함
2.1 Models
RAG-Sequence Model
RAG-Sequence model은 검색된 단일 문서를 사용해 전체 시퀀스를 생성한다. 이 모델은 검색된 문서를 하나의 잠재 변수로 취급하고 이를 통해 seq2seq확률을 계산한다. 구체적으로는 retriever가 상위 K개의 문서를 검색하고 generator가 각 문서에 대해 출력 시퀀스의 확률을 생성한 다음 이를 모두 마지널라이즈(Marginalize) 처리하여 최종 출력을 만듦.
RAG-Token Model
RAG-Token model은 각 타겟 토큰 마다 다른 잠재 문서를 선택할 수 있다. 이 모델은 여러 문서에서 정보를 선택해 답변을 생성할 때 더 다양한 컨텐츠를 반영할 수 있다. 구체적으로 Retriever가 상위 K개의 문서를 검색한 뒤 generator가 각 문서에 대해 다음 출력 토큰의 분포를 생성하고 이를 마지널라이즈 처리한다. 이 과정을 반복하여 각 토큰마다 다른 문서를 참고하면서 시퀀스를 생성한다. 이 방식은 답변 생성시 다양한 문서에서 내용을 참고할 수 있으므로 더 유연한 생성이 가능하게 함.
2.2 Retriever: DPR
Retriever component
2.3 Generator: BART
Generatorpθ(yi|x,z,y1:i−1)는 임의의 인코더-디코더를 사용하여 모델링할 수 있다. 본 논문에서는 사전 학습된 seq2seq transformer 인 BART-large를 사용함. BART에서 생성할 때, 입력 x와 검색된 콘텐츠 z는 간단히 concat되어 결합 된다. BART generator의 파라미터 θ를 parametric memory로 간주되고 입력 x와 검색된 콘텐츠 z를 결합하여 사용함. x와 z는 단순하게 concatenate되어 BART에 입력됨. 이를 통해 BART는 입력과 검색된 문서를 바탕으로 출력 시퀀스를 생성하게 됨.
2.4 Training
RAG 모델에서는 retriever와 generator를 함께 학습하지만, 어떤 문서를 검색해야 하는지에 대한 direct supervision은 없다. 즉, 학습 데이터가 어떤 문서를 검색해야 하는지 명시적으로 알려주지 않고 입력/출력 쌍을 바탕으로 최적의 문서를 자동으로 찾아내도록 학습.
주어진 학습 데이터 셋에는 입력과 출력 쌍(xj,yj)가 포함되어 있다. 모델은 입력 xj를 바탕으로 출력 yj를 생성하는 과정에서 negative marginal log-likehood를 최소화 하도록 학습함. 즉,-logp(yj | xj)를 최소화 하는 것이 목표. 이 최적화를 위해 SGD와 Adam 옵티마이저를 사용
Document emcoder(BERTd)를 학습 과정에서 업데이트하는 것은 매우 비용이 많이 드는 작업이다. 문서 인코더를 업데이트할 때 마다 문서 인덱스도 주기적으로 갱신해야 하기 때문. 이전의 연구에서는 이런한 작업이 필수적이라고 여겼으나 이 논문에서는 이러한 단계가 없어도 된다고 결론 내림. 따라서 RAG 모델에서는 문서 인코더와 문서 인덱스는 고정된 상태로 유지하며 Query encoder(BERTq)와 BART 생성기만 fine-tuning한다. 이를 통해 성능을 유지하면서도 효율적인 학습이 가능.
2.5 Decoding
RAG 모델의 디코딩 과정은 RAG-Token과 RAG-Sequence 모델에 따라 다른 방식을 사용. 이 두자기 모델은 출력 시퀀스를 생성할 때, 각토큰이나 시퀀스에 대해 다르게 처리해야하므로 디코딩 과정도 달라짐.
RAG-Token 모델은 standard한 autoregressive 시퀀스 생성 모델로 간주 될 수 있다. 즉, 각 토큰을 생성할 때 이전 토큰과 검색된 문서를 기반으로 생성 확률을 계산함.
위의 결과를 standard beam decoder에 입력하여 decoding 할 수 있음
RAG-Sequence model에서는 시퀀스 전체의 likelihood를 계산할 때 단일 beam search로 해결할 수 없다. 왜냐하면 이 모델은 각문서 z에 대해 별도로 시퀀스를 생성하기 때문. 각 문서 z에 대한 beam search를 독립적으로 수행한 후 각 문서에서 생성된 가설을 모아 가능성 있는 시퀀스 집합 Y를 생성. 일부 가설은 모든 문서의 beam에서 나타나지 않을 수 있다. 가설 y의 확률을 추정하기 위해 y가 특정 문서의 beam에서 생성되지 않은 경우에는 추가로 forward pass를 수행해 해당 문서에서의 확률을 계산하고 이를 바탕으로 문서별 확률을 곱한 후 모두 더해 최종 확률을 계산함. 이 과정을 Thorough Decoding 이라고 부름.Thorough Decoding은 긴 출력 시퀀스에서 매우 많은 계산을 요구하므로 이를 더 효율적으로 처리하기 위해 fast Decoding이라는 방법을 사용. Fast Decoding에서는 beam search에서 생성되지 않은 시퀀스에 대해 추가 forward pass를 수행하지 않고 이를 확률 0으로 간주하여 효율설을 높임.
3. Experiments
이 논문에서는 RAG 모델을 다양한 Knowledge-intensive tasks 에서 실험함. 실험에는 위키피디아 2018년 덤프(약 2,100만 개 문서)를 비매개변수적 지식 소스로 사용하며 각 문서를 100단어씩 나누고 FALSS 기반의 MIPS 인덱스를 사용해 빠르게 검색할 수 있도록 설정.
주요 실험으로는 Open-domain Question Answering, Abstractive Question Answering, Jeopardy Question Generation, Fact Verification이 진행함. open-domain QA 실험에서는 Natural Questions, TriviaQA, WebQuestions, CuratedTrec 데이터셋을 사용해 RAG가 추출형 QA와 폐쇄형QA 모델보다 더 나은 성과를 보임. Abstractive QA 실험에서는 MSMARCO를 통해 자연어 생성 성능 테스트를 진행 함. Jeopardy Question Generation 실험에서는 BART와 비교해 RAG가 더 사실적이고 특정한 질문을 생성하는 능력이 있다는 것을 확인
마지막으로 Fact Verification실험에서 FEVER데이터셋을 사용해 RAG의 사실 검증 성능을 실험했으며 이 과정에서 직접적인 검색된 증거에 대한 감독 없이도 우수한 성과를 내는 것을 확인함.
[논문 리뷰] RAG: Retrieval-Augmented Generation for Knowledge-Intensive NLP Tasks
Retrieval-Augmented Generation for Knowledge-Intensive NLP TasksNeurIPS 2020. [Paper] [Page] [Github]Patrick Lewis, Ethan Perez, Aleksandra Piktus, Fabio Petroni, Vladimir Karpukhin, Naman Goyal, Heinrich Küttler, Mike Lewis, Wen-tau Yih, Tim Rocktäschel
canvas4sh.tistory.com