청킹(Chunking)이 RAG의 80%를 결정한다: 시맨틱 청킹과 Parent-Child 계층형 인덱스
단순 글자 수 기반 분할(RecursiveCharacter)의 문맥 단절을 극복하고, 작은 청크로 정확히 검색한 뒤 넓은 문맥의 부모 문서를 LLM에 넘기는 계층형 청킹 설계법입니다.
홍은선 연구원
HongLabAI AI 엔지니어링 리드
📌실무 핵심 요약 (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)
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분기 감가상각비 회계 처리 기준")💬트리 구조 기술 토론 (0)
해당 주제에 관한 질의응답 및 피드백은 계층형 트리 댓글로 정리됩니다.
작성된 기술 토론이 아직 없습니다. 메인 보드에서 첫 번째 질문을 남겨보세요!
같은 트리 브랜치의 추천 아티클
JSON Schema 기반 100% 규격 준수 구조화 출력(Structured Outputs) 실무 적용기
LLM이 임의의 텍스트 대신 백엔드 API 규격에 완벽히 들어맞는 타입 세이프 JSON을 반환하도록 보장하는 실전 가이드입니다.
BM25 키워드 + 벡터 임베딩 하이브리드 검색으로 RAG 정확도 40% 끌어올리기
단순 벡터 유사도 검색의 치명적 한계(고유명사, 코드 번호, 약어 오탐지)를 BM25 역색인과 결합해 해결한 하이브리드 RAG 아키텍처입니다.
도구 호출(Tool Calling)과 자기 교정(Self-Correction) 루프로 완성하는 자율 에이전트
에러 발생 시 멈추지 않고 스스로 원인을 분석하고 파라미터를 수정해 성공할 때까지 재시도하는 견고한 에이전트 루프 패턴입니다.