https://arxiv.org/abs/2312.10997
이 논문도 서베이 논문이었습니다.
RAG에 대한 조사를 진행했는데 Advanced RAG, Modular RAG 등으로 나누는 것은 이 논문을 보고 알았네요
제가 생각하는 Semantic? Dynamic? Chunking은 Advanced RAG에 포함되고요
다음 글에서 이런 내용을 쭉 정리해서 아이디어를 발전 시킬 예정이네요
목적 | 대규모 언어 모델(LLMs)의 한계를 해결하고 검색 기반 증강 기술(RAG)을 통해 정확성과 신뢰성을 높이며, 지속적 지식 업데이트 및 도메인 특화 정보를 통합하기 위한 최신 연구 동향 조사. |
문제 정의 | - LLMs의 환각(Hallucination): 잘못된 정보 생성 - 지식 업데이트의 어려움 - 추론 과정의 불투명성 |
RAG의 정의 | 외부 데이터베이스에서 필요한 정보를 검색(Retrieval)하여 모델의 답변 생성을 증강(Generation)하는 기술. |
연구 패러다임 | 1. Naive RAG: 단순한 Retrieve-Read 구조 2. Advanced RAG: 검색 전후 과정 최적화 (예: 쿼리 확장, 청크 압축) 3. Modular RAG: 모듈화된 구조로 유연성, 적응성 증대 (예: 새로운 모듈 추가, 반복적 검색) |
구성 요소 | - 검색 (Retrieval): 데이터 청크를 검색해 문맥 제공 - 생성 (Generation): 검색된 정보를 기반으로 LLM이 답변 생성 - 증강 (Augmentation): 검색 및 생성 과정을 반복하거나 적응형으로 최적화 |
주요 기술 | - 인덱싱 최적화: 메타데이터 추가, 의미 기반 청크 분할 - 검색 품질 개선: 쿼리 재작성, 재정렬, 하이브리드 검색 - 생성 최적화: 컨텍스트 압축, LLM Fine-tuning - 적응형 검색: 필요 시 검색 활성화 및 중단 판단 |
장점 | - 정확성 향상: 실시간 정보 업데이트 및 외부 지식 활용 - 효율성 증가: 불필요한 정보 제거, 적합한 문맥 제공 - 확장성: 멀티모달(이미지, 오디오 등) 데이터 통합 가능 |
주요 과제 | 1. 강건성(Robustness): 노이즈와 반사실적 정보에 대한 저항력 강화 필요 2. 멀티모달 확장: 텍스트 외 다양한 데이터 처리 3. 실용성: 데이터 보안 및 대규모 데이터베이스 처리 효율성 확보 |
평가 및 데이터셋 | - 평가 기준: 검색 정확성(Recall, Precision), 생성 신뢰성(Faithfulness), 관련성(Relevance) - 주요 데이터셋: HotpotQA(멀티홉 QA), TriviaQA(단일 홉 QA), FEVER(사실 검증), PubMed(의학) |
결론 | - RAG는 대규모 언어 모델의 한계를 보완하는 핵심 기술로 자리 잡음. - RAG의 단계적 발전은 검색 및 생성 품질을 지속적으로 향상시킴. - 향후 연구는 강건성, 멀티모달 통합, Fine-tuning 융합에 집중될 전망. |
Fig. 3: RAG의 세 가지 패러다임 비교
이 그림은 Retrieval-Augmented Generation (RAG)의 세 가지 주요 패러다임(Naive RAG, Advanced RAG, Modular RAG)을 시각적으로 비교하고 각 패러다임의 구성 요소와 특징을 설명합니다.
1. Naive RAG
- 구조:
- 단순한 3단계 Retrieve-Read-Generate 구조로 구성.
- Indexing: 사용자 질의(query)와 문서(document)를 기반으로 인덱스 생성.
- Retrieval: 검색 단계를 통해 관련 청크를 선택.
- Generation: 검색된 정보를 포함한 프롬프트를 LLM에 입력하여 답변 생성.
- Frozen LLM(사전 훈련된 고정 모델)을 사용해 답변을 생성.
- 단순한 3단계 Retrieve-Read-Generate 구조로 구성.
- 특징:
- 구현이 간단하지만 최적화 과정 부족.
- 검색 품질이나 생성의 일관성이 낮아 환각 문제가 발생할 가능성이 높음.
- 한계:
- 검색 후 정렬(re-ranking)이나 후처리(post-retrieval optimization)가 없어서 정확성과 신뢰성이 떨어짐.
2. Advanced RAG
- 구조:
- Naive RAG의 Retrieve-Read-Generate 프로세스를 기반으로, 사전 검색 최적화(Pre-retrieval Optimization)와 후처리(Post-retrieval Optimization)를 추가.
- Pre-retrieval Optimization:
- Query Routing: 질의를 다른 모듈이나 소스로 라우팅.
- Query Rewriting: 질의를 재작성하여 검색 효율성 향상.
- Query Expansion: 질의를 확장해 더 포괄적인 검색 결과 도출.
- Post-retrieval Optimization:
- Rerank: 검색된 결과를 재정렬해 관련성을 향상.
- Summary: 검색된 정보를 요약하여 LLM에 전달.
- Fusion: 다중 문서를 결합하여 더 정교한 문맥 제공.
- Pre-retrieval Optimization:
- Naive RAG의 Retrieve-Read-Generate 프로세스를 기반으로, 사전 검색 최적화(Pre-retrieval Optimization)와 후처리(Post-retrieval Optimization)를 추가.
- 특징:
- 검색 및 생성 품질을 높이는 데 중점을 둠.
- 검색된 정보가 LLM에 적합하게 제공되므로 더 신뢰할 수 있는 출력 생성.
- 장점:
- 단순 검색에서 벗어나, 질의의 맥락을 더 잘 반영하고, 검색 결과의 적합성을 높임.
3. Modular RAG
- 구조:
- Advanced RAG에서 발전된 형태로, 다수의 모듈화된 구성 요소를 포함.
- Modules (모듈):
- Routing: 질의를 다양한 모듈로 전달.
- Retrieve: 정보를 검색.
- Read: 검색된 정보를 읽어 처리.
- Rewrite: 질의를 재작성.
- Rerank: 검색 결과를 재정렬.
- Demonstrate: 샘플 출력으로 질의를 강화.
- Memory: 검색과 생성을 보완하기 위해 기억을 활용.
- Fusion: 다중 검색 결과를 결합.
- Predict: 검색 결과를 바탕으로 예측 생성.
- Patterns (패턴):
- Iterative 또는 Adaptive Retrieval을 도입해 검색과 생성을 반복적으로 최적화.
- Modules (모듈):
- Advanced RAG에서 발전된 형태로, 다수의 모듈화된 구성 요소를 포함.
- 특징:
- 유연성과 적응성이 높아, 특정 도메인이나 작업에 맞게 모듈을 재구성 가능.
- Naive 및 Advanced RAG보다 다양한 작업을 처리할 수 있음.
- Sequential 구조에 한정되지 않으며, 모듈 간 상호작용을 통해 성능을 극대화.
- 장점:
- 특정 태스크에 맞춘 최적화 및 유연한 설계.
- 다양한 검색/생성 전략을 결합해 성능을 대폭 향상.
패러다임 비교
구분 | Naive RAG | Advanced RAG | Moduar RAG |
구조 | 단순 Retrieve-Read-Generate 구조 | Pre/Post Retrieval 최적화 추가 | 모듈화된 구조로 유연성과 적응성 강화 |
최적화 | 없음 | 질의 재작성, 재정렬, 요약 등 추가 | 모듈 간 상호작용 및 패턴(반복 검색, 적응형 검색) 도입 |
장점 | 단순하고 빠른 구현 | 검색 품질 및 생성 품질 향상 | 도메인 특화, 복잡한 작업 처리, 확장성 제공 |
한계 | 품질 및 신뢰성 문제 | 여전히 정해진 프로세스 구조에 제한적 | 설계 복잡성 증가, 높은 계산 비용 |
결론
이 그림은 RAG의 발전 과정을 단계별로 보여주며, Naive RAG의 단순 구조에서 Advanced RAG의 최적화, 그리고 Modular RAG의 유연성과 확장성을 강조합니다. 특히, Modular RAG는 특정 작업이나 도메인 요구에 맞게 모듈을 조합하여 최적의 성능을 제공하는 데 중점을 둡니다.
TABLE I: Summary of RAG Methods
이 테이블은 Retrieval-Augmented Generation (RAG)의 다양한 방법들을 요약한 것으로, 각 방법론의 주요 특징을 체계적으로 정리하고 있습니다. RAG의 구성 요소와 설계 선택을 보여주는 지표로 활용되며, 다음과 같은 항목으로 구성되어 있습니다:
테이블의 주요 열(Column)
- Method (방법):
- 다양한 RAG 접근 방식을 나타냅니다. 각 방법은 특정 연구에서 제안된 기술로, 검색 및 생성 과정에서의 개선점을 목표로 합니다.
- 예: CoG, DenseX, FLARE, Atlas, RAG-Long-Form 등.
- Retrieval Source (검색 소스):
- 정보를 검색하는 데이터베이스나 소스를 나타냅니다.
- 주요 소스:
- Wikipedia: 일반적인 백과사전 기반 지식.
- Dataset-base: 연구자가 설계한 특정 데이터셋.
- Pre-training Corpus: 사전 훈련에서 사용된 대규모 말뭉치.
- Search Engine: 검색 엔진을 통해 동적으로 정보 검색.
- Common Crawl: 인터넷에서 크롤링된 대규모 데이터.
- Retrieval Data Type (검색 데이터 타입):
- 검색하는 데이터의 형식을 나타냅니다.
- 대부분 Text(텍스트) 기반으로 구성되며, 문장, 문단, 또는 단위 청크로 분할됩니다.
- Retrieval Granularity (검색 세분화 수준):
- 검색된 데이터를 어떤 단위로 처리하는지 설명합니다.
- Phrase (구문): 텍스트 내 특정 구문 단위.
- Proposition (명제): 논리적 명제 단위.
- Sentence (문장): 텍스트를 문장 단위로 분리.
- Chunk (청크): 문단이나 데이터의 더 큰 단위.
- Augmentation Stage (증강 단계):
- 검색된 데이터를 언제 증강(augment)하여 활용하는지 나타냅니다.
- Pre-training (사전 훈련 단계): 사전 훈련 중에 증강 데이터를 사용.
- Tuning (파인튜닝 단계): 모델 미세 조정 단계에서 사용.
- Inference (추론 단계): 최종 추론 시 검색 데이터를 활용.
- Retrieval Process (검색 프로세스):
- 검색 프로세스의 반복성 여부를 나타냅니다.
- Once: 검색이 단 한 번 이루어짐.
- Iterative: 검색이 반복적으로 수행되어 생성 과정에서 부족한 정보를 계속 보완.
- Adaptive: 검색이 상황에 따라 동적으로 결정됨.
테이블의 해석
1. 다양한 검색 소스
- Wikipedia는 많은 RAG 방법에서 기본적인 정보 소스로 사용되며, Common Crawl이나 Pre-training Corpus처럼 대규모 데이터도 활용됩니다.
- 특정 도메인에서는 PubMed와 같은 전문 데이터베이스가 사용되며, 이는 의학 및 과학 연구에서 유용합니다.
2. 검색 세분화 수준의 다양성
- 단위가 세분화될수록 더 구체적이고 정밀한 검색이 가능하지만, 처리 비용이 증가합니다.
- Sentence/Chunk 단위는 일반적인 RAG 접근에서 주로 사용되며, 청크 기반은 문맥을 보존하는 데 유리합니다.
- Phrase/Proposition 단위는 특정 세부 정보를 검색하는 데 적합합니다.
3. 증강 단계의 차이
- Pre-training: 사전 훈련 시 검색된 데이터를 통합하여 초기 모델의 기초 지식을 확장.
- Tuning: 특정 도메인이나 작업에 맞춰 검색된 데이터를 활용.
- Inference: 실시간으로 검색된 데이터를 기반으로 답변을 생성.
4. 검색 프로세스의 유연성
- Once는 단순한 검색 프로세스를 의미하며, 실행 속도가 빠름.
- Iterative는 검색과 생성을 반복하여 점진적으로 더 나은 결과를 얻음.
- Adaptive는 쿼리와 작업 상황에 따라 검색 전략을 동적으로 조정.
주요 관찰 사항
- Sentence와 Chunk 기반 RAG의 주류화:
- 대부분의 방법이 문장(Sentence) 또는 청크(Chunk) 단위의 데이터를 검색하고 이를 기반으로 생성 과정을 수행.
- 이는 문맥을 보존하면서도 효율성을 유지하기 위한 설계로 보임.
- 증강 단계와 작업 목표의 관계:
- 추론 단계(Inference)에서 검색 데이터를 활용하는 방법이 일반적이지만, 사전 훈련(Pre-training)이나 파인튜닝(Tuning)에서도 검색 데이터를 활용하는 방법이 증가.
- 반복적 검색(Iterative Retrieval)의 도입:
- RAG 방법론 중 일부(예: FLARE, RRR)는 반복적 검색을 도입하여 초기 검색 결과의 부족함을 보완.
- 도메인 특화 RAG의 증가:
- PubMed와 같은 특정 도메인 데이터 소스를 사용하는 방법론이 점차 증가하고 있으며, 이는 의학, 법률 등 전문 영역에서의 RAG 응용을 강화.
결론
이 테이블은 RAG 방법론의 전반적인 경향을 체계적으로 보여줍니다. 검색 소스, 데이터 타입, 검색 단위, 증강 단계, 검색 프로세스와 같은 각 요소는 특정 작업 및 도메인 요구사항에 맞게 조합됩니다. 이를 통해 RAG 연구의 다각적인 발전과 응용 가능성을 확인할 수 있습니다.
Fig. 4: RAG와 다른 모델 최적화 기법 비교
이 그림은 RAG (Retrieval-Augmented Generation)를 다른 모델 최적화 기법(예: Fine-tuning, Prompt Engineering 등)과 비교하여 외부 지식 필요성(External Knowledge Required)과 모델 적응 필요성(Model Adaptation Required)의 관점에서 시각화한 것입니다. 이를 통해 RAG가 어디에 위치하고, 다른 기법과의 차별점을 명확히 설명합니다.
축의 정의
- Y축 (External Knowledge Required):
- 모델이 답변을 생성하기 위해 외부 데이터베이스나 지식 소스를 얼마나 필요로 하는지를 나타냅니다.
- 위쪽으로 갈수록 외부 지식에 대한 의존도가 높아짐.
- 예: RAG는 외부 검색 시스템을 사용하기 때문에 높은 의존도를 가짐.
- X축 (Model Adaptation Required):
- 모델을 특정 작업에 맞추기 위해 얼마나 많은 훈련 또는 수정(Fine-tuning)이 필요한지를 나타냅니다.
- 오른쪽으로 갈수록 모델 수정과 적응이 더 많이 요구됨.
- 예: Fine-tuning은 모델을 특정 태스크에 맞게 조정하기 때문에 높은 적응 필요성을 가짐.
모델 최적화 기법의 비교
- Prompt Engineering (좌하단):
- Few-shot Prompt, XoT Prompt (예: CoT, ToT):
- Few-shot Prompt: 표준 프롬프트 또는 몇 개의 예시만 제공하여 모델이 태스크를 수행하게 함.
- XoT Prompt (Chain of Thought, Tree of Thought): 단계적 또는 계층적 추론을 도입하여 모델 성능을 개선.
- 특징:
- 외부 지식과 모델 수정이 거의 필요하지 않음.
- LLM의 사전 훈련된 능력을 그대로 활용.
- 한계: 특정 도메인이나 복잡한 태스크에 대한 적응력이 낮음.
- Few-shot Prompt, XoT Prompt (예: CoT, ToT):
- RAG (가운데):
- Naive RAG: 관련 문서를 단순 추가하여 LLM의 컨텍스트를 보강.
- Advanced RAG: 검색 전후의 최적화 과정을 포함하여 성능을 개선.
- Modular RAG: 여러 모듈을 조합하여 유연성과 확장성을 극대화.
- 특징:
- 외부 지식 활용도가 높으며, 검색 및 생성 과정을 통합.
- 모델 수정이 최소화되지만, Advanced 및 Modular RAG에서는 약간의 Fine-tuning과의 결합이 이루어짐.
- 강점: 특정 작업에 대해 외부 지식을 검색하고, 효율적으로 통합하여 답변 생성.
- Fine-tuning (우하단):
- Generator Fine-tuning: 생성기(Large Language Model)를 특정 태스크에 맞게 미세 조정.
- Retriever Fine-tuning: 검색기(Retriever)를 특정 검색 태스크에 맞게 조정.
- Collaborative Fine-tuning: 검색기와 생성기를 함께 최적화.
- 특징:
- 모델을 특정 작업에 맞추기 위해 많은 적응과 수정이 필요.
- 높은 성능과 신뢰성을 제공하지만, 데이터와 계산 자원이 많이 요구됨.
- 한계: 실시간 정보 반영이 어려우며, 새로운 작업에 대해 다시 훈련이 필요.
RAG와 Fine-tuning의 통합 (All of the Above)
- 위치: 그림의 오른쪽 상단.
- 설명: RAG와 Fine-tuning 기법이 결합된 형태로, 외부 지식 활용과 모델 수정 모두를 포함.
- Retriever Fine-tuning: 검색 과정의 품질을 향상.
- Generator Fine-tuning: 생성된 답변의 적합성과 정확성을 높임.
- Collaborative Fine-tuning: 검색과 생성 과정을 동시 최적화하여 전체적인 성능을 강화.
주요 관찰점
- Prompt Engineering은 외부 지식이나 모델 수정이 거의 필요 없으나, 복잡한 도메인에서는 한계가 있음.
- RAG는 외부 지식을 적극 활용하며, 모델 수정이 최소화된 상태에서도 높은 성능을 제공. 특히 Modular RAG는 유연성과 확장성 측면에서 강점을 가짐.
- Fine-tuning은 높은 적응성을 제공하지만, 초기 설정과 자원이 많이 필요.
- All of the Above는 RAG와 Fine-tuning 기법을 결합하여 최고의 성능을 제공하지만, 구현 복잡성과 비용이 높아짐.
결론
이 그림은 Prompt Engineering, RAG, Fine-tuning 간의 상호 보완적 관계를 보여줍니다. Prompt Engineering은 간단한 설정에서 유용하고, RAG는 외부 지식을 활용한 효율적인 접근법, Fine-tuning은 높은 적응성과 성능을 제공합니다. 특히 RAG는 발전을 거듭하며 Fine-tuning과 결합되어 더 높은 성능과 확장성을 지닌 모델로 진화하고 있습니다.
Fig. 5: RAG의 세 가지 검색 증강 프로세스
이 그림은 Retrieval-Augmented Generation (RAG)에서 사용하는 세 가지 주요 검색 증강 프로세스(Iterative, Recursive, Adaptive)를 시각적으로 나타낸 것입니다. 각각의 프로세스는 문제 해결 과정에서 검색과 생성을 어떻게 활용하는지 보여줍니다.
1. Iterative Retrieval (반복 검색)
설명:
- 검색과 생성을 반복적으로 수행하며, 단계별로 문맥과 정보를 추가적으로 강화.
- 사용자 질의에 대해 한 번의 검색으로 충분하지 않을 경우, Judge(판단 모듈)가 검색 결과를 평가하고 추가 검색 여부를 결정.
프로세스:
- Query: 사용자 질의 입력.
- Retrieve: 초기 검색 수행.
- Generate: 검색된 정보를 기반으로 답변 생성.
- Judge: 생성된 답변을 평가하여 추가 검색 및 생성 필요성을 판단.
- 필요할 경우, 검색과 생성 과정을 N번 반복.
- Response: 최종 생성된 답변 반환.
특징:
- 문맥 강화: 반복적으로 검색을 수행하여 더 많은 관련 정보를 통합.
- 한계: 반복 횟수가 많아질수록 계산 비용 증가.
적용 사례:
- 복잡한 질문이나 추가 정보를 계속 필요로 하는 다중 홉 질의 응답(Multi-hop QA).
2. Recursive Retrieval (재귀 검색)
설명:
- 복잡한 문제를 작은 하위 문제로 분해(Query Transformation/Decomposition)하여 단계적으로 해결.
- Judge 모듈이 하위 문제의 생성 결과를 평가하고, 필요한 경우 추가 검색 및 생성을 수행.
프로세스:
- Query: 사용자 질의를 입력.
- Retrieve: 초기 검색 수행.
- Generate: 검색된 정보를 바탕으로 부분적인 답변 생성.
- Query Transformation/Decomposition: 문제를 더 작은 하위 문제로 분해.
- Judge: 하위 문제의 답변이 충분하지 않으면, 추가 검색 및 생성 수행.
- Response: 모든 하위 문제의 결과를 통합하여 최종 답변 생성.
특징:
- 복잡한 문제 해결: 다단계 문제를 논리적으로 분해해 처리.
- 구조적 접근: 검색과 생성의 각 단계에서 하위 문제를 독립적으로 처리.
- 한계: 문제 분해 과정의 품질이 전체 성능에 영향을 미침.
적용 사례:
- 논리적 추론이나 복잡한 체인 오브 톳(Chain-of-Thought) 문제 해결.
3. Adaptive Retrieval (적응형 검색)
설명:
- 검색과 생성 과정에서 동적 판단을 통해 검색의 필요성을 실시간으로 결정.
- LLM이 생성한 특수 토큰이나 기준(Threshold)을 활용해 검색 여부를 판단.
프로세스:
- Query: 사용자 질의를 입력.
- Judge: 검색 필요 여부를 실시간으로 판단.
- 필요 시 Retrieve On Demand로 검색 수행.
- Generate: 검색된 정보를 바탕으로 답변 생성.
- Query Transformation/Decomposition: 필요 시 질의를 변환하거나 분해.
- Judge: 추가 검색 또는 생성 반복 여부를 판단.
- Response: 최종 답변 생성 및 반환.
특징:
- 유연성: 검색과 생성의 필요성을 자동으로 판단하여 효율적 실행.
- 효율성: 불필요한 검색을 방지하여 자원 낭비를 최소화.
- 한계: 동적 판단 기준 설정의 복잡성.
적용 사례:
- 실시간 데이터 검색 및 동적 질의 응답 시스템.
세 가지 검색 증강 프로세스 비교
특징 | Iteratuve | Recursive | Adaptive |
목적 | 문맥을 강화하고 추가 정보 통합 | 문제를 세부적으로 분해하여 해결 | 검색 및 생성 과정을 동적으로 최적화 |
Judge 역할 | 반복 여부를 판단 | 하위 문제 생성 및 추가 검색 여부 판단 | 검색 필요성을 실시간으로 결정 |
복잡도 | 중간 | 높음 | 높음 |
장점 | 단순하고 확장 가능 | 복잡한 문제 해결에 효과적 | 효율적인 검색 및 자원 절약 가능 |
한계 | 반복 시 계산 비용 증가 | 문제 분해 품질에 따라 성능 편차 발생 | 동적 판단 기준 설정이 어려움 |
적용 사례 | 다중 홉 질의 응답 | 체인 오브 톳 기반의 논리적 문제 해결 | 실시간 검색과 효율적인 응답 시스템 |
결론
이 그림은 Iterative, Recursive, Adaptive Retrieval의 차이점과 각각의 강점을 명확히 보여줍니다. Iterative는 단순한 문맥 강화에 적합하고, Recursive는 복잡한 문제를 해결하며, Adaptive는 효율성과 유연성을 극대화합니다. 특정 태스크의 요구사항에 따라 적절한 검색 증강 프로세스를 선택하여 최적의 성능을 얻을 수 있습니다.
Table III: RAG의 평가 측면에 적용 가능한 메트릭 요약
이 테이블은 Retrieval-Augmented Generation (RAG) 시스템의 성능을 평가하기 위해 사용되는 다양한 평가 메트릭(metrics)과 이들이 어떤 평가 기준(측면)에 적용 가능한지 요약한 것입니다. 각 메트릭은 RAG의 특정 성능 요소를 측정하는 데 활용됩니다.
평가 기준 (Evaluation Aspects)
- Context Relevance (문맥 적합성):
- 검색된 정보가 질의에 얼마나 잘 부합하는지를 평가.
- RAG 시스템이 문맥적으로 관련된 정보를 얼마나 잘 검색했는지를 측정.
- Faithfulness (사실성):
- 생성된 답변이 실제 검색된 정보와 일치하며, 정확한 내용을 포함하는지 평가.
- 모델이 환각(hallucination)을 발생시키지 않고 신뢰할 수 있는 답변을 제공하는지를 확인.
- Answer Relevance (답변 적합성):
- 생성된 답변이 질의의 의도와 관련이 있는지 평가.
- 단순한 문맥 적합성을 넘어, 답변 자체의 품질을 측정.
- Noise Robustness (잡음 강건성):
- 입력 질의나 검색 데이터에 잡음이 있을 경우, 모델의 성능이 얼마나 안정적으로 유지되는지 평가.
- Negative Rejection (부정 응답 필터링):
- 모델이 잘못된 정보 또는 부적합한 데이터를 배제하고 올바른 결과만을 선택하는 능력.
- Information Integration (정보 통합):
- 다중 소스에서 검색된 정보를 통합하여 일관성 있는 답변을 생성하는 능력.
- Counterfactual Robustness (반사실적 강건성):
- 반사실적 정보(counterfactual information)에 대해 모델이 얼마나 강건하게 대응하는지 평가.
- 예: 가상의 시나리오에서 모델의 반응 안정성.
메트릭 (Metrics)
메트릭 적용 가능한 평가 기준 설명메트릭 | 적용 가능한 평가 기준 | 설명 |
Accuracy | Context Relevance, Faithfulness, Noise Robustness, Negative Rejection, Information Integration, Counterfactual Robustness | 정확도를 측정하여 전반적인 성능 평가. |
EM (Exact Match) | Context Relevance, Faithfulness, Answer Relevance | 생성된 답변이 정답과 정확히 일치하는지를 평가. |
Recall | Context Relevance | 검색된 정보 중 실제 정답을 얼마나 잘 포함하고 있는지를 측정. |
Precision | Context Relevance | 검색된 정보 중 관련성이 높은 정보의 비율을 평가. |
R-Rate | Faithfulness | 모델이 사실적이고 정확한 답변을 생성했는지를 평가. |
Cosine Similarity | Answer Relevance | 생성된 답변과 정답 사이의 벡터적 유사도를 측정. |
Hit Rate | Context Relevance | 검색된 문서 중 정답을 포함한 문서가 존재하는지를 측정. |
MRR (Mean Reciprocal Rank) | Context Relevance | 정답이 검색된 결과에서 얼마나 상위에 위치하는지 측정. |
NDCG (Normalized Discounted Cumulative Gain) | Context Relevance | 검색된 문서의 순위가 얼마나 효과적으로 정렬되었는지를 평가. |
BLEU | Faithfulness, Answer Relevance | 생성된 답변이 정답과 문장 수준에서 얼마나 일치하는지를 평가. |
ROUGE/ROUGE-L | Faithfulness, Answer Relevance | 생성된 답변과 정답 간의 텍스트 유사성을 측정하며, 요약 및 생성 작업에서 자주 사용. |
테이블 해석
- 다양한 평가 메트릭의 활용성:
- 일부 메트릭(예: Accuracy, EM, Recall)은 다중 평가 기준에 걸쳐 사용 가능하여 RAG의 전반적인 성능을 측정하는 데 효과적임.
- 다른 메트릭(예: Cosine Similarity, BLEU)은 특정한 답변 적합성(Answer Relevance) 또는 사실성(Faithfulness)을 평가하는 데 특화됨.
- RAG의 평가 복잡성:
- RAG 시스템은 검색과 생성이 결합되어 있어, 단순한 정보 검색 시스템이나 생성 모델보다 평가 기준이 복잡.
- 문맥 적합성(Context Relevance)과 답변 적합성(Answer Relevance)을 동시에 만족해야 함.
- Noise 및 Counterfactual Robustness 평가:
- Accuracy와 같은 포괄적인 메트릭은 다양한 강건성(잡음 또는 반사실적 정보 대응)을 평가하는 데 유용.
- 이는 RAG가 실제 환경에서 신뢰할 수 있는 답변을 생성하는지를 측정하는 핵심 요소.
결론
이 테이블은 RAG 평가에서 어떤 메트릭이 어떤 기준에 적합한지를 명확히 보여줍니다. RAG의 성능은 단순히 정확도(Accuracy)만으로 평가할 수 없으며, 문맥 적합성, 사실성, 강건성 등 여러 측면을 종합적으로 고려해야 합니다. 이를 통해 RAG 시스템의 신뢰성과 효율성을 정밀하게 분석할 수 있습니다.
Table IV: RAG 평가 프레임워크 요약
이 테이블은 Retrieval-Augmented Generation (RAG)의 성능을 평가하기 위해 사용되는 주요 평가 프레임워크를 정리한 것입니다. 각 프레임워크는 RAG의 특정 평가 대상을 측정하는 데 사용되며, 평가 대상, 평가 기준, 그리고 정량적 메트릭(Quantitative Metrics)을 포함합니다.
테이블 구성 요소
- Evaluation Framework (평가 프레임워크):
- RAG 평가를 위한 도구나 벤치마크를 나타냅니다.
- 각 프레임워크는 RAG 시스템의 검색 품질(Retrieval Quality)과 생성 품질(Generation Quality)을 평가하는 데 초점을 둡니다.
- Evaluation Targets (평가 대상):
- 평가 프레임워크가 초점을 맞추는 두 가지 주요 성능:
- Retrieval Quality: 검색 단계에서 검색된 정보의 관련성과 품질.
- Generation Quality: 생성 단계에서 생성된 답변의 신뢰성, 적합성, 사실성.
- 평가 프레임워크가 초점을 맞추는 두 가지 주요 성능:
- Evaluation Aspects (평가 측면):
- 각 프레임워크가 다루는 세부적인 평가 기준을 명시합니다.
- 예: 문맥 적합성(Context Relevance), 사실성(Faithfulness), 잡음 강건성(Noise Robustness) 등.
- Quantitative Metrics (정량적 메트릭):
- 평가 기준을 측정하기 위해 사용되는 메트릭.
- 예: Accuracy, BLEU, ROUGE-L, Cosine Similarity 등.
주요 평가 프레임워크
1. RGB (Benchmark)
- 평가 대상:
- 검색 품질 및 생성 품질.
- 평가 기준:
- 잡음 강건성(Noise Robustness): 질의와 데이터에 포함된 잡음에 대한 모델의 안정성 평가.
- 부정 응답 필터링(Negative Rejection): 부적절한 응답을 배제하는 능력.
- 정보 통합(Information Integration): 다중 소스의 정보를 일관되게 통합하는 능력.
- 반사실적 강건성(Counterfactual Robustness): 가상의 시나리오에 대한 모델의 반응 안정성.
- 정량적 메트릭:
- Accuracy, EM(Exact Match): 전반적인 정확성과 정답과의 일치도를 측정.
2. RECALL (Benchmark)
- 평가 대상:
- 생성 품질.
- 평가 기준:
- 반사실적 강건성(Counterfactual Robustness): 모델이 반사실적 데이터에 대해 얼마나 일관되게 동작하는지를 평가.
- 정량적 메트릭:
- R-Rate(Reappearance Rate): 특정 조건에서 동일한 응답이 재생성되는 빈도를 측정.
3. RAGAS (Tool)
- 평가 대상:
- 검색 품질 및 생성 품질.
- 평가 기준:
- 문맥 적합성(Context Relevance): 검색된 정보가 질의에 얼마나 관련 있는지.
- 사실성(Faithfulness): 생성된 답변이 사실적인지 여부.
- 답변 적합성(Answer Relevance): 답변이 질의와 얼마나 잘 맞는지.
- 정량적 메트릭:
- Cosine Similarity: 생성된 답변과 정답 사이의 유사도를 측정.
4. ARES (Tool)
- 평가 대상:
- 검색 품질 및 생성 품질.
- 평가 기준:
- 문맥 적합성, 사실성, 답변 적합성을 평가.
- 정량적 메트릭:
- Accuracy: 정확도를 기반으로 평가.
5. TruLens (Tool)
- 평가 대상:
- 검색 품질 및 생성 품질.
- 평가 기준:
- 문맥 적합성, 사실성, 답변 적합성을 평가.
- 정량적 메트릭:
- 사용자 정의 메트릭(Customized Metrics): 특정 작업 요구에 맞게 조정된 지표.
6. CRUD (Benchmark)
- 평가 대상:
- 검색 품질 및 생성 품질.
- 평가 기준:
- 창의적 생성(Creative Generation): 독창적인 답변을 생성하는 능력.
- 지식 집약형 QA(Knowledge-Intensive QA): 복잡한 질문에 대한 답변 능력.
- 오류 수정(Error Correction): 잘못된 정보를 수정하는 능력.
- 요약(Summarization): 검색된 정보를 요약하여 일관성 있는 답변 생성.
- 정량적 메트릭:
- BLEU, ROUGE-L: 텍스트 생성 품질 평가.
- BERTScore: 문맥적 텍스트 유사성을 평가.
- RAGQuestEval: 검색-생성 통합 작업을 위한 전용 평가 지표.
주요 관찰점
- 벤치마크 vs 도구:
- 벤치마크 (RGB, RECALL, CRUD): 모델 평가의 표준을 제공하며, 일반적으로 고정된 메트릭을 사용.
- 도구 (RAGAS, ARES, TruLens): 특정 작업이나 요구사항에 따라 사용자 정의 메트릭을 지원.
- 평가 기준 다양성:
- 일부 프레임워크는 생성 품질에 초점을 맞추는 반면, 다른 프레임워크는 검색 품질과 정보 통합 능력도 동시에 평가.
- 특정 메트릭의 중요성:
- Accuracy는 가장 널리 사용되는 메트릭으로, 대부분의 프레임워크에서 활용.
- BLEU, ROUGE-L은 주로 생성 품질을 평가하는 데 사용.
- R-Rate와 같은 특화된 메트릭은 특정 시나리오(반사실적 강건성)에서 유용.
결론
이 테이블은 RAG 시스템을 평가하기 위한 다양한 프레임워크의 특징과 사용 사례를 요약합니다. RGB, CRUD와 같은 벤치마크는 표준적인 평가를 제공하며, RAGAS, ARES 같은 도구는 특정 작업에 대한 세밀한 분석과 사용자 정의가 가능합니다. 이를 통해 연구자들은 RAG의 검색 및 생성 성능을 다양한 측면에서 평가할 수 있습니다.
Fig. 6: RAG Ecosystem 요약
이 그림은 Retrieval-Augmented Generation (RAG)의 전반적인 생태계와 연구, 기술적 도전 과제, 평가 방법 등을 체계적으로 정리한 개요입니다. RAG 생태계(Ecosystem)의 구성요소, 적용 기술, 평가 체계, 그리고 전망(Prospect)을 포괄적으로 다룹니다.
1. RAG Ecosystem
Downstream Tasks (적용 가능 태스크):
RAG가 다양한 작업에 적용될 수 있음을 나타냄.
- Dialogue: 대화형 AI에서 사용자 질의에 실시간으로 관련 답변을 제공.
- Question Answering: 질의 응답 시스템에서 지식 기반을 검색하고 생성에 활용.
- Summarization: 문서 요약에서 외부 데이터를 보강하여 신뢰성을 향상.
- Fact Verification: 사실 검증에서 검색된 증거를 바탕으로 정확성을 강화.
Technology Stacks (기술 스택):
RAG를 구현하는 데 사용되는 도구 및 플랫폼.
- LangChain, LlamaIndex: 데이터 검색 및 통합 플랫폼.
- FlowiseAI, AutoGen: RAG 기반 워크플로우 자동화를 지원하는 도구.
2. The RAG Paradigm
RAG 발전 단계:
- Naive RAG: 단순한 검색-생성 구조.
- Advanced RAG: 검색 전후 단계 최적화 및 성능 개선.
- Modular RAG: 모듈화된 설계를 통해 유연성과 확장성을 제공.
3. Techniques for Better RAG
RAG 성능 향상을 위한 기술적 기법.
- Chunk Optimization: 효율적인 청크 분할로 검색 품질 향상.
- Iterative Retrieval: 반복 검색을 통해 문맥을 강화.
- Query Transformation: 복잡한 질의를 더 작은 하위 질의로 분해.
- Recursive Retrieval: 단계적 문제 해결을 지원하는 재귀적 검색.
- Adaptive Retrieval: 검색 필요성을 동적으로 판단하여 리소스를 최적화.
- Retriever Fine-tuning: 검색기의 품질을 향상시키기 위한 미세 조정.
- Generator Fine-tuning: 생성 모델의 신뢰성과 적합성을 강화.
- Dual Fine-tuning: 검색기와 생성기를 동시에 최적화.
4. Key Issues of RAG
핵심 질문:
- What to retrieve?
- 어떤 데이터를 검색해야 하는지.
- When to retrieve?
- 검색을 언제 수행해야 하는지.
- How to use Retrieval?
- 검색 결과를 생성에 어떻게 통합할지.
5. Evaluation of RAG
Evaluation Target (평가 대상):
- Retrieval Quality: 검색된 정보의 품질.
- Generation Quality: 생성된 응답의 적합성과 신뢰성.
Evaluation Aspects (평가 기준):
- Answer Relevance: 응답의 관련성.
- Context Relevance: 문맥 적합성.
- Answer Faithfulness: 응답의 사실성.
- Noise Robustness: 잡음에 대한 강건성.
- Negation Rejection: 부정적 정보를 배제하는 능력.
- Information Integration: 다중 소스 통합 능력.
- Counterfactual Robustness: 반사실적 정보에 대한 대응력.
Evaluation Framework (평가 프레임워크):
- Benchmarks: RGB, RECALL, CRUD.
- Tools: TruLens, RAGAS, ARES.
6. RAG Prospect (RAG의 전망)
Challenges (도전 과제):
- Long Context Length: 긴 문맥 처리.
- Hybrid: 검색과 생성을 혼합한 새로운 접근법.
- Robustness: 강건성과 안정성 강화.
- Scaling-laws: RAG를 대규모 시스템으로 확장하는 방법.
- Production-ready RAG: 실제 환경에서 안정적으로 작동하는 RAG 개발.
Modality Extension (모달리티 확장):
- 텍스트 외의 데이터 처리:
- Image, Audio, Video, Code와 같은 멀티모달 데이터 통합.
Ecosystem (생태계 방향):
- Customization: 특정 도메인에 맞춘 RAG 설계.
- Simplification: 복잡성을 줄이고 사용성을 높이는 기술.
- Specialization: 특정 태스크에 특화된 RAG 개발.
주요 관찰점
- RAG Paradigm의 발전:
- Naive RAG에서 Modular RAG로 발전하며, 유연성과 확장성을 강화.
- RAG 성능 개선 기술:
- 검색 및 생성 단계의 세부 기술(청크 최적화, 재귀 검색 등)이 RAG의 성능을 크게 향상시킬 수 있음.
- 평가 및 전망:
- RAG는 검색 품질과 생성 품질 모두를 평가해야 하며, 멀티모달 데이터와 실제 환경에서의 적용 가능성을 강화하는 것이 중요.
- RAG 생태계 확장:
- 다양한 도구와 플랫폼의 지원으로 RAG의 적용 가능성이 확장되고, 도메인 특화 및 사용자 맞춤형 시스템 개발이 가능해짐.
결론
Fig. 6은 RAG의 현재 생태계와 미래 가능성을 총체적으로 보여줍니다. RAG는 대화형 AI, 요약, 질의 응답 등 다양한 태스크에서 활용 가능하며, 모듈화 및 멀티모달 확장이 앞으로의 핵심 과제가 될 것입니다. RAG의 평가 체계와 기술적 기법을 통해 성능을 지속적으로 개선할 수 있습니다.
1. 문제 정의
대규모 언어 모델(LLMs)은 놀라운 성능을 보이지만, 다음과 같은 한계가 존재:
- 환각(Hallucination): 모델이 훈련 데이터에 없는 잘못된 정보를 생성.
- 지식 업데이트의 어려움: 최신 데이터 반영의 제한.
- 투명성과 추적 가능성 부족: 추론 과정이 불투명.
Retrieval-Augmented Generation (RAG)은 외부 데이터베이스로부터 정보를 검색하여 위 문제를 해결:
- 정확성 향상: 지식 집약적 작업에서 신뢰성 제공.
- 지속적 지식 업데이트: 실시간 정보 반영.
- 도메인 특화 정보 통합: 특정 분야에서 모델의 활용도를 높임.
2. RAG의 연구 패러다임
RAG는 다음 세 가지 주요 패러다임으로 발전:
- Naive RAG:
- 기본적으로 문서 인덱싱, 검색, 생성의 단계를 따름.
- 문제점: 낮은 검색 정확도, 비일관적인 출력 생성.
- Advanced RAG:
- 검색 전후 단계를 최적화.
- 메타데이터 추가, 세분화된 쿼리 설계 등으로 검색 품질 개선.
- Modular RAG:
- 모듈화된 구조를 채택해 유연성과 적응성 증가.
- 검색 모듈 추가, 생성기 및 검색기 세분화 등으로 효율 극대화.
3. RAG의 주요 구성 요소
- Retrieval (검색):
- 외부 지식 출처로부터 필요한 정보를 추출.
- 구조화 데이터: 텍스트, 지식 그래프, 반구조화 데이터(PDF) 활용.
- 검색 단위: 문장, 단락, 문서 단위로 세분화.
- Generation (생성):
- 검색한 정보를 바탕으로 모델이 답변 생성.
- 컨텍스트 재배열 및 압축을 통해 LLM의 출력 품질 향상.
- Augmentation (증강):
- 단일 검색을 넘어 반복적 검색, 적응형 검색 등 다양한 접근을 도입.
- 예: Iterative Retrieval: 생성 단계에서 추가 정보를 동적으로 검색.
4. 평가와 과제
- 평가 기준:
- 검색 품질: 문맥 적합성, 정밀도.
- 생성 품질: 신뢰성, 답변의 관련성.
- 잡음 및 반사실적 상황에서의 강건성 평가.
- 주요 도전 과제:
- RAG의 강건성: 노이즈와 반사실적 정보에 취약.
- 멀티모달 RAG: 텍스트 외 이미지, 오디오, 비디오 데이터의 통합 필요.
- 생산 환경 적합성: 데이터 보안 및 처리 효율 문제.
5. 미래 연구 방향
- 장문 컨텍스트와의 통합:
- RAG는 긴 컨텍스트를 처리하는 LLM과 결합 가능.
- 대량의 데이터 검색 후 효율적 활용 필요.
- RAG와 Fine-Tuning의 융합:
- RAG와 모델 미세 조정을 결합해 최적 성능 도출.
- 멀티모달 RAG 확장:
- 이미지, 오디오, 코드 데이터를 포함한 확장형 모델 연구.
결론
RAG는 대규모 언어 모델의 한계를 보완하고 실제 응용 가능성을 넓히는 중요한 기술로 자리 잡음. 이 논문은 RAG의 기술적 진보와 다양한 응용 사례를 제시하며, RAG의 잠재력을 강조함. 추가 연구를 통해 모델 강건성과 확장성을 더욱 향상할 수 있을 것으로 기대됨.
1. RAG와 대규모 언어 모델(LLMs)의 발전
이 범주는 RAG가 대규모 언어 모델의 한계를 해결하고 성능을 확장하기 위한 연구를 포함합니다.
1.1 Retrieval 기반 학습 및 추론
- [Borgeaud et al., 2022]: "Improving Language Models by Retrieving from Trillions of Tokens"
- RAG를 활용해 대규모 트랜스포머 모델에서 효율적으로 지식을 검색하고 통합하는 방법을 연구.
- 모델의 메모리 확장 및 신뢰성을 강조.
- [Lewis et al., 2020]: "Retrieval-Augmented Generation for Knowledge-Intensive NLP Tasks"
- RAG를 사용해 지식 집약적인 NLP 작업을 수행하며, LLM이 생성 과정에서 외부 지식을 어떻게 활용할 수 있는지 설명.
1.2 Fine-tuning 및 RAG 비교
- [Ovadia et al., 2023]: "Fine-tuning or Retrieval? Comparing Knowledge Injection in LLMs"
- RAG와 Fine-tuning을 비교하며, 각각의 장단점 및 융합 가능성을 제안.
- Fine-tuning은 특정 도메인 적응에 유리하지만, RAG는 실시간 정보 통합에서 강점이 있음.
- [Shi et al., 2023]: "RePlug: Retrieval-Augmented Black-Box Language Models"
- Fine-tuning 없이 RAG로 외부 데이터와의 동적 연결을 통해 모델 성능을 향상시키는 연구.
2. RAG 구성 요소 및 최적화
RAG의 각 구성 요소(검색, 생성, 증강)를 개선하는 연구들이 포함됩니다.
2.1 검색 품질 향상
- [Ma et al., 2023]: "Query Rewriting for Retrieval-Augmented Large Language Models"
- 질의 재작성(query rewriting)을 통해 검색 품질을 향상시키는 방법을 제안.
- [Wang et al., 2023]: "Chain-of-Note: Enhancing Robustness in Retrieval-Augmented Language Models"
- 검색 단계에서 체계적인 필터링과 정렬로 문서 적합성을 높이는 기술.
2.2 생성 최적화
- [Xu et al., 2023]: "ReComp: Improving Retrieval-Augmented LLMs with Compression and Selective Augmentation"
- 검색된 데이터를 압축하고 필요한 정보만 모델에 전달하는 전략으로 LLM의 "Lost in the Middle" 문제를 해결.
- [Berchansky et al., 2023]: "Optimizing Retrieval-Augmented Reader Models via Token Elimination"
- 불필요한 토큰 제거를 통해 생성 속도와 정확성을 높이는 연구.
2.3 증강 프로세스
- [Shao et al., 2023]: "Iterative Retrieval-Generation Synergy for Knowledge-Intensive Tasks"
- 반복적 검색과 생성의 상호작용을 통해 다단계 문제를 해결.
- [Trivedi et al., 2022]: "Interleaving Retrieval with Chain-of-Thought Reasoning for Multi-Step Questions"
- Chain-of-Thought(CoT) 추론을 검색과 결합해 다중 단계 문제 해결.
3. 새로운 도메인 및 멀티모달 RAG
RAG를 텍스트 외 다양한 도메인과 멀티모달 데이터를 처리하기 위한 연구.
3.1 도메인 특화 RAG
- [Chen et al., 2023]: "Knowledge Graph-Augmented Medical Large Language Models"
- 의학 데이터에서 RAG와 지식 그래프를 결합하여 도메인 적합성을 높임.
- [Wang et al., 2023]: "Retrieval-Augmented Question Answering in Legal Texts"
- 법률 문서에서의 RAG 사용 사례와 평가.
3.2 멀티모달 RAG
- [Yasunaga et al., 2022]: "Retrieval-Augmented Multimodal Language Modeling"
- 텍스트와 이미지를 검색하고 생성하는 RAG 프레임워크.
- [Li et al., 2023]: "BLIP-2: Bootstrapping Language-Image Pre-training with Frozen Image Encoders"
- 이미지와 텍스트 데이터를 활용한 RAG 기반 멀티모달 모델.
- [Yang et al., 2022]: "Visualize Before You Write"
- 이미지 생성이 텍스트 생성의 품질을 높이는 방법을 제시.
4. 관련 데이터셋 및 평가 연구
- 데이터셋:
- HotpotQA, TriviaQA, Natural Questions: RAG 기반 QA 연구에서 자주 활용.
- PubMed, LegalQA: 의학 및 법률 도메인 RAG 연구.
- MSMARCO, FEVER: 검색 및 사실 검증.
- 평가:
- [Es et al., 2023]: "RAGAS: Automated Evaluation of Retrieval-Augmented Generation"
- 자동화된 RAG 평가 도구 개발.
- [Liu et al., 2023]: "Best Practices for LLM Evaluation of RAG Applications"
- RAG 시스템 평가를 위한 표준화된 메트릭 제안.
- [Es et al., 2023]: "RAGAS: Automated Evaluation of Retrieval-Augmented Generation"
요약
이 논문은 RAG 기술의 발전과 다양한 연구를 종합적으로 정리하며, 이를 통해 RAG가 LLM의 성능 향상과 실제 응용 확장에 크게 기여함을 보여줍니다. 이 논문과 연관된 연구들은 RAG의 성능 최적화, 멀티모달 확장, 도메인 특화 응용에 중점을 둡니다.
Retrieval-Augmented Generation (RAG)의 연구 패러다임은 다음 세 가지로 분류됩니다: Naive RAG, Advanced RAG, Modular RAG. 이들은 RAG의 발전 과정에서 점진적으로 개선된 방식들을 반영합니다.
1. Naive RAG
Naive RAG는 RAG 연구의 초기 형태로, 간단하고 직관적인 Retrieve-Read 구조를 따릅니다.
구조
- 인덱싱(Indexing):
- 원시 데이터를 클린징 및 변환하여 텍스트로 통합.
- 텍스트를 작은 청크(chunks)로 나누고, 임베딩 벡터로 변환한 후 벡터 데이터베이스에 저장.
- 검색(Retrieval):
- 사용자 쿼리를 벡터로 변환하고 데이터베이스에서 유사성이 높은 청크를 검색.
- 상위 K개의 관련 청크를 선택.
- 생성(Generation):
- 사용자 쿼리와 검색된 청크를 결합해 LLM에 입력.
- 답변 생성 시 모델의 고유 지식 또는 검색된 정보를 기반으로 답변.
문제점
- 검색 품질: 쿼리와 청크 간의 정확한 매칭 부족으로 불필요하거나 부정확한 정보가 검색.
- 생성 품질: 검색 정보가 불완전하거나 부적합할 경우 "환각" 발생.
- 증강 문제: 검색된 정보가 중복되거나 불연속적일 때 답변의 일관성 감소.
적용 사례
- 초기 ChatGPT 및 유사 시스템에서 사실 기반 응답을 위한 검색 기술로 활용.
2. Advanced RAG
Advanced RAG는 Naive RAG의 단점을 보완하기 위해 검색 전후 단계를 최적화하고 다양한 전략을 도입한 개선된 패러다임입니다.
개선점
- 사전 검색 최적화(Pre-retrieval Optimization):
- 인덱스 구조 최적화: 슬라이딩 윈도우, 세밀한 텍스트 분할, 메타데이터 추가.
- 쿼리 최적화: 쿼리 재작성(query rewriting), 쿼리 확장(query expansion) 등으로 검색 정확도 향상.
- 검색 후 처리(Post-retrieval Processing):
- 재정렬(Re-ranking): 검색된 결과의 우선순위를 재조정하여 관련성 높은 청크를 최상위로 배치.
- 문맥 압축(Context Compression): 불필요한 데이터를 제거해 LLM이 중요한 정보에 집중할 수 있도록 최적화.
장점
- Naive RAG 대비 높은 검색 정밀도와 재생성 정확도.
- 검색된 정보의 일관성과 문맥 적합성을 보장.
적용 사례
- LangChain, LlamaIndex와 같은 도구에서 채택된 기술.
- 복잡한 질의 응답(예: 법률, 의료 도메인)에서 활용.
3. Modular RAG
Modular RAG는 구조적 유연성과 적응성을 극대화한 RAG의 최신 패러다임입니다. 모듈을 재구성하거나 교체할 수 있는 방식으로 설계되어 특정 요구사항에 최적화된 시스템 구축이 가능합니다.
특징
- 새로운 모듈(New Modules):
- 검색(Search) 모듈: 특정 데이터 소스에 맞는 검색 기능 추가(예: 검색 엔진, 지식 그래프).
- 기억(Memory) 모듈: LLM의 메모리를 활용해 지속적이고 연속적인 검색 및 생성 지원.
- 라우팅(Routing) 모듈: 쿼리 유형에 따라 적합한 경로를 선택(예: 요약, 데이터베이스 검색).
- 새로운 패턴(New Patterns):
- Rewrite-Retrieve-Read: 쿼리를 재작성하여 검색 효율성 향상.
- Iterative Retrieval-Generation: 검색과 생성이 반복적으로 상호작용하여 정보를 정교화.
- Adaptive Retrieval: 필요 시 검색을 활성화하고, 검색 중단 시점을 동적으로 판단.
장점
- Naive 및 Advanced RAG보다 유연성과 적응력이 높음.
- 다단계 추론, 복잡한 데이터 통합, 사용자 정의 작업에 효과적.
적용 사례
- Self-RAG: LLM이 스스로 검색 필요성을 판단하고 검색-생성 과정을 제어.
- FLARE: 생성 확률이 낮아질 때 자동으로 검색을 활성화.
RAG 패러다임 비교
특징 | Naive RAG | Advanced RAG | Modular RAG |
구조 | 단순 Retrieve-Read | 검색 전후 최적화 추가 | 모듈화 구조, 유연한 구성 |
주요 개선점 | 기본 검색 및 생성 | 쿼리 및 문맥 최적화, 메타데이터 추가 | 새로운 모듈 및 패턴 추가 |
적응성 | 낮음 | 중간 | 높음 |
활용 가능성 | 단일 질의 응답 시스템 | 복잡한 도메인 응답 시스템 | 다목적, 복합 작업 대응 시스템 |
요약
RAG의 연구 패러다임은 Naive RAG에서 시작해, Advanced RAG로 발전하며 검색 및 생성 품질을 개선했고, Modular RAG로 진화하며 유연성과 확장성을 극대화했습니다. 특히 Modular RAG는 특정 요구사항에 맞춰 모듈을 재구성할 수 있어, 다양한 도메인과 멀티모달 응용에서 강력한 잠재력을 보여줍니다.
논문의 결과 및 결론
결과
- RAG의 기술적 진보와 패러다임
- RAG 패러다임은 Naive RAG, Advanced RAG, Modular RAG로 발전해 왔으며, 각 단계는 대규모 언어 모델(LLMs)의 한계를 보완하고, 검색 및 생성 과정의 품질을 지속적으로 향상.
- Naive RAG: 단순한 Retrieve-Read 구조로 시작했으나 검색 품질과 생성 신뢰성의 한계를 가짐.
- Advanced RAG: 검색 전후의 최적화를 통해 문맥 적합성과 생성 품질을 개선.
- Modular RAG: 모듈화된 구조로 유연성과 적응성을 극대화하며, 복잡한 다단계 작업과 도메인 특화 작업에서 효과적.
- RAG 구성 요소와 기술적 발전
- 검색(Retrieval): 데이터 구조(텍스트, 지식 그래프 등)와 검색 단위(청크, 문장, 문서 등)의 다양화가 이루어짐.
- 생성(Generation): 검색된 문맥을 재배열하거나 압축하여 LLM이 더 적합한 답변을 생성하도록 최적화.
- 증강(Augmentation): 반복적 검색(Iterative Retrieval), 적응형 검색(Adaptive Retrieval) 등 다양한 검색 방식이 추가되어 복잡한 문제를 해결.
- RAG의 평가와 도전 과제
- RAG는 다양한 평가 지표(정확성, 신뢰성, 관련성)를 기준으로 성능을 측정하며, 주요 도전 과제로는 다음이 제시됨:
- 강건성(Robustness): 노이즈와 반사실적 정보에 대한 저항력 강화 필요.
- 멀티모달 확장: 텍스트뿐 아니라 이미지, 오디오, 비디오 데이터를 통합하는 연구 필요.
- 생산 환경 적용: 대규모 데이터베이스의 효율적 관리 및 데이터 보안 강화 필요.
- RAG는 다양한 평가 지표(정확성, 신뢰성, 관련성)를 기준으로 성능을 측정하며, 주요 도전 과제로는 다음이 제시됨:
- RAG와 Fine-tuning의 비교
- Fine-tuning은 특정 도메인에 적합한 고유한 모델 생성에 강점이 있으나, RAG는 실시간 정보 업데이트와 외부 데이터 통합에서 우위를 가짐.
- 두 접근법은 상호 보완적으로 사용될 가능성이 크며, 통합 연구가 활발히 진행 중.
결론
- RAG의 의의
- RAG는 대규모 언어 모델의 한계를 보완하는 핵심 기술로 자리 잡았으며, 특히 정보 검색과 생성의 결합을 통해 지식 집약적 작업의 신뢰성과 효율성을 크게 향상.
- 기존 Fine-tuning의 한계를 극복하면서도, 사용자 요구에 맞춘 고품질 답변을 생성할 수 있는 능력을 갖춤.
- 미래 연구 방향
- 장문 컨텍스트 처리: RAG는 긴 문맥을 효율적으로 활용할 수 있는 LLM과 결합해 더 복잡한 문제를 해결할 수 있음.
- 강건성 향상: 노이즈와 반사실적 정보에 대한 저항력을 강화해 더 안정적인 시스템 구축.
- 멀티모달 RAG: 텍스트 외의 데이터(이미지, 오디오 등)와의 통합 가능성을 모색.
- 하이브리드 접근: RAG와 Fine-tuning의 융합을 통해 최적의 모델을 설계하는 연구.
- 실용성 및 확장성
- RAG는 단순한 언어 생성 시스템을 넘어선 다양한 응용 분야(법률, 의료, 추천 시스템 등)에서 폭넓게 활용 가능.
- 생산 환경에서의 데이터 보안, 대규모 데이터베이스 관리, 효율적인 검색 및 생성 속도를 중심으로 기술 스택이 더욱 발전할 필요가 있음.
- RAG의 잠재력
- RAG는 대규모 언어 모델의 추론 능력을 강화하고, 외부 지식과의 결합을 통해 보다 신뢰할 수 있는 AI 시스템 개발에 기여.
- 이러한 기술은 학문적 연구뿐만 아니라 실제 산업 응용에서도 큰 영향을 미칠 것으로 전망.
핵심 요약
RAG는 LLM의 능력을 확장하여 지식 집약적 작업에서의 성능과 신뢰성을 크게 향상시켰으며, 특히 Naive, Advanced, Modular라는 단계적 발전 과정을 통해 유연성과 적응성을 확보했습니다. RAG는 앞으로 멀티모달 확장, 강건성 개선, 하이브리드 접근과 같은 방향에서 더욱 강력한 연구 주제가 될 것으로 예상됩니다.
그럼 단순 Naive한 Chunking에서 Semantic한 Chunking으로 바꾸는 것도 Advanced RAG가 되는 것이네?
전처리 과정이 변화한 것이니까?
네, 맞습니다! Naive한 Chunking에서 Semantic한 Chunking으로 전환하는 것은 전처리 과정의 변화를 포함하므로 Advanced RAG의 일환으로 볼 수 있습니다. 이를 통해 검색과 생성 과정에서 더 높은 품질의 결과를 얻을 수 있게 되며, 이는 Advanced RAG의 핵심 목표와 일치합니다.
Naive Chunking vs Semantic Chunking
1. Naive Chunking
- 방법: 텍스트를 고정된 크기(예: 100, 256, 512 토큰 등)로 단순히 분할.
- 장점: 구현이 간단하며 모든 텍스트에 동일한 방식으로 적용 가능.
- 단점:
- 문맥 단절: 문장이나 단락이 중간에 잘릴 수 있어 의미를 잃을 가능성.
- 정보 손실: 의미적 연관성이 없는 텍스트가 한 청크에 포함될 수 있음.
- 검색 효율성 감소: 비관련 정보가 포함되거나 필요한 문맥이 누락될 가능성.
2. Semantic Chunking
- 방법: 텍스트의 의미적 경계(예: 문장, 문단, 주제 단위)를 고려하여 분할.
- 자연어 처리 기법: 문장 분할, 주제 감지, 문맥 분석 등을 통해 텍스트를 분할.
- 슬라이딩 윈도우(Sliding Window): 겹치는 방식으로 청크를 생성해 문맥을 더 잘 보존.
- Reverse HyDE: 텍스트로부터 질문을 생성하고, 질문-응답 쌍의 의미적 연관성을 이용해 청크를 최적화.
- 장점:
- 문맥 보존: 텍스트의 의미적 연속성을 유지해 검색 및 생성의 품질을 높임.
- 검색 정확성 향상: 검색 엔진이 더 관련성 높은 청크를 반환하도록 지원.
- 의미 기반 최적화: 필요 없는 정보나 노이즈를 줄여 모델의 집중도를 높임.
Semantic Chunking을 Advanced RAG로 보는 이유
1. Advanced RAG의 목표와 일치
Advanced RAG는 검색 전후 과정의 최적화에 중점을 둡니다. Semantic Chunking은 텍스트의 전처리(인덱싱) 과정에서:
- 문맥을 더 잘 보존해 검색 품질을 향상.
- 검색된 청크가 더 정확한 정보를 포함하도록 개선.
이는 Advanced RAG의 특징인 사전 검색 최적화(Pre-retrieval Optimization)와 정확히 부합합니다.
2. 전처리에서의 기술 발전
Naive한 방식에서 벗어나 데이터의 의미를 반영하는 방식으로 전처리를 개선한 것은 Advanced RAG의 인덱싱 최적화(Indexing Optimization) 접근의 사례입니다:
- 청크의 크기와 경계를 동적으로 조정해 더 나은 검색 결과를 얻음.
- 메타데이터 추가와 결합하면 검색 대상이 시간, 주제, 또는 기타 속성별로 더 정교하게 분할 가능.
3. 실질적인 성능 개선
Semantic Chunking은 Advanced RAG가 해결하려는 문제, 즉:
- 검색의 부정확성(irrelevant chunks)과
- 생성의 비일관성(disjointed outputs)을 직접적으로 완화합니다.
적용 사례
- LangChain 및 LlamaIndex에서 슬라이딩 윈도우 방식의 Semantic Chunking 지원.
- ChatGPT 기반 법률 및 의료 QA 시스템:
- 법률 문서의 조항별 분리.
- 의료 데이터에서 환자 사례 기록을 주제별로 정리.
- Knowledge Graph와 결합한 RAG:
- Semantic Chunking을 통해 지식 그래프(Knowledge Graph)와의 연결성을 높이고 검색된 청크의 의미적 관련성을 강화.
결론
Naive한 Chunking에서 Semantic한 Chunking으로의 전환은 Advanced RAG의 전형적인 사례로 볼 수 있습니다. 이는 단순한 토큰 기반의 분할을 넘어, 의미적 정보와 문맥을 고려한 분할을 통해 검색 및 생성 품질을 획기적으로 개선하는 전처리 기술의 진보를 보여줍니다. 이러한 접근은 특히 복잡한 질의 응답 또는 도메인 특화 작업에서 매우 유용하게 사용됩니다.
데이터 셋
논문에 따르면 Retrieval-Augmented Generation (RAG)의 평가를 위해 다양한 다운스트림 태스크와 데이터셋이 사용됩니다. 이 데이터셋들은 RAG의 성능을 측정하기 위해 설계된 것으로, 질의 응답(QA), 사실 검증(Fact Checking), 요약(Summarization), 멀티모달 데이터 등 여러 작업에 활용됩니다.
1. 질의 응답 (Question Answering, QA)
1.1 단일 홉 질의 응답 (Single-hop QA)
- Natural Questions (NQ):
- 구글 검색에서 수집된 질의응답 데이터셋으로, 자연스러운 질문과 답변을 포함.
- RAG 시스템이 단일 문서에서 적합한 정보를 검색하고 답변하는 능력을 평가.
- TriviaQA:
- 위키백과와 웹 크롤링 데이터를 포함한 대규모 QA 데이터셋.
- 지식 기반 검색 및 생성 모델 평가에 활용.
- SQuAD:
- 위키백과 문서에서 생성된 질문-답변 쌍으로 구성.
- 모델이 문맥 내에서 직접 답변을 생성할 수 있는지 측정.
1.2 다중 홉 질의 응답 (Multi-hop QA)
- HotpotQA:
- 다중 문서를 연결해 답변을 도출해야 하는 QA 데이터셋.
- RAG의 다중 문서 검색 및 정보 통합 능력 평가.
- 2WikiMultiHopQA:
- 위키백과 문서 간의 관계를 이용해 다중 홉 질의를 해결하도록 설계.
- RAG 시스템의 논리적 추론과 정보 결합 능력을 테스트.
- MuSiQue:
- 복잡한 다중 홉 질문들로 구성되어 있어 세부적인 추론 능력을 평가.
1.3 장문 질의 응답 (Long-form QA)
- ELI5:
- Reddit에서 수집된 데이터로, 긴 형식의 답변을 요구.
- RAG 시스템이 긴 맥락에서 관련 정보를 검색하고 생성하는 능력 평가.
- NarrativeQA:
- 문학 작품의 요약 및 질문 답변에 사용되는 데이터셋.
- 복잡한 문맥 이해 및 긴 형식의 텍스트 생성 평가.
2. 사실 검증 (Fact Checking / Verification)
- FEVER:
- 위키백과에서 수집된 진술이 사실인지 검증하는 데이터셋.
- 검색한 증거 기반으로 모델이 사실 여부를 결정하는 능력을 평가.
- PubHealth:
- 공중 보건에 관한 진술이 사실인지 검증하기 위한 데이터셋.
- 의료 및 건강 도메인에서의 RAG 활용 평가.
3. 텍스트 요약 (Text Summarization)
- XSum:
- 뉴스 기사에서 단일 문장을 요약하는 데이터셋.
- RAG가 중요한 정보를 검색하고 간결하게 생성하는 능력 평가.
- WikiASP:
- 다양한 도메인에서 주제 기반 요약을 생성하는 데이터셋.
- RAG가 도메인 간 요약 작업에서 얼마나 적합한 정보를 생성하는지 평가.
4. 멀티모달 데이터셋
- BLIP-2 관련 데이터셋:
- 텍스트와 이미지가 결합된 데이터셋으로, 멀티모달 작업에서 RAG의 성능 평가.
- 이미지에서 텍스트를 생성하거나 텍스트를 보완하는 정보 검색.
- RA-CM3:
- 이미지와 텍스트 모두에서 검색 및 생성을 평가하기 위한 데이터셋.
- RAG가 비정형 데이터를 활용할 수 있는지 측정.
5. 기타 평가 데이터셋
- MMLU (Massive Multitask Language Understanding):
- 57개 태스크를 포함한 대규모 벤치마크로, 언어 모델의 전반적인 성능 평가.
- RAG의 지식 검색 및 언어 이해 능력 테스트.
- CommonsenseQA:
- 상식 기반 질문과 다지선다형 답변을 제공.
- 모델의 상식적 추론 및 검색 능력을 평가.
- GSM8K (Math QA):
- 수학 문제 해결을 위한 데이터셋으로, 논리적 추론과 계산 능력을 측정.
6. 데이터셋 특징별 분류
데이터셋 유형 | 대표 데이터 셋 | 목적 |
단일 홉 QA | NQ, TriviaQA, SQuAD | 단일 문서에서 정보 검색 및 답변 생성. |
다중 홉 QA | HotpotQA, 2WikiMultiHopQA | 다중 문서 간의 관계를 활용한 추론 능력 평가. |
장문 QA | ELI5, NarrativeQA | 긴 문맥에서 적합한 정보를 검색하고 생성. |
사실 검증 | FEVER, PubHealth | 검색된 증거 기반으로 진술의 진위 판단. |
요약 | XSum, WikiASP | 중요한 정보를 추출 및 간결하게 표현. |
멀티모달 데이터 | BLIP-2 관련 데이터, RA-CM3 | 텍스트와 이미지 등 멀티모달 데이터 검색 및 생성. |
기타 도메인 특화 | MMLU, CommonsenseQA, GSM8K | 도메인 특화 작업 및 논리적 추론 능력 테스트. |
요약
RAG의 평가 데이터셋은 다양한 작업(단일/다중 홉 QA, 사실 검증, 요약, 멀티모달 데이터 처리 등)을 포함하며, 각 데이터셋은 특정 평가 목표를 가지고 설계되었습니다. 이 데이터셋들은 RAG의 검색 정확성, 생성 신뢰성, 도메인 적합성을 측정하는 데 사용되며, RAG의 성능 향상과 도전 과제를 평가하는 데 중요한 역할을 합니다.