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에 직접 공급하는 것이 항상..