안녕하세요. 위기의 코딩맨입니다.
오늘은 RAG의 검색과 응답을 최적화하는 방법 중 하나인 Chunking에 대해서
간단하게 알아보도록 하겠습니다.

일단 청킹 작업은 관련 문서를 가져오는
Retrieval에서 개선할 수 있는 요소 중 하나라고 생각해주시면 됩니다.
벡터화된 문서를 검색하는 과정을 조 금더 정확하게 검색되도록 최적화 하는 방법을 알아보는 것입니다!

[ chunking ]
문서를 검색하려면, 해당 문서를 가공하여 최적화된 상태로 변환하는 과정이 필요합니다.
이러한 전처리 과정 중 핵심적인 과정이 청킹 입니다.
문서를 분할하는 단계로 보시면 됩니다.
- 관리에 용이함
- 검색 정확도가 높아짐
- 일관성 유지
기본적으로 청킹 작업을 진행하게되면 문자 수를 기반으로 분할으로 진행됩니다.
- 구조가 고려되지 않음
- 중요한 정보가 분할되어 저장
- 최적화하기 어려울수 있음
이러한 장단점이 있지만, 단점을 보안하기 위해
부모-자식 분할 방식이 있는데
해당 방식에 대해서 알아보겠습니다.
[ parent-child chunking ]
부모-자식 분할은 정보를 구조적으로 나누어 정확도를 높일수 있는 방법입니다.
문서의 계층 구조를 유지하면서 세부적인 내용을 저장하는 방식으로 보시면 될 것같습니다.
- 부모 문서로 나눈다
- 자식 문서로 세분화 한다.
자식 문서는 벡터 데이터 베이스에 저장되고,
부모 문서는 별도의 저장소에 원본 형태로 보관하여 진행됩니다.
사용자가 검색하게되면,
자식 문서를 기반으로 유사성을 검색 -> 자식 문서가 속한 부모 문서 반환
형태로 검색이 진행됩니다.
간단한 Python 소스로도 설명해보겠습니다.
from lanchain_text_splitters import RecursiveCharacterTextSplitter
from langchain.storage import InMemoryStore
from lanchain_community.bectorstores import Chroma
from lanchain_openai import OpenAIEmbeddings
from lanchain.retrievers import ParentDocumentRetriever
# 부모
parent_split = RecursiveCharacterTextSplitter(chunk_size = 1000)
# 자식
child_split = RecursiveCharacterTextSplitter(chunk_size = 200)
# 벡터 저장소
vector_store = Chroma(collection_name = 'split_parents', embedding_function = OpenAIEmbeddings())
# 부모 저장소
store = InMemoryStore()
# ParentDocumentRetriever
retriever = ParentDocumentRetriever(
vectorstore = vector_store,
docstore = store,
child_splitter = child_split,
parent_splitter = parent_split
)
# 설정한 ParentDocumentRetriever에 문서를 저장
# docs는 문서 파일
retriever.add_documents(docs)
위에서 설명한 내용을 그대로 코드를 만들어봤습니다.
부모, 자식을 분할하여 저장하면 구조적으로 나뉘어
검색에 대한 결과가 정확도가 높아지는 장점이 있으니, 알아두시면 좋을 것 같습니다.

'기타' 카테고리의 다른 글
| [We-Co] ChatGPT-5 - 달라진 GPT-5를 알아보자! (6) | 2025.08.08 |
|---|---|
| [We-Co] RAG - LangChain , return_source_documents (0) | 2025.07.16 |
| [We-Co] langchain - FewShotPromptTemplate란 무엇일까! (0) | 2025.07.02 |
| [We-Co] RAG(Retrieval-Augmented Generation) - 검색, 문서 (1) | 2025.06.25 |
| [We-Co] Jenkins, Gitlab 연동(Docker) [3] (0) | 2025.02.07 |