Retrieval-Augmented Generation for Knowledge-Intensive NLP Tasks
외부 지식 결합으로 LLM의 Hallucination 문제를 개선하고 성능을 높이는 RAG 모델의 효과를 분석합니다.
Apr 25, 2024
Why was this paper selected?
LLM의 부상과 함께 LLM의 문제점 중 하나의 Hallucination 문제를 해결하는 방안으로 검색 기반의 답변을 근거로 제시할 수 있는 방법인 Retrieval-Augmented Generation(RAG)가 LLM 기반의 서비스를 위한 필수 요소로 받아들여지고 있습니다. 이에 따라 RAG라는 용어를 최초로 제안한 논문을 선정하여 리뷰하게 되었습니다.
About paper
- NeurIPS 2020에서 발표된 논문
- Facebook에서 주도한 연구
Introduction
2020년 당시에도 이미 pretrained Large LM들이 다양한 벤치마크 성능을 갱신하고 있었습니다. 하지만 knowledge-intensive tasks 들은 특정 task에 특화된 아키텍쳐에 뒤지는 성능을 보여주었습니다. 또한, 기존의 pre-trained 모델들은 방대한 지식을 학습할 수 있는 능력이 있지만, parameter를 업데이트 하는데 어려움이 있고 잘못된 정보나 "hallucination"을 생성하는 경향이 있습니다. 이러한 문제를 해결하기 위해 LLM 자체의 학습된 파라미터에만 의존한 대답을 내는 대신에 외부 메모리에 저장된 정보를 함께 활용하여 답변을 도출할 수 있는 모델들이 open-domain QA 영역에서 제안되었습니다.
제안 방법은 hybrid parametric and non-parametric memory를 seq2seq model에 적용하여 다양한 language generation 태스크에 활용하 방법인 Retrieval-augmented Generation(RAG)을 제안합니다. 이는 pretrained seq2seq (BART) 모델과 위키피디아를 dense vector index로 만든 외부 메모리를 pretrained neural retriever로 접근할 수 있는 구조로서, end-to-end 방식으로 학습 가능합니다.
이러한 방식을 통해 제안된 방법은 Open Natural Questions, WebQuestions, CuratedTrec, TriviaQA 등의 task에서 해당 task에 특화된 모델들을 뛰어 넘는 성능을 보여줬습니다. 또한, 이러한 방식은 별도의 추가 학습 없이도 외부 메모리를 업데이트 함으로서, 새로운 지식에 기반한 답변을 도출해 낼 수 있는 것을 증명하였습니다.
Proposed Method
제안 방법은 크게 Retriever와 Generator로 구성됩니다.
Retriever 는 입력 쿼리 에 대해 document index 에 대한 top-k 검색 결과를 리턴합니다.
Generator 는 입력 , 검색된 구문 , 이전 단계까지 생성된 결과 토큰 에 기반한 결과를 도출합니다.
Models
제안 방법은 document z에 기반하여 답변을 도출하는 모델을 2가지로 설계하였습니다.
- RAG-Sequence: 각 토큰을 예측할 때 하나의 문서만 사용
- Top-k의 문서가 retriever에 의해 선택 되면, generator는 각 문서마다의 output 시퀀스를 생성해내고, 이 중 가장 높은 probability를 갖는 시퀀스를 선택합니다.
- RAG-Token: 각 토큰마다 서로 다른 여러개의 문서를 사용
- 각 output 스텝마다 Top-k 문서를 참조한 k개의 output 토큰을 생성해 내고, 이 중 가장 높은 probability를 갖는 시퀀스를 선택
참고로, sequence classification 태스크와 같이 출력 시퀀스 길이가 1인 경우, RAG-sequence와 RAG-Token은 동일합니다.
Retriever: DPR
Retriever는 DPR(Dense Passage Retriever)의 구조를 활용합니다.
는 에 의해 생성된 문서의 representation이고, 는 query encoder로서, 마찬가지로 로 구현되었습니다. DPR은 가장 높은 확률값 을 가지는 Top k개의 문서 z를 찾아냅니다. 이러한 문제는 Maximum Inner Product Search(MIPS) 문제로서, sub-linear 시간 복잡도를 가집니다. 제안 방법은 TriviaQA와 Natural Questions 문서에 pretrain된 retriever를 사용하며, 문서들을 인덱싱하는도 사용합니다. 이러한 인덱스를 non-parametric memory로 지칭합니다.
Generator: BART
Generator는 seq2seq 구조의 BART-Large 모델을 사용합니다. BART의 입력으로는 검색된 document representation z와 입력 쿼리 x가 concatenate 되어 사용되고, 출력은 auto-regressive하게 생성됩니다. 제안방법에서는 Generator parameter θ 를 parametric memory라고 부릅니다.
Training
제안방법은 finetuning 단계에서는 매우 많은 비용이 소요되는 document encoder에 대한 학습을 하지않고 fix된 상태에서 the query encoder BERT와 the BART generator만 학습합니다. 학습을 위한 criterion은 the negative marginal log-likelihood of each target, 를 최소하는 것으로 설정합니다.
Decoding
테스트시에는 RAG-Sequence와 RAG-Token에 따라 다른 디코딩 방법을 적용합니다.
RAG-Token에서는 일반적인 auto-regressive(seq2seq) 생성 모델을 사용하며, standard beam decoder를 적용할 수 있습니다.
RAG-Sequence에서는 시퀀스의 확률(likelihood)을 일반적인 토큰 별 확률로 분해할 수 없기 때문에 단일 빔 서치로 문제를 해결할 수 없습니다. 대신, 각 문서에 대해 빔 서치를 실행하고, generator probability을 이용하여 각 hypothesis을 점수화합니다. 이를 통해 hypothesis의 집합을 얻을 수 있으며, 결과 y가 문서 z에서 생성되지 않은 경우에는 해당 문서에 대해 추가적인 포워드 패스(forward pass)를 수행합니다. 이러한 디코딩 절차를 "완전한 디코딩(Thorough Decoding)"이라고 합니다. 더 긴 출력 시퀀스의 경우 많은 포워드 패스가 필요하므로, 보다 효율적인 디코딩을 위해 빔 서치 도중에 생성되지 않은 y에 대한 의 근사값을 0으로 설정할 수 있습니다. 이는 후보 집합 Y가 생성된 후에는 추가적인 포워드 패스가 필요하지 않도록 합니다. 이러한 디코딩 절차를 "빠른 디코딩(Fast Decoding)"이라고 합니다.
Experiment
non-parametric memory로서 제안 방법은 Wikipedia December 2018 dump를 활용합니다. 각 위키피디아 아티클은 disjoint 100-word chunks로 분할되어 총 21M documents를 구성합니다. document encoder로 각 문서별 임베딩을 생성하고, FAISS() 라이브러리를 통해 MIPS 인덱스를 생성합니다.
Open-Domain QA Test
4개의 Open-domain QA 태스크 Natural Questions (NQ), TriviaQA (TQA), WebQuestions (WQ) and CuratedTrec (CT) 에서 SOTA를 달성하였제아
Abstractive Question Answering
제안 방법은 Abstractive QA 태스크에서 BART의 성능을 초과하였으며, Gold context를 별도로 사용하는 SotA 모델의 성능에 근접하였습니다.
Jeopardy Question Generation
Jeopardy 질문은 종종 두 개의 별개의 정보를 포함하며, RAG-Token은 여러 문서에서 내용을 결합한 응답을 생성할 수 있어 가장 우수한 성능을 발휘할 수 있습니다. Figure 2는 예시를 보여줍니다. "Sun"을 생성할 때, "The Sun Also Rises"라는 내용을 언급하는 문서 2의 사후 확률이 높습니다. 마찬가지로, "A Farewell to Arms"이 생성될 때는 문서 1이 사후 확률을 지배합니다. 흥미로운 점은 각 책의 첫 번째 토큰이 생성된 후에는 문서 사후 확률이 평평해진다는 것입니다. 이 관찰 결과, 생성자는 특정 문서에 의존하지 않고 제목을 완성할 수 있다는 것을 시사합니다. 즉, 모델의 매개 변수적 지식은 제목을 완성하는 데 충분하다는 것입니다. 이 가설에 대한 근거를 찾기 위해 BART-only 기준선을 부분 디코딩 "The Sun"으로 피딩하여 실험을 진행합니다. BART는 "The Sun Also Rises"라는 제목이 BART의 매개 변수에 저장되어 있다는 것을 나타내는 "The Sun Also Rises"는 이 작가의 소설입니다"라는 생성을 완료합니다. 마찬가지로, BART는 부분 디코딩 "The Sun Also Rises"로 시작하여 "A Farewell to Arms"라는 작가의 소설입니다"라는 생성을 완료합니다. 이 예시는 매개 변수적 기억과 비매개 변수적 기억이 함께 작동하는 방식을 보여줍니다. 비매개 변수적 구성 요소는 생성을 안내하는 데 도움이 되며, 매개 변수적 기억에 저장된 특정 지식을 도출합니다.
Top-k 검색에서 문서수의 영향
그림 3(왼쪽)은 테스트 시 더 많은 문서를 검색함으로써 RAG-Sequence의 오픈 도메인 QA 결과가 개선되는 것을 보여줍니다. 그러나 RAG-Token의 경우 10개의 검색된 문서에서 성능이 최고점에 도달합니다. 그림 3 (오른쪽)은 더 많은 문서를 검색함으로써 RAG-Token의 Rouge-L이 증가하나 Bleu-1은 감소하는 것을 보여줍니다. 그러나 RAG-Sequence의 경우 이 효과는 덜 두드러집니다.
Conclusions
제안 방법은 LLM이 non-parametric memory와 결합하여 더 높은 성능을 달성하는 것을 보여줍니다. non-parametric memory는 LM의 성능 개선과 함께, 별도의 학습 없이 외부 메모리의 인덱싱 생성 만으로 메모리를 업데이트 할 수 있다는 장점과 hallucination 등의 문제를 일부 해결할 수 있다는 장점 때문에 LLM을 실제 어플리케이션에 적용할 때의 문제를 해결할 수 있는 방안으로 받아들여지고 있습니다.
Share article