3

Advanced RAG 패턴: Self-RAG와 CRAG 비교

Day 4: 프로덕션 RAG

학습 목표
  • Self-RAG의 네 토큰(Retrieve·ISREL·ISSUP·ISUSE)이 각각 무엇을 판단하는지 구분한다
  • Self-RAG와 Corrective RAG(CRAG)의 차이점을 명확히 이해한다
  • 제조 현장에서 두 패턴을 언제 사용해야 하는지 결정할 수 있다
  • Adaptive RAG에서 주제 축과 복잡도 축을 분리해 전략을 선택하는 방법을 안다

Advanced RAG 패턴 비교

Self-RAG: 스스로 판단하는 RAG

원논문(Asai et al., 2023)의 반영 토큰은 Retrieve · ISREL · ISSUP · ISUSE 네 개다. 이 네 이름을 그대로 쓴다. 오늘 만드는 SelfRAG 클래스의 메서드 이름과도 같다.

[Self-RAG 흐름]

1. 질문 수신
2. 검색 필요성 판단 (Retrieve 토큰)
   → No: LLM 자체 지식으로 답변
   → Yes: 문서 검색
3. 검색된 문서의 관련성 평가 (ISREL 토큰)
   → 관련 없음: 쿼리 수정 후 재검색
4. 답변 생성
5. 답변이 컨텍스트에 뒷받침되는지 검증 (ISSUP 토큰)
   → 뒷받침 안 됨: 답변 재생성
6. 답변이 질문에 유용한지 평가 (ISUSE 토큰, 1~5점)
7. 최종 답변 선택

이름을 헷갈리지 말 것. ISREL 은 「검색이 필요한가」가 아니라 「검색된 문서가 관련있는가」이고, 답변의 충실도는 ISSUP 이 맡는다. ISCRIT 이라는 토큰은 없다. 원논문은 ISREL·ISSUP·ISUSE 셋을 묶어 critique 토큰이라 부르는데, 그 총칭을 개별 토큰 이름으로 쓰면 안 된다.

Self-RAG 특성:

  • 모델이 검색 여부를 스스로 결정
  • 각 단계에서 자체 평가 → 할루시네이션 감소
  • 단점: LLM 호출 횟수 증가 (느리고 비용 높음)

CRAG: 검색 결과를 교정하는 RAG

[CRAG 흐름]

1. 질문 수신 + 문서 검색
2. 관련성 평가 (각 문서)
   → 관련: 핵심 정보 추출 (Knowledge Refinement)
   → 무관: 웹 검색 또는 쿼리 재작성
   → 혼합: 두 전략 결합
3. 교정된 지식으로 답변 생성

CRAG 특성:

  • 검색 실패 시 대안 전략 자동 실행
  • 관련 없는 문서를 필터링하여 품질 향상
  • 단점: 외부 검색 API 필요 (또는 내부 대안 검색)

제조 현장 적용 가이드

상황권장 패턴이유
안전 지침 질의Self-RAG검색 품질 자체 검증 필수
에러 코드 진단CRAG코드 없으면 다른 문서로 대체
일반 설비 정보기본 RAG빠른 응답 우선
복잡한 고장 분석Adaptive복잡도에 따라 전략 선택

Adaptive RAG: 최적 전략 선택기

복잡도와 주제는 서로 다른 축이다. 「안전」은 복잡도가 아니라 주제 분류이므로 복잡도 분기 안에 섞어 넣으면 안 된다. 오늘 코드 태스크가 둘을 따로 처리하는 이유다.

def adaptive_rag(question):
    # 축 1: 주제 — 안전 질의는 복잡도와 무관하게 검색을 강제한다
    if is_safety_query(question):          # KOSHA, 보호구, 유해물질 …
        return self_rag(question, strict=True)

    # 축 2: 복잡도
    complexity = classify_complexity(question)

    if complexity == "simple":     # 일반 개념·정의, 검색 불필요
        return llm_direct(question)
    elif complexity == "standard":  # 규격 조회, 에러 코드 — 단순 RAG
        return basic_rag(question)
    else:                          # complex — 비교·분석, 분해 후 다중 검색
        return self_rag(question)

복잡도 세 값의 뜻은 오늘 코드 태스크의 QueryComplexity 와 같다.

SIMPLE일반 개념·정의, 검색 불필요"OEE란?", "BM25란?"
STANDARD특정 장비·규격·절차 조회"CNC-M500 주축 공차는?"
COMPLEX비교·분석·복합 질문"CNC-M500과 SPN-200 사양 비교"

핵심: 하나의 패턴만 고집하지 말고, 쿼리 유형에 따라 최적 전략을 선택하라. 그리고 「무엇으로 나누는가」의 축을 섞지 마라.

AI로 학습하기 — 꿀팁
Self-RAG vs CRAG 의사결정 플로우차트AI 학습 팁

제조 현장 쿼리에서 Self-RAG와 CRAG 중 어떤 패턴을 선택할지 결정하는 플로우차트를 만들면 설계 판단이 명확해집니다.

제조 설비 유지보수 RAG 시스템에서 Self-RAG와 CRAG(Corrective RAG)를 선택하는 의사결정 플로우차트를 마크다운 텍스트 다이어그램(ASCII 또는 Mermaid)으로 만들어줘. 포함할 분기 조건: (1) 검색된 컨텍스트 신뢰도 점수 임계값, (2) 쿼리 유형(안전 절차 vs 일반 정보), (3) 컨텍스트 개수 부족 여부, (4) 외부 검색 허용 여부(내부망 제약). 각 분기 결과에서 어떤 행동(재검색/답변생성/거절/외부검색)을 취하는지 명시하고, 이 플로우를 LangGraph로 구현할 때 노드 이름도 함께 적어줘.
이 팁이 도움이 됐나요?
핵심 포인트
  • Self-RAG의 반영 토큰은 Retrieve·ISREL·ISSUP·ISUSE 넷이다. ISCRIT 이라는 토큰은 없다
  • Self-RAG는 각 단계에서 자체 평가하여 할루시네이션을 줄이지만 LLM 호출이 늘어 느리다
  • CRAG는 검색 실패 시 대안 전략으로 품질을 유지한다
  • Adaptive RAG는 주제(안전 여부)와 복잡도를 서로 다른 축으로 두고 전략을 고른다
용어