LLM의 발전은 Transformer 아키텍처(2017)의 등장 이후 가속화되었습니다.
LLM은 내부적인 파라미터 메모리(Parametric memory)에 의존하여 답변을 생성하기 때문에 다음과 같은 문제가 발생합니다:
| 한계 | 설명 | 예시 |
|---|---|---|
| Hallucination (환각) | 사실과 다르거나 근거가 없는 정보를 생성함. | '머그샷'을 '머그컵에 내린 에스프레소 샷'이라고 잘못 설명. |
| Outdated Knowledge (구식 지식) | 학습 데이터 이후의 최신 정보를 반영하지 못함. | '최신 맥 OS 버전'이나 '2024년 최저 시급'에 대해 구식 정보를 제공. |
| Untraceable Reasoning Process | 답변이 도출된 근거를 명확히 알기 어려움. | - |
| Bias (편향) | 학습 데이터에 내재된 편향이 결과에 반영될 수 있음. | 여성에 대한 편향된 특성 목록 제시. |
RAG는 LLM의 한계를 극복하기 위해 외부의 신뢰할 수 있는 비파라미터 메모리(Non-parametric memory)인 문서를 활용하여 답변의 정확성과 최신성을 높이는 방법론입니다.
가장 기본적인 RAG 파이프라인은 세 단계로 구성됩니다:
chunk1, chunk2)을 Frozen LLM의 프롬프트(prompt)에 포함하여 최종 답변을 생성합니다.Naive RAG는 LLM의 환각 및 구식 지식 문제를 완화하는 데 효과적이지만, 낮은 검색 정밀도/재현율(low precision/low recall), 편향, 독성 등의 문제를 여전히 가질 수 있습니다.
| 모델 | 연도 | 특징 | 구성 요소 |
|---|---|---|---|
| kNN-LM | 2019 | 추론(inference) 시 explicit memory를 사용하며, decoder-only Transformer 기반입니다. 다음 단어 예측에 kNN 모델을 사용하며, 드물게 등장하는 패턴을 다루는 데 유용합니다. | Generative LM + Nearest Neighbor LM (kNN 모델). |
| REALM | 2020 | Retrieval-Augmented Pre-training을 수행하며 BERT 기반입니다. Retrieve-then-predict 방식으로 동작하며, BERT 기반의 Neural Knowledge Retriever를 사용하여 관련성 점수 $p(z | x)$를 계산합니다. |
| RAG | 2020 | Retrieval-Augmented Generator이며, fine-tuning만 수행합니다. BERT 인코더와 BART 생성기(generator, Seq2Seq 모델)를 사용합니다. | Retriever (DPR) + Generator (BART). |
| RAG 모델 유형 | RAG-Sequence Model과 RAG-Token Model이 있으며, RAG-Token 모델은 각 토큰을 생성할 때마다 검색된 문서를 기반으로 확률을 계산합니다. | - |
Naive RAG의 한계를 극복하기 위해 Advanced RAG와 Modular RAG가 발전했습니다.
Advanced RAG는 주로 Pre-retrieval (검색 전), Retrieval (검색), Post-retrieval (검색 후) 단계에서 최적화를 수행합니다.
| 단계 | 목표 및 기법 | 세부 내용 |
|---|---|---|
| Pre-retrieval | 데이터 색인 최적화 및 품질 향상. | 데이터 품질 향상: 관련성이 적은 정보 삭제, 용어 모호성 해소, 데이터 최신성 확보, 메타데이터 추가. 임베딩 모델 파인튜닝: 특정 도메인 성능 향상 (LLM을 통해 학습 데이터 생성 가능). 동적 임베딩: 맥락을 고려한 임베딩 생성 (예: BERT, OpenAI ADA). |
| Post-retrieval | 검색된 문서의 효과 극대화. | Re-Ranking: 검색된 문서에 대해 다양성(DiversityRanker) 또는 관련성(Relevance Score)을 기준으로 순위를 재조정. Lost-In-The-Middle Ranker는 가장 정확한 문서를 프롬프트의 처음과 끝에 배치하여 성능을 개선합니다. |
| Prompt Compression | 프롬프트 길이를 줄여 LLM의 처리 효율성을 높임. | RECOMP (Extractive/Abstractive Compressor), MemWalker (Memory Tree 활용) 등의 압축기를 활용. |
Modular RAG는 Retrieve, Read, Rerank, Rewrite, Search, Predict, Fusion, Memory, Routing 등 다양한 모듈을 조합하여 복잡한 태스크에 대응합니다.
최근 연구들은 검색 모델 자체의 성능 향상과 LLM의 지식 활용도를 높이는 데 초점을 맞추고 있습니다.
| 모델 | 연도 | 핵심 기법 | 특징 요약 |
|---|---|---|---|
| Contriever | 2021 | Contrastive learning, MoCo (Momentum Encoder). | 비지도 학습 기반의 bi-encoder 아키텍처. 쿼리 임베딩과 문서 임베딩의 Dot product로 관련성 점수 계산. |
| ATLAS | Contriever + T5 FiD. | Contriever를 Retriever로, T5 FiD를 LM으로 사용하는 RAG 모델. Attention Distillation 및 Perplexity Distillation 같은 학습 목표 사용. | |
| PROMPTAGATOR | LLM을 사용한 Query-Document 쌍 생성. | LLM이 태스크에 적합한 쿼리를 생성하게 하여 리트리버를 개선 (Round-trip consistency 확보). | |
| HyDE | LLM을 사용한 Hypothetical Document 생성. | 사용자 쿼리를 기반으로 가상의 문서를 생성하고, 이 가상 문서의 임베딩을 사용하여 실제 문서 검색. | |
| Selfmem | 메모리 모듈, 메모리 셀렉터 도입. | Better memory prompts better generation, Better generation prompt better memory의 상호작용을 통해 메모리 활용도를 높임. | |
| SANTA | Structured/Unstructured Data Alignment. | Structured Data Alignment(SDA) 및 Masked Entity Prediction(MEP)을 통해 정형/비정형 데이터에 모두 대응할 수 있도록 모델을 학습. |
RAG를 활용한 완성도 높은 LLM 서비스를 구축하기 위해 LangChain과 LlamaIndex 같은 프레임워크가 사용됩니다. 이들은 RAG 파이프라인의 핵심 구성 요소를 제공합니다:
RAG는 챗봇에 일관된 페르소나를 통합하는 데 활용될 수 있습니다.
RAG와 모델 Fine-tuning(재훈련)은 지식을 활용하는 방식과 서비스 구현 측면에서 차이가 있습니다.
| 특징 | RAG (Retrieval-Augmented Generation) | Fine-Tuning (재훈련) |
|---|---|---|
| 지식 소스 | 파라미터 + 비파라미터 메모리 (데이터베이스) | 파라미터 메모리만 사용 |
| 지식 업데이트 | 데이터베이스 업데이트 | 모델 재훈련 (Retraining) |
| 모델 맞춤화 | 완전히 맞춤화되지는 않음 | 완전히 맞춤화됨 |
| Hallucinations | 적음 (less) | 발생 가능 (O) |
| 추론 과정 해석 | 가능 (O) | 어려움 (X) |
| 지연 시간 (Latency) | 상대적으로 높음 (higher) | 상대적으로 낮음 (lower) |
RAG 모델의 평가는 크게 검색 품질과 생성 품질로 나뉩니다.