Tag: RAG

0

Agentic RAG 개념 정리

Agentic RAG란Agentic RAG는 검색(retrieval)을 고정된 단계로 실행하는 대신, 에이전트가 상황에 따라 검색 여부와 검색 방식을 스스로 결정하는 RAG 방식입니다. 기본 RAG는 보통 아래처럼 동작합니다. 사용자 질문 입력 검색 시스템에서 관련 문서 조회 검색 결과를 LLM에 넣어 답변 생성 즉, 검색은 항상 먼저 일어나고, 생성은 그 다음에 일어납니다. 반면 Agentic RAG는 조금 다릅니다. 질문만 보고 바로 답할 수도 있음 먼저 검색한 뒤 추가 검색이 필요하다고 판단할 수도 있음 내부 문서 검색과 웹 검색을 나눠서 사용할 수도 있음 한 번 검색하고 끝내지 않고, 여러 번 검색/정제/도구 호출을 반복할 수도 있음 즉, Agentic RAG의 핵심은 “RAG에 agent의 의사결정 능력을 붙인 것” 입니다. 왜 필요한가

0

Corrective RAG (CRAG) 개념 정리

Corrective RAG란Corrective RAG(CRAG)는 기존 RAG 파이프라인에 “검색 결과 검증 및 보정 단계”를 추가한 방식입니다. 일반적인 RAG는 아래 흐름으로 동작합니다. 사용자 질문 입력 벡터 DB 또는 검색 시스템에서 관련 문서 검색 검색된 문서를 컨텍스트로 LLM이 답변 생성 문제는 검색 결과가 부정확하거나, 애매하거나, 일부만 맞는 경우에도 그대로 답변 생성에 사용된다는 점입니다.즉, RAG는 hallucination을 줄여주지만, retrieval 자체가 잘못되면 오히려 잘못된 문서를 근거로 그럴듯한 답을 만들 수 있습니다. CRAG는 이 문제를 해결하기 위해, 검색 결과의 품질을 먼저 평가한 뒤 결과를 그대로 쓸지, 보정할지, 외부 검색으로 보강할지 결정합니다. 왜 필요한가기본 RAG가 자주 겪는 문제는 아래와 같습니다. 질문과 겉보기로만 비슷한 문서를 가져옴 문서 일부는 맞지만 핵심 답변에는 부족함 내부 지식베이스에 최신 정보가 없음 irrelevant chunk가 섞여 답변 품질이 흔들림

0

LangChain 완벽 가이드 - LLM 애플리케이션 개발의 시작

LangChain이란?LangChain은 대규모 언어 모델(LLM)을 활용한 애플리케이션을 쉽게 구축할 수 있도록 돕는 오픈소스 프레임워크입니다. 2022년 10월 Harrison Chase가 시작한 프로젝트로, LLM 기반 애플리케이션 개발의 사실상 표준이 되었습니다. LangChain의 주요 특징 체인(Chain) 기반 구조: 여러 컴포넌트를 연결하여 복잡한 작업 수행 다양한 LLM 지원: OpenAI, Anthropic, Google, HuggingFace 등 다양한 모델 지원 Memory 관리: 대화 히스토리 및 컨텍스트 유지 도구 통합: 외부 API, 데이터베이스, 검색 엔진 등과 연동 프롬프트 템플릿: 재사용 가능한 프롬프트 관리 문서 처리: PDF, HTML, 텍스트 등 다양한 문서 형식 지원 벡터 스토어 통합: Chroma, Pinecone, FAISS 등 다양한 벡터 DB 지원 LangChain의 핵심 개념Input → Prompt → LLM → Output Parser → Result LangChain은 위와 같은 파이프라인을 쉽게 구성하고 관리할 수 있도록 도와줍니다. 1. 설치 및 환경 설정필수 패키지 설치

0

RAG 성능 최적화 기법

RAG 시스템 최적화 개요RAG 시스템의 성능은 다음 세 가지 측면에서 최적화할 수 있습니다: 검색 품질 - 관련성 높은 문서 찾기 응답 품질 - 정확하고 유용한 답변 생성 성능/비용 - 빠른 응답과 비용 효율성 1. 청킹 전략 최적화1.1 고정 크기 청킹from langchain.text_splitter import RecursiveCharacterTextSplitter# 기본 설정text_splitter = RecursiveCharacterTextSplitter( chunk_size=1000, chunk_overlap=200, length_function=len,)# 문서 유형별 최적화## 기술 문서 - 작은 청크tech_splitter = RecursiveCharacterTextSplitter( chunk_size=500, chunk_overlap=100)## 소설/긴 글 - 큰 청크narrative_splitter = RecursiveCharacterTextSplitter( chunk_size=2000, chunk_overlap=400) 1.2 의미 기반 청킹from langchain_experimental.text_splitter import SemanticChunkerfrom langchain_openai.embeddings import OpenAIEmbeddings# 의미론적 유사도로 분할semantic_chunker = SemanticChunker( OpenAIEmbeddings(), breakpoint_threshold_type="percentile", # or "standard_deviation" breakpoint_threshold_amount=95 # 상위 5%에서 분할)chunks = semantic_chunker.split_documents(documents) 1.3 문서 구조 기반 청킹

0

RAG 시스템 구축 가이드

RAG 시스템 구축 단계RAG 시스템을 처음부터 구축하는 전체 과정을 단계별로 설명합니다. 1. 환경 설정필수 라이브러리 설치# Python 가상환경 생성python -m venv venvsource venv/bin/activate # Windows: venv\Scripts\activate# 기본 라이브러리 설치pip install langchain langchain-community langchain-openaipip install chromadb # 벡터 데이터베이스pip install openai # OpenAI APIpip install tiktoken # 토큰 카운팅pip install pypdf # PDF 처리pip install python-dotenv 환경 변수 설정# .env 파일 생성OPENAI_API_KEY=your-api-key-here 2. 문서 준비 및 로딩2.1 문서 로더 선택

0

RAG (Retrieval-Augmented Generation) 개요

RAG란?RAG(Retrieval-Augmented Generation)는 대규모 언어 모델(LLM)의 응답을 개선하기 위해 외부 지식 베이스에서 관련 정보를 검색하여 활용하는 기술입니다. RAG의 필요성 지식 최신성 문제 해결 LLM은 학습 시점까지의 데이터만 알고 있음 최신 정보나 실시간 데이터 제공 불가 RAG를 통해 최신 문서/데이터 참조 가능 환각(Hallucination) 감소 LLM이 사실이 아닌 내용을 생성하는 문제 외부 신뢰할 수 있는 소스 참조로 정확성 향상 도메인 특화 지식 제공 기업 내부 문서, 특정 도메인 지식 활용 재학습 없이 특정 분야 전문성 확보 비용 효율성 모델 재학습(Fine-tuning) 대비 저렴 데이터 업데이트가 용이 RAG 작동 원리기본 워크플로우사용자 질문 ↓1. 질문 임베딩 생성 ↓2. 벡터 DB에서 유사 문서 검색 ↓3. 검색된 문서 + 질문을 LLM에 입력 ↓4. LLM이 컨텍스트 기반 답변 생성 ↓최종 답변 제공 핵심 구성 요소 문서 처리 (Document Processing) 문서 수집 및 전처리 청크 분할 (Chunking) 임베딩 생성 검색 시스템 (Retrieval System) 벡터 데이터베이스 유사도 검색 알고리즘 하이브리드 검색 (키워드 + 벡터) 생성 모델 (Generation Model) LLM (GPT, Claude, Llama 등) 프롬프트 엔지니어링 컨텍스트 윈도우 관리