0. Abstract
기존의 자연어 모델은 지식을 모델의 parameter에 저장하는 형식으로 학습한 후 특정 downstream task에 맞게 fine-tuning된 형태로 SOTA를 달성했다.
그러나 지식을 정밀하게 조작하거나 knowledge-intensive task에는 부족한 모습을 보였다. 또한 결정에 대한 출처를 제시하거나 지식을 업데이트하는 문제도 해결되지 않았었다.
이런 문제를 해결하고자 명시적인 정보를 담은 non-parametric 메모리를 결합한 형태의 모델(DrQA, ORQA, REALM)이 등장했으나 이들 또한 open-domain 영역에 특화된 모델이라 지적한다.
본 논문은 특정 downstream task뿐만 아니라 general-purpose를 위한 RAG를 제안하고 있다.
1. Introduction
🔸Background
🫡관련 내용은 DSBA 연구실의 세미나 자료를 참조했습니다.
-
[ 관련 용어 ]
- Knowledge base : 외부 지식이 저장된 공간(=DB)
- Passage : retriever가 knowlegdge base에서 검색하여 가져온 결과
- Answer : passage 내에 존재하는 정답, 연속된 토큰으로 존재한다고 가정한다.
- ODQA : Open Domain Questioning & Answering task
- 질의(query)에 대해 knowledge base에서 retriever가 불러온 passage 중에서 answer를 추출하는 task이다.
- KIT : Knowledge-intensive task (=fact checking)
- 질의와 passage를 함께 입력받아 그것이 사실인지 판단하는 task이다. KIT의 특징은 passage 내에 answer(true/false)가 없다는 점이다.
- Retriever Model : Question과 관련된 passage를 Knowledge base에서 찾는 모델이다. (encoder 구조) \[ S_{retr}(p,q) = ENC_p(p) \dot ENC_q(q) \] passage와 question을 각각 임베딩하여 유사도를 측정하여 Retriever score를 계산한다. 즉 score가 높을수록 answer 추론에 도움이 되는 passage임을 의미한다.
- Reader : Passage 내에서 Answer 후보가 될 수 있는 Span(연속적인 토큰)을 찾는 모델이다. (encoder 구조) \[ S_{read}(a|p,q) = \sum_p P(a|q,p)\times P(p|q) = BERT(p,q)\] query로부터 passage가 도출될 확률, 그렇게 도출된 passage로부터 answer가 도출될 확률을 모두 고려한 score 함수이다.
- Generator : Passage와 Question을 입력으로 하여 Answer를 생성하는 모델이다. (encoder-decoder 구조)
Retriever 모델은 단순해서 이해가 쉽다. Reader의 경우, Passage 내에 answer가 꼭 연속적으로 존재하지 않을 수도 있다는 가정 하에 등장했다고 한다. 그래서 passage를 latent variable로 도입하여 Likelihood를 최대화하는 목적함수를 설계했다고 한다.
DSBA 세미나 자료에서는 DrQA, ORQA, REALM을 (Retriever-Reader)구조의 ODQA 모델로 구분하였고, RAG부터 RAG 이후에 등장한 FiD&FiD-Distill, Atlas를 (Retriever-Generator) 구조의 ODQA+KIT 모델로 구분했다.
-
[ 관련 용어2 ]
- Parametric Implicit Knowledge : 대량의 corpus를 기반으로 지식을 파라미터화하여 저장하는 것. 요즘의 LLM들은 이렇게 지식을 보존한다. 이 방법은 자연어 생성 과정에서 수정 및 검토가 불가능해서 hallucination 등의 문제가 발생한다.
- Non-Parametric Explicit Knowledge : RAG와 같이 외부 Knowledge base에 텍스트 임베딩 값을 저장하는 것. 개인적으로 원본 텍스트에 대한 정보를 최대한 보존하였기 때문에 explicit이 붙었다고 생각한다.
이 RAG 논문은 두 부류의 연구흐름을 통합하여 Knowledge intensive task에 대한 새로운 프레임워크를 제시한 논문이라고 평가받는다.
🔸Model Architecture
[RAG model architecture]
Query 인코더와 Passage 인코더는 모두 DPR Encoder를 사용했고, Generator는 BART large 모델을 사용했다.
DPR Encoder는 ODQA task를 수행하는 DPR과 같이 Encoder-only 모델인 BERT를 인코더로 사용한다는 의미이다.
-
[ RAG 과정 ]
- Query(질의)가 BERT_q (query용 BERT인코더)에 의해 임베딩된다. (query = x)
- MIPS 방법을 통해 가장 유사한 top-K 개의 문서들을 찾는다. (문서를 z로 표현)
- 각 query, passage에 기반한 answer를 marginalize(각 분포를 합산하여 계산)함으로써 최종 answer를 도출 \[ y=P(y|x,z) = \sum_zP(y|x,z)\times P(z|x) \]
[🫡위 이미지는 DSBA 연구실의 세미나 자료를 참조했습니다.]
-
[ RAG는 REALM의 모델 구조에서 Reader를 Generator로 변경한 것이다. ]
- 기존 ODQA task에서의 가정(answer는 연속적인 span일 것이다)에 기반한 Span Prediction task를 Answer Generation task로 전환한 것이다.
- 따라서 QA task 외에도 다양한 답변을 생성할 수 있어 general-purpose에 더 부합하다.
- 생성 task로 전환했기 때문에 Decoding 방법에 변화가 필요하다. → BART 사용
🔸BART란?
간단하게 Generator에 사용된 BART모델을 알아보자. (논문에서는 seq2seq model 이라하는 것이 BART이다.)
🫡BART내용은 단깅수 블로그를 참조했습니다.BART는 BERT와 GPT를 개선하고자 등장한 모델이다. BERT는 MLM(Masked Language Model) 기법으로 학습한 Auto Encoding 모델이고, GPT는 Next Token Prediction으로 학습한 Auto Regressive 모델이다.
BART는 BERT의 MLM에 집중했고 기존의 MLM이 일반적인 성능을 내기 어렵다는 한계를 해결하고자 다양한 Denoising 함수를 통해 MLM을 더 범용화했다.
-
[ 5가지 denoising 기법 ]
- Token Masking : BERT의 MLM과 동일하게 임의의 토큰을 마스킹하고 예측하는 학습 방식
- Token Deletion : 임의의 토큰을 삭제하고 삭제한 토큰의 위치를 찾는 학습 방식
- Text Infilling : 길이가 K인 연속적인 구간(Span)을 마스킹한 후 K를 예측하는 학습 방식
- Sentence Permutation : 마침표를 기준으로 문장을 구분하고, 문장의 순서를 랜덤으로 섞는 학습 방식
- Document Rotation : 균등하게 선택한 토큰이 시작 토큰이 되도록 문서를 rotate하고 문서의 진짜 시작 토큰을 찾는 학습 방식
[🫡위 이미지는 DSBA 연구실의 세미나 자료를 참조했습니다.]
이제 RAG에서 Generator로서의 BART를 알아보자.
BART Generator는 Retriever로부터 얻은 top-K개의 문서 내 passage와 query(DSBA 자료에선 편의상 question이라 소개)를 concat하여 input으로 받는다.
그리고 각 (q,p) input으로부터 vocab distribution, 즉 정답에 영향을 주는 단어가 포함되어 있을 확률, \(P(y|x,z)\times P(z|x)\)을 출력하게 된다. 그리고 각 분포를 합산하여 학습한다.
2. Methods
-
[ 수식 변수 정리 ]
- x : query
- z : retrieved text document
- \(p_\eta(z|x)\) : \(\eta\)는 DPR 모델(=BERT) 파라미터, query와 유사한 top-K 문서가 추출될 주변확률
- \(p_\theta(y_i|x,z,y_{1:i-1})\) : \(\theta\)는 BART Generator 모델 파라미터, \(y_{1:i-1}\)은 Generator가 encoder-decoder 구조로 asnwer를 생성하기 때문에 BART의 input으로 (query,passage)와 함께 이전에 생성한 토큰도 입력한다는 의미이다.
🔸RAG-Sequence Model
완전한 정답 문장을 생성하기 위해 동일한 z 문서를 사용하는 방법이다.
구체적으로, "top-K passage 추출 → 각각의 문서 z로 K개의 문장 생성 → marginalize" 하는 방법이다.
\[ p_{RAG-Sequence}(y|x) \approx \sum_{z\in top-k(p(\dot|x))}p_{\eta}(z|x)p_{\theta}(y|x,z) = \sum_{z\in top-k(p(\dot|x))}p_{\eta}(z|x)\Pi_i^N p_{\theta}(y_i|x,z,y_{1:i-1}) \]
즉, \(p_{\eta}(z|x)\) (x로부터 z를 선택한 후에) \(\Pi_i^N p_{\theta}(y_i|x,z,y_{1:i-1})\) (하나의 (x,z)쌍으로 완전한 문장을 생성하겠다는 의미)
🔸RAG-Token Model
정답 문장의 각 토큰이 서로 다른 문서 z를 참조할 수 있는 방법이다.
구체적으로, "top-K passage 추출 → marginalize 이전에 각 문서 z로부터 다음 토큰에 대한 분포를 생성 → 정답 문장의 모든 토큰을 생성할 때까지 반복" 하는 방법이다.
\[ p_{RAG-Token}(y|x) \approx \Pi_i^N \sum_{z\in top-k(p(\dot|x))}p_{\eta}(z|x) p_{\theta}(y_i|x,z,y_{1:i-1}) \]
참고로 target token의 길이를 1로 설정하여 text classification task를 수행할 수 있다고 하며, 이럴 경우 RAG-Sequence 방법과 RAG-Token 방법 decoding 과정은 동일하다.
🔸Retriever & Generator
앞서 설명한 대로, Retriever는 DPR에서도 사용한 BERT encoder를 채용했다고 하고 Generator로는 BART-large(400M) 모델을 사용하고 있다.
🔸Training
논문의 저자는 retriever와 generator를 한번에 학습하였으며 generator가 생성하기 이전에 임의로 document를 조작하는 감독(supervision) 행위를 하지 않았다고 한다.
supervised learning으로 학습이 진행되었고, fine-tuning된 input/output 쌍인 \((x_j, y_j)\) corpus 데이터셋으로 학습했다.
각 target token에 대한 negative marginal log-likelihood를 합산하여 \(\sum_j-logp(y_i|x_i)\) loss function을 구성했다. optimizer는 Adam을 사용했다고 한다.
논문의 저자는 BERT_d, 즉 문서를 인코딩하는 모델의 파라미터를 훈련하는 것이 비용적으로 부담되고 성능에는 큰 영향을 미치지 않을 것이라 했다. 그래서 논문에서는 BERT_q와 BART Generator 모델만 학습했다고 한다.
🔸Decoding
앞서 RAG-Sequence Model과 RAG-Token Model 두 가지 접근 방법이 있다고 했는데, 수식에서도 볼 수 있듯이 decoding 방법이 서로 다르다.
RAG-Token Model이 standard와 같아 논문에서는 먼저 소개했다. 일반적인 encoder-decoder 구조의 autoregressive decoder 모델을 사용하면 된다고 한다.
RAG-Sequence Model은 simgle beam decoder로 해결할 수 없다고 한다. 이를 위해 각 문서 z를 beam search하며 \(p_\theta(y_i|x,z,y_{1:i-1})\) 가설을 사용하여 분포를 계산한다. 모든 top-K 문서에 대해 beam search를 수행하면 가설 집합 Y가 생성된다.
그 다음 수식처럼 각 문서에서 생성되었을 확률 \(p_\eta(z|x)\)를 곱한 후 각 beam에 대한 marginal probability를 더해준다. 이를 논문의 저자는 "Thorough Decoding"이라 부른다.
이때, output sequence의 길이가 길어질수록 RAG-Sequence Model의 연상량에 부담이 되는데 이를 해결하기 위해 문서 z로부터 y가 생성되지 않으면 확률을 0으로 근사시키는 방법을 제안했다. 논문의 저자는 이를 "Fast Decoding"이라 한다.
3. Experiments
* 시간상 chatGPT로 요약했습니다.
- Open-domain Question Answering : 다양한 오픈 도메인 QA 데이터셋에서 질문과 답변을 학습하며, 추출형 QA와 "Closed-Book QA" 방식과 비교합니다. 답변의 정확도를 평가하기 위해 Exact Match (EM) 점수를 사용합니다.
- Abstractive Question Answering : MSMARCO NLG 과제를 통해 RAG 모델이 추출형 QA를 넘어 자유형 텍스트 생성을 통해 질문에 답변하는 능력을 평가합니다. 이 실험에서는 주어진 골드 패시지를 사용하지 않고 질문과 답변만으로 성능을 테스트합니다.
- Jeopardy Question Generation : Jeopardy 형식의 질문을 생성하는 새로운 과제를 제안하며, RAG 모델과 BART 모델을 비교 평가합니다. Q-BLEU-1 점수와 인간 평가를 통해 생성된 질문의 정확성과 특이성을 측정합니다.
- Jeopardy 형식 예시) 답변을 먼저 제안받으면 그에 맞는 질문을 만들어내는 방식
- Fact Verification : FEVER 데이터셋을 사용해 자연어 주장에 대한 사실 검증을 수행하며, Wikipedia에서 증거를 검색한 후 이를 바탕으로 주장에 대한 진위 여부를 분류합니다. RAG 모델의 분류 능력을 평가하기 위해 레이블 정확도를 사용합니다.
4. Results
[Results]
ODQA와 Abstractive QA에서는 RAG가 좋은 성능을 보였다.
그러나 jeopardy question generation과 fact varification에서는 SOTA 모델의 성능이 훨씬 우수했다.
논문이 작성된 20년도 5월 당시 jeopardy qg에서 SOTA는 PaLM, fact varification의 fever-3, fever2 각각의 SOTA는 Reasoning over semantic-level graph for fact checking과 Elastic weight consolidation for better bias inoculation이 달성했다.
더 많은 실험 결과와 appendix 자료가 있으나, 핵심은 성능이 떨어질지라도 RAG가 답변에 대한 출처와 generation에 대한 설명이 어느정도 가능하기에 의미있다라는 내용인 것 같다.
References
- paper : https://arxiv.org/abs/2005.11401
- DSBA Lab Seminar : https://www.youtube.com/watch?v=gtOdvAQk6YU
- RAG 논문 리뷰 블로그 : https://ffighting.net/deep-learning-paper-review/language-model/rag/
- BART 논문 리뷰 블로그 : https://dangingsu.tistory.com/
'논문 리뷰' 카테고리의 다른 글
[논문리뷰] Evaluation of RAG Metrics for Question Answering in the Telecom Domain (2) | 2024.09.24 |
---|---|
[논문리뷰] RAGAs: Automated Evaluation of Retrieval Augmented Generation (3) | 2024.09.22 |
[논문리뷰] G-EVAL: NLG Evaluation using GPT-4 with Better Human Alignment (0) | 2024.08.09 |
[논문리뷰] Text clustering with LLM embeddings (0) | 2024.08.02 |
[논문코드리뷰] Attention is all you need (code) (0) | 2024.07.01 |