00 | 참고자료
Retrieval-Augmented Generation for Knowledge-Intensive NLP Tasks
[논문리뷰] Retrieval-Augmented Generation for Knowledge-Intensive NLP Tasks
[논문 리뷰] Retrieval-Augmented Generation for Knowledge-Intensive NLP Tasks
01 | abstract
- 지식 저장과 한계 : 대형 사전 학습 언어 모델은 매개변수에 사실적 지식을 저장하고, NLP 작업에서 최첨단 성과를 달성 가능. But, 지식에 대한 접근성과 조작 능력이 제한되어 있으며, 지식 집약적 작업에서는 특화된 모델 아키텍처보다 성능이 뒤처진다.
- 문제점 및 연구 공백
- 모델의 예측 근거를 제공(provenance)하거나 지식을 업데이트하는 데 한계가 있다.
- 비파라메트릭 메모리를 활용한 차별적 접근 방식은
추출형 작업(extractive tasks)에만 제한적으로 연구되었다.
- RAG 모델의 도입
- Retrieval-Augmented Generation (RAG)은 파라메트릭 메모리(사전 학습된 seq2seq 모델)와 비파라메트릭 메모리(위키백과 벡터 인덱스)를 결합한다.
- 비파라메트릭 메모리는 사전 학습된
neural retriever를 통해 접근한다.
- RAG의 두 가지 구조
- RAG-Sequence: 생성되는 전체 시퀀스에 대해 동일한 검색 문서를 조건으로 사용.
- RAG-Token: 생성되는 각 토큰마다 서로 다른 검색 문서를 사용할 수 있음.
- 성과
- 다양한 지식 집약적 NLP 작업에서 RAG 모델을 미세 조정 및 평가한 결과, 세 가지 공개 도메인 QA 작업에서 최첨단 성과를 기록.
- 기존 파라메트릭 seq2seq 모델과 특정 작업을 위해 설계된 retrieve-and-extract 아키텍처를 능가.
- 언어 생성 작업에서 RAG는 기존 파라메트릭 모델 대비 더 구체적이고, 다양하며, 사실적인 언어 생성을 보여줌.
🔥
파라메트릭 메모리 VS 비파라메트릭 메모리
일반적으로 이를 해결하기 위해 연구자들은 전체 framework를 parametric memory (=PLM Model)과 non-parametric memory (=retrieval-based)로 나누어서 설계해 위에 언급한 문제들에 대처하려고 하였죠.
딥러닝 모델에서 지식(정보)을 저장하고 활용하는 방식에 따라 구분됩니다. RAG 모델에서는 이 두 가지 메모리를 결합하여 학습과 생성 성능을 향상시킨다.
1. 파라메트릭 메모리 (Parametric Memory)
- 정의:
- 모델의 가중치(Parameters)에 지식을 내재적으로 저장하는 방식.
- 모델이 학습하는 동안 데이터에서 추출된 정보를 가중치에 저장하며, 추가적인 외부 데이터 저장소를 사용하지 않음.
- 특징:
- 고정적: 학습이 끝난 후에는 가중치가 고정되므로, 새로운 정보를 추가하거나 수정하려면 재학습이 필요함.
- 내재적 지식: 모델은 입력에 대한 출력을 생성할 때 가중치에 저장된 지식을 활용.
- 예시: GPT, BERT, T5, BART와 같은 사전 학습된 언어 모델.
- 장점:
- 지식이 모델 내부에 저장되어 추가적인 외부 리소스를 사용하지 않음.
- 처리 속도가 빠름 (외부 메모리 접근 불필요).
- 단점:
- 업데이트가 어려움: 새로운 정보가 추가되면 모델을 재학습해야 함.
- 제한된 저장 용량: 모델 크기에 따라 저장할 수 있는 지식의 양이 제한적.
2. 비파라메트릭 메모리 (Non-Parametric Memory)
- 정의:
- 외부 데이터 저장소(예: 데이터베이스, 문서 인덱스, 검색 시스템)를 사용하여 정보를 저장하고 검색.
- 모델은 학습된 검색 메커니즘을 통해 외부에서 필요한 정보를 가져와 활용.
- 특징:
- 동적: 외부 데이터 저장소를 업데이트하거나 교체함으로써 새로운 정보를 쉽게 추가 가능.
- 외부적 지식: 모델은 외부 메모리를 탐색해 필요한 정보를 가져옴.
- 예시: Dense Passage Retriever (DPR), TF-IDF 기반 검색 시스템, RAG 모델의 Wikipedia 인덱스.
- 장점:
- 새로운 지식을 추가하거나 업데이트하기 쉬움.
- 대규모 데이터베이스(예: Wikipedia)와 같은 방대한 지식 활용 가능.
- 단점:
- 검색 속도가 느릴 수 있음(검색 단계가 필요).
- 검색 시스템의 품질에 따라 성능이 좌우됨.
파라메트릭 vs. 비파라메트릭
| 특징 | 파라메트릭 메모리 | 비파라메트릭 메모리 |
|---|
| 지식 저장 방식 | 가중치(Parameters)에 내재적으로 저장 | 외부 데이터베이스나 문서 인덱스에 저장 |
| 지식 업데이트 | 재학습 필요 | 데이터 저장소 업데이트로 즉시 가능 |
| 성능 의존성 | 모델의 학습 품질에 의존 | 검색 메커니즘과 데이터 품질에 의존 |
| 예시 | GPT, BERT, BART | RAG, DPR, TF-IDF 검색 시스템 |
1. 파라미터화(Parameterizing)
: 모델의 가중치에 지식을 주입하는 과정을 의미
대규모 모델을 사전 학습(pre-training)할 때, 다양한 목적 함수를 사용하여 모델의 파라미터를 최적화한다.이러한 과정은 모델이 특정 작업에 대한 지식을 내재화하도록 돕는다.
예를 들어, 대규모 언어 모델은 방대한 텍스트 데이터를 학습하여 언어의 구조와 패턴을 파라미터에 반영한다.이러한 지식 주입은 모델이 다양한 작업에 적응할 수 있도록 한다.
2. 지식 집약적 작업(Knowledge Intensive Tasks)
: 사람조차도 외부 지식 없이 해결하기 어려운 문제를 지칭
이러한 작업은 모델이 사전 학습된 파라미터만으로는 충분한 성능을 발휘하기 어려운 경우를 말한다.
예를 들어, 최신 뉴스 정보 제공, 특정 도메인에 대한 전문 지식 요구 등은 모델이 외부 지식에 접근해야만 정확한 답변을 제공할 수 있는 경우이다.
→ 이를 해결하기 위해서는 모델이 외부 지식에 접근하거나, 지식 주입 기법을 활용하여 성능을 향상시킬 수 있다.
3. MIPS(Maximum Inner Product Search)
: 최대 내적 검색을 의미하며, 주어진 쿼리 벡터와 여러 외부 정보 벡터 간의 내적 값을 계산하여 가장 유사한 정보를 찾는 과정
예를 들어, 쿼리 벡터 x와 여러 외부 정보 벡터 di가 있을 때, x와 di 간의 내적 값이 가장 큰 di를 찾는 것이다.이러한 검색은 추천 시스템, 정보 검색 등 다양한 분야에서 활용된다.
최근 Facebook의 FAISS(Facebook AI Similarity Search)는 이러한 MIPS를 효율적으로 구현한 라이브러리로 각광받고 있다.
02 | Introduction
Pre-trained neural language models
- 사전 학습된 언어 모델은 데이터를 기반으로 상당한 양의 심층 지식을 학습할 수 있음.
- 외부 메모리 없이 매개변수화된 암묵적 지식 저장소로 작동할 수 있음.
But, 한계가 있음!
- 지식을 쉽게 확장하거나 수정할 수 없음.
- 예측에 대한 근거를 명확히 제공하지 못함.
- “
환각(hallucination)” 현상이 발생할 수 있음.
Hybrid models: Parametric and Non-parametric Memory
- 파라메트릭 메모리와 비파라메트릭(검색 기반) 메모리를 결합한 하이브리드 모델은 이러한 한계를 완화할 수 있음.
- 비파라메트릭 메모리는 지식의 수정과 확장을 쉽게 지원.
- 검색된 지식을 해석하고 확인 가능.
🍭
REALM 및 ORQA
- 마스크 언어 모델과 검색기를 결합한 초기 하이브리드 모델.
- 개방형 도메인 추출형 질문 응답에서 유망한 결과를 보였으나, 생성 기반 작업에는 제한적으로만 연구됨.
→ 기존의 방법들(REALM, ORQA)은 open-domain extractive question answering에서만 국한적으로 활용되어 왔기에, 본 연구자들은 이러한 접근법을 일반적으로 활용할 수 있는 framework를 제시.(REALM과 ORQA는 정확하게는 추출로 답변하는것! 생성이 아니다라는 점에서 차이가 있음!!)
Retrieval-Augmented Generation (RAG)
QA System으로 한정한 예시
- question을 BERT에 태운 후 [CLS] Token을 빼와서 query vectory를 만든다.
- wikipedia 각 document 역시 BERT(question encoding한 BERT와 다른 객체)를 태워 [CLS] Token을 빼와서 DB를 구축한다.
- query vectory와 가장 유사한 (=내적 값이 큰) k개의 document vector에 해당하는 문서를 retrieve 한다.
- retrieved된 document와 question을 concat해 seq2seq의 encoder 입력에 넣은 후 answer을 decoder에서 generate하도록 훈련.
- 시퀀스-투-시퀀스(seq2seq) 모델에 비파라메트릭 메모리를 통합한 RAG 모델을 제안.
- 파라메트릭 메모리: 사전 학습된 seq2seq 변환기 모델 (예: BART).
- 비파라메트릭 메모리: Wikipedia의 밀집 벡터 인덱스, 사전 학습된 뉴럴 리트리버를 통해 접근.
- 두 메모리를 결합하여 확률적 모델로 통합적으로 학습.
- RAG는 top-K 근사(marginalization)를 통해 문서를 활용:
- RAG-Sequence: 전체 시퀀스에서 동일한 문서를 사용.
- RAG-Token: 각 토큰에 대해 서로 다른 문서를 사용.
기존 연구는 특정 작업을 위해 비파라메트릭 메모리 아키텍처(Memory networks, stack-augmented networks, memory layers )를 제안
→ But, 사전 학습된 파라메트릭 및 비파라메트릭 메모리를 함께 사용, 추가적인 학습 없이 지식 접근 가능.
= “generation” for knowledge - intensive tasks
Results and Contributions
- 최신 성과:
- Natural Questions, WebQuestions, CuratedTrec에서 최고 수준의 성능 달성.
- TriviaQA와 같은 추출형 작업에서도 기존 방법을 능가.
- 지식 생성:
- MS-MARCO 및 Jeopardy 질문 생성에서 더 구체적이고 다양한 응답 생성.
- 지식 검증:
- FEVER 데이터셋에서 최고 수준의 파이프라인 모델에 근접한 성과(4.3% 이내).
- 업데이트 가능성:
- 비파라메트릭 메모리를 교체하여 지식 변경 가능, 추가 학습 필요 없음.
Conclusion
- RAG는 지식 생성과 활용에 있어 기존 접근 방식보다 뛰어난 성능과 유연성을 제공.
- 비파라메트릭 메모리와 파라메트릭 메모리를 결합하여 사실적이고 다양한 언어 생성을 달성.
03 | Methods
RAG Models: Overview
앞서 언급드린거처럼 RAG는 크게 2가지 모델로 나누어진다.
-
Retriever : question x를 기반으로 유사한 document z를 retrieve하는 모델 (=pη(z∣x))
-
Seq2Seq Generator : Retriever가 반환한 유사한 document z와 question x를encoder에 넣고 decoder에서 answer y를 generate 하는 모델 (=pθ(yi∣x,z,y1:i−1))
RAG 모델은 입력 시퀀스 x를 사용해 관련 텍스트 문서 z를 검색하고, 이를 추가적인 컨텍스트로 활용하여 목표 시퀀스 y를 생성하는 모델입니다.
이 모델은 retriever와 generator라는 두 가지 주요 구성 요소로 나뉩니다:
- Retriever pη(z∣x):
- retriever pη(z|x) with parameter η : x에 대한 document의 distribution
- 매개변수 η를 가지며, 입력 x를 기반으로 문서 z의 분포를 반환합니다.
- 주어진 x에 대해 상위 K개의 텍스트 문서를 검색합니다.
- Generator pθ(yi∣x,z,y1:i−1):
- generator pθ(yi|x,z,y1:i−1) parametrized by θ : x와 z를 바탕으로 y생성
- 매개변수 θ를 가지며, 이전 i−1개의 토큰 y1:i−1, 입력 x, 그리고 검색된 문서 z를 기반으로 현재 토큰 yi를 생성합니다.
RAG 모델은 retriever와 generator를 엔드-투-엔드 방식으로 학습하며, 검색된 문서 z를 잠재 변수로 간주하여 마진화(marginalization)를 수행합니다.
🍭
Retriever??
Retriever의 개념
Retriever는 주어진 질문(query)와 관련된 문서(또는 정보)를 대규모 문서 집합(Document Index)에서 검색하는 역할을 한다. RAG 모델에서 retriever는 "유사한 문서를 빠르게 찾기 위해 설계된 비파라메트릭(non-parametric) 모듈".

- Query Encoder
- 질문
x (예: "What is the capital of France?")가 Query Encoder를 통과하여 벡터 표현 q(x)로 변환됩니다.
- 이 벡터는 질문의 의미를 압축한 고차원 임베딩 벡터.
- Document Index
- 사전에 임베딩된 문서 집합
z1, z2, z3, ...가 저장된 데이터베이스.
- 각 문서
zi도 고차원 임베딩 벡터 d(zi)로 변환되어 저장.
- MIPS (Maximum Inner Product Search)
- 질문 벡터
q(x)와 문서 벡터 d(z)들 사이의 내적(inner product)을 계산하여, 가장 유사도가 높은 문서들을 선택합니다.
- 내적 계산은 두 벡터 간의 유사도를 측정하는 간단하고 효율적인 방법입니다.
- 이 과정에서 상위
k개의 문서가 반환됩니다.
- 결과
- Retriever는 질문에 대해 관련성이 높은 문서 집합을 반환하며, 이후 Generator가 이 문서를 활용해 답변을 생성합니다.
Document Index의 역할과 구조
- Document Index란? Document Index는 모든 문서(혹은 데이터)의 벡터 표현을 미리 계산해서 저장해 둔 데이터베이스입니다.
-
예를 들어, z1, z2, z3, ...는 문서 자체를 의미하고,
-
d(z1), d(z2), d(z3), ...는 각각의 문서 z에 해당하는 벡터 표현(즉, 임베딩)을 의미합니다.
이 임베딩은 미리 학습된 모델(예: BERT, Sentence-BERT 등)로 변환된 값입니다. 따라서, 모든 문서는 고차원의 벡터로 표현되며, 이 벡터는 문서의 의미를 내포합니다.
Document Index에서 확률분포의 역할
그림에서 "Retriever pη(z|x)"는 "문서 z가 주어진 질문 x와 얼마나 관련이 있는지"를 계산하는 확률 분포입니다.
과정:
-
MIPS를 통한 점수 계산:
- 질문 벡터
q(x)와 문서 벡터 d(zi) 간의 내적(혹은 유사도 계산)을 수행합니다.
- 이 계산 결과는 "질문과 문서의 유사도 점수"를 나타냅니다. 점수가 높을수록 더 관련성이 높은 문서입니다.
-
확률값으로 변환:
- 내적 점수는 보통 softmax 함수를 통해 확률값으로 변환:
pη(z∣x)=exp(q(x)⋅d(z))/∑[z′∈Index]exp(q(x)⋅d(z′))
q(x) ⋅ d(z)는 질문과 문서 간 유사도 점수(내적값),
- 분자는 특정 문서
z의 점수,
- 분모는 모든 문서 점수의 합입니다.
- 결과적으로, 각 문서
z는 pη(z|x)라는 확률값을 가지게 됩니다. 이는 "해당 문서가 질문과 관련될 확률"을 의미합니다.
1. 질문 x:
예를 들어, 질문이 아래와 같다고 합시다.
- 질문 텍스트: "What is the capital of France?"
이 텍스트는 Query Encoder를 통해 고차원 벡터 q(x)로 변환됩니다. 변환된 벡터는 보통 차원이 768 (BERT의 기본 출력 차원) 또는 더 큰 값일 수 있습니다.
q(x) 예시: q(x)=[0.2,−0.1,0.4,0.05,−0.3,...,0.8](길이:768차원)
2. 문서 z:
Document Index에 있는 문서는 다음과 같이 구성되어 있다고 가정해봅시다.
문서 예시 z1,z2,z3:
- z1: "Paris is the capital of France."
- z2: "Berlin is the capital of Germany."
- z3: "Eiffel Tower is a famous landmark in Paris."
이 문서들은 사전 임베딩 모델을 통해 d(z)라는 벡터로 변환됩니다.
d(z) 예시:
- d(z1)=[0.3,−0.2,0.5,0.1,−0.4,...,0.7](길이:768차원)
- d(z2)=[0.1,−0.3,0.6,0.0,−0.2,...,0.5](길이:768차원)
- d(z3)=[0.4,−0.1,0.3,0.2,−0.5,...,0.6](길이:768차원)
3. MIPS를 통한 내적 계산:
이제 질문 벡터 q(x)와 각 문서 벡터 d(z) 사이의 내적(inner product)을 계산합니다.
내적 계산 결과는 두 벡터의 유사도를 나타냅니다.
내적 계산 예시: q(x)⋅d(z1)=0.8q(x)⋅d(z2)=0.4q(x)⋅d(z3)=0.7
- 해석: q(x)와 d(z1)의 내적이 가장 크므로, 문서 z1이 질문과 가장 관련이 있다고 판단됩니다.
4. 확률 계산 (softmax):
이제 내적 결과를 softmax로 변환해 문서 z들이 선택될 확률 분포를 계산합니다.
softmax 식: pη(z|x) = exp(q(x) ⋅ d(z)) / ∑[z' ∈ Index] exp(q(x) ⋅ d(z'))
확률 분포 계산 예시:
- pη(z1∣x)=exp(0.8)/[exp(0.8)+exp(0.4)+exp(0.7)]≈0.45
- pη(z2∣x)=exp(0.4)/[exp(0.8)+exp(0.4)+exp(0.7)]≈0.25
- pη(z3∣x)=exp(0.7)/[exp(0.8)+exp(0.4)+exp(0.7)]≈0.30
결과:
- 문서 z1의 선택 확률이 가장 높다. (pη(z1∣x)=0.45.
5. 최종 선택 문서:
MIPS와 softmax를 통해 최종적으로 관련 문서가 선택.
- 선택된 문서: z1 ("Paris is the capital of France.")
- 이 문서가 Generator의 입력으로 전달.
Latent Variable Marginalization
K개의 유사한 document들을 가져와서 answer를 generate하는데 활용한다고 했는데 이 K개를 어떠한 식으로 concat하는가?
RAG 모델은 검색된 문서를 잠재 변수 z로 간주하고, 이를 기반으로 마진화를 수행하여 목표 시퀀스 y의 확률 p(y∣x)를 계산합니다.
이 마진화 방식은 RAG-Sequence와 RAG-Token 두 가지로 나뉜다.
🍭
marginalize에 대한 부연 설명
,동전 A, B가 있으며, 동전 A를 먼저 던진 이후 동전 B를 던지며 B의 앞뒷면 결과는 A의 앞뒷면 결과에 영향을 받는다고 가정해 보자. (두 동전은 독립적이지 않음)
동전 A는 앞면이 나올 확률이 1/4, 뒷면이 나올 확률이 3/4이며, 동전 B는 A의 결과에 따라 다음과 같은 확률을 가진다고 가정해 보자.
| 동전 B - 앞면 | | 동전 B - 뒷면 | |
|---|
| 동전 A - 앞면 | 동전 A - 뒷면 | 동전 A - 앞면 | 동전 A - 뒷면 |
| 1/12 | 3/12 | 2/12 | 6/12 |
이러한 가정 속에서, 우리는 오로지 동전 B의 결과에만 관심이 있다고 해보자 (마치 위에서 y에만 관심이 있듯이)
그래서 동전 B의 앞면 뒷면 결과에 대한 확률을 추정하고 싶은데, 이를 어떻게 구할 수 있을까?
이는 동전 B가 앞면이 나왔을 때의 확률과, 뒷면이 나왔을 때의 확률을 각각 더해주면 구할 수 있다.
그러면 동전 B가 앞면이 나올 확률은 1/12 + 3/12 = 1/3, 뒷면이 나올 확률은 2/12 + 6/12 = 2/3이라는 것을 추정할 수 있다.
이와 같은 원리로 output y에 대한 확률만을 구하기 위해 각 document z에 대해 구해진 곱사건의 확률을 모두 더하는 것이 위 수식에서의 marginalize이다.
3.1 Models
RAG-Sequence Model
question vector ∗x∗와 유사한 document를 뽑고, 각 document 1개랑 question vector ∗x∗를concat시켜서 총 K개의 forwarding을 진행한 후 이를 marginalize하는 방법이다.
유사한 document ∗z∗에 대해서 answer y를 generate한 후 그 document와 question의 유사도인 ∗pη(z∣x)∗와 곱한 후 이를 모든 documents에 대해서 marginalize해 가중 평균하는 구조.
하나의 document z에 대해 sequence 안의 모든 token에 대한 확률을 계산한 뒤, top-k document에 이 과정을 모두 적용하여 더하는 과정을 진행하는 것을 알 수 있다.
따라서, RAG-Sequence model은 각각의 document를 이용하여 output sequence 전체를 대상으로 값을 산출하고, document에 대해 marginalize 함으로써 최종 값을 산출하는 model이다.
설명
- RAG-Sequence는 동일한 검색 문서 z를 사용해 전체 출력 시퀀스를 생성합니다.
- 검색된 문서 z는 단일 잠재 변수로 간주되며, 상위 K개의 문서에 대한 확률을 합산하여 최종 확률을 계산합니다.
🍭
목표 시퀀스 y의 확률
pRAG-Sequence(y∣x)≈∑z∈top-k(pη(⋅∣x))pη(z∣x)∏i=1Npθ(yi∣x,z,y1:i−1)
- top-k(pη(⋅∣x)):
- 입력
x에 대해 상위 K개의 문서z를 반환하는 retriever의 분포.
z는 잠재 변수로 간주.
- pη(z∣x):
- 입력 x에 대해 문서 z가 선택될 확률. 이는 retriever의 출력 확률.
- pθ(yi∣x,z,y1:i−1):
- generator가 이전 토큰 y1:i−1, 입력 x, 그리고 선택된 문서 z를 기반으로 현재 토큰 yi를 생성할 확률.
해석
- 각 z에 대해 generator가 출력한 시퀀스의 확률을 계산하고, 이를 retriever의 문서 확률 pη(z∣x)로 가중합하여 최종 확률을 계산합니다.
RAG-Token Model
매 target token마다 다른 document를 retreive하면서 answer를 생성하는 방법.
매 time-step마다 유사한 K개의 document가 각각 question vector ∗x∗와 concat해서 output token yi에 대한 확률을 계산하고 마찬가지로 document와 question의 유사도인∗pη(z∣x)∗와 곱하면서 marginalize해 가중 평균하는 구조.
RAG-Token model은 RAG-Sequence와 다르게, 하나의 token을 생성할 때 모든 document에 대해 다루고 이후 document에 대해 marginalize 한 다음, 모든 token에 대해 동일한 과정을 진행함으로써 output sequence를 생성하는 model이다
즉, RAG-Sequence는 document에 대한 값을 sequence 단위로 고려한 다음 marginalize 하고,
RAG-Token은 document에 대한 값을 token단위로 고려한 다음 marginalize 하고, 다음 token을 생성하면서 sequence를 생성하는 model인 것이다.
설명
- RAG-Token은 각 출력 토큰 yi마다 다른 검색 문서 z를 선택할 수 있습니다.
- 이를 통해 여러 문서의 내용을 조합하여 응답을 생성할 수 있습니다.
🍭
목표 시퀀스 y의 확률
pRAG-Token(y∣x)≈∏i=1N∑z∈top-k(pη(⋅∣x))pη(z∣x)pθ(yi∣x,z,y1:i−1)
- ∏i=1N: 출력 시퀀스의 각 토큰 yi에 대해 확률을 곱하여 전체 시퀀스 확률을 계산합니다.
- ∑z∈top-k(pη(⋅∣x)): 각 토큰 yi에 대해 상위 K개의 문서 z에 대한 확률을 합산합니다.
- pη(z∣x): 입력 x에 대해 문서 z가 선택될 확률.
- pθ(yi∣x,z,y1:i−1): generator가 입력 x, 문서 z, 이전 토큰 y1:i−1을 기반으로 yi를 생성할 확률.
해석: 각 토큰 yi의 생성 과정에서 여러 문서를 활용하며, 이들 문서의 확률 분포를 기반으로 최적의 yi를 생성.
→ 더 다양한 문서 기반의 내용을 출력에 반영.
Sequence Classification Tasks
- 목표 클래스가 길이 1인 시퀀스(예: 단일 토큰)로 간주되는 경우, RAG-Sequence와 RAG-Token은 동일하게 동작.
- 이때, p(y∣x)는 단일 y에 대한 확률로 축약되어 계산.
차이와 장점
- RAG-Sequence는 동일한 문서를 활용하여 응답을 생성하므로 안정적인 출력을 제공한다.
- RAG-Token은 각 토큰마다 다른 문서를 활용하므로, 더 다양한 정보를 활용할 수 있는 유연성을 제공한다.
RAG-Sequence와 RAG-Token의 차이점
| 특징 | RAG-Sequence | RAG-Token |
|---|
| 문서 검색 | 모든 문서에 대해 한 번에 검색하고, 이를 바탕으로 응답을 생성 | 각 토큰마다 문서를 검색하고, 그 정보를 바탕으로 토큰을 생성 |
| 응답 생성 방식 | 응답 전체를 생성한 후, 문서와 질문의 유사도를 바탕으로 가중 평균 | 각 토큰을 생성할 때마다 문서의 정보를 활용하여 토큰별로 가중 평균 |
| 가중 평균 방식 | 문서별로 가중 평균을 진행하여 응답을 생성 | 각 토큰별로 문서를 검색하고, 그 토큰의 확률을 가중 평균하여 생성 |
결론
- RAG-Sequence는 한 번에 여러 문서를 검색하고, 그 후 응답을 전체적으로 생성한 후, 문서별 가중 평균을 통해 최종 응답을 만듭니다.
- RAG-Token은 각 토큰을 생성할 때마다 문서를 검색하여, 그때그때 문서의 정보를 활용해 응답을 점진적으로 생성하고, 각 토큰에 대해 가중 평균을 계산합니다.
3.2 Retriever: DPR
Retrievers는 상당히 직관적이다.
question과 document를 서로 다른 BERT를 통과해 [CLS] Token을 계산한 후 내적을 통해 유사도를 구하는 모델. 저자들은 이미 wikipedia document로 pre-trained된 모델을 활용했다고 하며, 각각 document index를 non-parametric memory로 지정.
구조와 원리
Dense Passage Retriever(DPR): 이중 인코더(bi-encoder) 아키텍처를 따릅니다
🍭
pη(z∣x)∝exp(d(z)⊤q(x))
$d(z)$: 문서 z의 밀집 표현으로, BERT 기반 문서 인코더 textBERTd에서 생성됩니다.
$q(x)$: 입력 쿼리 x의 표현으로, BERT 기반 쿼리 인코더 BERTq에서 생성됩니다.
- 이 점수는 문서 z와 쿼리 x 간의 내적(inner product)을 기반으로 계산.
- 내적 결과가 클수록 쿼리와 문서가 더 관련이 있다고 판단.
Maximum Inner Product Search (MIPS)
- 상위 K개의 문서를 검색하기 위해 pη(z∣x)의 값이 높은 문서 z를 찾는 작업은 MIPS 문제로 정의됩니다.
- 이 문제는 서브-선형(sub-linear) 시간 복잡도로 근사적으로 해결 가능.
DPR의 초기화
- 사전 학습된 DPR 모델을 사용하여 retriever를 초기화하고 문서 인덱스를 생성한다.
- TriviaQA 및 Natural Questions 데이터셋을 기반으로 학습된 모델을 사용.
- 문서 인덱스는 비파라메트릭 메모리(non-parametric memory)로 간주된다.
3.3 Generator: BART
Generator로는 BART-large를 활용했고, 이전에 언급한 것처럼 [document;question]식으로 concat된 encoder input을 만들어 answer를 generate 한다.
논문에서는 retriever로 retrieve 된 document z와 input x를 통해 output sequence를 생성하는 generator pθ(yi∣x,z,y1:i−1)는 어떠한 encoder-decoder 구조도 사용 가능하다고 밝힌다. 그러면서 본 연구에서는 BART-large를 사용하였다고 밝힌다.(400M parameters)
구조와 원리
- Generator 는 어떠한 인코더-디코더 구조로 모델링 가능.
🍭
pθ(yi∣x,z,y1:i−1)pθ(yi∣x,z,y1:i−1)
- 이 연구에서는 BART-large를 사용:
- 400M 파라미터를 가지는 사전 학습된 seq2seq 변환기.
- 다양한 노이징 함수로 학습된 denoising objective를 기반으로 사전 학습됨.
- T5와 같은 유사 크기의 모델보다 다양한 생성 작업에서 우수한 성능을 보여줌.
BART와 문서 결합
- 검색된 내용 z와 입력 x를 단순히 연결(concatenate)하여 디코딩에 사용합니다.
- BART의 매개변수 θ는 RAG에서 파라메트릭 메모리(parametric memory)로 간주됩니다.
3.4 Training
저자들은 매 question마다 유사한 K개의 document에 대한 정답 label 없이 훈련을 진행하였고, DPR의 경우 question을 encoding하는 BERT만 gradient를 흘리고 document를 encoding하는 BERT는 학습하지 않았습니다.
훈련 과정
- Retriever와 generator를 엔드-투-엔드 방식으로 공동 학습:
- 특정 문서가 검색되어야 한다는 직접적인 감독 없이 진행.
- 입력/출력 쌍 (xj,yj)로 구성된 학습 데이터를 사용.
목적 함수
min∑j−logp(yj∣xj)
마진화된 음의 로그 가능도(negative marginal log-likelihood)를 최소화
- Stochastic Gradient Descent (SGD)와 Adam 최적화 알고리즘을 사용.
문서 인코더 업데이트
- BERT 문서 인코더 textBERTd를 학습 중 업데이트하면 인덱스 갱신이 필요해 비용이 높아짐.
- 이 연구에서는 문서 인코더와 인덱스를 고정(fixed)하고, 쿼리 인코더 textBERTq와 BART generator만 미세 조정.
3.5 Decoding
RAG 모델의 두 가지 변형에 따라 서로 다른 디코딩 방식을 사용:
RAG-Token Decoding
Token 별로 새로운 document를 condition해주는 모델인 RAG-Token Model은 기존의 beam-search를 그대로 활용. 왜냐하면 어짜피 각 hypothesis가 이미 이전 time-step까지 도출해낸 text-sequence는 주어져 있고, ∗x∗와 새롭게 retrieve된 document zi와 함께 다음 time-step의 vocab distribution을 계산하는 것은 추가적인 input만 생길 뿐, 기존의 beam-search에서 벗어나는게 없기 때문입니다.
- RAG-Token은 표준 autoregressive seq2seq generator로 볼 수 있습니다.
🍭
각 토큰 yi의 확률
pθ′(yi∣x,y1:i−1)=∑z∈top-k(pη(⋅∣x))pη(z∣x)pθ(yi∣x,z,y1:i−1)
→ 계산된 pθ′를 기존 beam search에 사용하여 최적의 시퀀스를 생성합니다.
RAG-Sequence Decoding
문제는 RAG-Sequence Model입니다. 애초에 answer을 generate할 때 하나의 document ∗zi∗은 서로 다른 answer을 generate할 것이기 때문에 기존의 beam-search에서 이를 marginalize하기는 불가능합니다. 따라서 저자들은 우선은 각각의 document ∗zi∗에 대해서 beam-search를 진행하고, 모든 document ∗zi∗가 공통된 beam을 갖도록 각 document ∗zi∗에 등장한 beam에 대해서 추가적인 forward pass를 진행해주고, 이를 ∗pη(z∣x)∗와 곱하면서 marginalize해준다고 하였습니다. 하지만 이렇게 계산해줄 경우, 각 document별로 수많은 beam을 generate하는 forward pass를 진행해주어야 함으로, 저자들은 애초에 question ∗x∗와 document ∗zi∗에서 등장하지 않는 beam은 전부 등장확률을 0으로 지정했다고 합니다. (저도 마지막 부분은 아직 명확하지 않아 추후에 이해가 되면 수정하도록 하겠습니다.)
- p(y∣x)는 전통적인 토큰 단위 확률로 분해되지 않으므로, 단일 beam search로 해결할 수 없습니다.
- 문서별 beam search를 실행하여 각 문서 z별 가설 Y를 생성합니다:
- 각 문서 z에 대해 pθ(y∣x,z)를 계산합니다.
- pη(z∣x)로 가중합하여 최종 확률 p(y∣x)를 계산합니다:
p(y∣x)=∑zpη(z∣x)pθ(y∣x,z)
Decoding Procedures
- Thorough Decoding:
- 모든 문서 z에서 생성된 가설을 종합합니다.
- ∣Y∣가 큰 경우 추가 계산이 필요하며 비효율적일 수 있습니다.
- Fast Decoding:
- pθ(y∣x,zi)≈0으로 가정하여 beam search에서 생성되지 않은 y는 무시합니다.
- 효율성을 높이는 간략화된 방식입니다.
결론
- Retriever와 generator의 상호 작용은 RAG의 핵심 요소로, 이를 통해 지식 검색 및 생성이 효율적으로 이루어진다.
- DPR 기반 retriever와 BART generator는 각각 비파라메트릭 및 파라메트릭 메모리로 설계되어, 다양한 작업에서 우수한 성능을 발휘한다.
→ 즉 기본 원리는?
RAG-Sequence 모델은 입력 질문 x에 대해, 가장 유사한 문서들 z를 검색하고, 각 문서에서 응답을 생성. 이후, 각 문서에서 생성된 응답들을 가중 평균하여 최종 응답을 얻는다.
문제는 likelihood (우도 함수) p(y∣x)p(y|x)가 토큰별 확률로 나누어지지 않는다는 점. 즉, 각 문서별로 응답을 생성하고 가중 평균을 계산해야 하므로, 단일한 토큰 별로 확률을 계산하는 방법(전통적인 방식)으로는 해결할 수 없다.
2. Thorough Decoding과 Beam Search
Thorough Decoding은 RAG-Sequence 모델에서 응답을 생성하는 디코딩 방법.
-
문서별로 빔 서치 실행:
- 질문 x에 대해 가장 유사한 문서 z를 검색한 후, 각 문서에 대해 별도의 빔 서치를 실행합니다.
빔 서치란 여러 가능한 응답 후보를 동시에 고려하면서, 가장 유망한 후보들을 선택하는 탐색 기법입니다.
→ 각 문서에 대해 여러 개의 후보 응답을 생성합니다.
-
응답 후보 평가:
- 각 응답 후보 y에 대해, 각 문서에서 생성된 응답을 pθ(yi∣x,z)pθ(yi∣x,z)로 평가합니다. 여기서 yi는 생성된 응답의 부분이고, z는 문서입니다.
- 이때 yi가 어떤 문서의 빔에서 등장하지 않은 경우, 해당 문서에 대해서 추가적인 forward pass를 실행하여, 이 응답의 확률을 계산합니다.
-
확률 계산:
- 각 응답 후보 y의 확률을 계산하기 위해, 문서의 생성 확률 pη(z∣x)pη(z∣x)와 응답 생성 확률을 곱한 뒤, 모든 문서에 대해 마진(marginal)을 구합니다.
- 마진을 구하는 방식은 여러 문서에서 생성된 응답들을 모두 고려하여 최종 확률을 합산하는 방식입니다.
3. Fast Decoding
Fast Decoding은 Thorough Decoding의 효율성을 높이기 위해, 추가적인 계산을 피하는 방법입니다.
- 추가 계산을 피하는 이유:
- Thorough Decoding에서는 각 문서에서 발생할 수 있는 모든 후보 응답 에 대해 forward pass를 여러 번 실행합니다. 이는 비효율적일 수 있기 때문에, 이를 개선할 수 있는 방법이 필요합니다. yy
- Fast Decoding에서는 다음과 같은 근사치를 사용합니다:
-
pθ(y∣x,zi)≈0p_\theta(y|x, z_i) \approx 0: 만약 응답 후보 y가 문서 zi의 빔에서 생성되지 않았다면, 그 응답이 해당 문서에서 생성될 확률을 0으로 간주합니다.
→ 한 번의 빔 서치에서 생성된 후보 응답만을 고려하고, 그 후에는 이미 생성되지 않은 응답은 계산하지 않습니다. 이렇게 하면 추가적인 계산을 줄여서 효율성을 높일 수 있습니다.
4. 차이점 요약
- Thorough Decoding:
- 각 응답 후보에 대해 모든 문서에서 추가적인 forward pass를 실행하여 응답의 확률을 계산합니다. 모든 후보를 정확하게 평가하지만 계산량이 많습니다.
- Fast Decoding:
- 빔 서치에서 이미 생성된 후보 응답만을 고려하고, 그 외의 응답에 대해서는 추가 계산을 하지 않습니다. 이렇게 해서 계산을 빠르게 하면서도 효율성을 높이는 방식입니다.
04 | Experiments
RAG 모델은 다양한 지식 집약적 작업에서 실험되었다. 모든 실험은 2018년 12월 Wikipedia 덤프를 비파라메트릭 지식 소스로 사용하였다.
- Wikipedia 문서는 100단어 단위로 분리하여 총 2,100만 개의 문서를 생성.
- 문서 인코더를 사용하여 각 문서의 임베딩을 계산하고, FAISS 기반 MIPS 인덱스를 구축.
- 훈련 중 각 쿼리에 대해 상위 k개의 문서를 검색 k={5,10}.
- 테스트 시에는 개발 데이터를 기반으로 최적의 k를 설정
3.1 Open-domain Question Answering
Open domain QA는 다양한 주제에 대한 대량의 문서 집합으로부터 질문에 대한 답을 해주는 문제이다.
저자들은 retrieval과 extractive system에만 의존하는 non-parametric model과 외부 정보 없이 parameter에만 의존해 정답을 생성하는 pure parametric model과의 비교 실험을 진행했습니다. (사실상 둘다 쓴 RAG가 성능이 잘 나오는 것은 당연한거 아닌가..?) 총 4개의 데이터셋에 대해서 실험을 진행했는데, SOTA를 거의 갈아 치웠습니다.
저자들은 본인들의 방법이 추출된 document들에 질문에 대한 힌트는 있지만 말그대로의 정답 (=verbatim)은 없는 경우, retrieve된 여러 문서들과 질문을 기반으로 답변을 생성하는 RAG가 상대적으로 좋은 성능을 보인다고 합니다.
- *Open-domain Question Answering(QA)**은 실제 응용 및 지식 집약적 작업의 일반적인 테스트베드입니다.
- 질문-응답 쌍 (x,y)을 입력-출력 텍스트 쌍으로 처리하고, 응답의 음의 로그 가능도를 최소화하여 RAG를 훈련합니다.
비교 모델
- Extractive QA:
- 검색된 문서에서 Response-span을 추출하며, 주로 비파라메트릭 지식에 의존.
- Closed-Book QA:
- RAG처럼 응답을 생성하지만, 검색을 활용하지 않고 오직 파라메트릭 지식에 의존.

사용 데이터셋
- Natural Questions (NQ)
- TriviaQA (TQA)
- WebQuestions (WQ)
- CuratedTrec (CT)
- WQ와 CT는 작은 데이터셋으로, DPR에서 제안된 방식처럼 NQ로 초기화된 RAG 모델을 사용.
- TQA에서는 TQA Wiki 테스트 세트를 추가로 평가하여 T5 모델과 비교.
평가 메트릭
- 정확히 일치하는 응답 비율인 Exact Match (EM) 점수를 사용.
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를 달성했다고 합니다.
- RAG 모델은 단순한 추출형 QA를 넘어 자유 형식(abstractive) 텍스트 생성을 수행할 수 있다.
- RAG의 자연어 생성(NLG) 성능을 테스트하기 위해 MSMARCO NLG v2.1 작업을 사용하였다.
MSMARCO 작업
- 구성: 질문, 검색된 10개의 골드 패시지, 그리고 패시지에서 추출된 전체 문장 답변으로 구성.
- 설정: 검색된 골드 패시지를 사용하지 않고, 질문과 답변만을 사용하여 open-domain QA 작업으로 처리.
제약 조건
- 일부 MSMARCO 질문은 골드 패시지에 접근하지 않고는 참조 응답과 일치하는 답을 생성할 수 없음.
- 일부 질문은 Wikipedia만으로는 답변할 수 없음.
RAG의 장점
- 이러한 경우, RAG는 파라메트릭 지식을 활용하여 합리적인 응답을 생성할 수 있음.
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간의 상호 의존성을 평가)를 평가했다고 합니다.
목표
- RAG의 생성 능력을 평가하기 위해 질문 응답(QA) 이외의 작업으로 Jeopardy 질문 생성을 선택.
- Jeopardy는 일반적인 QA 질문과 달리, 주어진 사실로부터 엔터티를 추측하는 형식의 질문을 생성하는 것을 목표로 함.
- 예: "The World Cup"이라는 답변에 대해, 질문은 "1986년에 멕시코가 이 국제 스포츠 대회를 두 번 개최한 최초의 국가가 되었다."와 같은 방식으로 구성.
데이터셋
- SearchQA의 데이터 분할을 사용:
- 훈련 데이터: 100K 예제
- 검증 데이터: 14K 예제
- 테스트 데이터: 27K 예제
평가 방법


- Q-BLEU-1 메트릭:
- SQuAD에 맞게 튜닝된 BLEU의 변형으로, 엔터티 매칭에 높은 가중치를 부여.
- 질문 생성 작업에서 기존 BLEU 메트릭보다 인간 평가와 더 높은 상관관계를 가짐.
- 인간 평가:
- 두 가지 측면 평가:
- 정확성(Factuality): 생성된 질문이 신뢰할 수 있는 외부 소스로 확인될 수 있는지 여부.
- 특이성(Specificity): 입력과 출력 간의 상호 의존도가 높은지 여부.
- 쌍별 비교(pairwise comparison) 평가 방식을 채택:
- 평가자는 답변과 함께 두 개의 생성된 질문(하나는 BART, 하나는 RAG)을 비교하고, 네 가지 옵션 중 하나를 선택:
- 질문 A가 더 낫다.
- 질문 B가 더 낫다.
- 둘 다 좋다.
- 둘 다 좋지 않다.
3.4 Fact Verification
Fever라는 데이터셋은 자연어 claim에 대해서 위키피디아에서 적절한 문서를 가져와 해당 claim이 supported되는지, refuted되는지, 아니면 위키피디아에 충분한 정보가 없는지 판별하는 문제입니ㅏ다. 이 문제는 상당한 수준의 기계추론을 요구합니다. 왜냐하면 1) claim에 대응하는 적절한 문서를 위키피디아에서 retrieve 해야하고, 2) retrieve된 문서를 바탕으로 정확하게 claim에 대한 추론을 해야하기 때문입니다. 저자들은 real-world에서는 어떤 claim이 주어졌을때 어떤 문서가 이와 관련 있는지에 대한 정보가 없기 때문에 retrieve 문서에 대한 supervise learning은 진행하지 않고, 학습을 진행했다고 합니다. SOTA모델들은 FEVER을 위해 특화된 구조를 가지고 있지만, RAG는 범용성 높은 구조로 괄목할만한 성능을 보여주었습니다.
목표
- RAG의 사실 검증(fact verification) 능력을 평가하기 위해 FEVER 데이터셋을 사용.
- 주어진 자연어 주장에 대해:
- Wikipedia를 기반으로 해당 주장이 지지(supports)되는지,
- *반박(refutes)**되는지,
- 정보가 부족하여 판단할 수 없는지 (not enough info)를 분류.
특징
- FEVER는 증거 검색(evidence retrieval)과 복잡한 포섭 추론(entailment reasoning)이 결합된 작업.
- RAG 모델이 생성 작업이 아닌 분류 작업을 처리할 수 있는지 평가하기에 적합한 테스트베드.
학습 설정
- FEVER의 클래스 라벨(지지, 반박, 정보 부족)을 단일 출력 토큰으로 매핑하여, 주장-클래스 쌍으로 모델을 훈련.
- 검색된 증거에 대한 감독 신호(supervision) 없이 학습:
- 대부분의 기존 접근법과 달리, 검색된 증거에 대한 라벨링이 필요하지 않음.
- 이는 감독 신호가 없는 실제 작업에서도 적용 가능성을 높임.
실험 설정
- 3-방향 분류:
- 지지(supports), 반박(refutes), 정보 부족(not enough info)로 라벨링.
- 2-방향 분류:
- 지지(supports)와 반박(refutes)만 라벨링 (Thorne and Vlachos [57] 방식).
평가 메트릭
- 정확도(label accuracy):
- 주어진 주장에 대해 올바른 라벨을 예측했는지 평가.
요약
- RAG는 Jeopardy 질문 생성과 같은 고난도의 지식 생성 작업에서 높은 정확성과 특이성을 보였다.
- FEVER 작업에서 감독 신호 없이도 복잡한 검색-추론 문제를 해결할 수 있는 잠재력을 입증하였다.
- 이러한 실험 결과는 RAG가 QA를 넘어서는 다양한 지식 집약적 작업에 적합한 모델임을 보여준다.
05 | Results
4.1 Open-domain Question Answering
- Table 1의 결과는 RAG가 주요 Open-domain QA 작업에서 최첨단(state-of-the-art) 성능을 기록했음을 보여준다.
- RAG는 TQA-Wiki 테스트 세트에서 T5와 비교 가능한 설정에서 새로운 성과를 달성.
- RAG-Sequence와 RAG-Token 모두 높은 성능을 나타냄.
장점
- RAG는 "Closed-Book" 접근법(오직 파라메트릭 지식)과 "Open-Book" 접근법(검색 기반 접근법)의 장점을 결합.
- REALM 및 T5+SSM과 달리, 특화된 Salient Span Masking(SSM) 사전 학습 없이도 강력한 성능을 달성.
- DPR 기반 재학습(re-ranking) 또는 추출형 리더(reader) 없이도 최고의 성과를 보임.
추출형 모델 대비 장점
- RAG는 응답을 추출하지 않고도 정확한 답변을 생성 가능:
- 문서에 직접적인 응답이 없더라도 단서를 활용하여 올바른 답을 생성할 수 있음.
- 예를 들어, NQ 작업에서 검색된 문서에 정답이 없는 경우에도 11.8% 정확도로 정답 생성 가능(추출형 모델은 0%).
4.2 Abstractive Question Answering
- Table 2에 따르면, RAG-Sequence는 Open MS-MARCO NLG에서 BART를 다음 지표에서 능가:
- BLEU 점수: +2.6
- ROUGE-L 점수: +2.6
RAG의 성능이 인상적인 이유
- 골드 패시지 사용 제한:
- 기존 모델들은 골드 패시지를 사용하여 특정 정보를 직접 생성하지만, RAG는 이를 활용하지 않음.
- 골드 패시지 의존성:
- 일부 질문은 골드 패시지가 없으면 참조 응답과 일치하는 답변 생성이 불가능.
- Wikipedia 한계:
- RAG는 Wikipedia 데이터만으로도 높은 성능을 기록.
질적 분석
- RAG 모델은 환각(hallucination)이 적고 사실적으로 정확한 텍스트를 더 자주 생성.
- §4.5에서 논의된 바와 같이, BART에 비해 더 다양한 응답을 생성.
성과 정리
- Open-domain QA:
- RAG는 기존 추출형 및 생성형 접근법을 능가하며, 다양한 정보 출처를 활용하여 복잡한 작업을 처리.
- RAG-Sequence가 대부분의 데이터셋에서 RAG-Token을 능가.
- Abstractive QA:
- Open MS-MARCO NLG에서 RAG는 BART 대비 우월한 성능을 기록하며, 더 사실적이고 신뢰할 수 있는 응답 생성 가능.
- Wikipedia와 같은 제한된 데이터만으로도 높은 적합성을 유지.
4.3 Jeopardy Question Generation
결과 요약
- RAG-Token이 Jeopardy 질문 생성에서 RAG-Sequence를 능가하며, 두 모델 모두 BART보다 높은 Q-BLEU-1 점수를 기록.
- 인간 평가 결과에 따르면:
- BART가 RAG보다 더 사실적(factual)이라고 평가된 비율은 7.1%에 불과.
- 반면 RAG는 42.7%의 경우에서 더 사실적으로 평가되었으며, 추가 17%는 두 모델 모두 사실적인 응답을 생성.
RAG-Token의 우수성
- Jeopardy 질문은 종종 두 가지 정보 조각을 포함:
- 예: "Sun Also Rises"와 "A Farewell to Arms"라는 두 책 제목을 포함하는 질문 생성.
- RAG-Token은 여러 문서에서 정보를 결합하여 이러한 복잡한 질문을 생성하는 데 탁월.
예제 분석
- Figure 2는 RAG-Token이 "Hemingway"에 대한 질문을 생성하는 동안 각 토큰에 대해 다른 문서에 의존함을 보여줌:
- "The Sun Also Rises" 생성 시 문서 2가 주요 후방 확률(posteriors)을 지배.
- "A Farewell to Arms" 생성 시 문서 1이 주요 확률을 지배.
- 각 제목의 첫 번째 토큰 이후에는 문서 후방 확률이 평평해져, 파라메트릭 메모리가 제목 생성을 완료할 수 있음을 시사.
파라메트릭 및 비파라메트릭 메모리의 상호작용
- RAG는 비파라메트릭 메모리가 특정 정보를 제공하여 파라메트릭 메모리에서 저장된 지식을 효과적으로 끌어내는 방식으로 작동:
- 예: BART는 "The Sun"이라는 입력만으로도 "The Sun Also Rises"라는 제목을 완성 가능.
4.4 Fact Verification
FEVER에서의 성능
- Table 2 결과:
- 3-way 분류에서 RAG는 최첨단 모델과 4.3% 이내의 성능 차이를 보임.
- 이 모델들은 복잡한 파이프라인 시스템, 도메인 특화 아키텍처, 강력한 검색 감독 신호를 필요로 하지만, RAG는 이러한 추가적인 감독 없이도 높은 성능을 발휘.
- 2-way 분류에서는 Thorne and Vlachos [57]의 RoBERTa 모델과 비교해 2.7% 이내의 성능 차이를 기록.
검색된 문서의 품질
- RAG의 검색 문서가 FEVER의 골드 증거와 얼마나 일치하는지 분석:
- 상위 1개의 검색 문서가 골드 증거에 포함된 문서일 확률: 71%.
- 상위 10개의 검색 문서에 골드 증거 문서가 포함될 확률: 90%.
RAG의 접근법
- 대부분의 모델과 달리 RAG는 검색 증거에 대한 직접적인 감독 없이 학습:
- 이는 RAG가 실제 응용에서 더 광범위하게 적용될 수 있음을 시사.
결론
- Jeopardy Question Generation:
- RAG-Token은 BART 및 RAG-Sequence 대비 우수한 성능을 보이며, 복잡한 질문 생성에 강점을 가짐.
- 파라메트릭 및 비파라메트릭 메모리가 상호보완적으로 작동하여 더 정확하고 구체적인 질문을 생성.
- Fact Verification:
- RAG는 복잡한 도메인 특화 시스템과 비교해 유사한 수준의 성능을 달성하며, 검색 감독 없이도 높은 정확도를 보임.
- 검색된 문서와 골드 증거 간 높은 일치율을 통해 RAG의 검색 품질이 검증됨.
4.5 Additional Results
Generation Diversity
- 다양성 측정:
- 생성된 n-gram의 비율을 계산하여 각 모델의 텍스트 생성 다양성을 평가.
- Table 5 결과:
- RAG-Sequence는 RAG-Token보다 더 다양한 텍스트를 생성.
- RAG 모델은 별도의 다양성 촉진(decoding) 없이도 BART보다 훨씬 다양한 텍스트를 생성.
Retrieval Ablations
- RAG 모델의 주요 특징 중 하나는 학습 기반 검색 메커니즘.
- 두 가지 실험을 통해 검색 메커니즘의 효과를 분석:
- 고정된 검색기(frozen retriever):
검색기를 고정한 채로 학습한 모델과 비교.
- Table 6 결과:
- 학습된 검색기가 모든 작업에서 성능을 향상.
- BM25 기반 검색기:
- RAG의 밀집 검색기를 단어 기반 BM25 시스템으로 대체.
- 결과:
- FEVER 작업에서는 BM25가 더 나은 성능을 보임. 이는 FEVER가 엔터티 중심의 작업이기 때문.
- 다른 작업에서는 밀집 검색기가 더 우수.
Index Hot-swapping
- 비파라메트릭 메모리 모델의 장점은 지식을 손쉽게 업데이트할 수 있다는 점.
- RAG의 인덱스를 2016년 DrQA Wikipedia 덤프와 2018년 Wikipedia 덤프로 교체하여 비교.
- 82명의 세계 지도자 데이터셋을 사용하여 각 기간의 지도자에 대해 질문 생성.
- 결과:
- 2016년 인덱스는 2016년 지도자 질문에서 70% 정확도를 기록.
- 2018년 인덱스는 2018년 지도자 질문에서 68% 정확도를 기록.
- 잘못된 기간의 데이터로 질문을 생성할 경우 정확도가 크게 감소(예: 2018년 인덱스와 2016년 질문: 12%, 반대: 4%).
- 이는 단순히 비파라메트릭 메모리 업데이트를 통해 RAG의 세계 지식을 효율적으로 갱신할 수 있음을 보여줌.
Effect of Retrieving More Documents
- 모델은 5개 또는 10개의 문서를 검색하여 훈련되며, 테스트 시 검색 문서 수를 조정할 수 있음.
- Figure 3 결과:
- Open-domain QA 성능:
- RAG-Sequence는 더 많은 문서를 검색할수록 성능이 향상.
- RAG-Token은 10개의 문서를 검색할 때 성능이 최고에 도달.
- MS-MARCO 성능:
- 더 많은 문서를 검색할수록 Rouge-L 점수는 증가하지만, Bleu-1 점수는 감소.
- 이 효과는 RAG-Sequence에서 덜 뚜렷하게 나타남.
요약
- RAG는 BART보다 더 다양한 텍스트를 생성하며, 학습 기반 검색 메커니즘이 모든 작업에서 성능 향상에 기여.
- 비파라메트릭 메모리 업데이트를 통해 RAG의 지식을 동적으로 갱신 가능.
- 검색 문서 수는 성능에 영향을 미치며, RAG-Token과 RAG-Sequence 간 최적 문서 수에 차이가 존재.
- 이러한 결과는 RAG가 효율적이고 유연한 검색 및 생성 메커니즘을 제공함을 보여준다.
Single-Task Retrieval
- 이전 연구에서는 검색(retrieval)이 다양한 NLP 작업에서 성능 향상에 기여함을 입증:
- 작업 예시:
- Open-Domain QA【5, 29】
- 사실 검증(fact-checking)【56】
- 사실 완성(fact completion)【48】
- 긴 형식의 질문 응답(long-form QA)【12】
- Wikipedia 문서 생성【36】
- 대화(dialogue)【41, 65, 9, 13】
- 번역【17】
- 언어 모델링【19, 27】
- 본 연구는 개별 작업에서 검색을 활용한 이전 연구의 성공 사례를 통합:
- 단일 검색 기반 아키텍처로 다양한 작업에서 강력한 성능을 달성함을 보임.
General-Purpose Architectures for NLP
- 이전 연구는 검색 없이도 일반적인 NLP 작업에서 성공적인 성과를 보임:
- 단일 사전 학습 언어 모델:
- GLUE 벤치마크【60, 61】에서 분류 작업에 우수한 성능을 보임【49, 8】.
- GPT-2:
- 좌-우 방향으로 학습된 언어 모델로서, 분류 및 생성 작업 모두에서 높은 성과【50】.
- BART 및 T5:
- 양방향 주의(attention)를 활용한 인코더-디코더 모델로, 분류 및 생성 작업에서 우수한 성능 기록【32, 51, 52】.
- 본 연구는 검색 모듈을 학습하여 사전 학습된 생성 언어 모델을 보강:
- 이를 통해 단일 아키텍처로 해결 가능한 작업 범위를 확장.
Learned Retrieval
- 검색 모듈 학습:
- 최근 연구는 사전 학습된 뉴럴 언어 모델을 활용한 문서 검색 학습에 중점을 둠【44, 26】.
- 일부 연구는 특정 작업(QA 등)을 지원하기 위해 검색 모듈을 최적화:
- 방법:
- 검색 최적화【46】
- 강화 학습【6, 63, 62】
- 잠재 변수(latent variable) 접근법【31, 20】.
- 본 연구는 단일 검색 기반 아키텍처로 여러 작업에서 성능을 높이는 데 초점.
Memory-Based Architectures
- 본 연구의 문서 인덱스는 뉴럴 네트워크가 참조할 수 있는 대규모 외부 메모리로 간주 가능:
- 이는 Memory Networks【64, 55】와 유사한 구조.
- 다른 연구는 입력 엔터티에 대해 훈련된 임베딩을 검색하거나【14】, 팩트 임베딩을 참조하여 대화 모델의 정확성을 높이는 데 사용【15, 13】.
- 본 연구의 차별점:
- 메모리가 원시 텍스트(raw text)로 구성:
- 해석 가능성: 사람이 읽고 이해할 수 있음.
- 동적 업데이트: 문서 인덱스를 수정하여 메모리를 업데이트 가능.
- 이는 지식 집약적 대화에서 검색된 텍스트를 조건으로 생성기를 학습시키는 데 유용:
- 이전 연구는 TF-IDF 기반 검색 사용【9】.
Retrieve-and-Edit Approaches
- RAG는 Retrieve-and-Edit 접근법과 일부 유사점 공유:
- 입력에 대한 유사한 학습 쌍을 검색 후 편집하여 최종 출력을 생성하는 방식:
- 적용 분야:
- 기계 번역【18, 22】
- 의미 분석(semantic parsing)【21】.
- RAG의 차별점:
- 검색된 항목을 간단히 편집하는 데 중점을 두지 않음.
- 대신:
- 여러 검색 결과를 집계하여 내용 생성.
- 증거 문서를 검색 및 활용.
- 잠재 검색(latent retrieval)을 학습.
- RAG 기술은 이러한 설정에서 효과적일 가능성이 높으며, 향후 연구 가능성을 제시.
07 | Discussion
요약 및 주요 결과
- 본 연구에서는 파라메트릭 메모리와 비파라메트릭 메모리를 결합한 하이브리드 생성 모델을 제안.
- RAG 모델은 Open-Domain QA에서 최첨단(state-of-the-art) 성능을 기록:
- BART와 비교해, 사용자들은 RAG의 생성을 더 사실적이고 구체적이라고 평가.
- 검색(retrieval) 구성 요소에 대해 심층적인 분석을 수행:
- 학습된 검색 메커니즘의 유효성을 확인.
- 검색 인덱스를 hot-swapping하여, 추가 학습 없이도 모델 지식을 업데이트할 수 있음을 입증.
미래 연구 방향
- 공동 사전 학습(joint pre-training) 가능성:
- BART와 유사한 denoising objective 또는 새로운 학습 목표를 사용하여 모델의 두 구성 요소(검색기와 생성기)를 처음부터 공동 학습.
- 파라메트릭 및 비파라메트릭 메모리 상호작용 연구:
- 두 메모리를 가장 효과적으로 결합할 방법 탐구.
- 이를 통해 다양한 NLP 작업에 RAG를 적용 가능성을 확장.
Broader Impact
긍정적인 사회적 영향
- RAG는 기존 모델보다 사실적 지식 기반이 강하여 환각(hallucination)이 적음:
- 더 사실적이고 구체적인 응답을 생성하며, 통제 가능성과 해석 가능성을 제공.
- 다양한 사회적 응용 가능성:
- 예: 의료 데이터베이스와 결합하여 의료 질문에 대한 응답 제공.
- 직업 환경에서 사람들의 생산성을 향상.
잠재적 위험
- 외부 지식 소스(예: Wikipedia)의 한계:
- 완벽히 사실적이거나 편향이 없는 지식 출처는 존재하지 않음.
- 언어 모델 남용 가능성:
- GPT-2와 유사한 문제:
- 학대성 콘텐츠, 허위 정보, 또는 오도된 콘텐츠 생성.
- 소셜 미디어에서의 가짜 콘텐츠나 스팸/피싱 자동화.
- 예측:
- 언어 모델의 발전이 일부 직업의 자동화를 가속화할 가능성.
- 리스크 완화 방안:
- AI 시스템을 활용해 잘못된 정보 및 스팸/피싱 콘텐츠에 대항.
Acknowledgments
- 감사:
- 연구 논문에 대한 리뷰와 건설적인 피드백 제공자.
- RAG 모델 오픈소스를 지원한 HuggingFace.
- Kyunghyun Cho 및 Sewon Min의 조언과 논의.
- 지원:
- EP: NSF Graduate Research Fellowship 지원.
- PL: FAIR PhD 프로그램 지원.