LLM 발전: 네이티브, 고급 및 모듈형 RAG 접근법 탐구
오늘날의 시급한 질문에 답하기 위해 수년 전에 쓰인 교과서에 의존한다고 상상해 보세요. 확립된 개념이나 역사적 사건은 설명할 수 있을지 몰라도, 최근의 발전에 대한 정확한 정보를 제공하는 데는 어려움을 겪을 것입니다. 이러한 과제는 빠르게 구식이 되는 정적 학습 데이터에 의존하는 대규모 언어 모델(LLMs)의 한계와 유사합니다. 논문 Retrieval-Augmented Generation for Large Language Models: A Survey에서 탐구된 검색 증강 생성(Retrieval-Augmented Generation, RAG)은 외부 지식 소스를 생성 과정에 통합함으로써 이러한 한계를 해결합니다.
신경망 매개변수에 인코딩된 지식에만 전적으로 의존하는 기존 LLM과 달리, RAG 시스템은 응답을 향상하기 위해 관련 정보를 동적으로 검색합니다. 이러한 기능 덕분에 RAG는 법률 연구, 의료 진단, 실시간 기술 지원과 같은 지식 집약적 작업에 유용합니다.
이 글에서는 RAG의 핵심 구성 요소, 발전 과정, 기술적 구현, 벡터 데이터베이스와의 통합, 평가 방법, 그리고 실제 애플리케이션에서의 잠재력을 살펴보겠습니다.
RAG의 아키텍처와 프로세스
RAG, 즉 검색 증강 생성은 응답 생성 중 외부 지식을 검색하고 통합함으로써 LLM의 기능을 향상하는 프로세스를 도입합니다. 이 프로세스는 아래 이미지에 표시된 것처럼 인덱싱, 검색, 생성이라는 세 가지 주요 단계로 나눌 수 있습니다:
그림: 질의응답에 적용된 RAG 프로세스의 대표 사례
그림: 질의응답에 적용된 RAG 프로세스의 대표 사례.
RAG의 각 핵심 단계에서 어떤 일이 일어나는지 살펴보겠습니다.
RAG의 핵심 단계
인덱싱 단계: 문서는 관리하기 쉬운 청크로 분할된 다음, 의미적 의미를 포착하는 수치 벡터로 인코딩됩니다. 이러한 벡터는 효율적인 유사도 검색에 최적화된 Milvus와 같은 벡터 데이터베이스에 저장됩니다.
검색 단계: 시스템은 사용자의 쿼리를 벡터, 즉 데이터의 수치 표현으로 변환하고 벡터 데이터베이스에서 의미적으로 유사한 청크를 검색하여 처리합니다. 이를 통해 정확한 단어가 다르더라도 가장 관련성 높은 정보가 검색되도록 보장합니다.
생성 단계: 검색된 정보는 쿼리와 결합되어 컨텍스트가 포함된 개선된 쿼리를 형성하고, 그런 다음 LLM이 일관되고 맥락적으로 정확한 응답을 생성합니다. 이러한 통합은 오류를 줄이고 출력의 사실적 신뢰성을 향상하는 데 도움이 됩니다.
이러한 단계를 통합함으로써 RAG 시스템은 기존 모델이 어려움을 겪는 복잡하고 지식 집약적인 작업, 예를 들어 최근 사건이나 전문 분야에 대한 질문에 답하는 작업을 LLM이 처리할 수 있게 합니다. 이러한 단계를 이해하면 RAG 시스템이 다양한 패러다임을 통해 어떻게 발전해 왔는지 탐구하기 위한 기반을 마련할 수 있습니다.
세 가지 패러다임을 통한 RAG의 발전
RAG의 개발은 세 가지 패러다임을 통해 진전되어 왔으며, 각 패러다임은 이전의 발전을 기반으로 특정 과제를 해결합니다: 아래 이미지에 표시된 것처럼 Naive RAG, Advanced RAG, Modular RAG입니다.
그림: Naive RAG vs Advanced RAG vs Modular RAG
그림: Naive RAG vs Advanced RAG vs Modular RAG
Naive RAG: 기초적 시작
Naive RAG는 문서 검색과 언어 모델 생성을 결합하여 검색 증강 시스템의 토대를 마련했습니다. 이 패러다임은 간단한 파이프라인을 따릅니다. 문서가 인덱싱되고 청크로 분할되며, 벡터 데이터베이스 내 유사도 점수를 기반으로 관련 청크가 검색되고, 검색된 정보가 사용자 쿼리와 종합되어 LLM이 답변을 생성합니다. 이 접근 방식은 기초적인 Retrieve-Read 프레임워크를 도입했으며, 당시에는 획기적이었지만 몇 가지 한계를 드러냈습니다.
Naive RAG의 핵심 과제는 검색의 정확성에 있습니다. 시스템은 종종 관련 없는 청크를 검색하거나 중요한 맥락을 포착하지 못해 불완전하거나 노이즈가 섞인 출력을 초래합니다. 또한 생성 단계에서는 모델이 검색된 콘텐츠로 뒷받침되지 않는 정보를 지어내는 환각이 발생할 수 있습니다. 더 나아가, 검색된 문서의 중복성은 응답의 관련성을 희석시킬 수 있습니다. 이러한 문제에도 불구하고, Naive RAG는 검색과 생성을 결합하는 이점을 보여줌으로써 더 발전된 패러다임의 기반을 마련했습니다.
Advanced RAG: 격차 해소
Advanced RAG는 검색 전 및 검색 후 단계 모두에 최적화를 도입함으로써 Naive RAG의 여러 한계를 해결합니다. 검색 전 단계에서는 검색 정확도를 향상시키기 위해 쿼리 확장 및 재작성과 같은 쿼리 최적화 기법이 사용됩니다. 예를 들어, “양자 컴퓨팅의 최신 발전은 무엇인가요?”와 같은 사용자 쿼리는 관련 기술 용어와 동의어를 포함하도록 확장될 수 있어, 검색이 더 넓은 범위의 관련 문서를 포착하도록 보장합니다.
검색 후 단계에서 Advanced RAG는 검색된 문서 집합을 정제하기 위해 재순위화 알고리즘을 통합합니다. 이러한 알고리즘은 각 청크의 의미적 유사성, 문서 권위성 및 관련성을 평가하여 가장 유용한 정보를 우선시합니다. 예를 들어, 의료 관련 쿼리에 답변할 때 시스템은 오래되었거나 권위가 낮은 출처보다 최근의 동료 심사 연구를 더 높은 순위에 둘 수 있습니다. 이러한 정제 과정은 검색된 맥락의 품질을 크게 향상시켜 생성 단계가 더 정확하고 일관된 응답을 생성할 수 있게 합니다.
Advanced RAG는 또한 검색된 콘텐츠의 더 정교한 통합을 통해 이점을 얻습니다. 검색과 생성 간의 관계를 전략적으로 관리함으로써 환각의 가능성을 줄이고, 생성된 답변이 검색된 증거에 확고히 기반하도록 보장합니다.
Modular RAG: 유연하고 적응적인 프레임워크
가장 최근의 발전인 Modular RAG는 광범위한 작업과 맥락을 처리하도록 설계된 유연한 프레임워크를 도입합니다. 이전 방식의 고정된 파이프라인 접근법과 달리, Modular RAG는 쿼리의 요구 사항에 따라 동적으로 재구성될 수 있는 특화된 모듈을 사용합니다. 이러한 모듈에는 다음이 포함됩니다.
Search Module: 지식 그래프, 구조화된 데이터베이스, 전통적인 검색 엔진과 같은 다양한 데이터 소스로 검색 기능을 확장합니다. 예를 들어, 기업 재무 정보를 질의할 때 시스템은 재무제표, 규제 기관 제출 문서, 뉴스 기사에서 데이터를 검색할 수 있습니다.
Memory Module: 다중 턴 상호작용 전반에 걸쳐 증가하는 맥락 지식 풀을 유지하고 관리합니다. 이 모듈은 시스템이 이전 쿼리를 기반으로 발전하고 상호작용 전반에서 일관된 맥락을 유지하도록 보장합니다.
Routing Module: 의사 결정 계층으로 작동하여, 쿼리에 검색, 요약 또는 접근 방식의 조합이 필요한지 동적으로 판단합니다.
Fusion 모듈: Fusion 모듈은 다중 쿼리 기법을 사용하여 기존 검색 전략의 한계를 해결합니다. 사용자 쿼리를 다양한 관점으로 확장하고, 병렬 벡터 검색과 지능형 재순위를 사용하여 더 넓은 범위의 지식을 찾아냅니다. 예를 들어, 기후 변화에 대한 쿼리는 과학 연구, 정책 논의, 실제 영향을 다루는 문서를 검색하고 이를 통합된 응답으로 종합할 수 있습니다.
Predict 모듈: 검색된 결과의 중복성과 노이즈를 줄이도록 설계된 Predict 모듈은 LLM을 사용하여 컨텍스트를 직접 생성합니다. 이를 통해 관련 정보만 응답에 포함되도록 하여 검색 프로세스를 간소화하고 생성된 답변의 전반적인 품질을 향상시킵니다.
Demonstrate 모듈: Demonstrate 모듈은 예시나 단계별 설명을 통합하여 응답을 개선하는 데 중요한 역할을 합니다. 이는 사용자가 프로세스나 개념에 대한 자세한 시연을 통해 이점을 얻는 교육 또는 기술 지원 맥락에서 특히 유용합니다.
Modular RAG의 핵심 혁신 중 하나는 고급 검색 증강 기법을 지원한다는 점입니다. 여기에는 반복적, 재귀적, 적응형 검색이 포함됩니다.
그림: 고급 검색 증강 프로세스의 유형: 반복적, 재귀적, 적응형 검색
그림: 고급 검색 증강 프로세스의 유형: 반복적, 재귀적, 적응형 검색.
Iterative Retrieval: 여러 차례의 검색과 생성을 가능하게 하여 각 반복마다 컨텍스트를 개선합니다. 예를 들어, 기후 변화 영향에 대한 복잡한 쿼리는 일반적인 개요로 시작한 뒤 특정 지역이나 완화 전략을 다루는 더 표적화된 검색으로 이어질 수 있습니다.
Recursive Retrieval: 이는 다면적인 쿼리를 더 작고 관리 가능한 구성 요소로 분해합니다. 역사적 사건의 경제적 영향에 대한 질문에 답할 때, 시스템은 먼저 사건 자체에 대한 정보를 검색한 다음 경제적 결과에 초점을 맞춘 검색을 수행할 수 있습니다.
Adaptive Retrieval: 검색 프로세스에 대한 동적 제어를 도입합니다. 시스템은 쿼리의 복잡성과 요구 사항을 평가하여 추가 정보를 언제 어떻게 검색할지 결정합니다. 이러한 유연성은 응답 품질을 유지하면서 컴퓨팅 리소스를 효율적으로 사용하도록 보장합니다.
이 패러다임의 모듈식 설계는 동일한 쿼리 내에서 검색과 요약을 결합하거나, 작업 요구 사항에 따라 활성화할 구성 요소를 선택적으로 고르는 것과 같은 하이브리드 접근 방식도 지원합니다. 이러한 적응성 덕분에 Modular RAG는 복잡하고 지식 집약적인 애플리케이션에 특히 적합합니다.
구현 및 기술 프레임워크
RAG의 구현에는 실제 시나리오에서 효과성과 확장성을 보장하는 일련의 기술 구성 요소가 포함됩니다.
문서 처리 및 임베딩
RAG의 첫 단계는 문서를 벡터 표현으로 처리하고 인코딩하는 것입니다. 이러한 벡터는 텍스트의 의미론적 의미를 포착하고 효율적인 검색을 위해 데이터베이스에 저장됩니다. 최신 시스템은 의미론적 관계를 포착하기 위한 Dense Embeddings와 어휘적 정밀도를 위한 Sparse Embeddings를 결합한 하이브리드 접근 방식을 자주 사용합니다.
다음은 문서 처리 파이프라인의 예입니다:
```
class DocumentProcessor:
def __init__(self):
self.chunker = SemanticChunker(
chunk_size=512,
overlap=50,
respect_boundaries=True
)
self.embedder = DualEmbedder(
dense_model='sentence-transformers/all-mpnet-base-v2',
sparse_model='bm25'
)
def process_document(self, document):
chunks = self.chunker.split_document(document)
embeddings = self.embedder.encode_chunks(chunks)
return chunks, embeddings
```
이 프로세스는 각 문서가 효율적인 검색을 위해 벡터 데이터베이스에 저장될 수 있는 벡터 형식으로 인코딩되도록 보장합니다. 의미론적 특징과 어휘적 특징의 결합은 시스템이 문맥적으로 관련 있는 정보를 이해하고 검색하는 능력을 향상시킵니다.
검색 및 생성
검색 단계에서는 관련 청크를 효율적으로 식별하기 위해 근사 최근접 이웃(ANN) 검색 알고리즘을 사용합니다. 생성 단계에서는 언어 모델의 응답을 안내하기 위해 구조화된 프롬프트를 사용하여 검색된 콘텐츠와 쿼리를 결합합니다. 예를 들면 다음과 같습니다:
def create_generation_prompt(query, contexts):
prompt = f"""
Question: {query}
Retrieved Information:
{format_contexts(contexts)}
Answer:"""
return prompt
이 구조화된 입력은 언어 모델이 유익한 응답을 생성하는 데 필요한 모든 문맥을 갖추도록 보장합니다.
평가 프레임워크 및 품질 지표
RAG 시스템 평가에는 검색 구성 요소와 생성 구성 요소를 모두 고려하는 다차원적 접근 방식이 필요합니다. 포괄적인 평가 프레임워크는 이러한 시스템이 정확한 정보를 제공할 뿐만 아니라 이를 효율적이고 안정적으로 수행하도록 보장합니다. 아래는 RAG 시스템을 평가하는 데 사용되는 핵심 지표입니다:
문맥 관련성: 이 지표는 검색된 문서가 사용자 쿼리와 얼마나 잘 부합하는지를 측정합니다. 높은 관련성은 시스템이 질문이나 작업에 직접 적용 가능한 정보를 성공적으로 검색했음을 나타냅니다. 예를 들어, 사용자가 “재생 에너지의 최근 발전은 무엇인가요?”라고 질의할 때, 문맥 관련성은 관련 없는 환경 주제가 아니라 태양광, 풍력 또는 배터리 기술의 혁신을 구체적으로 다루는 문서가 검색되도록 보장합니다.
답변 충실성: 충실성은 생성된 응답이 검색된 콘텐츠를 정확하게 반영하는지 평가합니다. 시스템은 검색된 정보를 일관된 응답으로 종합하는 동안 부정확한 내용이나 근거 없는 주장을 도입하는 것을 피해야 합니다. 예를 들어, 검색된 문서에 태양광 패널 효율이 2024년에 20% 향상될 것이라고 명시되어 있다면, 생성된 답변은 이 향상을 모든 재생 에너지 기술로 일반화해서는 안 됩니다.
효율성 및 지연 시간: 이러한 지표는 계산 효율성을 유지하면서 응답을 빠르게 제공하는 시스템의 능력을 평가합니다. 낮은 지연 시간은 챗봇이나 고객 지원 시스템과 같은 사용자 대상 애플리케이션에 매우 중요합니다. 현대의 RAG 시스템은 빠른 검색 및 응답 시간을 달성하기 위해 최적화된 벡터 검색과 하드웨어 가속에 의존하는 경우가 많습니다.
확장성: 확장성은 대규모 데이터를 처리할 때 성능을 유지하는 시스템의 능력을 측정합니다. 여기에는 정확한 검색과 효율적인 쿼리 처리를 보장하면서 수십억 개의 문서 임베딩을 관리할 수 있는 용량이 포함됩니다.
이러한 지표 외에도, 다양한 차원에서 RAG 시스템을 평가하기 위한 구조화된 방법을 제공하는 전문 평가 프레임워크가 있습니다:
검색 생성 벤치마크(RGB):
검색 생성 벤치마크(Retrieval Generation Benchmark, RGB)는 RAG 시스템의 검색과 생성을 모두 평가합니다. 이는 노이즈 견고성을 강조하여, 검색된 데이터에 모호성이나 불일치가 포함되어 있더라도 시스템이 효과적으로 작동할 수 있도록 보장합니다. 또한 신뢰할 수 있는 정보를 사용할 수 없을 때 답변 생성을 피하는 시스템의 능력인 부정적 거부도 측정합니다. 다른 기준에는 반사실적 견고성과 검색된 정보를 일관된 응답으로 통합하는 능력이 포함됩니다. RGB는 코사인 유사도 및 정규화 할인 누적 이득(normalized discounted cumulative gain, NDCG)과 같은 벤치마크를 사용하여 검색 정확도와 출력 품질을 평가합니다.
RECALL (재출현률 평가):
RECALL은 생성된 응답에서 검색된 지식의 충실도에 초점을 맞춥니다. R-Rate 지표는 검색된 문서의 핵심 정보가 최종 출력에 얼마나 자주 정확하게 다시 나타나는지를 측정합니다. 이 프레임워크는 검색 단계가 생성 과정을 효과적으로 지원하는지 여부를 강조합니다. 예를 들어, 질의응답 작업에서 RECALL은 RAG 시스템이 검색된 문서의 모든 관련 요점을 생성된 답변에 정확하게 통합하도록 보장합니다.
CRUD (창의적 생성, 견고성, 이해, 도메인 특화 작업)
CRUD 프레임워크는 평가를 더 광범위한 역량으로 확장합니다. 이는 시스템이 검색된 정보로부터 새로운 통찰을 얼마나 효과적으로 종합하는지 평가하여 창의적 생성을 테스트합니다. 견고성은 노이즈가 있거나 불완전한 쿼리와 같은 까다로운 조건에서 시스템의 성능을 측정합니다. 이해는 복잡한 쿼리를 정확하게 해석하고 응답하는 시스템의 능력에 초점을 맞춥니다. 도메인 특화 작업은 법률 연구나 금융 분석과 같은 전문 분야에서 시스템의 효과성을 평가하여 다양한 산업 전반에서의 적용 가능성을 보장합니다.
이러한 지표를 체계적으로 평가함으로써 개선이 필요한 영역을 식별하고, 시스템 설계를 정교화하며, RAG 시스템이 실제 애플리케이션의 요구를 충족하도록 보장할 수 있습니다. 그러나 이러한 평가 지표의 효과성은 종종 기반 검색 인프라에 달려 있으며, 여기서 벡터 데이터베이스는 속도와 정확성을 보장하는 데 중요한 역할을 한다는 점을 명심해야 합니다.
RAG와 벡터 데이터베이스: 강력한 시너지
벡터 데이터베이스는 RAG 시스템의 운영에서 중요한 역할을 하며, LLM에 필요한 문맥 정보의 고차원 임베딩을 저장하고 검색하는 데 필요한 인프라를 제공합니다. 이러한 임베딩은 비정형 데이터의 의미론적 및 문맥적 의미를 포착하여, 검색 증강 생성의 효과성을 뒷받침하는 정밀한 유사도 검색을 가능하게 합니다.
Milvus는 오픈 소스 벡터 데이터베이스로, 초저지연으로 수십억 규모의 벡터 데이터를 처리할 수 있습니다. 그 기능은 RAG 시스템의 요구와 밀접하게 부합하여, RAG 시스템을 구축하는 개발자에게 이상적인 선택입니다.
확장성: Milvus는 수십억 개의 임베딩을 관리하도록 설계되어, 전자상거래 추천 시스템이나 글로벌 고객 지원 네트워크와 같은 엔터프라이즈 규모 애플리케이션에 적합합니다.
고급 인덱싱: Milvus는 IVF 및 HNSW를 포함한 10가지 이상의 인덱싱 기법을 지원하여, 개발자가 성능 및 지연 시간 요구 사항에 따라 가장 적합한 방법을 선택할 수 있도록 합니다.
하이브리드 검색: 밀집 임베딩과 희소 임베딩을 결합함으로써 Milvus는 검색된 결과가 의미론적으로도 어휘적으로도 정확하도록 보장하여, 시스템 응답의 전반적인 관련성을 향상시킵니다.
원활한 통합: Milvus는 LangChain 및 LlamaIndex와 같은 인기 프레임워크와 쉽게 통합되어 복잡한 RAG 파이프라인 개발을 간소화합니다.
RAG 시스템의 미래 방향
Retrieval-Augmented Generation (RAG) 기술이 발전함에 따라 여러 유망한 연구 방향이 등장했습니다. 이러한 발전은 검색 정확도를 높이고, 적응성을 개선하며, 다양한 애플리케이션을 위한 RAG 시스템의 범위를 확장하는 것을 목표로 합니다.
고급 문맥 적응형 검색
미래의 RAG 시스템은 사용자 의도와 쿼리 복잡도에 따라 동적으로 조정되는 고급 검색 전략을 사용할 것입니다. 이러한 시스템은 검색 깊이와 범위를 실시간으로 개선함으로써 복잡하고 다층적인 질문에 대한 검색을 최적화하여, 기술 문제 해결이나 규제 준수와 같은 영역에서 더 정확한 결과를 가능하게 할 것입니다.
반복적 피드백 기반 시스템
RAG 시스템은 생성 출력을 통해 후속 검색을 안내할 수 있는 피드백 루프를 통합할 것입니다. 이러한 반복적 개선은 특히 다단계 또는 모호한 쿼리에서 정확도를 향상시킬 것입니다. 예를 들어, 초기 응답에 세부 정보가 부족한 경우 시스템은 보충 정보를 검색하도록 쿼리를 조정할 것입니다.
시간 및 문맥 인식 검색
차세대 RAG 시스템은 시간적 추론을 통합하여 시간에 따른 변화를 고려한 응답을 가능하게 할 것입니다. 이는 분기별 또는 연도별 추세를 이해하는 것이 단일 시점 데이터보다 더 포괄적인 관점을 제공하는 금융 분석과 같은 애플리케이션에 필수적일 것입니다.
교차 언어 및 문화적 적응성
미래의 RAG 시스템은 의미적 뉘앙스와 문화적 차이를 반영하는 문맥 기반 임베딩을 사용하여 다국어 및 교차 문화 쿼리를 더 효과적으로 처리할 것입니다. 이러한 시스템은 정확성과 관련성을 유지하면서 언어 간 지식을 검색하고 종합하는 등 원활한 글로벌 애플리케이션을 가능하게 할 것입니다.
결론
Retrieval-Augmented Generation (RAG) 는 대규모 언어 모델의 강점과 검색 시스템을 결합하여 정적 지식과 부정확성 같은 문제를 해결합니다. 검색을 생성에 통합함으로써 RAG 시스템은 더 정확하고 문맥을 인식한 출력을 제공하며, 최신 지식이나 전문 지식이 필요한 애플리케이션에 효과적입니다.
동적 검색, 피드백 기반 개선, 교차 언어 기능과 같은 영역의 향후 발전은 그 기능성을 향상시킬 것입니다. Milvus와 같은 도구가 효율적인 벡터 데이터베이스 통합을 지원함에 따라, RAG 시스템은 의료, 고객 지원, 교육과 같은 다양한 산업에서 점점 더 실용적으로 활용되고 있습니다.
연구가 진행됨에 따라 RAG 시스템은 신뢰할 수 있고 효율적이며 문맥에 민감한 지식을 제공하는 능력을 계속 향상시켜, 실제 시나리오에서 더 광범위하게 사용될 수 있게 할 것입니다.
추가 리소스
계속 읽기

We spent 8 years making vector databases faster. Then we stopped.
Rarely queried embeddings still need to stay searchable. See how Vector Lakebase enables on-demand vector search without always-on compute costs.

Zilliz Cloud Launches in AWS Australia, Expanding Global Reach to Australia and Neighboring Markets
We're thrilled to announce that Zilliz Cloud is now available in the AWS Sydney, Australia region (ap-southeast-2).

AI Integration in Video Surveillance Tools: Transforming the Industry with Vector Databases
Discover how AI and vector databases are revolutionizing video surveillance with real-time analysis, faster threat detection, and intelligent search capabilities for enhanced security.


