안녕하세요 Simon 입니다.
오늘은 RAG 의 서베이 관련 논문이 있어서 가져와봤습니다.
RAG 기술이 점점 LLM 의 할루시네이션을 개선하기 위한 기술로 자리를 잡고 있고 이곳저곳에서 도입이 되고있고, 텍스트 뿐만아니라 나중에는 멀티모달의 이미지 리트리버 분야도 분명 대두될거 같다는 생각을 종종하고 있습니다. RAG 기술이라도 잘 알고 설명 할 줄 아는 사람이 되고싶어서 위의 논문을 이해해보려고 합니다.
Abstract
이 리뷰 논문은 대규모 언어 모델의 한계를 극복하기 위해 검색-증강 생성(RAG) 기술의 발전을 다루고 있습니다. RAG는 외부 데이터베이스의 지식을 통합하여 모델의 정확성과 신뢰성을 향상시키고, 지속적인 지식 업데이트와 특정 분야 정보의 통합을 가능하게 합니다. 논문은 RAG의 다양한 형태와 그 구성 요소인 검색, 생성, 증강 기술을 상세히 분석하고, RAG 모델 평가를 위한 최신 메트릭과 벤치마크를 소개하며, 향후 연구 방향을 제시합니다. 위 논문에서 제시한 RAG 방식은 Naive RAG, Advanced RAG, Modular RAG 라는 방식으로 기존의 RAG에서 점점 진화된 Agent 형태의 RAG, RAG 조차도 LLM 이 해결해줄 수 있을것이라는 방법론을 소개해줍니다.
1. Introduction
LLM 은 NLP에서 뛰어난 성능일 보였지만, 특정 도메인에 관하여 쿼리처리 및 허위 정보 생성 할루시네이션 문제에 직면해 있습니다. 그 할루시네이션을 개선하고자 RAG를 도입합니다. RAG는 외부데이터를 검색을 통하여 LLM 의 정확성과 관련성을 향상시켜서 할루시네이션을 줄여줍니다. RAG는 LLM 능력을 향살시킬뿐만 아니라 더 실용적이고 응용분야에서 실현이 가능하도록 만든 중요한 기술 입니다.
연구 사항 :
- 종합적 RAG 기술 조사: 최첨단 RAG 연구를 체계적으로 검토하여 Navie RAG, Advanced RAG, Modular RAG 등 패러다임을 통해 발전 과정을 명확히 밝힘. 이를 통해 더 넓은 LLM 연구 영역에서 RAG 연구의 중요성을 강조.
- 핵심 기술 식별 및 토론: RAG 프로세스에서 필수적인 핵심 기술인 "Retrival", "Generator", "Augementation"에 집중. 이들 구성요소 간의 시너지 효과를 깊이 파헤쳐 강력한 RAG 프레임워크를 형성하는 협력 방식을 설명.
- RAG 평가 프레임워크 제시: RAG 평가 목표 및 지표를 제시한 철저한 평가 프레임워크 구축. 다양한 관점에서 RAG와 Fine-Tunning 비교 분석을 통해 양자의 장단점 명확히 밝힘. 또한 현재 과제 해결을 위한 잠재적 개선, 멀티모달 설정 확장, eco-system 개발 등 RAG의 미래 방향을 제시.
2. Definition
RAG는 대규모 언어 모델들이 최신 정보에 대한 지식이 부족할 때 이를 보완하는 방법으로, 외부 지식 베이스에서 관련 정보를 검색하여 모델의 입력에 추가하는 방식입니다. 이는 모델의 출력 정밀도를 향상시키며, 특히 최신 이벤트에 대한 정보를 제공하는 데 유용합니다. RAG의 기술적 발전은 검색할 데이터의 종류, 검색 시기 및 방법에 대한 연구를 포함합니다. RAG는 '무엇을 검색할 것인가', '언제 검색할 것인가', '검색한 정보를 어떻게 사용할 것인가'와 같은 중요한 질문들을 다루며 다양한 혁신적 접근 방식을 통해 발전해왔습니다. 또한, RAG는 단순히 정보를 검색하는 것뿐만 아니라, 이를 모델의 다양한 레이어에 통합하여 보다 효과적으로 활용합니다. RAG의 워크플로우는 코퍼스를 청크로 분할하고, 이를 벡터 색인을 통해 검색하여, 최종적으로 검색된 정보를 바탕으로 응답을 생성하는 과정을 포함합니다. 이러한 접근 방식은 LLM의 성능을 향상시키는 데 기여하며, 특히 대화형 제품 개발에 널리 사용되고 있습니다.
3. RAG Freamework
RAG 연구는 기존의 Naive RAG에서 시작하여, 그 한계를 극복하고자 하는 노력의 일환으로 Advanced RAG와 Modular RAG로 발전해 왔습니다. Naive RAG는 기본적인 RAG 구현으로서, LLM의 성능을 뛰어넘었지만 여러 제한 사항을 가지고 있었습니다. 이에 대한 해결책으로 Advanced RAG와 Modular RAG가 개발되었으며, 이는 Naive RAG의 특정 단점들을 극복하기 위한 것입니다. Advanced RAG와 Modular RAG는 각각 더 세밀한 조정과 모듈화를 통해 RAG의 기능과 효율성을 개선하고자 하는 목표를 가지고 있습니다
3.1 Navie RAG
Naive RAG는 ChatGPT의 널리 채택된 이후 초기에 등장한 연구 방법론으로, 전통적인 인덱싱, 검색, 생성 과정을 따릅니다. 이는 "검색-읽기(Retrieve-Read)" 프레임워크로 특징지어집니다.
Indexing
데이터 준비의 초기 단계로서, 원본 데이터를 정제하고 표준 텍스트로 변환한 뒤, 이를 작은 청크로 분할하고 벡터 표현으로 변환하여 색인을 생성합니다. 이는 검색 단계에서 유사성 비교를 용이하게 합니다.
Retrival
사용자 쿼리를 받아 인코딩 모델을 사용하여 벡터 표현으로 변환하고, 색인된 코퍼스 내 벡터화된 청크와의 유사성 점수를 계산하여 상위 K 청크를 검색합니다.
Generation
질문과 선택된 문서를 통합하여 언어 모델이 응답을 생성하도록 하는 일관된 프롬프트를 형성합니다. 이는 특정 기준에 따라 내부 지식을 활용하거나 제공된 문서의 정보에 국한된 응답을 생성할 수 있습니다.
Naive RAG의 단점
검색의 정확도 문제, 응답 생성의 품질 문제(예: 환각, 무관한 맥락, 잠재적 독성 또는 편향), 검색된 내용의 통합과 일관성 유지의 어려움, 검색된 내용에 지나치게 의존하는 위험이 있습니다.
Naive RAG는 초기 RAG 연구의 기본적인 형태로서, 데이터 인덱싱, 검색, 그리고 생성 과정을 통해 LLM의 성능을 향상시키고자 하는 목적을 가집니다. 하지만, 이 방법론은 검색의 정확도, 응답의 품질, 그리고 검색된 내용과 생성된 내용의 통합과 같은 여러 문제점을 가지고 있습니다. 위 논문의 연구에서는 개선되어야 할 중요한 부분을 다룹니다.
3.2 Advanced RAG
Advanced RAG는 Naive RAG의 단점을 해결하기 위해 특정 개선 사항을 도입했습니다. 검색 품질을 개선하기 위해 사전 검색 및 사후 검색 전략을 구현하고, 인덱싱 접근 방식을 미세 조정하여 슬라이딩 윈도우, 세밀한 세분화 및 메타데이터를 사용합니다.
-> Docs 에서의 Metadata tagging 을 통해서 Context 에서 모델이 이해를 돕는 역할을 해줄 수 있다.
Pre-Retrieval Process
데이터 인덱싱의 목적은 인덱싱되는 콘텐츠의 품질을 향상시키며, 이를 위해 다섯 가지 주요 전략을 사용합니다: 데이터 세분성 향상, 인덱스 구조 최적화, 메타데이터 추가, 정렬 최적화, 혼합 검색. 텍스트의 표준화, 일관성, 사실적 정확성, 풍부한 맥락을 높이는 것을 목표로 합니다. 이는 불필요한 정보 제거, 엔티티 및 용어의 모호성 해소, 사실 확인, 문맥 유지, 오래된 문서 업데이트를 포함합니다.
- 인덱스 구조 최적화: 청크 크기 조정을 통해 관련 맥락을 캡처하고, 여러 인덱스 경로를 쿼리하며, 그래프 데이터 인덱스의 노드 간 관계를 활용하여 관련 맥락을 포착합니다.
- 메타데이터 정보 추가: 참조된 메타데이터(예: 날짜, 목적)를 청크에 통합하고, 챕터 및 하위 섹션과 같은 메타데이터를 사용하여 검색 효율성을 개선합니다.
- 정렬 최적화: 문서 간 불균형을 해결하기 위해 "가상의 질문"을 도입하여 정렬 문제를 해결합니다.
이러한 접근 방식은 Advanced RAG가 Naive RAG의 한계를 극복하고 더 정밀하고 유용한 정보 검색 및 처리 방식을 제공하는 데 중요한 역할을 합니다. 데이터 인덱싱 최적화는 RAG 시스템의 전반적인 성능을 향상시키는 데 핵심적인 요소로, 데이터의 품질과 관련성을 높이고, 결과적으로 검색 및 생성 과정의 정확도와 효율성을 높이는 데 기여합니다.
Retrieval
Advanced RAG의 검색 단계는 쿼리와 청크 사이의 유사성을 정확하게 계산하여 관련된 맥락을 식별하는 데 중요한 역할을 하는 임베딩 모델의 최적화에 초점을 맞춥니다. 이러한 최적화는 더 정밀하고 관련성 높은 검색 결과를 제공하며, RAG 시스템 전체의 성능을 향상시키는 데 기여합니다. 동적 임베딩의 적용은 맥락에 더 민감하게 반응하여, 검색의 정확도를 더욱 높일 수 있습니다. 이러한 접근 방식은 Advanced RAG가 Naive RAG보다 더 정교한 검색 기능을 제공하게 하는 핵심 요소입니다.
- 검색 단계의 중점: 쿼리와 청크 사이의 유사성을 계산하여 적절한 맥락을 식별하는 것입니다. 이 과정에서 임베딩 모델이 중요한 역할을 합니다.
- 임베딩 모델의 최적화: Advanced RAG는 임베딩 모델을 최적화하여 검색 관련성을 향상시킵니다.
- Fine-tuning Embedding: 임베딩 모델을 미세 조정하여 도메인별 맥락에서 검색 관련성을 높입니다. 예를 들어, BAAI가 개발한 BGE-large-EN 같은 고성능 임베딩 모델은 검색 관련성을 최적화하기 위해 미세 조정될 수 있습니다. GPT-3.5-turbo 같은 언어 모델을 사용하여 문서 청크를 기반으로 질문을 생성하고, 이를 미세 조정 데이터로 사용합니다.
- Dynamic Embedding: 정적 임베딩과 달리, 동적 임베딩은 사용되는 맥락에 따라 단어의 임베딩을 조정합니다. 예를 들어, BERT와 같은 트랜스포머 모델에서는 동일한 단어가 주변 단어에 따라 다른 임베딩을 가질 수 있습니다. OpenAI의 embeddings-ada-02 모델은 GPT와 같은 LLM의 원리에 기반한 동적 임베딩 모델로, 맥락 이해를 포착합니다. 하지만 이 모델은 최신의 전체 크기 언어 모델(GPT-4 등)과 같은 맥락에 대한 민감도를 보이지 않을 수도 있습니다.
Post-Retrieval Process
데이터베이스에서 얻은 중요한 정보를 LLM에 통합할 때의 과정을 다루고 있습니다. 이 과정에서, 컨텍스트 윈도우 한계로 인한 도전 과제를 해결하는 것이 중요합니다. 모든 관련 문서를 한번에 LLM에 제시하는 것은 컨텍스트 윈도우 한계를 초과하고, 노이즈를 도입하며, 중요 정보에 대한 집중을 방해할 수 있습니다. 이러한 문제들을 해결하기 위해 검색된 내용의 추가 처리가 필요합니다.
- Re-Ranking 이라는 접근 방식은 검색된 정보를 재정렬하여 프롬프트의 가장자리에 가장 관련성 높은 내용을 배치하는 전략으로, LlamaIndex4, LangChain5, HayStack 등의 프레임워크에서 구현되었습니다. 예를 들어, Diversity Ranker는 문서 다양성에 기반한 재정렬을 우선시하고, LostInTheMiddleRanker는 최고의 문서를 컨텍스트 창의 시작과 끝에 번갈아 배치합니다. CohereAI rerank, bge-rerank, LongLLMLingua 등은 관련 텍스트와 질의 사이의 의미적 유사성을 재계산하여 벡터 기반의 유사 검색 해석 문제를 해결합니다.
- Prompt Compression 연구는 검색된 문서에서의 노이즈가 RAG 성능에 부정적인 영향을 미친다는 것을 지적합니다. 포스트 프로세싱에서는 관련 없는 컨텍스트를 압축하고, 중요한 단락을 강조하며, 전체 컨텍스트 길이를 줄이는 것에 중점을 둡니다. Selective Context와 LLMLingua 같은 접근 방식은 작은 언어 모델을 사용하여 프롬프트 상호 정보 또는 혼란도를 계산하여 요소의 중요도를 추정합니다.
- Recomp는 다양한 세밀도에서 압축기를 훈련시키고, Long Context와 "Walking in the Memory Maze"는 LLM의 핵심 정보 포인트를 강화하기 위한 요약 기술을 설계합니다.
3.3 Modular RAG
모듈러 RAG 구조를 소개하며 이것이 제공하는 더 큰 다양성과 유연성에 대해 설명합니다. 모듈러 RAG는 유사성 검색을 위한 검색 모듈을 통합하거나, 검색기에 미세조정 방법을 적용하는 등 다양한 방법을 통해 기능 모듈을 향상시킵니다. 이 구조는 직렬 파이프라인이나 여러 모듈에 걸친 종단간(end-to-end) 훈련 접근법을 허용합니다. 그러나 모듈러 RAG는 독립적이지 않으며, 고급 RAG는 모듈러 RAG의 특수 형태이며, 나아가 Naive RAG 자체도 고급 RAG의 특수한 경우로 볼 수 있습니다. 이 세 가지 패러다임 간의 관계는 상속과 발전의 관계입니다.
새로운 모듈들:
- 검색 모듈: 특정 시나리오에 맞춰진 검색을 제공하며, 추가 코퍼스에 대한 직접 검색을 포함합니다.
- 메모리 모듈: LLM의 메모리 능력을 활용하여 검색을 안내합니다.
- 퓨전: 다중 쿼리 접근 방식을 통해 전통적인 검색 시스템의 한계를 해결합니다.
- 라우팅: 다양한 소스에서 검색된 데이터를 번갈아 사용하거나 상황에 따라 병합할 수 있습니다.
- 예측: 검색된 내용의 중복과 노이즈 문제를 해결합니다.
- 작업 어댑터: 다양한 하류 작업에 RAG를 적용하는 데 중점을 둡니다.
새로운 패턴들:
모듈러 RAG의 조직 구조는 특정 문제 맥락에 맞게 모듈을 대체하거나 재배치할 수 있는 높은 적응성을 가지고 있습니다. Naive RAG와 Advanced RAG는 일부 고정된 모듈로 구성되어 있지만, 모듈러 RAG는 더 큰 다양성과 유연성을 즐깁니다. 현재 연구는 모듈을 추가하거나 대체하는 것과 모듈 간 조직적 흐름을 조정하는 두 가지 조직 패러다임을 주로 탐구합니다.
RAG 파이프라인 최적화:
RAG 시스템의 검색 과정 최적화는 정보의 효율성과 품질을 향상시키는 것을 목표로 합니다. 이는 다양한 검색 기술을 통합하고, 검색 단계를 정제하며, 인지적 되돌아보기를 구현하고, 다양한 쿼리 전략을 활용하며, 임베딩 유사성을 활용하는 데 중점을 둡니다. 이러한 노력은 RAG 시스템에서 검색 효율성과 문맥 정보의 깊이 사이의 균형을 달성하기 위해 공동으로 노력합니다.
4. Retrieval
RAG 에서 데이터 소스로부터 관련 문서를 효율적으로 검색하는 중요성과 검색기를 능숙하게 만드는 데에 따르는 도전을 다룹니다. 이는 세 가지 중요한 질문에 초점을 맞춥니다: 1) 문서와 쿼리의 의미적 표현을 어떻게 정확하게 달성할 수 있는지, 2) 쿼리와 문서의 의미 공간을 어떻게 정렬할 수 있는지, 3) 검색기의 출력을 대규모 언어 모델의 선호도와 어떻게 일치시킬 수 있는지. 이러한 질문들은 문서와 쿼리의 의미론적 효과적 표현, 의미적 유사성 측정 및 매칭 방법, 그리고 대규모 언어 모델의 처리와 검색 결과의 일치를 통해 검색의 효율성과 정확성을 향상시키는 방법에 대해 탐구합니다.
4.1 Enhancing Semantic Representations
Chunk optimization
외부 문서를 관리하는 첫 단계는 이를 더 작은 청크로 나누어 세부적인 특징을 추출하고, 이를 임베딩하여 의미를 나타내는 것입니다. 너무 크거나 너무 작은 텍스트 청크의 임베딩은 서브-최적 결과를 초래할 수 있으므로, 적절한 청크 크기의 식별이 중요합니다. 청크 크기의 선택은 콘텐츠의 성격, 임베딩 모델, 사용자 쿼리의 길이 및 복잡성, 그리고 검색된 결과의 특정 애플리케이션 활용 방식 등 여러 중요 요소를 고려해야 합니다.
Fine-tuning Embedding Models
적절한 청크 크기를 결정한 후, 다음 단계는 이러한 청크와 쿼리를 의미 공간에 임베딩하는 것입니다. 임베딩의 효과는 모델이 코퍼스를 대표하는 능력에 영향을 미칩니다. 최근 연구는 AngIE, Voyage, BGE 등과 같은 임베딩 모델을 소개했으며, 이들은 광범위한 코퍼스에서 사전 훈련을 받았습니다. 그러나 특정 분야에 적용할 때 이들 모델의 도메인 특화 정보 포착 능력은 제한적일 수 있습니다. 따라서 임베딩 모델을 특정 작업에 맞게 미세 조정하는 것이 필수적입니다. 이는 도메인 지식 미세 조정과 다운스트림 작업을 위한 미세 조정의 두 가지 주요 패러다임을 포함합니다.
-> 임베딩 모델을 파인튜닝한다 우리가 받았던 피드백이기도하다. 현업에서는 실제로 파인튜닝에서 쓴다고한다 네이버에서도 그렇고.. 그러나 현실적으로 파인튜닝을 다루기에는 무리가 있어보인다. 어떻게 지도학습 데이터를 구성할 것인가에대해.. 알바생이 없다 우리에겐..
이러한 방법들은 의미적 표현을 개선하고 도메인 지식과 특정 작업에 대한 미세 조정을 통합하여 리트리버의 성능을 향상시킵니다. 그러나 검색기가 특정 LLM과 항상 최적으로 호환되지는 않을 수 있으며, 이를 해결하기 위해 일부 연구자들은 LLM으로부터의 피드백을 사용하여 미세 조정 과정을 직접 감독하는 방법을 탐구하고 있습니다. 이러한 직접 감독은 검색기를 LLM과 더 밀접하게 일치시켜 다운스트림 작업에서의 성능을 향상시키는 것을 목표로 합니다.
4.2 Aligning Queries and Documents
Query Rewriting
쿼리 재작성은 쿼리와 문서의 의미를 정렬하는 기본적인 접근 방식입니다. Query2Doc, ITER-RETGEN 같은 방법은 LLM을 활용하여 원래 쿼리와 추가 지침을 결합한 가상 문서를 생성합니다. HyDE는 "가설적" 문서를 생성하여 필수 패턴을 포착하는 데 사용되는 쿼리 벡터를 텍스트 단서를 사용하여 구축합니다. RRR은 전통적인 검색 및 읽기 순서를 역전시키는 프레임워크를 도입하여 쿼리 재작성에 중점을 둡니다. STEP-BACKPROMPTING은 고차원 개념에 기반한 추상적 추론 및 검색을 수행하도록 LLM을 가능하게 합니다. 또한, 다중 쿼리 검색 방법은 복잡한 문제와 여러 하위 문제를 해결하기 위해 LLM을 사용하여 동시에 여러 검색 쿼리를 생성하고 실행하는 데 유리합니다.
Embedding Transformation
쿼리 재작성과 같은 광범위한 전략을 넘어서, 임베딩 변환을 위해 특별히 설계된 더 세밀한 기술이 존재합니다. LlamaIndex는 쿼리 인코더 다음에 통합될 수 있는 어댑터 모듈을 도입하여, 쿼리 임베딩의 표현을 최적화하고 의도한 작업과 더 밀접하게 정렬되는 잠재 공간으로 매핑하는 데 도움을 줍니다.
SANTA는 구조화된 데이터와 비구조화된 데이터 사이의 불일치를 다루면서, 특히 구조화된 외부 문서와 쿼리를 정렬하는 문제를 해결합니다. 이 접근법은 구조화된 데이터에 대한 언어 모델의 이해를 증진시키기 위해 엔티티 중심 마스킹 전략을 사용하는 Masked Entity Prediction을 포함하여 두 가지 사전 훈련 전략을 통해 Retrieval의 구조화된 정보 인식 능력을 향상시킵니다.
4.3 Aligning Retriever and LLM
RAG 파이프라인에서 다양한 기술을 통해 검색 성공률을 높이는 것이 최종 결과를 개선하지 않을 수 있다는 점에 주목합니다. 이는 검색된 문서가 대규모 언어 모델(Large Language Models, LLMs)의 특정 요구 사항과 일치하지 않을 수 있기 때문입니다.
Fine-tuning Retrievers
LLM으로부터의 피드백 신호를 사용하여 검색 모델을 정제합니다. 예를 들어, AAR은 사전 훈련된 검색기에 대한 감독 신호를 도입하여 인코더-디코더 구조를 사용합니다. 이는 FiD 교차 주의 점수를 통해 LM이 선호하는 문서를 식별함으로써 달성됩니다. 그 후, 검색기는 하드 네거티브 샘플링과 표준 교차 엔트로피 손실을 사용하여 미세조정됩니다. REPLUG는 검색된 문서의 확률 분포를 계산하고 KL 발산을 계산하여 감독 훈련을 수행합니다. UPRISE는 프롬프트 검색기를 미세조정하기 위해 동결된 LLM을 사용합니다.
-> 제일 이상적인거 같다. 파인튜닝 후 RAG 도입 사소한 임베딩 단위까지 모델이 파인튜닝을 해놓는다면 리트리버 할때도 할루시네이션이 적지 않을까 생각을 했다. 나도 벤치마킹해서 회사에 방법론으로 소개를 했다.
Adapters
FIne-Tunning 모델은 API를 통한 기능 통합이나 제한된 로컬 컴퓨팅 자원으로 인한 제약과 같은 도전을 제시할 수 있습니다. 이에 따라, 일부 접근 방식은 외부 어댑터를 통합하여 조정을 돕습니다. PRCA는 컨텍스트 추출 단계와 보상 기반 단계를 통해 어댑터를 훈련시킵니다. RECOMP는 요약 생성을 위한 추출 및 생성 압축기를 도입합니다. PKG는 지시적 미세조정을 통해 지식을 화이트박스 모델에 통합하는 혁신적인 방법을 도입합니다.
-> PRCA, RECAMP, PKG 는 논문을 읽어봐야할 듯 하다.
5. Generation
RAG 시스템에서 중요한 구성 요소 중 하나는 검색된 정보를 일관되고 유창한 텍스트로 변환하는 역할을 하는 generator 입니다. 전통적인 언어 모델과 달리, RAG generator는 검색된 데이터의 통합을 통해 정확도와 관련성을 향상시키는 데에 중점을 둡니다. RAG generator 에서 입력은 일반적인 문맥 정보뿐만 아니라 검색기를 통해 얻은 관련 텍스트 세그먼트도 포함합니다. 이러한 포괄적인 입력은 생성기가 질문의 맥락을 깊이 이해하는 데 도움을 주어, 보다 정보적이고 맥락적으로 관련된 응답을 생성할 수 있게 합니다. 또한, 생성된 내용과 얻어진 정보 간의 일관성을 보장하기 위해 생성기는 검색된 텍스트에 의해 안내됩니다. 다양한 입력 데이터는 생성 단계 동안의 목표 지향적인 노력을 이끌어냈으며, 이는 쿼리와 문서에서 파생된 입력 데이터에 대한 대규모 모델의 적응을 개선하는 것을 목표로 합니다.
5.1 Post-retrieval with Frozen LLM
수정할 수 없는 대규모 언어 모델(LLMs)을 사용하여 다양한 문서에서 검색된 정보를 체계적으로 종합하는 연구에 초점을 맞춥니다. 여기에는 GPT-4와 같은 잘 확립된 모델들이 포함됩니다. 그러나 이러한 대형 모델은 문맥 길이의 제한과 중복 정보에 대한 취약성과 같은 도전과제를 안고 있습니다. 이러한 문제를 해결하기 위해, 특정 연구 노력은 검색 후 처리에 집중하고 있습니다.
Information Compression
Retrieval은 방대한 지식 베이스로부터 관련 정보를 검색하는 데 뛰어나지만, 검색 문서 내의 대량의 정보를 관리하는 것은 도전입니다. 현재 대형 모델은 여전히 문맥 길이의 제한에 어려움을 겪고 있기 때문에 정보를 압축하는 것이 필요합니다. PRCA는 정보 추출기를 훈련시켜 이 문제를 해결했으며, RECOMP는 대조 학습을 사용하여 정보 압축기를 훈련시켰습니다. 또한, "Filter-Reranker" 패러다임은 LLM과 소형 언어 모델(SLM)의 강점을 결합하여 문서 수를 줄이고 모델의 답변 정확도를 높이는 방법을 제안합니다.
Reranking
Reranking 모델은 검색기로부터 검색된 문서 세트를 최적화하는 데 중요한 역할을 합니다. 추가 문맥이 도입될 때 언어 모델이 성능 저하를 겪을 수 있으며, 재순위 매기기는 이 문제를 효과적으로 해결합니다. 기본 개념은 문서 레코드를 재배열하여 가장 관련성 높은 항목을 상단에 배치함으로써 전체 문서 수를 제한하는 것입니다. 이는 검색 중 컨텍스트 창 확장의 도전을 해결할 뿐만 아니라 검색 효율성과 반응성을 향상시킵니다.
5.1 Fine-tuning LLM for RAG
Generator의 역할은 검색된 정보를 받아 사용자의 쿼리 요구사항에 더 잘 부합하는 자연스러우면서도 효과적인 텍스트를 생산하는 것입니다. RAG는 쿼리뿐만 아니라 Generator 에 의해 검색된 다양한 문서(구조화된/비구조화된)를 입력으로 통합함으로써 표준 LLM 생성 작업과 차별화됩니다.
General Optimization Process
일반적으로 훈련 데이터는 입력-출력 쌍으로 구성되며, 모델이 주어진 입력 x에 대한 출력 y를 생성하도록 훈련시키는 것을 목표로 합니다. 이러한 과정에서, Joint-Encoder와 Dual-Encoder와 같은 두 가지 일반적인 파인튜닝 패러다임이 사용됩니다. Joint-Encoder 패러다임에서는 표준 인코더-디코더 모델이 사용되며, Dual-Encoder 패러다임에서는 두 개의 독립적인 인코더가 쿼리(문맥)와 문서를 각각 인코딩하고, 디코더가 양방향 교차 주의를 통해 결과를 처리합니다.
Utilizing Contrastive Learning
언어 모델을 위한 훈련 데이터 준비 단계에서는 일반적으로 입력과 출력의 상호 작용 쌍이 생성됩니다. 이러한 전통적인 방법은 모델이 올바른 출력 예제에만 훈련되어 다양한 가능한 출력에 노출되지 않는 "노출 편향"을 초래할 수 있습니다. 이는 모델이 훈련 데이터 내의 특정 예제에 과적합되어 다양한 문맥에 대한 일반화 능력이 감소하는 문제를 야기할 수 있습니다.
이러한 노출 편향을 완화하기 위해, SURGE는 그래프-텍스트 대조 학습을 제안합니다. 이 방법은 모델이 훈련 데이터에서 경험한 사례를 넘어 타당하고 일관된 반응을 생성하도록 유도하는 대조 학습 목표를 포함합니다. 구조화된 데이터와 관련된 검색 작업의 경우, SANTA 프레임워크는 구조적 및 의미적 뉘앙스를 모두 포착하기 위해 삼중 훈련 체제를 구현합니다.
6. Augmentation in RAG
증강 단계, 증강 데이터 소스, 증강 프로세스라는 세 가지 주요 측면을 중심으로 구성되어 있습니다. 이러한 측면은 RAG 개발에 중추적인 역할을 하는 핵심 기술을 설명합니다
6.1 RAG in Augmentation Stages
Pre-training Stage
사전 훈련 단계에서 연구자들은 개방형 질의응답(QA)을 위해 사전 훈련 모델(PTM)을 강화하는 방법을 탐구합니다. REALM 모델은 지식 임베딩을 위한 구조화된, 해석 가능한 방법을 채택하고, RETRO는 대규모 사전 훈련을 위해 검색 증강을 활용합니다. Atlas는 T5 아키텍처에 검색 메커니즘을 통합하고, COG는 텍스트 조각을 기존 컬렉션에서 복사하는 방식을 모방하는 새로운 텍스트 생성 방법론을 도입합니다.
Fine-tuning Stage
RAG와 파인튜닝은 LLM을 향상시키는 강력한 도구로, 특정 시나리오의 요구사항을 충족시킬 수 있습니다. 파인튜닝은 문서의 독특한 스타일을 검색하고, 쿼리와 문서 간의 차이를 조율하는 데 도움이 됩니다. 또한, Retrieval와 Generator를 조율하여 모델의 시너지를 개선하는 데에도 사용될 수 있습니다. 예를 들어, RETRO++, RA-DIT 등이 이러한 트렌드를 보여줍니다.
Inference Stage
RAG 모델의 추론 단계는 LLM과의 광범위한 통합을 포함하며 중요합니다. Naive RAG는 전통적인 접근 방식으로, 검색 내용을 생성 과정에 통합합니다. DSP 프레임워크는 언어 모델과 검색 모델 간의 정교한 텍스트 교환을 활용하고, PKG는 지식 가이드 모듈을 통해 관련 정보를 검색합니다. CREAICL과 RECITE는 추론 단계에서 RAG 프로세스를 더욱 정교하게 다룹니다. 이러한 추론 단계의 개선은 사전 훈련된 모델의 능력을 활용하면서 추가 훈련이 필요하지 않은 경량, 비용 효율적인 대안을 제공합니다. 주요 장점은 정적 LLM 매개변수를 유지하면서 특정 작업 요구에 맞는 문맥적으로 관련된 정보를 제공하는 것입니다. 그러나 이 접근법은 세심한 데이터 처리 및 최적화가 필요하며, 기본 모델의 본질적인 능력에 의해 제한될 수 있습니다. 다양한 작업 요구를 효과적으로 충족시키기 위해, 이 방법은 종종 절차적 최적화 기법과 함께 사용됩니다.
6.2 Augmentation Source
RAG 모델의 효과성이 증강을 위한 데이터 소스 선택에 크게 의존한다는 것을 강조합니다. 다양한 지식 및 차원은 각기 다른 처리 기법을 필요로 합니다. 이러한 데이터 소스는 비구조화된 데이터, 구조화된 데이터, 그리고 LLM에 의해 생성된 콘텐츠로 분류됩니다. RAG 연구의 대표적인 기술 트리는 이러한 다양한 증강 측면을 나타내며, 비구조화된 데이터, 구조화된 데이터, LLM에 의해 생성된 콘텐츠를 사용하는 증강을 각각 다른 색으로 표현합니다.
Augmented with Unstructured Data
비구조화된 텍스트는 크로스 링구얼 데이터, 프롬프트 데이터와 같은 코퍼스에서 수집됩니다. Retrieval 유닛은 토큰(kNN-LM), 구문(NPM, COG), 문서 단락에 이르기까지 다양하며, 더 세밀한 단위는 검색의 복잡성을 증가시키는 대신 정밀도를 제공합니다. FLARE는 LM이 낮은 확률의 단어를 생성할 때 활성화되는 능동적인 검색 방식을 도입합니다. RETRO는 이전 청크를 사용하여 청크 수준에서 가장 가까운 이웃을 검색하고, 이를 통해 다음 청크의 생성을 안내합니다.
Augmented with Structured Data
구조화된 데이터인 지식그래프는 고품질의 맥락을 제공하고 모델의 환각을 완화합니다. RET-LLMs는 이전 대화에서 지식 그래프 메모리를 구축하고, SUGRE는 관련 KG 서브그래프를 인코딩하기 위해 GNN을 사용합니다. KnowledGPT는 KB 검색 쿼리를 생성하고 지식을 개인화된 베이스에 저장하여 RAG 모델의 지식 풍부함과 문맥성을 향상시킵니다.
LLMs-Generated Content in RAG
RAG에서 외부 보조 정보의 한계를 해결하기 위해, 일부 연구는 LLM의 내부 지식을 활용하는 데 초점을 맞춥니다. SKR은 질문을 알려진 것과 알려지지 않은 것으로 분류하고, GenRead는 검색기를 LLM generator로 대체합니다. Selfmem은 반복적으로 제한 없는 메모리 풀을 생성하는 검색 강화 generator를 사용합니다.
6.3 Augmentation Process
Iterative Retrieval
반복 검색은 모델이 초기 쿼리와 지금까지 생성된 텍스트를 바탕으로 여러 번 문서를 수집하는 과정입니다. 이 방법은 얻은 정보의 깊이와 관련성을 향상시킵니다. 그러나 의미상의 불연속성과 관련 없는 정보의 축적 문제가 발생할 수 있습니다. 특정 데이터 시나리오에 대응하기 위해 순환 검색과 다단계 검색 기법이 사용됩니다
Recursive Retrieval
순환 검색은 한 검색 작업의 결과를 다음 검색 작업의 입력으로 사용하는 과정입니다. 이 방법은 복잡하거나 다단계 쿼리를 다룰 때 관련 정보를 더 깊이 파고들 수 있게 해줍니다. 순환 검색은 점진적으로 최종 답변에 도달해야 하는 시나리오에서 자주 사용됩니다.
Adaptive Retrieval
적응형 검색은 검색 과정을 다양한 작업과 문맥의 특정 요구에 맞춰 동적으로 조정하는 메커니즘을 제공합니다. 예를 들어, Flare와 Self-RAG는 검색의 최적 시점과 내용을 결정하는 데 LLM을 활발히 활용합니다.
6.4 RAG vs Fine-Tunning
RAG (Retrieval-Augmented Generation): RAG는 모델에게 특정 쿼리에 대한 맞춤형 정보 검색을 위한 "교과서"를 제공하는 것과 같습니다. RAG는 특정한 질문에 대해 외부 데이터 소스로부터 관련 정보를 검색하여 모델의 생성 과정에 통합합니다. 이는 새로운 지식을 통합하거나 새로운 사용 사례를 빠르게 반복하는 데 적합합니다.
Fine-Tuning (FT): 반면에 FT는 시간이 지남에 따라 학생이 지식을 내면화하는 것과 같습니다. FT는 모델의 기본 지식을 강화하고, 출력을 조정하며, 복잡한 지시사항을 가르침으로써 모델의 성능과 효율성을 개선할 수 있습니다. 이는 특정 구조, 스타일 또는 형식을 복제하는 데 더 유리합니다. 그러나 새로운 지식을 통합하거나 새로운 사용 사례를 빠르게 반복하는 데는 RAG만큼 효과적이지 않을 수 있습니다.
RAG와 FT는 상호 배타적인 방법이 아니며, 서로 보완적으로 모델의 능력을 다양한 수준에서 증강시킬 수 있습니다.
-> 페르소나라던지 모델이 인식하지 못하는 패턴에서는 FT가 좋다고 생각한다.
RAG와 FT는 상호 배타적인 방법이 아니며, 서로 보완적으로 모델의 능력을 다양한 수준에서 증강시킬 수 있습니다. 때로는 이 두 방법을 결합하여 사용하는 것이 최적의 성능을 달성할 수 있습니다. RAG와 FT를 포함하는 최적화 과정은 만족스러운 결과를 얻기 위해 여러 번의 반복이 필요할 수 있습니다.
7. RAG Evaluation
RAG 모델 평가는 특정 Down Stream 작업에서의 수행력에 중점을 두었습니다. 이러한 평가는 해당 작업에 적합한 기존 메트릭을 사용합니다. 예를 들어, 질의응답 평가는 EM과 F1 점수에 의존할 수 있으며, 사실 확인 작업은 정확도를 주요 메트릭으로 사용합니다. 그러나 RAG 모델의 고유한 특성을 평가하는 데 전념하는 연구는 매우 제한적입니다.
7.1 Evaluation Targets
RAG 모델의 평가는 주로 검색 및 생성 모듈의 두 가지 주요 구성 요소를 중심으로 이루어집니다. 검색 품질 평가는 검색기가 제공하는 컨텍스트의 효과성을 결정하는 데 중요합니다. 표준 검색 엔진, 추천 시스템 및 정보 검색 시스템의 도메인에서 일반적으로 사용되는 메트릭이 적용됩니다. 생성 품질 평가는 생성기가 검색된 컨텍스트에서 일관되고 관련성 있는 답변을 합성하는 능력에 중점을 둡니다. 이 평가는 라벨이 없는 컨텐츠와 라벨이 있는 컨텐츠에 따라 분류될 수 있습니다.
RAG와 Fine-Tuning 방법은 상호 배타적이지 않으며, 모델의 능력을 다양한 수준에서 보완할 수 있습니다. 때때로 이 두 방법의 결합이 최적의 성능을 제공할 수 있습니다. RAG와 FT를 포함하는 최적화 과정은 만족스러운 결과를 얻기 위해 여러 번의 반복이 필요할 수 있습니다. RAG는 특정 쿼리에 대한 맞춤형 정보 검색에 적합하고, FT는 특정 구조, 스타일 또는 형식을 복제하는 데 더 유리할 수 있습니다.
7.2 Evaluation Aspects
Quality Score
- 컨텍스트 관련성 (Context Relevance): 검색된 컨텍스트의 정확성과 특정성을 평가하여 관련성을 보장하고, 관련 없는 내용에 따른 처리 비용을 최소화합니다.
- 답변 신뢰성 (Answer Faithfulness): 생성된 답변이 검색된 컨텍스트에 충실하게 유지되어 일관성을 유지하고 모순을 피하는 것을 보장합니다.
- 답변 관련성 (Answer Relevance): 생성된 답변이 제시된 질문과 직접적으로 관련되어 있으며, 핵심 질의에 효과적으로 대응하는지를 평가합니다.
Required Abilities
- 노이즈 강인성 (Noise Robustness): 질문과 관련은 있으나 실질적인 정보가 부족한 문서를 관리하는 모델의 능력을 평가합니다.
- 부정 거부 (Negative Rejection): 검색된 문서가 질문에 답변할 필요한 지식을 포함하지 않을 때 응답을 삼가는 모델의 분별력을 평가합니다.
- 정보 통합 (Information Integration): 다수의 문서에서 정보를 종합하여 복잡한 질문에 대응하는 모델의 능력을 평가합니다.
- 역설적 강인성 (Counterfactual Robustness): 잠재적인 오정보에 대해 지시받았을 때도 문서 내의 알려진 부정확성을 인식하고 무시하는 모델의 능력을 테스트합니다.
7.3 Evaluation Benchmarks and Tools
RAG 모델의 평가 프레임워크를 설명합니다. 이 프레임워크는 벤치마크 테스트와 자동화된 평가 도구를 포함하며, RAG 모델 성능을 측정하고 다양한 평가 측면에서 모델의 능력을 이해하는 데 도움을 줍니다.
주요 벤치마크:
- RGB와 RECALL: RAG 모델의 필수 능력을 평가하는 데 중점을 둡니다. 이들은 모델의 검색 및 생성 품질, 노이즈 강인성, 부정 거부, 정보 통합, 역설적 강인성 등을 평가합니다.
자동화된 도구:
- RAGAS, ARES, 그리고 TruLens: 이들 도구는 LLM을 활용하여 RAG 모델의 품질 점수를 판정합니다. 이 도구들은 컨텍스트 관련성, 답변 신뢰성, 답변 관련성 등을 평가하는 데 사용됩니다.
이러한 도구와 벤치마크는 RAG 모델을 체계적으로 평가하기 위한 견고한 프레임워크를 구성합니다. 아래 표 3은 이러한 평가 프레임워크를 요약합니다.
평가 프레임워크 요약(표):
- RGB†: 검색 품질, 생성 품질, 노이즈 강인성, 부정 거부, 정보 통합, 역설적 강인성 평가. 사용하는 양적 메트릭에는 정확도, EM, 정확도 등이 포함됩니다.
- RECALL†: 생성 품질, 역설적 강인성 평가. 사용하는 메트릭은 R-Rate(재현율)입니다.
- RAGAS‡: 검색 품질, 생성 품질 평가. 컨텍스트 관련성, 신뢰성, 답변 관련성에 대한 메트릭으로 코사인 유사도가 사용됩니다.
- ARES‡: 검색 품질, 생성 품질 평가. 정확도가 주요 메트릭으로 사용됩니다.
- TruLens‡: 검색 품질, 생성 품질 평가. 특정 양적 메트릭은 명시되지 않았습니다.
8. Future Prospects
8.1 Future Challenges of RAG
- 컨텍스트 길이: LLM의 컨텍스트 창 크기에 의해 제한되는 RAG의 효율성은, 너무 짧으면 정보가 부족하고, 너무 길면 정보가 희석될 위험이 있는 중요한 문제입니다.
- 강인성: 검색 중 노이즈나 모순된 정보의 존재는 RAG의 출력 품질에 악영향을 미칠 수 있습니다.
- 하이브리드 접근법 (RAG+FT): RAG와 미세 조정을 결합하는 것은 주요 전략으로 부상하고 있습니다.
- LLM 역할 확장: 최종 답변 생성을 넘어, LLM을 검색과 평가에 활용하는 것은 RAG 시스템에서 LLM의 잠재력을 더욱 발휘하는 데 도움이 됩니다.
- 스케일링 법칙: LLM에 대한 스케일링 법칙의 적용 가능성은 RAG에 대해서는 아직 불확실합니다.
- 생산 준비된 RAG: RAG의 실용성과 공학 요구사항과의 일치는 그 채택을 촉진했습니다.
Modality Extension of RAG
- image: RA-CM3, BLIP-2 등은 이미지 검색 및 생성을 위한 다기능 모델입니다.
- Audio & Video: GSS 방법은 오디오 클립을 검색하여 이를 음성으로 변환하고, UEOP는 음성 인식을 위한 전략을 통합합니다.
- Code: RBPS는 개발자의 목표와 일치하는 코드 예제를 검색하여 학습 과제에서 효율성을 입증했습니다.
8.1 EcoSystem of RAG
Downstream Tasks and Evaluation
RAG는 개방형 질의응답과 사실 확인과 같은 다양한 하위 작업에서 뛰어난 성능을 보입니다. RAG 평가 프레임워크를 개선하는 것은 다양한 작업에 걸쳐 그 효과성과 유용성을 극대화하는 데 필수적입니다. 이를 위해서는 맥락적 관련성, 콘텐츠의 창의성, 비해악성 등과 같은 측면을 측정할 수 있는 미묘한 메트릭과 평가 도구의 개발이 필요합니다.
Technical Stack
RAG 생태계의 발전은 그 기술 스택의 진화에 크게 영향을 받습니다. LangChain과 LLamaIndex와 같은 주요 도구들은 ChatGPT의 등장과 함께 빠르게 인기를 얻었으며, RAG 관련 API를 제공하며 LLM 영역에서 필수적인 역할을 하고 있습니다. Flowise AI와 같은 새로운 기술 스택은 전문화된 서비스로 자리매김하고 있습니다. 또한 전통적인 소프트웨어 및 클라우드 서비스 제공업체들은 RAG 중심 서비스를 포함하여 제품군을 확장하고 있습니다.
Flowise AI
LLM application 을 만들때 가볍게 짜볼 수 있는 빌더
RAG 모델과 기술 스택의 상호 성장은 명확하며, 기술 발전은 지속적으로 기존 인프라에 대한 새로운 기준을 설정합니다. 기술 스택의 향상은 RAG 기능의 발전을 촉진하며, RAG 툴킷은 고급 기업 애플리케이션을 위한 기초적인 기술 스택으로 수렴하고 있습니다.
9 Conclusion
기술 통합 및 새로운 방향성:
- RAG의 기술적 통합은 Fine-Tunning, 강화 학습과 같은 다른 AI 방법론과 결합함으로써 그 기능을 확장했습니다.
- 내용 검색에서는 구조화된 데이터와 비구조화된 데이터 소스를 모두 활용하는 하이브리드 방법론이 추세로 떠오르고 있습니다.
- RAG 프레임워크 내에서의 최첨단 연구는 LLM에서 자체 검색 및 정보 검색의 동적 타이밍과 같은 새로운 개념을 탐색하고 있습니다.
도전과 기회:
- RAG 기술은 중요한 발전을 이루었지만, 강인성을 향상시키고 확장된 컨텍스트를 관리하는 데 더 많은 연구 기회가 남아 있습니다.
- RAG의 응용 범위는 이미지, 비디오, 코드 등 다양한 데이터 형식을 해석하고 처리하는 멀티모달 영역으로 확장되고 있습니다.
-> 이미지 리트리버 시대는 온다..
생태계 및 평가 방법론:
- RAG 중심의 AI 애플리케이션 증가와 지원 도구의 지속적인 개발로 RAG의 생태계가 성장하고 있습니다.
- RAG의 응용 분야가 확장됨에 따라, 그 진화에 발맞추어 평가 방법론을 정제할 필요성이 있습니다. 성능 평가가 정확하고 대표적인 것을 보장하는 것은 AI 연구 및 개발 커뮤니티에 대한 RAG의 기여를 완전히 파악하는 데 중요합니다.
위 논문을 읽으면서 느낀게 현재 챗봇을 제작하는 방향이나, 조금 일찍 읽었더라면 어땠을까 하는 아쉬움이 있습니다. FT 와 RAG 를 같이 썼을떄의 퍼포먼스라던지 메타데이터 와 같은 태깅 방법등을 더 일찍 생각할 수 있었고, 랭체인에 목메서 그냥 데이터만 전처리하는게 아니었을텐데 조금 테크닉적으로 아쉬웠구나 생각이 들었습니다. 결국 더 나아가서 RAG 의 영역은 이미 고유한 영역에 온 것 같고, 이미지 리트리버 를 통해서 더 한번 큰 바람이 불지 않을까 조심스럽게 생각합니다. 감사합니다 긴 글 읽어주셔서