athere
반응형

Retrieval-Augmented Generation (RAG)는 **지식 검색(Retrieval)**과 **자연어 생성(Generation)**을 결합한 기술로, LLM이 외부 지식에 접근해 더 정확하고 신뢰성 있는 답변을 생성할 수 있게 해주는 방식입니다.


🔧 핵심 개념

구성 요소 설명

🔍 Retrieval 사용자의 질문에 관련된 문서나 정보를 외부 지식 저장소에서 검색
🧠 Generation 검색된 내용을 바탕으로 LLM이 응답을 생성
📚 Knowledge source 위키피디아, 사내 문서, 데이터베이스, 논문, FAQ 등

💡 왜 필요한가?

기존의 LLM은 사전 학습된 지식만으로 답변을 생성합니다.
하지만 최신 정보나 전문 지식이 필요한 경우, 다음과 같은 문제가 발생합니다:

  • Hallucination (사실 왜곡)
  • 지식 누락 (training cutoff 이후 정보 반영 어려움)
  • 신뢰성 부족 (출처가 없음)

→ RAG는 이 문제를 해결하기 위해 LLM이 실시간 검색을 통해 외부 지식에 접근하도록 합니다.


🧬 동작 흐름 (RAG 파이프라인)

graph TD
A[User Query] --> B[Retriever: 검색 시스템]
B --> C[Top-k 관련 문서]
C --> D[LLM Generator: 문서 기반 응답 생성]
D --> E[Final Answer]
  1. Query 입력: 사용자가 질문
  2. Retriever: 질문을 임베딩 후, 벡터 DB나 전통 검색으로 관련 문서 검색
  3. Top-k 문서: 가장 관련성 높은 문서 추출
  4. Generator (LLM): 문서를 바탕으로 답변 생성
  5. 출력: 사용자에게 자연어 응답 제공

🔬 예시

질문:

"라그나로크 전쟁의 원인과 주요 인물은?"

RAG 과정:

  • 📚 Retriever: 위키피디아/논문/위키북스에서 ‘라그나로크’ 관련 문서 검색
  • 🧠 Generator: 문서 내용 바탕으로 정리
  • ✅ 출력:

"라그나로크는 노르드 신화에서 신들과 거인들 사이의 최후 전쟁으로, 오딘, 토르, 로키 등이 핵심 인물입니다..."


🧰 사용 기술

기능 도구 예시

임베딩 OpenAI Embedding, HuggingFace Transformers, Sentence-BERT
검색 FAISS, Weaviate, Pinecone, Elasticsearch
LLM GPT-4, LLaMA, Mistral, R1984 등
프레임워크 LangChain, LlamaIndex, Haystack, RAGas

✅ RAG의 장점

  • 📖 최신 정보 반영 가능 (LLM 업데이트 없이)
  • 📌 출처 기반의 설명 가능 (Explainable)
  • 🧠 LLM의 지식 한계를 보완
  • 🔐 보안/사내 정보 활용 가능 (Private RAG)

⚠️ RAG의 한계

  • 검색된 문서 품질에 따라 응답 품질이 달라짐
  • 빠른 응답이 어려울 수 있음 (속도 이슈)
  • 문서 요약 실패 시 LLM의 출력이 비논리적일 수 있음

🔄 다양한 형태

형태 설명

Classic RAG Query → Search → Generate
Conversational RAG 챗 기반 → 이전 대화까지 컨텍스트로 검색
Multimodal RAG 텍스트 + 이미지 검색 후 응답 생성
Agentic RAG 툴 호출과 반복 검색까지 포함된 고급 구조

원하시면 RAG를 직접 구현해보는 코드 예시 (Python + FAISS + OpenAI API)나
사족보행 로봇과 연결된 음성 질의 + RAG 응답 시스템 구조도 도와드릴 수 있어요.

실습을 원하시나요?

반응형
profile

athere

@athere

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!