Files
2nd/10_Wiki/Topics/AI_and_ML/Adaptive RAG.md
T
Antigravity Agent 0441f6e2a2 feat(wiki): implement P-Reinforce v3.0 standard & integrate 26+ new knowledge artifacts
- Formalized automatic record migration protocol in System Manual.
- Integrated high-density knowledge for RAG, AI, Business Strategy, and Leadership.
- Enhanced graph connectivity across core strategic hubs.
- Archived raw data and updated timeline records.
2026-05-04 22:40:32 +09:00

3.4 KiB


id: P-Reinforce-AUTO-ADR-001 category: AI_and_ML confidence_score: 1.00 tags: [auto-reinforced, adaptive-rag, rag, query-routing, search-optimization] last_reinforced: 2026-05-04

Adaptive RAG

📌 한 줄 통찰 (The Karpathy Summary)

"질문의 무게에 따른 맞춤형 검색: 단순한 질문은 LLM의 지식으로 처리하고, 복잡한 질문은 정밀한 검색 파이프라인을 가동하여 리소스 낭비를 줄이고 응답 품질을 최적화하는 동적 검색 아키텍처."

📖 구조화된 지식 (Synthesized Content)

적응형 RAG(Adaptive RAG)는 사용자의 쿼리 복잡도를 사전에 분석하여 가장 적합한 검색 전략을 동적으로 선택하는 고도화된 RAG 프레임워크입니다.

  1. 동적 쿼리 라우팅 (Dynamic Query Routing):

    • Level 1 (단순): LLM이 이미 학습한 지식으로 충분히 답변 가능한 질문. 검색 없이 즉시 응답하여 지연 시간과 비용을 최소화합니다.
    • Level 2 (중간): 단일 문서나 제한된 출처 확인이 필요한 질문. 표준 Retrieval-Augmented Generation (RAG) 프로세스를 가동합니다.
    • Level 3 (복잡): 여러 문서 간의 교차 검증이나 추론이 필요한 다중 홉(Multi-hop Reasoning) 질문. Agentic RAGGraphRAG를 가동하여 심층 리서치를 수행합니다.
  2. 핵심 메커니즘:

    • 쿼리 분류기 (Query Classifier): 질문의 의도, 구체성, 최신성 필요 여부 등을 판단합니다.
    • 검색 전략 최적화: 매번 같은 방식으로 검색하는 것이 아니라, 필요에 따라 키워드, 벡터, 또는 웹 검색을 조합합니다.

⚖️ Trade-offs & Caveats

  • 분류 오류의 리스크: 쿼리 분류기가 질문의 복잡도를 과소평가하면 검색 없이 잘못된 답변(환각)을 내놓을 수 있고, 과대평가하면 불필요한 검색 비용과 시간이 발생합니다.
  • 시스템 복잡성: 여러 갈래의 검색 파이프라인을 유지 관리해야 하므로 전체 아키텍처의 복잡도가 증가합니다.

💻 실전 구현 코드 (Boilerplate)

쿼리 복잡도에 따라 검색 여부를 결정하는 라우터의 개념적 예시입니다.

def adaptive_rag_router(query):
    # 1. 쿼리 복잡도 분석 (간단한 예시: 길이 및 특정 키워드 기반)
    complexity_score = analyze_complexity(query)
    
    if complexity_score < 0.3:
        # LLM 직접 응답
        return llm.generate(f"지식 기반 답변: {query}")
    
    elif complexity_score < 0.7:
        # 표준 RAG 가동
        context = vector_db.search(query)
        return llm.generate_with_context(query, context)
    
    else:
        # 에이전틱 리서치 모드 가동
        return agent_engine.run_mission(query)

def analyze_complexity(query):
    # 실제로는 소형 모델이나 프롬프트를 통해 판단
    if "비교해줘" in query or "분석해줘" in query:
        return 0.9
    return 0.2

🔗 지식 연결 (Graph)


Last updated: 2026-05-04