| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | 6 | 7 |
| 8 | 9 | 10 | 11 | 12 | 13 | 14 |
| 15 | 16 | 17 | 18 | 19 | 20 | 21 |
| 22 | 23 | 24 | 25 | 26 | 27 | 28 |
Tags
- Noise
- NLP
- retrieval
- Statistics
- Noise Robustness
- Document Augmentation
- Transformer
- 파인튜닝
- GPT
- moe
- DyPRAG
- COT
- odds
- Baekjoon
- SFT
- DPO
- RAG
- Algorithm
- Do it
- fine-tuning
- reranking
- LLM
- lora
- coding test
- Python
- Hallucination
- Retriever
- qwen
- Parametric RAG
- Embedding
Archives
- Today
- Total
왕구아니다
[논문 리뷰] Parametric Retrieval Augmented Generation 본문
Paper Review/RAG
[논문 리뷰] Parametric Retrieval Augmented Generation
Psalms 12:6-7 2025. 12. 26. 19:50본 논문 리뷰는 저의 개인적인 해석과 의견을 바탕으로 작성된 글입니다.
내용 중 해석의 오류나 개념적인 착오가 있다면, 망설이지 마시고 댓글로 혼내주시면 감사하겠습니다~
Preview
- 문서를 입력으로 넣지 말고, 모델의 파라미터로 바꾸자
- 문서를 LoRA 형태의 파라미터로 변환 후, 모델의 FFN에 삽입
- 추론 시에는 문서를 넣지 않고, 파라미터만 로드
- Parametric RAG는 문서를 파라미터로 바꾸는 offline 과정과 실제 inference에 해당하는 online 과정으로 나뉨
Link
- 논문 : https://arxiv.org/abs/2501.15915
- 코드 : https://github.com/oneal2000/PRAG
GitHub - oneal2000/PRAG: Code for Parametric RAG, SIGIR 2025 Full Paper
Code for Parametric RAG, SIGIR 2025 Full Paper. Contribute to oneal2000/PRAG development by creating an account on GitHub.
github.com
📍0. Abstract
- 외부 지식을 LLM context에 넣어주는(in-context) RAG가 등장하면서 LLM이 외부지식을 활용해 더 신뢰할 만한 답변을 생성하게 됨
- 그러나 본질적인 한계 존재
- 입력 context 길이 증가 + 검색된 문서의 수 증가 = 긴 프롬프트 = 계산량 증가
- 특히 복잡한 추론 과제에서는 아무리 검색된 문서의 수가 많다고 한들 성능이 좋아지지 않음
- 더 중요한 문제점은 in-context으로 주입된 지식은 입력 수준에서만 작동하고 진짜 LLM이 아는 내부 지식은 파라미터로 저장되어 있음
- 프롬프트 ≒ 진짜 지식 (❗️이 부분이 본 논문에서 다루는 논점)
- 본 논문에서는 이 부분을 해결하기 위해 Parametric RAG를 제안하는데 이름에서 알 수 있듯이 검색된 문서들을 파라미터로 변환하여 LLM의 FFN에 직접 넣어주는 RAG 방식
- 장점 : input context가 짧아져 계산 비용 감소, 외부 지식을 모델 내부 지식처럼 사용할 수 있음
📍1. Introduction
- LLM은 IR/NLP에서 뛰어나지만, 학습이 끝나면 내부 지식이 고정되어 새 정보 반영이 어려움. 이를 해결하기 위해 RAG 등장
- 기존 RAG 연구들은 검색 속도, 문서 선택, 외부 지식 구조화 등 다양한 부분을 개선해 왔지만, 결국 공통적으로 검색된 외부 문서들을 LLM의 입력 context로 주입함(in-context)
- in-context 방식으로 외부 지식을 주입했을 때의 문제점들
- 1) 입력 프롬프트 증가 → 추론 비용 & 추론 지연성 증가 → 복잡한 문제에서 성능 저하
- 2) LLM이 프롬프트 안의 정보를 처리하는 방식과 파라미터에 저장된 지식을 사용하는 방식이 근본적으로 다르다
- 기본적으로 LLM의 Transformer 아키텍처에서 LLM의 핵심 지식은 Attention layer에 저장되는 것이 아니라 FFN 같은 네트워크 layer에 저장됨
- RAG의 in-context 방식은 Attention KV 계산에는 영향을 주지만 FFN 자체에는 영향을 주지 못함
- 해결책으로 SFT를 생각할 순 있지만, 매 질문마다 실시간으로 적용하는 것은 현실적으로 불가능 (연산 비용, LLM 자체 성능 저하 유발, 필요할 때마다 지식을 넣었다 뺏다 불가능)

- 그렇다면 "❓외부 지식을 파라미터에 넣으면서도, 효율적이고 유연한 RAG가 가능한가?"
- 외부 지식을 프롬프트가 아니라 FFN 파라미터에 직접 주입하는 Parametric RAG를 제안
- 1) 오프라인 단계
- 문서를 미리 파라미터 형태로 변환
- 2) 추론 단계
- RAG 수행 과정을 Retrieve → Update → Generate (RUG) 흐름으로 모델 동작시킴

- Retrieve → Update → Generate (RUG) 흐름
- 사용자의 입력 프롬프트에 맞춰 top-n개 문서 검색 (기본 RAG와 시작 동일)
- 검색된 문서에 일치하는 문서 파라미터를 가지고 LLM 업데이트
- 업데이트된 LLM을 가지고 초기 사용자의 입력 프롬프트에 맞춰 추론 후 답변 생성
- 결과는
- Parametric RAG가 추론 속도가 더 빠르고, 복잡한 추론이 필요한 RAG 과제에서 기존 방식보다 성능이 더 좋음
📍2. Related Work
- 다양한 RAG 확장 기법들
- Adpative RAG : 질문 난이도에 따라 검색 전략 자체를 조절하는 방식
- IR-CoT : 문서를 기반으로 추론 과정을 명시적으로 보여주는 프롬프트 설계를 통해 RAG 강화
- GraphRAG : 문서가 아닌 지식 그래프 구조를 활용해 관계 중심의 지식을 검색
- FLARE : 모델이 다음 토큰에 확신을 못 가질 때 검색
- DRAGIN : 모델 내부 상태와 이전 문맥을 바탕으로 실시간 검색 쿼리를 생성
📍3. Methodology
3.1 Problem Formulation and Overview
L : LLM
𝜃 : LLM parmateters
q : User query
K = {𝑑1,𝑑2,...,𝑑𝑁} : External corpus (𝑑𝑖 as ‘document’ : text chunk)
R : Retrieval module → q와 di relevance score 계산 {𝑆𝑑1 ,𝑆𝑑2 ,...,𝑆𝑑𝑁 }
1️⃣ Offline document Parameterization

- 본 논문에서 정의하는 parametric representation pᵢ는 단순한 파라미터 추가가 아니라, 외부 문서를 모델의 내부 지식처럼 동작하게 만드는 표현
- (1) LLM의 FFN 가중치에 직접 적용 가능해야 하며,
- (2) 적용 후 모델이 해당 문서의 지식을 실제 추론 과정에 활용할 수 있어야 하고,
- (3) 다수의 문서 파라미터가 결합되었을 때도 지식 간 충돌 없이 통합적으로 작동해야 함
2️⃣ Online Inference
- 사용자 질문에 맞게 검색된 상위 k개 문서의 파라미터를 먼저 병합 후 병합된 파라미터를 기존 LLM 가중치 업데이트
- 이렇게 업데이트 된 LLM으로 사용자의 질문에 대한 답 생성
3.2 Offline document Parameterization

❓ 외부 코퍼스 K에 포함된 각 문서를 사전에 어떻게 파라미터로 변환하는지 살펴보자
- 크게 두 단계로 나뉨
3.2.1 Document Augmentation
- 기존 연구들은 문서를 단순히 텍스트로 학습시키는 것만으로는 지식이 제대로 내재화되지 않는다는 점을 보여줌 (LLM은 문서를 반복 학습해도 내용을 암기할 뿐, 실제 과제에서는 지식으로 활용하지 못함)
- 이를 해결하기 위해 문서 기반 QA 생성과 다양한 문장 재작성이라는 두 가지 전략을 이전 연구에서 제안했는데, 본 논문 저자들도 이를 착안해서 문서 증강을 수행함
- 먼저 LLM을 이용해서 각 문서의 표현 방식, 문체, 구조를 달리해 여러 번 다시 씀(Document Rewriting)
- 즉, 하나의 문서(𝑑𝑖)가 내용은 같지만 표현이 다른 여러 개의 문서들로 변형됨 {𝑑𝑖1,𝑑𝑖2,...,𝑑𝑖𝑛}
# 저자 사용 프롬프트
'''
Rewrite the following passage.
While keeping the entities, proper nouns, and key details such as names, locations, and terminology intact, create a new version of the text that expresses the same ideas in a different way.
Make sure the revised passage is distinct from the original one, but preserves the core meaning and relevant information.
{passage}
'''
- 그다음, LLM을 이용해서 원본 문서를 기준으로 질문–답변 쌍을 생성(QA Pair Generation)
- 즉, 각 문서(𝑑𝑖)들은 {(𝑞𝑖1,𝑎𝑖1), (𝑞𝑖2,𝑎𝑖2),..., (𝑞𝑖𝑚,𝑎𝑖𝑚)} 여러 개의 질문과 그에 대한 정답을 갖게 됨
# 저자 사용 프롬프트
'''
I will provide a passage of text, and you need to generate three different questions based on the content of this passage.
Each question should be answerable using the information provided in the passage.
Additionally, please provide an appropriate answer for each question derived from the passage.
You need to generate the question and answer in the following format:
[
{
"question": "What is the capital of France?",
"answer": "Paris"
"full_answer": "The capital of France is Paris."
},
]
This list should have at least three elements. You only need to output this list in the above format.
Passage:
{passage}
'''
- 재작성 문서와 QA를 결합함으로써, 하나의 문서(𝑑𝑖)는 훨씬 풍부한 학습 자원(𝐷𝑖)이 됨

3.2.2 Parametric Document Encoding
- 이제 위에서 만든 각 문서(𝑑𝑖)들을 증강시킨 데이터(𝐷𝑖)를 어떻게 파라미터(pᵢ)로 변형시켰는지 알아보자
- 기본적으로, LoRA 방식을 따라 LLM의 FFN 파라미터 행렬 W에 대응하는 저차원 행렬(low-rank matrices)로 pᵢ들을 초기화함
- 즉, 각 문서(𝑑𝑖)는 서로 독립적인 LoRA 파라미터를 갖게 됨
- 만약 LLM의 트랜스포머 layer가 은닉 차원 h를 가지고, 각 layer 내의 FFN가 중간 차원 k를 가진다고 가정한다면, LLM의 각 FFN layer는 h*k 크기의 가중치 행렬 W를 가짐
- 결론적으로 문서 지식은 원래 가중치 W에 ABᵀ 형태의 LoRA 업데이트로 추가됨
- W′ = W + △W = W + ABᵀ / A ∈ Rℎ×𝑟, B ∈R𝑘×𝑟, 𝑟 ≪ min(ℎ,𝑘)
- 원래의 가중치 행렬 W는 고정된 상태로 유지되며, 해당 layer에서 오직 A와 B만이 학습 가능한 파라미터 (Δ𝜃= {𝐴,𝐵})
- 코퍼스 내의 각 문서(𝑑𝑖)는 자신만의 고유한 Δ𝜃= {𝐴,𝐵}를 가짐
- 결론적으로 문서 지식은 원래 가중치 W에 ABᵀ 형태의 LoRA 업데이트로 추가됨
- 이때, 각 문서(𝑑𝑖)의 LoRA 파라미터(Δ𝜃)는 해당 문서의 증강 데이터로(𝐷𝑖)만 학습시킴
- 증강 데이터(𝐷𝑖)는 위에서 원본을 재작성한 문서들과 QA 쌍으로 총 3개로 구성한다고 했음. 그래서 학습시킬 때는 문서·질문·답변을 하나의 시퀀스로 이어 붙여(concat) 학습 입력으로 사용 → 𝑥 = [𝑑𝑖(𝑘) ⊕ 𝑞𝑖(𝑗) ⊕ 𝑎𝑖(𝑗)]
- 결국 LoRA 파라미터(Δ𝜃)를 학습시키는 과정은 기본적인 순차 언어 모델링의 next-token prediction 방식을 사용
- 수식의 목적은 오차를 최소화하자
- 원본 문서를 재작성한 내용과 원본 문서 기반 질문-답변 쌍들로 구성된 전체 데이터셋에 대해 계산을 반복하여 합산
- T는 𝑥 = [𝑑𝑖(𝑘) ⊕ 𝑞𝑖(𝑗) ⊕ 𝑎𝑖(𝑗)] 여기 𝑥의 전체 토큰 수를 의미
- -log이므로(모델이 예측한 확률값을 손실 점수로 변환하는 장치), 정답을 맞힐 확률이 낮을수록 더 높은 벌점을 부여하여 학습을 유도
- 𝑃𝜃+Δ𝜃 (𝑥𝑡|𝑥<𝑡)는 기존 모델(𝜃)에 새로운 지식(Δ𝜃)을 더했을 때, 이전 단어들(𝑥<𝑡)을 보고 다음 정답 단어(𝑥𝑡)를 맞출 확률을 계산
- 수식의 목적은 오차를 최소화하자

- ‼️ 이렇게 원본 문서를 증강시켜 새로운 데이터 집합(𝐷𝑖)을 만들고 이를 학습시킨 Δθ는 문서 하나를 대표하는 가벼운 지식 파라미터가 되고 PRAG 목표인 문서의 사실 정보를 파라미터 내부에 스며들게 만드는 것을 달성할 준비가 됨
- 그리고 Adapters나 Prefix-Tuning 같은 다른 효율적인 학습 방법 대신 LoRA를 선택한 이유는
- Adapters보다 병합이 쉽고(Adapters 방식은 모델 레이어 사이에 새로운 층을 물리적으로 삽입해야 해서 구조가 복잡해지지만, LoRA는 학습된 행렬(Δ𝜃= {𝐴,𝐵})을 기존 가중치(W)에 더하기만 하면 됨)
- Prefix-Tuning보다 연산 오버헤드가 적기 때문이라고 함(Prefix-Tuning은 추론 시 추가적인 가상 토큰들을 처리해야 하므로 계산 비용이 발생하지만, LoRA는 추론 시 기존 가중치와 합쳐진 상태로 동작하기 때문에 추가적인 연산 부담이 거의 없음)
- 또한 구성한 증강 데이터(𝐷𝑖) 자체가 보통의 Q&A 학습처럼 답변(정답)만 있는 것이 아니라 문서와 질문이 같이 있기 때문에 전체 시퀀스를 대상으로 다음 단어를 예측하며 손실 값을 계산함
- 이렇게 하면 모델이 단순히 답변 패턴만 외우는 것이 아니라, 문서의 문장 구조와 사실 관계 전체를 자신의 파라미터 속에 더 깊게 각인시키는 효과가 있다고 함
- 그리고 Adapters나 Prefix-Tuning 같은 다른 효율적인 학습 방법 대신 LoRA를 선택한 이유는
- 이 모든 과정은 사전에 수행되며, 실시간 추론과 분리됨
- 실시간 추론 시에는 검색된 문서의 LoRA만 불러오면 됨 (추론 전체 비용에서 대략 1% 매우 작은 비중 차지)
3.2.3 Discussion on LoRA Initialization
- 저자들은 각 문서(𝑑𝑖)의 LoRA 파라미터를 사전 학습 없이 무작위 초기화로 시작한다고 함
- 그 이유는 PRAG는 특정 task(domain)에 맞춘 방법이 아니라 범용적인 지식 주입 방식을 목표로 하기 때문 (따로 언급하지 않는 한, 이 논문의 기본 설정은 항상 랜덤 초기화)
- 그러나 랜덤 초기화가 항상 최선은 아님
- 예를 들어, LoRA를 몇 개의 QA 예제로 미리 워밍업 한 뒤 이렇게 학습된 LoRA 가중치를 각 문서 파라미터 학습의 초기값으로 사용
- 뒤 실험 파트에서 설명하겠지만, 이렇게 warm-up 시킨 LoRA 가중치를 사용했을 때 RAG 성능이 향상됨
- 아무래도 한번 특정 task에 학습된 상태에서 시작을 하는 것이 랜덤으로 초기값을 설정하는 것보단 특정 task 지식을 파라미터 기반으로 주입했을 때 더 효과적이다는 뜻
3.3 Online Inference
질문(q)이 들어오면 Parametric RAG는 Retrieve → Update → Generate의 3단계로 동작
3.3.1 Retrieve
- 기존 RAG와 동일하게 검색기(R)가 질문(q)과 각 문서(𝑑𝑖 ∈ 𝐾)의 관련도({𝑆𝑑1 ,𝑆𝑑2 ,...,𝑆𝑑𝑁 })를 계산해 관련도가 가장 높은 상위 k개 문서를 선택({𝑑1,𝑑2,...,𝑑𝑘}⊆𝐾)
- 이때 선택된 문서들은 이미 학습된 자신만의 LoRA 파라미터 (Aᵢ, Bᵢ)를 가지고 있음
3.3.2 Update
- 검색이 끝난 후 선택된 상위 k개의 문서들의 LoRA 파라미터들을 하나로 합침
- LoRA 방식에 따라, 업데이트 강도를 조절하는 스케일 계수 α를 적용
- 최종 가중치 변화량(Δ𝑊merge)은 검색된 모든 문서의 LoRA 업데이트를 단순 합으로 계산 (직관적으로 해석하면 여러 문서의 지식들을 하나로 합친다)

- Δ𝑊merge를 얻고 나면 LLM의 기존 FFN 가중치(W)에 더해, 임시로 강화된 가중치 W′를 만듦

- 즉, W′는 기본 모델 지식 + 검색된 문서 지식을 함께 담은 상태
3.3.3 Generate
- Transformer 안에 있는 모든 FFN 레이어에 업데이트를 적용하면, 임시 모델 L′(𝜃′)이 만들어지고 이 모델을 이용해 초기 질문(q)에 대한 답변을 생성
- 생성 방식 자체는 기존 LLM과 동일한 (left-to-right) 디코딩 방식 사용
3.4 Discussion on Time/Space Efficiency
3.4.1 Computation Cost
리뷰 초반부터 In-context으로 지식을 주입하는 방식에 비해 계산 비용이 적다고 했는데 어느 부분에서 많이 감소가 되었는지 살펴보겠습니다.
- 크게 offline preprocessing과 online inference로 나눌 수 있음
- Offline Cost
- 오프라인 비용의 대부분은 문서를 LoRA 파라미터로 학습시키는 과정(Document Encoding)에서 발생
- |𝑑|를 문서 d에 평균 토큰 수, h를 모델의 hidden size라고 했을 때, 일반적인 decoder-only LLM의 연산량은 O(|d|²h + |d|h²)
- 즉, attention에서 O(|d|²h), FFN에서 O(|d|h²)만큼의 계산량이 발생함
- 결론적으로, Parametric RAG의 오프라인 비용은 상수배만큼 증가하기 때문에 차수는 기존과 동일한 비용 복잡도가 발생함
- 문서 증강하는 부분에서 LLM이 처리하는 토큰 비용은 재작성 + QA 합쳤을 때 2|d| 정도 새로운 토큰 수 발생
- 증강된 데이터를 가지고 LoRA를 학습시킬 때는 입력 시퀀스가 rewritten document/question/answer이므로 forward에서 처리하는 토큰 수는 3|d|
- 그리고 backward에서는 보통 forward의 두 배 6|d| 처리
- 그래서 전체 오프라인 비용은 |d| + 2|d| + 3|d| + 6|d| = 12|d|되고 전체는 O(12|d|²h + 12|d|h²)가 됨
- 기존과 비교했을 때, 변화는 상수배만큼 뿐이며 전체 차수는 동일
- Online Cost
- 온라인 추론 비용은 거의 전적으로 입력·출력 토큰 수에 의해 결정
- 질문 길이를 |q|, 검색 문서 수를 t
- Parametric RAG의 추론 비용은 질문 길이에만 의존 O(|q|²h + |q|h²)
- 반대로 기존 RAG는 질문과 문서를 모두 입력에 넣기 때문에, 비용이 문서 수와 길이에 정비례해 폭증 O((t|d| + |q|)²h + (t|d| + |q|)h²)
- 즉, Parametric RAG는 온라인 추론에서 문서 길이·개수에 따른 비용(O(t²|d|²h + t|d||q|h + t|d|h²))을 거의 제거
- 실제 실험 결과 만약에 각 질문마다 6개의 문서를 검색한다고 했을 때, Parametric RAG가 기존 대비 약 6배의 입력 토큰 수를 줄임
- 결론적으로 질문 수가 문서 수의 2배만 넘어도, 오프라인 비용을 상쇄하고 총비용이 이득 (실제 RAG를 활용한 챗봇의 경우 질문이 많이 들어오면 들어올수록 이득)
- 결론적으로, 초기 비용은 LoRA 학습 때문에 많이 들지만 많은 질문을 다루는 실제 대규모 서비스에서는 더 효율적
3.4.2 Storage Overhead
- Parametric RAG에서 추가 저장 공간은 문서마다 저장되는 FFN 기반 LoRA 파라미터에서 발생
- r : LoRA rank, n : Transformer layer 수, h : hidden size, l : FNN intermediate size
- 문서 하나가 차지하는 LoRA 파라미터 수는 2𝑛𝑟(ℎ+𝑙)
- ex) LLaMA 3-8b (n=32, h=4096, l=14336)
- r=2 기준으로, 문서 하나당 약 236만 개의 추가 파라미터가 필요하고, FP16으로 저장하면 문서 하나당 약 4.72MB의 저장 공간이 필요
- 숫자만 봤을 때는 문서 원문 텍스트만 저장하는 기존 RAG와 비교했을 때 상당히 많은 공간이 필요한 것처럼 보이지만 실제 사용자 트래픽에서는 소수의 문서만 대부분의 요청을 차지하는 롱테일 분포가 나타나기 때문에 상위 소수의 문서만 파라미터화한다면 상관없음
📍4. Experimental Setup

4.1 Benchmarks and Metrics
- 다양한 벤치마크 데이터셋을 사용하여 평가 진행(multi-hop reasoning and commonsense inference etc..)
- 2WikiMultihopQA (2WQA) : 여러 개의 위키피디아 문서를 종합해서 추론해야 하는 능력을 평가
- HotpotQA (HQA) : multi-hop reasoning을 평가하는 데이터셋으로, 서로 다른 문맥에 있는 정보를 결합해서 하나의 질문에 답
- PopQA (PQA) : 사실 기반 질문 응답 능력을 평가하며, 특히 동명이인·모호한 개체를 구분해 정확한 지식을 회상할 수 있는지를 테스트
- ComplexWebQuestions (CWQ) : 웹 기반의 대규모 정보에서 여러 단계를 거쳐 답을 찾아야 하는 질문으로 구성
# 저자 사용 프롬프트(대표로 ComplexWebQuestions만)
'''
<|im_start|>system
You are Qwen, created by Alibaba Cloud. You are a helpful assistant.<|im_end|>
<|im_start|>user
You should answer the question by referring to the knowledge provided below and integrating your own knowledge.
Passage 1: party such as the United Nations. The 1974 Interim Constitution Act was passed by the 48-member Azad Jammu and Kashmir unicameral assembly. Azad Jammu and Kashmir (AJK) is a self-governing state under Pakistani control, but under Pakistan's constitution the state is informally part of the country. Pakistan is administering the region as a self-governing territory rather than incorporating it in the federation since the UN-mandated ceasefire. Azad Kashmir has its own elected President, Prime Minister, Legislative Assembly, High Court, with Azam Khan as its present chief justice, and official flag. Azad Kashmir's financial matters, i.e., budget and tax affairs, are
Passage 2: and new research programmes have already been launched. However Institute of Geology is ranked 2nd in whole country based upon diverse field work and researches in Masters and Ph.D programmes. University of Azad Jammu and Kashmir The University of Azad Jammu and Kashmir is a university at Muzaffarabad, Azad Jammu and Kashmir, Pakistan. It was established in 1980, and is currently ranked at No.14 in HEC ranking of General category universities in Pakistan. The University of Azad Jammu and Kashmir is a multi-campus, multi-discipline university. The University of Azad Jammu and Kashmir has been making steady progress in both academic
Passage 3: organisations as "Pakistan administered Kashmir". Azad Kashmir is one-sixth of the size of Gilgit-Baltistan. The territory also borders Pakistan's Punjab province to the south and Khyber Pakhtunkhwa province to the west. To the east, Azad Kashmir is separated from the state of Jammu and Kashmir by the Line of Control, the "de facto" border between India and Pakistan. Azad Kashmir has a total area of , and a total population of 4,045,366 as per the 2017 Census. The territory has a parliamentary form of government modeled after the Westminster system, with its capital located at Muzaffarabad. The President is the
Question: Who was the president in 1980 of the country that has Azad Kashmir?<|im_end|>
<|im_start|>assistant
The answer is
'''
- 평가 지표로는 F1 score 사용
- 2WQA와 HQA는 질문 유형을 세부적으로 나누어 분류
- 2WQA는 4가지, HQA는 2가지 추론 유형으로 구성
- 각 하위 태스크별 데이터셋에서 처음 300개 질문만 사용하여 기본적인 RAG와 비교
- 원래 데이터셋 자체가 질문 유형별로 균등하지 않기 때문에, Total 점수는 단순 평균이 아니라 실제 데이터 분포를 반영한 가중 결과
4.2 Baselines
- Standard RAG
- 검색된 상위 문서들을 그대로 LLM의 입력 프롬프트에 붙여 넣는 방식
- 프롬프트에는 모델이 문서를 참고해서 답변하라는 지시와, 출력 형식에 대한 안내도 포함
- DA-RAG
- 문서 증강(문서 재작성 + QA = P-RAG에서 사용한 방식과 동일) 기법을확장된 문서와 QA 쌍을 활용하는 RAG 방식
- 이 베이스라인의 목적은, Parametric RAG의 성능 향상이 데이터 증강 때문이 아니라, 지식을 파라미터에 주입하는 방식 자체 때문임을 증명하기 위함
- FLARE
- 모델이 새로운 Token을 생성하다가 불확실하다고 느끼는 순간마다 검색을 수행하는 다단계(multi-round) RAG 방법
- 검색이 트리거 되면, 불확실한 토큰 이전에 생성된 문장을 쿼리로 사용
- DRAGIN
- 다단계 검색을 수행하는 RAG 방식
- 모델의 내부 상태와 앞선 문맥을 기반으로 동적으로 쿼리를 생성해 외부 지식을 가져옴
- Combine Both
- In-context RAG와 P-RAG를 합친 방법
- P-RAG를 합쳤을 때, 더 좋은 성능이 나오는지 테스트하기 위함
- 모두 공평하게 동일한 Retriever 사용, 검색 문서 Top 3개, 동일한 프롬프트 사용
4.3 Implementation Details
- Base Models
- Qwen2.5-1.5B-Instruct
- LLaMA-3.2-1B-Instruct
- LLaMA-3-8B-Instruct
- 모든 실험은 40GB 메모리 NVIDIA A100 GPU에서 수행함
- Preprocessing and Parameterization
- 문서 증강 과정에서는 각 문서를 한 번 재작성하고 해당 문서를 기반으로 QA 쌍을 3개 생성
- LoRA fine-tuning 과정에서는 learning rate 3 × 10⁻⁴, training epoch은 1
- LoRA 모듈은 FFN층에만 적용, Query, Key, Value(QKV) 행렬에는 적용되지 않음
- LoRA의 스케일링 계수 a는 32로 설정, rank r는 2로 설정, 학습 중 dropout은 사용하지 않음(파라미터 학습 안정성과 최대 활용을 위해)
- LoRA 가중치는 원래 LoRA 논문에서 제안한 방식대로 무작위 초기화
- Retrieval Module
- 성능이 우수하고 단순하며 계산 비용이 낮기 때문에, BM25를 검색기 사용
- BM25 구현을 위해 Elasticsearch를 사용
- Generation Configuration
- 모든 실험은 Hugging Face에서 공개된 LLaMA 및 Qwen 모델을 사용
- 공식 Hugging Face 저장소의 기본 하이퍼파라미터와 챗 템플릿을 그대로 사용했으며, 단 하나의 변경 사항은 greedy decoding을 사용했다는 점(결과 재현성 보장을 위해)
📍5. Experiments
5.1 Main Experiment
- Overall Analysis
- P-RAG는 대부분의 벤치마크와 대부분의 LLM에서 기존 RAG 방법들보다 성능이 좋음
- 지식을 프롬프트가 아니라 파라미터에 직접 넣는 방식이 RAG 전체 성능을 실제로 향상시킨다는 증거
- 또한 다양한 모델 계열·크기에서 모두 효과가 있으므로 P-RAG는 특정 모델에 국한되지 않는 일반적인 방법임
- Comparison with DA-RAG
- DA-RAG는 문서 증강(재작성 + QA 생성)을 그대로 프롬프트에 넣는 방식인데, P-RAG는 이보다 항상 성능이 더 좋음
- 성능 향상의 핵심 원인은 문서 증강이 아니라 지식을 파라미터 안에 넣는 방식 자체라는 것을 증명. “어디에 저장하느냐(파라미터 vs 입력)”가 본질적 차이
- Impact of Model Scale on P-RAG
- 모델 크기가 커질수록 (1B → 8B) P-RAG의 이점이 더 커짐
- 큰 모델일수록 내부 파라미터에 저장된 지식을 더 잘 활용할 수 있기 때문에 큰 모델일수록 P-RAG의 효율이 더 좋아짐
- Combine In-context RAG and P-RAG
- Parametric RAG + In-context RAG를 같이 쓰면 가장 좋은 성능을 냄
- 파라미터 기반 방식은 기존 RAG를 대체하는 게 아니라 보완하는 관계임을 의미
5.2 Impact of LoRA Weight Initialization

- Random Initialization (P-RAG Rand.)
- LoRA 가중치를 아무 사전학습 없이 랜덤 초기화 (이 방식이 논문 전체에서 기본 설정)
- Warm-Up Initialization (P-RAG Warm.)
- 600개의 QA 쌍을 사용해 LoRA를 사전 학습(warm-up) 시킴
- 이 QA들은 실제 테스트 질문과는 겹치지 않음 (데이터 누수 없음)
- 일반적인 언어모델 학습 방식(next-token prediction)으로 학습
- 이렇게 학습한 LoRA를 문서 파라미터화 단계의 초기값으로 사용함
- Fine-Tuned Standard RAG (S-RAG FT.)
- Warm-up 초기화와 같은 600개의 QA 사용해서 기존 RAG 방식으로 LLM 자체를 fine-tuning
- Inference는 일반 RAG 방식처럼 검색된 문서를 input prompt에 삽입
- (Table 2 참고) Warm-up 초기화가 Random 초기화보다 성능이 더 좋음(LoRA를 미리 task-aware하게 만들어주면 효과가 확실히 커짐)
- Downstream Task에서 warm-up 방식이 더 좋은 성능을 보인 이유는 크게 두 가지
- 1) 문서 파라미터화를 하기 전에 LoRA 파라미터를 미리 학습시킴으로써 기본 LLM과 LoRA 파라미터가 잘 정렬(alignment)되며, 그 결과 지식이 더 자연스럽게 통합됨 (덜 낯선 지식으로 받아들임)
- 2) warm-up은 출력 형식이나 생성 패턴 등 태스크에 특화된 지식을 학습하도록 도와주며, 이는 특정 작업에서 응답 품질을 높이는 데 매우 중요 (단순한 “정보 기억”이 아니라 답변 형식, reasoning 패턴, 문장 구조 등 task-specific behavior를 학습하게 만든다는 뜻)
- 실제 서비스 환경처럼 태스크가 고정된 경우, LoRA를 해당 태스크에 맞게 warm-up 하는 것은 매우 효과적인 전략
- 이 결과는 더 넓은 관점에서 보면, few-shot 예제를 컨텍스트에 넣거나, 혹은 파라미터 안에 직접 심는 것 자체가 downstream 성능 향상에 도움이 된다는 점을 시사
5.3 Impact of Document Augmentation

- w/o Both
- 재작성도 안 하고 QA도 생성하지 않으면, 모든 모델과 모든 태스크에서 성능이 크게 떨어짐
- w/o QA or w/o Rewrite
- QA나 rewriting 중 하나만 제거해도 둘 다 제거한 경우보다는 성능이 좋음. 즉, 두 단계 모두 각각 독립적인 기여
- 그러나 QA를 제거했을 때 성능 하락이 더 큼
- QA는 모델에게 “이 정보로 무엇을 답해야 하는지”를 직접 학습시키기 때문에 단순히 문장의 의미를 바꿔 쓰는 것보다 학습시 더 중요
- with Both
- Rewriting + QA를 둘 다 사용했을 때 성능이 가장 좋음(서로 상호보완적 관계)
- 결론적으로
- Rewriting은 언어적 다양성 & 표현력 강화 (다양한 표현으로 정보를 확장)
- QA generation은 추론 능력 강화 (실제로 “이 정보를 어떻게 써야 하는지”를 학습)
5.4 Runtime Analysis

- LLaMA-3-8B 모델을 사용해 여러 RAG 방법들의 추론 시간(inference latency)을 비교
- P-RAG는 일반적인 RAG보다 약 29~36% 빠름
- Parametric RAG + In-context RAG를 같이 써도 기존 RAG와 거의 같은 시간(성능은 더 좋은데, 속도는 거의 유지됨)
- P-RAG에서 LoRA를 병합하는 데 약 0.32초가 추가되는데, 이는 구현이 아직 최적화가 안 되어 있어서 이론적으로 예상한 것보다 로딩 시간이 더 걸린다고 함
- 연산 자체는 거의 비용이 없기 때문에 병목은 연산이 아니라 메모리 로딩. 즉, 시스템 최적화 필요
📍6 Conclusion and Future Directions
- Parametric RAG는 문서를 모델 파라미터에 직접 주입함으로써 컨텍스트 길이 증가 문제를 줄이고, 온라인 추론 비용을 낮추면서도 높은 성능을 유지
- 하지만 Parametric RAG에도 해결해야 할 과제가 존재
- 1) 계산 비용 문제
- 현재의 문서 파라미터화 과정은 계산 비용이 큼 (더 가볍고 효율적인 파라미터화 방식이 필요함)
- 2) 현재는 문서 파라미터가 특정 LLM에 종속되어 있음
- 즉, 모델마다 구조가 다르기 때문에 특정 모델에 맞춰서 LoRA 파라미터를 구서하면 다른 모델에 적용 불가
- 1) 계산 비용 문제
- 더 나아가 지식을 파라미터로 저장하는 방식’은 단순한 RAG를 넘어서 LLM이 스스로 행동하는 Agent 시스템의 핵심 메모리 구조가 될 수 있음
- Agent의 성격, 역할, 지식, 규칙을 프롬프트가 아니라 파라미터에 저장
💬 7. Takeaway
논문 작성을 위해 방향성을 고민하던 중에 발견한 논문... 다양한 RAG 관련 논문들을 읽어봤지만 거의 대부분 초점이 문서 재작성, 검색 과정 변환, 문서 우선순위 매기기 등 모델 이외의 부분에 초점을 맞췄다면, 이 논문은 모델의 지식과 검색된 문서의 지식의 차이점에 초점을 맞춰서 다르게 RAG를 접근했기에 재밌게 읽었던 것 같다. Inference 부분만 본다면 상당히 이점이 있지만 문서 자체를 파라미터로 바꾸는 과정 자체가 모델 튜닝인데 애초에 RAG가 모델 튜닝 없이 작동하는 방법론이기에 주목을 받았지만 결국 다시 튜닝으로 돌아온 느낌이 든다.
