본문 바로가기

전체 글81

RAG 구현시 고려사항 : (6) 멀티턴 대화(ConversationBufferMemory) 멀티턴 RAG에서의 문맥 유지 전략멀티턴 대화란 사용자가 여러 번 연속적으로 질문을 던지는 상황을 말합니다.예를 들어, 사용자와 AI 사이에 다음과 같은 흐름이 있다고 해봅시다.User: "X100 제품의 무게는 얼마야?"User: "그보다 가벼운 모델은 있어?"User: "그 모델은 방수되니?"이처럼 두 번째 이후의 질문들은 대부분 앞선 질문의 문맥을 전제로 합니다.따라서 RAG 시스템이 이런 흐름을 정확히 파악하고 연결된 문맥을 유지하며 검색과 생성을 수행할 수 있어야 합니다.멀티턴 문맥이 필요한 이유유형설명지시어 생략“그거” “그 제품” “그 사람”처럼 이전 대상이 명시되지 않음조건 누적“그중 가장 저렴한 걸 알려줘” → 이전 질문의 결과에 기반시간 경과사용자와의 대화가 길어질수록 이전 정보 잊지 .. 2025. 7. 11.
RAG 구현시 고려사항 : (5) RAG 성능 최적화 전략 5. RAG 성능 최적화 전략RAG 시스템은 구조적으로 유연하고 강력하지만, 검색 정확도와 생성 품질은 세부 구성과 튜닝 수준에 따라 천차만별입니다.이 장에서는 실제 현업 또는 서비스 환경에서 RAG 성능을 최적화하는 방법과 정량적 평가 지표를 소개합니다.✅ 1. Retriever 성능 최적화📌 핵심 튜닝 항목항목설명최적화 전략top_k검색할 문서 개수너무 크면 noise, 너무 작으면 recall↓nprobeIVF 탐색 범위 (FAISS)Recall/Latency의 트레이드오프Reranker 사용재정렬 정확도 ↑Cross-Encoder 기반 모델 추천Hybrid 검색Dense + BM25의미 + 키워드 보완 효과 📊 실전 튜닝 팁top_k=3~5로 시작하여 Recall@5 테스트nprobe는 5~2.. 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.
벡터 검색 : Reranking 필요 이유 [AI를 활용해 작성되었습니다.]RAG는 검색 시간을 단축 하기 위해 Approximate Nearnest Neighbor search (ANNs) 기술을 활용하는데 이대 질문과 관계 없는 문서가 검색될 수 있기 때문에 Reranking 관련 정보를 기준으로 순위를 다시 선정해야 한다[출처] https://www.pinecone.io/learn/series/rag/rerankers/ 🔁 Reranking의 원리📌 1단계: 근사 검색 (ANN - Approximate Nearest Neighbor)IVF, HNSW, PQ 등의 인덱스는 전체 데이터 중 일부 후보 벡터만 빠르게 선택합니다.이 과정에서는 정확한 유사도/거리 계산 없이, 대략적으로 "가까울 것 같은" 벡터들을 찾습니다.예: IVF는 쿼리 벡.. 2025. 7. 11.
벡터 데이터베이스 인덱스: IVF 설명 [ chatGPT를 이용해 생성한 답변을 참고합니다. ]벡터 데이터베이스의 IVF란?벡터 데이터베이스에서 IVF (Inverted File Index, 역파일 인덱스) 는 고차원 벡터의 근사 최근접 이웃 검색 (ANN, Approximate Nearest Neighbor)을 빠르게 하기 위한 대표적인 인덱싱 기법 중 하나입니다. 특히 FAISS 같은 라이브러리에서 많이 사용됩니다.✅ IVF (Inverted File Index) 개념1. 기본 아이디어고차원 벡터들을 직접 비교하지 않고, 벡터들을 여러 개의 클러스터(버킷)로 먼저 분할해두고, 검색 시 관련된 몇 개의 클러스터에서만 비교를 수행함으로써 속도를 높이는 방식입니다. 🔧 구성 방식1. 학습 단계 (Training)전체 벡터 중 일부를 샘플링해서.. 2025. 7. 11.
Embedding : Word2Vec, 임베딩 기법의 근본적인 성립 조건 [ chatGPT를 이용해 생성한 답변을 참고합니다. ]질문 : "king", "queen", "prince"는 모두 비슷한 문맥에서 등장" 하기 때문에 알 수 있다고 하나, 비슷한 문맥에서 등장을 한다는 보장이 없다면 비슷한 백터라고 하기 어려울 것 같은데 어떻게 알 수 있는가? 아주 훌륭한 질문이에요.Word2Vec, 아니 전체 임베딩 기법의 근본적인 성립 조건에 대한 본질을 짚으셨어요.당신이 지적한 대로,"비슷한 문맥에서 등장한다는 전제가 틀리면, 임베딩은 제대로 작동하지 않는다."그렇습니다. Word2Vec을 포함한 모든 분산 표현(distributed representation)은 이 전제 위에서 작동합니다.🔹 핵심 개념: Distributional Hypothesis (분포 가설)“단어의 .. 2025. 7. 10.
결정 트리(Decision Trees) 결정 트리(Decision Trees) 개요 결정 트리는 분류 및 회귀 문제에 사용되는 감독 학습 알고리즘입니다. 이 알고리즘은 데이터를 분석하여 패턴을 학습하고, 일련의 질문을 통해 결정을 내리는 나무 형태의 모델을 만듭니다. 각 노드(node)는 데이터의 특징(feature)에 대한 질문을 나타내며, 각 분기(branch)는 가능한 응답을 나타냅니다. 가장 하단의 노드(잎 노드, leaf node)는 결정 결과를 나타냅니다. 필요 이유 이해와 해석이 용이: 결정 트리는 시각화가 쉽고, 비전문가도 이해하기 쉬운 결과를 제공합니다. 데이터 전처리 요구가 적음: 결정 트리는 다른 알고리즘에 비해 덜 복잡한 데이터 전처리가 필요합니다. 비선형 관계 모델링: 결정 트리는 데이터의 비선형 패턴을 포착할 수 있습.. 2024. 1. 7.
분류분석(Classification Analysis 분류 분석(Classification Analysis)은 데이터 과학과 기계 학습 분야에서 사용되는 주요 기술 중 하나입니다. 이 방법은 입력 데이터를 미리 정의된 클래스나 범주로 분류하는 과정을 말합니다. 주요 목적은 새로운 데이터가 주어졌을 때, 이를 올바른 범주로 분류하는 것입니다. 분류 분석 알고리즘은 크게 다음과 같이 나눌 수 있습니다 결정 트리(Decision Trees): 데이터를 분류하기 위해 결정 규칙의 계층적 구조를 사용합니다. 각 노드는 특정 속성에 대한 결정을 나타내며, 이를 통해 데이터를 서브셋으로 나눕니다. 나이브 베이즈(Naive Bayes): 통계적 방법을 사용하여 각 클래스에 속할 확률을 계산합니다. 이 알고리즘은 모든 특성이 서로 독립적이라고 가정합니다. 서포트 벡터 머신.. 2024. 1. 7.
파키슨병 (PET 검사) 파키슨병 개요 파키슨 병은 중추신경계의 진행성 질환으로, 주로 운동 기능 장애를 일으킨다. 이 병은 뇌 내 도파민을 생산하는 신경 세포의 손실로 발생하며, 주요 증상으로는 손떨림, 근육 경직, 움직임의 느려짐, 균형 장애 등이 있다. 원인은 아직 명확히 밝혀지지 않았으나, 유전적 요인과 환경적 요인이 상호 작용하는 것으로 추정된다. 치료는 주로 증상의 완화와 삶의 질 향상에 초점을 두며, 도파민 대체 요법이 일반적이다. 정기적인 운동과 물리치료도 환자의 증상 관리에 도움을 준다 진단 방법 임상 증상 평가: 손떨림, 근육 경직, 운동 둔화 등 전형적인 증상을 기반으로 진단함. 신경학적 검사: 의사가 신체 검사와 신경학적 테스트를 진행함. 영상 진단: MRI나 CT 스캔으로 다른 질병을 배제함. 도파민 수송.. 2024. 1. 7.