RAG · Agent · Multimodal · Retrieval 실전 알고리즘 정리
RAG는 외부 지식을 활용하여 LLM의 응답 품질을 향상시키는 핵심 기술입니다.
기본 구조:
Query → Embedding → Vector Search → Context Retrieval → LLM Generation
핵심 컴포넌트:
LLM이 스스로 검색 필요성을 판단하고 생성된 답변의 품질을 평가합니다.
핵심 메커니즘:
# Self-RAG 의사코드
if model.needs_retrieval(query):
docs = retrieve(query)
if model.is_relevant(docs, query):
answer = generate(query, docs)
if model.verify_quality(answer):
return answer
else:
return regenerate_or_retrieve_more()
검색 결과의 품질을 평가하고 필요시 웹 검색으로 보정합니다.
워크플로우:
1. Initial Retrieval → 관련성 평가
2. Score < threshold → 웹 검색 trigger
3. Knowledge refinement → 노이즈 제거
4. Final generation
가상의 답변을 먼저 생성한 후, 이를 쿼리로 사용하여 검색 정확도를 향상시킵니다.
Query → LLM generates hypothetical answer → Embed hypothesis →
Search with hypothesis embedding → Retrieve actual documents
Microsoft에서 개발한 그래프 구조 기반 RAG로, 엔티티와 관계를 그래프로 모델링합니다.
장점:
구조:
Documents → Entity/Relationship Extraction → Knowledge Graph →
Community Detection → Summary Generation → Query Processing
| 모델 | 차원 | 특징 | 주요 용도 |
|---|---|---|---|
| Cohere Embed v3 | 1024 | 다국어 지원, Compression aware | 프로덕션 |
| OpenAI text-embedding-3 | 256~3072 | 가변 차원, 높은 성능 | 범용 |
| BGE-M3 | 1024 | Multi-lingual, Multi-granularity | 다국어 검색 |
| Voyage AI v2 | 1024 | 도메인 특화 fine-tuning | 전문 분야 |
| Jina Embeddings v2 | 768 | Long context (8K tokens) | 긴 문서 |
검색 후 reranking으로 정확도를 크게 향상시킬 수 있습니다.
주요 Reranker:
2단계 검색 파이프라인:
Query → Bi-encoder (1차, 100개 검색) →
Cross-encoder Reranking (2차, Top 5 선정) → LLM
사고(Thought)와 행동(Action)을 교대로 수행하는 패턴입니다.
Thought: 사용자가 날씨를 묻고 있다
Action: search_weather("Seoul")
Observation: 서울 날씨는 영하 5도...
Thought: 정보를 얻었으니 답변 가능
Answer: 서울은 현재 영하 5도입니다.
여러 사고 경로를 탐색하고 최적의 경로를 선택합니다.
구조:
적용 분야: 복잡한 수학 문제, 창의적 글쓰기, 전략 게임
자기 반성을 통한 지속적 개선 메커니즘입니다.
사이클:
Action → Environment Feedback → Self-Reflection →
Memory Update → Improved Action
핵심: 실패 경험을 장기 메모리에 저장하여 동일한 실수 방지
AutoGPT 스타일:
BabyAGI 스타일:
여러 에이전트가 협업하는 프레임워크입니다.
구조:
# 역할 기반 에이전트 협업
UserProxy ↔ AssistantAgent ↔ CodeExecutor
↓
GroupChat (여러 에이전트 토론)
특징:
소프트웨어 개발팀을 시뮬레이션하는 멀티 에이전트 시스템입니다.
에이전트 역할:
워크플로우: 실제 개발 프로세스(PRD → Design → Code → Test)를 모방
상태 머신 기반의 복잡한 에이전트 워크플로우 구축 도구입니다.
핵심 개념:
예시:
# 문서 생성 워크플로우
Research → Draft → Review →
(만족도 평가) → Revise (if needed) → Publish
1. Parallel Function Calling
2. Structured Output
3. Vision Tool Use
실무 패턴:
tools = [
{"name": "search", "description": "웹 검색"},
{"name": "calculator", "description": "수학 계산"},
{"name": "code_executor", "description": "코드 실행"},
{"name": "database_query", "description": "DB 조회"}
]
# LLM이 상황에 맞는 도구 자동 선택
response = llm.invoke(query, tools=tools)
GPT-4V / GPT-4o 계열:
Claude 3 (Opus/Sonnet/Haiku):
Gemini Ultra/Pro:
LLaVA-NeXT (오픈소스):
일반적 구조:
Image → Vision Encoder (CLIP/SigLIP) →
Projection Layer → LLM Input Space → Text Generation
주요 기법:
DALL-E 3:
Midjourney v6:
Stable Diffusion XL (SDXL) & SD3:
Imagen 3 (Google):
ControlNet:
IP-Adapter:
InstantID:
최신 모델 (2026년 기준):
Sora (OpenAI, 2024 공개):
Runway Gen-2/Gen-3:
Pika Labs:
핵심 기술:
1. CLIP 기반 Cross-Modal Retrieval:
Text Query → CLIP Encoder → Semantic Space ← CLIP Encoder ← Images
↓
Similarity Search → Relevant Images
2. Vision-Language Document Understanding:
3. Multimodal Embeddings:
실무 응용:
# 멀티모달 문서 검색
query = "2023년 매출 증가 차트"
results = multimodal_search(
query,
modalities=["text", "image", "chart"],
top_k=5
)
# → PDF 문서, 슬라이드, 차트 이미지 모두 검색
주요 알고리즘:
ColBERT의 핵심:
Query tokens: [Q1, Q2, Q3]
Doc tokens: [D1, D2, D3, D4, D5]
Score = Σ max_sim(Qi, Dj) for all i
(각 쿼리 토큰이 가장 유사한 문서 토큰과 매칭)
2024-2025년 주목받는 기법으로, 임베딩 차원을 유연하게 조정할 수 있습니다.
핵심 아이디어:
실무 적용:
# 1차 검색: 512차원 (빠름)
candidates = search(query_embedding[:512], top_k=100)
# 2차 정제: 1024차원 (정확함)
final = rerank(query_embedding[:1024], candidates, top_k=10)
BM25 (Sparse) + Dense Embedding:
통합 방법:
Final Score = α × BM25_score + (1-α) × Dense_score
Reciprocal Rank Fusion (RRF):
# 두 검색 결과를 순위 기반으로 융합
score(doc) = Σ 1 / (k + rank_i(doc))
하나의 쿼리를 여러 변형으로 확장합니다.
Original: "딥러닝 학습 방법"
Expanded:
- "심층 신경망 훈련 기법"
- "인공신경망 학습 알고리즘"
- "뉴럴 네트워크 최적화"
→ 각각 검색 후 결과 통합
구체적 질문을 추상적 질문으로 변환하여 검색합니다.
Original: "Claude 3 Opus의 context window는?"
Step-Back: "대형 언어 모델의 context window 비교"
→ 더 넓은 맥락의 문서 검색 → 원래 질문 답변
LLM이 검색 쿼리를 최적화합니다.
# 모호한 쿼리 개선
user_query = "그거 언제 나왔어?"
context = get_conversation_context()
optimized_query = llm.rewrite_query(
query=user_query,
context=context
)
# → "Claude 3 Opus 출시 날짜"
문서 청크에 맥락 정보를 추가하여 검색 정확도를 향상시킵니다.
방법:
1. 각 청크에 대해 LLM이 문서 전체 맥락을 요약한 설명 생성
2. "이 청크는 [문서 전체 맥락]에 대한 문서의 일부이며, [청크 내용]을 다룹니다"
3. 맥락이 추가된 청크를 임베딩
효과:
1. Semantic Chunking:
2. Recursive Chunking:
3. Agent-based Chunking:
실무 권장:
# 하이브리드 접근
1. Recursive로 대략적 분할 (문서 구조 기반)
2. Semantic similarity로 정제
3. 청크 크기 제약 (100-800 tokens)
Architecture:
기업 문서 (PDF, DOCX, Slides, Web)
→ Parsing (Unstructured.io, LlamaParse)
→ Semantic Chunking
→ Contextual Embedding
→ Vector DB (Pinecone/Weaviate)
→ GraphRAG (엔티티/관계 추출)
→ Hybrid Search (BM25 + Dense)
→ Reranking (Cohere Rerank)
→ LLM + Citation
핵심 포인트:
멀티 에이전트 구성:
워크플로우 (LangGraph):
User Query → Classifier →
├─ FAQ (simple) → Answer
├─ RAG (medium) → Document Search → Answer
└─ Complex → Ticket Creation + Human Escalation
성과:
기능:
Architecture:
Code Query →
├─ Code Embedding (CodeBERT/GraphCodeBERT)
├─ AST Parsing
├─ Repository Structure Analysis
└─ Function Call Detection
Context → GPT-4/Claude + RAG →
├─ Code Completion
├─ Explanation
└─ Refactoring Suggestion
주요 도구:
시나리오: 마케팅 자료 자동 생성
Pipeline:
Product Info (Text + Images) →
├─ Vision-Language Analysis
├─ Brand Guideline RAG
└─ Template Selection
Generation →
├─ Copywriting (GPT-4)
├─ Image Generation (DALL-E 3/Midjourney)
├─ Layout Design (Auto)
└─ Final Assembly (PPTX/PDF)
적용 사례:
최신 트렌드: Deep Research (2025-2026)
Perplexity Pro Research:
Claude + Deep Research:
Architecture:
Research Question →
├─ Query Decomposition (5-10 sub-questions)
├─ Parallel Web Search (각 sub-question)
├─ Source Evaluation (신뢰도 평가)
├─ Cross-Reference Check
└─ Synthesis & Report Generation
Iteration →
├─ Gap Analysis
├─ Follow-up Questions
└─ Refinement
최신 모델들의 Context Window:
영향:
Sparse MoE Architecture:
Agent에서의 응용:
Trend:
기술:
안전하고 유용한 AI:
실무 적용:
| 알고리즘 | 핵심 개념 | 장점 | 사용 시기 |
|---|---|---|---|
| Naive RAG | Query → Retrieve → Generate | 간단, 빠름 | 기본 Q&A |
| Self-RAG | 자체 검색 필요성 판단 | 효율성, 정확도 향상 | 복잡한 쿼리 |
| CRAG | 검색 결과 품질 평가 + 웹 검색 | 신뢰도 높음 | Fact-checking 중요 |
| HyDE | 가상 답변으로 검색 | 의미적 검색 향상 | 추상적 질문 |
| GraphRAG | 그래프 구조 활용 | 관계 파악, 전체 맥락 | 복잡한 지식 베이스 |
| 알고리즘 | 핵심 개념 | 장점 | 사용 시기 |
|---|---|---|---|
| ReAct | Thought-Action-Observation | 해석 가능성 | 도구 사용 필요 |
| Tree of Thoughts | 사고 트리 탐색 | 창의적 문제 해결 | 복잡한 추론 |
| Reflexion | 자기 반성 + 메모리 | 지속적 개선 | 반복 작업 |
| AutoGen | 멀티 에이전트 협업 | 역할 분담 효과 | 복잡한 프로젝트 |
| LangGraph | 상태 머신 워크플로우 | 유연한 제어 | 복잡한 파이프라인 |
| 알고리즘 | 핵심 개념 | 장점 | 사용 시기 |
|---|---|---|---|
| BM25 | Sparse retrieval | 키워드 매칭 강함 | 정확한 용어 검색 |
| Dense Retrieval | Semantic embedding | 의미 파악 우수 | 자연어 쿼리 |
| Hybrid Search | Sparse + Dense | 양쪽 장점 결합 | 대부분의 경우 |
| ColBERT | Late interaction | 정확도 + 효율성 | 고품질 검색 필요 |
| Reranking | 2단계 정제 | 최종 정확도 향상 | 정확도 중요 |
LLM 오케스트레이션:
Vector DB:
Multimodal:
Agent Frameworks:
논문:
블로그 & 문서:
2026년 현재, LLM 시스템은 RAG, Agent, Multimodal, Advanced Retrieval 기법들의 통합을 통해 더욱 강력하고 실용적인 애플리케이션으로 진화하고 있습니다.
핵심 트렌드:
1. Long Context + RAG의 시너지: RAG는 사라지지 않고 정제된 형태로 진화
2. 멀티 에이전트 시스템의 부상: 복잡한 작업을 역할 분담으로 해결
3. Multimodal의 일상화: 텍스트만이 아닌 모든 형태의 정보 처리
4. 효율성과 성능의 균형: 작은 모델 + 똑똑한 전략
실무에서는 최신 알고리즘을 맹목적으로 따르기보다는, 문제의 본질을 파악하고 적절한 도구를 선택하는 것이 중요합니다. 간단한 RAG로 충분한 경우도 많고, 복잡한 멀티 에이전트가 필요한 경우도 있습니다.
지속적인 실험, 평가, 개선의 사이클을 통해 최적화된 LLM 시스템을 구축하시기 바랍니다!