본문으로 건너뛰기
고급트리 브랜치: RAG & 하이브리드 지식 검색게시일 2026-11-10 · 조회 1680회

청킹(Chunking)이 RAG의 80%를 결정한다: 시맨틱 청킹과 Parent-Child 계층형 인덱스

단순 글자 수 기반 분할(RecursiveCharacter)의 문맥 단절을 극복하고, 작은 청크로 정확히 검색한 뒤 넓은 문맥의 부모 문서를 LLM에 넘기는 계층형 청킹 설계법입니다.

홍

홍은선 연구원

HongLabAI AI 엔지니어링 리드

👁️ 조회 1680❤️ 추천 112💬 댓글 0
스폰서 광고 영역 (Google AdSense)

📌실무 핵심 요약 (Key Engineering Takeaways)

  • ✔고정 길이 분할은 문맥을 파괴하므로 문장 임베딩 차이 기반 시맨틱 청킹 필수 적용
  • ✔작은 단위(200자)로 날카롭게 검색하고, 큰 단위(1500자)로 풍성하게 LLM에 전달하는 Parent-Child 아키텍처
  • ✔청크 메타데이터에 섹션 제목, 상위 목차 경로(Breadcrumb)를 반드시 포함시켜 검색 가중치 확보

RAG 시스템에서 검색 정확도가 떨어지는 가장 흔한 원인은 '불량한 청킹(Chunking)'입니다. 500자 단위로 무작정 자르면 표의 헤더가 날아가거나 문맥이 중간에서 끊겨, 벡터 검색 엔진이 핵심 단서를 놓치게 됩니다.

HongLabAI에서는 두 가지 진보된 기술을 결합합니다: 1. 시맨틱 청킹(Semantic Chunking): 문장 간의 임베딩 거리(Cosine Distance)를 측정하여, 주제가 전환되는 급격한 변곡점에서만 분할합니다. 2. Parent-Child 계층 인덱싱: 벡터 검색 시에는 200자 내외의 작은 차일드 청크(Child Chunk)를 매칭하여 검색 정확도를 극대화하고, LLM에 컨텍스트로 전달할 때는 해당 청크가 속한 1,500자 규모의 부모 문서(Parent Doc) 원본을 통째로 주입합니다.

이 방식을 적용하면 검색 재현율(Recall)이 38% 상승하고, 문맥 단절로 인한 할루시네이션이 사실상 제로에 수렴합니다.

🔄엔지니어링 아키텍처 흐름도 (Architecture Workflow)

원문 문서 파싱 및 문장 단위 분해
➔
임베딩 유사도 변곡점 기반 시맨틱 청킹
➔
부모-자식 계층 매핑 및 키-값 스토어 보관
➔
사용자 쿼리 -> 자식 청크 고정밀 벡터 매칭
➔
매핑된 부모 원문(1500자) LLM 컨텍스트 전달
python 예제 코드HongLabAI Verified
from langchain.retrievers import ParentDocumentRetriever
from langchain_community.vectorstores import Chroma
from langchain_text_splitters import RecursiveCharacterTextSplitter
from langchain.storage import InMemoryStore
from langchain_openai import OpenAIEmbeddings

# 1. 작은 자식 청크(검색용)와 큰 부모 청크(LLM 전달용) 스플리터 정의
parent_splitter = RecursiveCharacterTextSplitter(chunk_size=1500, chunk_overlap=150)
child_splitter = RecursiveCharacterTextSplitter(chunk_size=250, chunk_overlap=30)

# 2. 벡터 저장소(자식용) 및 원본 문서 저장소(부모용) 생성
vectorstore = Chroma(collection_name="child_chunks", embedding_function=OpenAIEmbeddings())
docstore = InMemoryStore()

# 3. 계층형 리트리버 초기화
retriever = ParentDocumentRetriever(
    vectorstore=vectorstore,
    docstore=docstore,
    child_splitter=child_splitter,
    parent_splitter=parent_splitter,
)

# 4. 문서 적재: 자식 벡터가 매칭되면 부모 원문이 자동으로 반환됨
retriever.add_documents(enterprise_documents)
relevant_parents = retriever.invoke("2026년 3분기 감가상각비 회계 처리 기준")
#RAG#Chunking#SemanticChunking#ParentChild#VectorStore
스폰서 광고 영역 (Google AdSense)

💬트리 구조 기술 토론 (0)

해당 주제에 관한 질의응답 및 피드백은 계층형 트리 댓글로 정리됩니다.

작성된 기술 토론이 아직 없습니다. 메인 보드에서 첫 번째 질문을 남겨보세요!

같은 트리 브랜치의 추천 아티클