본문 바로가기
반응형

RAG11

AutoHyDE 개요 🤖 AutoHyDE: 자동 하이브리드 질의 응답의 진화📌 개요요즘처럼 대규모 언어 모델(LLM)을 활용한 RAG(Retrieval-Augmented Generation) 시스템이 활발히 사용되는 시대에, 얼마나 정확하고 효율적인 정보 검색이 가능한가는 매우 중요한 문제입니다.하지만 사용자 질문이 짧거나 불완전한 경우, 기존 RAG 구조에서는 적절한 정보를 검색하기 어려울 수 있습니다. 이때 등장한 것이 바로 AutoHyDE (Automatic Hybrid Decomposition and Execution)입니다.🔍 AutoHyDE란?AutoHyDE는 2023년 발표된 논문에서 소개된 기술로, 복잡하거나 불완전한 질문을 처리하기 위해 LLM과 검색 시스템을 하이브리드로 자동 조합하여 질문을 재구성하고.. 2025. 7. 24.
Semantic Chunking: 의미 기반 청킹이 중요한 이유 📌 개요대용량의 텍스트 데이터를 다룰 때, 특히 LLM(Large Language Model) 을 활용하는 시스템에서는 전체 문서를 한 번에 처리하는 것이 어렵습니다. 이때 우리는 문서를 작은 덩어리, 즉 "청크(Chunk)" 로 나누는 작업을 하게 되는데요. 단순히 일정한 글자 수나 문단 수로 자르는 것이 아니라, 의미 단위로 나누는 것을 바로 Semantic Chunking이라고 부릅니다.이 글에서는 Semantic Chunking이 무엇인지, 왜 중요한지, 어떻게 활용할 수 있는지에 대해 알아보겠습니다.🔍 의미: Semantic Chunking이란?✅ 정의Semantic Chunking은 문서나 텍스트를 문법적·논리적·의미 기반으로 청크(덩어리)로 분할하는 기법입니다. 단순히 500자마다 자르거.. 2025. 7. 24.
벡터 데이터베이스 선택시 고려사항 1. Vector Database란 무엇인가?벡터 데이터베이스는 텍스트, 이미지, 음성 등 비정형 데이터를 수치 벡터로 변환해 저장하고, 이 벡터 간 유사도를 빠르게 검색하는 데 최적화된 데이터베이스입니다. 주로 시맨틱 검색, 추천 시스템, 대규모 언어 모델(LLM) 기반 애플리케이션 등에서 사용되며, 의미 기반 검색과 검색 증강 생성(RAG) 기술의 핵심 인프라 역할을 합니다.2. Vector Database 선택 시 고려 사항확장성(Scalability): 데이터 양과 쿼리 수요가 증가해도 성능 저하 없이 수평 확장이 가능한지 확인해야 합니다. 동적 세그먼트 배치(Dynamic segment placement) 지원 여부도 중요합니다.지연 시간(Latency) 및 성능(Performance): 초당 .. 2025. 7. 15.
벡터 데이터베이스 : 양자화 기법(SQ, PQ) [1] Scalar Quantization 1. Scalar Quantization이란?Scalar Quantization (스칼라 양자화)는 고차원 벡터를 저장하거나 검색할 때 메모리를 줄이고 처리 속도를 높이기 위해 벡터 값을 압축하는 기법입니다. 특히, 벡터 데이터베이스(Vector DB)나 유사도 검색 시스템에서 자주 사용됩니다. 고차원 벡터의 각 **스칼라 값(1차원 수치)**을 일정한 범위의 **이산값(quantized value)**으로 근사화하여 표현하는 방식입니다.예:원래 벡터: [0.12, -1.75, 3.90]양자화 후: [1, -2, 4] (정수 근사)실제 예 (int8 양자화)원래 벡터 값 범위: -1.0 ~ 1.0 0.34round( (0.34+1)/.. 2025. 7. 14.
벡터 데이터베이스 : Graph Index 1. Graph Index란?Graph Index는 각 벡터를 노드(node)로 보고, 유사한 벡터끼리 엣지(edge)로 연결하여 그래프 형태의 인덱스를 구성하는 방식입니다.검색할 때는 그래프 위를 탐색하며 점점 더 유사한 벡터로 이동하는 식으로 근접 벡터를 찾습니다.대표적인 구현은 HNSW (Hierarchical Navigable Small World)입니다.2. Graph Index의 동작 원리 (HNSW 기준)주요 개념노드(Node): 저장된 벡터엣지(Edge): 유사한 노드 간 연결탐색(Traversal): 이웃 벡터 중 더 가까운 쪽으로 이동레벨(Level): 계층 구조를 통해 탐색 효율 향상 상위 레벨에서 대략적인 위치 탐색하위 레벨로 내려가며 근접 노드들 사이를 이동최종적으로 Top-K 유.. 2025. 7. 14.
벡터 데이터베이스 : Hash Index란 1. Hash Index란?Hash Index는 벡터를 해시 함수로 변환하여 비슷한 벡터는 같은 해시 버킷에 들어가게 만들어, 전체를 탐색하지 않고도 유사한 벡터를 빠르게 찾도록 하는 인덱싱 기법입니다.[여기서 잠깐, 해시 버킷이란?]해시 버킷은 해시 함수를 통해 얻은 해시값에 따라 데이터를 분류하여 저장하는 그룹 또는 공간입니다.유사한 입력(벡터)이 같은 해시값을 갖도록 설계된 해시 함수(Locality Sensitive Hash)를 사용하면, 유사한 벡터들이 같은 버킷 안에 들어가게 됩니다.벡터1 ─┬─> 해시 함수 ─┬─> 버킷 A 벡터2 ─┘ └─> 버킷 B ... 벡터N ───────────────> 버킷 A해.. 2025. 7. 14.
RAG 구현시 고려사항 : (6) 멀티턴 대화(ConversationBufferMemory) 멀티턴 RAG에서의 문맥 유지 전략멀티턴 대화란 사용자가 여러 번 연속적으로 질문을 던지는 상황을 말합니다.예를 들어, 사용자와 AI 사이에 다음과 같은 흐름이 있다고 해봅시다.User: "X100 제품의 무게는 얼마야?"User: "그보다 가벼운 모델은 있어?"User: "그 모델은 방수되니?"이처럼 두 번째 이후의 질문들은 대부분 앞선 질문의 문맥을 전제로 합니다.따라서 RAG 시스템이 이런 흐름을 정확히 파악하고 연결된 문맥을 유지하며 검색과 생성을 수행할 수 있어야 합니다.멀티턴 문맥이 필요한 이유유형 설명 지시어 생략“그거” “그 제품” “그 사람”처럼 이전 대상이 명시되지 않음조건 누적“그중 가장 저렴한 걸 알려줘” → 이.. 2025. 7. 11.
RAG 구현시 고려사항 : (4) 프롬프트 설계 및 Generator 고려사항 4. 프롬프트 설계 및 Generator 고려사항RAG 시스템에서 Retriever가 문서를 잘 가져오더라도, LLM이 그 문서를 정확히 이해하고 활용할 수 있도록 프롬프트를 잘 구성하는 것이 매우 중요합니다.이 섹션에서는 프롬프트 템플릿 구성, 문서 삽입 전략, 그리고 Generator 선택 시 고려해야 할 점을 자세히 설명합니다.✅ 1. 프롬프트 설계의 중요성프롬프트 설계는 단순한 질문 전달이 아닌, 다음 역할을 수행합니다:역할설명문맥 주입검색된 문서를 LLM이 이해할 수 있게 연결정보 정제중복 제거, 길이 조절 등행동 유도응답 형식/목표를 명확히 지시 (Instruction Prompting) ✅ 2. 프롬프트 구성 전략📌 기본 구조 예시:[사용자 질문] - 대한민국 대통령은 누구입니까? [문서 .. 2025. 7. 11.
RAG 구현시 고려사항 : (3) Retriever 설계 고려사항 3. Retriever 설계 고려사항Retriever는 유사한 문서를 정확하고 빠르게 찾기 위한 핵심 컴포넌트입니다. 아래는 Retriever를 구성할 때 고려해야 할 주요 요소들입니다.✅ 1. 임베딩 모델 선택역할: 사용자 쿼리와 문서를 의미 기반 벡터로 변환선택 기준:의미 보존력 (semantic similarity 성능)다국어/한국어 지원 여부추론 속도 vs 정확도오픈소스 vs 상용 API추천 모델 예시:모델명특징text-embedding-3-small (OpenAI)상용 정확도 우수, 1536차원bge-large-en/koBEIR 성능 우수, 한국어 버전도 존재E5-mistralHugging Face 기반, RAG에 최적화 ✅ 2. 벡터 DB 선택역할: 벡터를 저장하고 유사한 벡터를 빠르게 검색선.. 2025. 7. 11.
RAG 구현시 고려사항 : (2) RAG 아키텍처 구성요소 1. Query Embedding (임베딩 모델)역할: 사용자의 질문을 의미 벡터로 변환하여 검색에 활용할 수 있게 합니다.대부분의 RAG 시스템은 Dense Embedding을 사용합니다. (ex. text-embedding-ada-002, bge, E5 등)문장의 의미적 유사성을 보존하는 것이 핵심.문서 인덱싱 시에도 같은 모델로 임베딩하여 저장합니다.임베딩 모델 선택 시 고려사항:항목설명다국어 지원한국어, 영어 등 대상 언어 지원 여부성능semantic similarity 기준의 평가 (e.g. MTEB, BEIR)토큰 제한문서 단위 처리 가능 여부라이선스상용 사용 가능 여부 (OpenAI vs 오픈소스) 2. Retriever (벡터 검색기)역할: 벡터화된 쿼리와 벡터 DB에 저장된 문서 임베딩 .. 2025. 7. 11.
RAG 구현시 고려사항 : (1) RAG란 무엇인가? [AI를 활용해 작성 되었습니다]1. RAG란 무엇인가?🔍 개요: Retrieval-Augmented Generation**RAG(Retrieval-Augmented Generation)**은 대규모 언어 모델(LLM)의 한계를 극복하기 위해 설계된 지식 강화형 질문 응답 및 생성 구조입니다. 단순히 프롬프트만 받아 답을 생성하는 것이 아니라, 외부 데이터 소스(문서, 웹, DB 등)로부터 정보를 검색(Retrieve) 한 후, 이를 바탕으로 정확하고 신뢰도 높은 답변을 생성(Generate) 합니다.RAG는 크게 두 구성요소로 나뉩니다:구성요소설명Retriever쿼리와 의미적으로 유사한 문서를 벡터 기반으로 검색Generator검색된 문서를 기반으로 문장을 생성 (GPT, LLaMA 등 사용) 💡 .. 2025. 7. 11.
반응형