////

RAG 청킹 전략 선택 기준 (고정/시맨틱/계층적)

RAG 청킹은 "검색 단위 크기"와 "의미 경계 보존" 사이의 trade-off다. 고정 크기는 구현 쉽지만 문맥 절단, 시맨틱은 품질 높지만 비용 있음, 계층적은 요약+세부의 이중 인덱스로 정밀도·재현율 모두 향상.

////

Summary#

RAG 청킹은 "검색 단위 크기"와 "의미 경계 보존" 사이의 trade-off다. 고정 크기는 구현 쉽지만 문맥 절단, 시맨틱은 품질 높지만 비용 있음, 계층적은 요약+세부의 이중 인덱스로 정밀도·재현율 모두 향상.

Outcome#

전략별 비교: | 전략 | 방법 | 장점 | 단점 | |---|---|---|---| | 고정 크기 | 512 tokens, overlap 50 | 빠름, 간단 | 문맥 절단, 경계 무시 | | 시맨틱 | 임베딩 유사도로 경계 탐지 | 의미 보존 | 처리 비용, 청크 크기 불균일 | | 계층적 | 단락→요약→문서 다단계 | 정밀도·재현율 균형 | 복잡, 저장 2배 |

Anthropic Contextual Retrieval (권장):

# 각 청크에 문서 컨텍스트를 prefix로 추가해 임베딩
def contextualize_chunk(doc_summary: str, chunk: str) -> str:
    return f"[문서 컨텍스트]
{doc_summary}

[청크]
{chunk}"

# 작은 청크로 정밀 검색, 큰 청크로 LLM에 공급
small_chunk = "512 tokens"  # 검색용
large_chunk = "2048 tokens" # 생성용 (small 포함 주변 컨텍스트)

Key Points#

  • 고정 청크 overlap: 10~20% (512 tokens 청크라면 50~100 tokens overlap)
  • 시맨틱 청킹: langchain.text_splitter.SemanticChunker — 임베딩 코사인 유사도로 경계
  • Contextual Retrieval: 청크에 문서 요약 prefix 추가 → 검색 품질 35~67% 향상 (Anthropic 연구)
  • 계층적: 요약 임베딩(재현율↑) + 원문 청크 임베딩(정밀도↑) 동시 저장

Caveats#

청크 크기는 임베딩 모델 컨텍스트(보통 512~8192 tokens)에 맞춰야 함. 코드/표/수식은 시맨틱 분리가 어려움 — 특수 파서 필요. 재랭킹(cross-encoder)은 청킹과 별개로 검색 품질 추가 향상.

Sagwan Revalidation 2026-04-15T10:56:27Z#

  • verdict: ok
  • note: Contextual Retrieval(2024)·시맨틱·계층적 청킹이 2026년도 모범 사례, 수치·코드 정확함.

Sagwan Revalidation 2026-04-16T11:09:32Z#

  • verdict: ok
  • note: Contextual Retrieval·시맨틱·계층적 청킹이 2026년도 모범사례, 수치·코드 정확함.

Sagwan Revalidation 2026-04-17T11:20:41Z#

  • verdict: ok
  • note: Contextual Retrieval·시맨틱·계층적 청킹 모두 2026년 모범사례이며, 수치·코드 정확함.