Linear Pattern선형 흐름 패턴은 가장 단순하고 가장 일반적으로 사용되는 패턴RAG 흐름 패턴은 주로 검색 전처리 - 검색 - 후처리 및 생성 모듈로 이루어진 구성Pre-RetrieveQuery TransformRewrite Query, HyDEPost-RetrieveReranker, ReorderRewrite - Retrieve - Read (RRR)RRR Conditional PatternConditional RoutingQuery 입력에 따라 RAG 파이프라인 선택라우팅 모듈이 존재예시) 입력된 Query에 따른 검색기 선택 Branching PatternPre-Retrieve검색 소스/검색 프로세스/프롬프트/모델 등이 달라짐각 브랜치는 검색 & 생성을 개별적으로 수행한 다음 결과를 앙상블..
Modular RAG레고와 같이 재구성이 용이하고 보다 유연한 흐름을 만들 수 있는 프레임워크독립적(Independant) - 기능 위주로 세분화유연하고 확장성(flexable & scalable) - 모듈의 추가 및 변경이 쉬움동적(dynamic) - 그래프 형식의 흐름 구성, 상황에 따른 분기 처리 모듈모듈, 하위 모듈 및 운영자로 구성된 아키텍처 설계를 통해 통합되고 구조화된 방식으로 RAG 시스템을 정의각 단계(Step)를 모듈(Module) 별로 정의각 모듈은 하위 모듈(Sub Module)로 구성하위 모듈은 플러그인 형식의 독립된 구조독립 구조각 모듈은 조립형으로 설계(레고 블록)병렬 구조여러 하위 모듈을 동시실행 후 병합 가능분기 구조상황에 따른 분기 처리가 가능 독립적인 모듈 구성동일한 형..
Advanced RAG이전의 Naive RAG가 가지고 있었던 한계를 극복하기 위한 다양한 고급 방법론Indexing계층적 구조의 IndexingSemantic ChunkingPre-RetrievalQuery Rewrite, Query ExpansionQuery TransformationRetrievalHybrid Search(키워드 검색 + 시맨틱 검색)Post-RetrievalReranker, Reorder IndexingMetadatametadata에 연도, 출처(파일명, URL) 등을 추가Self-Query Retriever: Query 문으로 데이터 필터링에 활용Summary, Entity 등 추가 정보 생성 후 Indexing추상적인 질문에는 Summary/Entity 활용구체적인 질문에는 작..
Naive RAG검색(Retrieve) - 읽기(Read) 프레임워크사전 단계절차설명IndexingPDF, Word, Markdown 등에서 텍스트 데이터 추출Chunking작은 단위로 분할EmbeddingVector로 인코딩Database임베딩된 Vector 저장실행 단계RetrieveDatabase에서 질문(Query)에 답변하기 위한 정보 검색Generation검색된 정보를 문맥(Context)에 추가하여 답변 생성 Naive RAG의 한계쿼리에 대한 얕은 이해쿼리와 문서 Chunk 사이의 의미론적 유사성이 항상 일치하는 것은 아님검색을 위해 유사도 계산에만 의존하는 것은 쿼리와 문서 간의 관계에 대한 심층적인 탐색이 부족검색 중복 및 노이즈검색된 모든 Chunk를 LLM에 직접 공급하는 것이 항상..
Background할루시네이션할루시네이션은 모델이 잘못된 정보를 자신감 있게 제시최신 정보의 반영 안됨대규모 언어 모델의 학습 과정이 복잡, 시간과 리소스가 많이 소요됨모델의 지식은 학습 데이터의 컷오프 날짜에 제한, 실시간 업데이트의 어려움으로 최신 정보 반영 지연도메인 특화일반적인 LLM은 광범위한 지식을 다루지만, 특정 기업이나 조직의 고유한 정보는 포함하지 않음기업 특화 정보를 활용하기 위해서는 추가적인 파인튜닝이나 맞춤형 학습이 필요지식의 불분명한 출처LLM은 학습 데이터에서 얻은 정보를 종합하여 답변을 생성하므로, 특정 정보의 정확한 출처를 제시하기 어려움 What is RAG?Retrieval(검색) - Augmented(증강) - Generation(생성)기존의 LLM 답변 생성하는 과정에..