청크 설정·분할
청크 설정·분할 (Chunk Settings)
청킹(Chunking)이란
지식 베이스에 가져온 문서는 청크(chunk) 라고 하는 더 작은 조각으로 분할돼요. 큰 책을 장(chapter)과 문단(paragraph)으로 나누는 것과 비슷하다고 생각하면 돼요. 하나의 거대한 텍스트 블록에서는 특정 정보를 빨리 찾을 수 없지만, 잘 정리된 구획을 만들어 두면 검색이 훨씬 효율적이 되죠.
사용자가 질문을 하면 시스템은 이 청크들을 검색해 관련 정보를 찾아 LLM에 컨텍스트로 제공해요. 청킹이 없다면 매 질문마다 문서 전체를 처리해야 해서 느리고 비효율적일 거예요.
핵심 청크 파라미터
- 구분자(Delimiter): 텍스트를 나누는 문자나 문자열이에요. 예를 들어
\n\n은 문단 경계에서,\n은 줄바꿈에서 텍스트를 나눠요.
구분자는 청킹 과정에서 제거돼요. 예를 들어 A를 구분자로 쓰면 CBACD는 CB와 CD로 나뉘어요.
정보 손실을 피하려면, 문서에 자연스럽게 등장하지 않는 비-내용 문자를 구분자로 쓰는 게 좋아요.
- 최대 청크 길이(Maximum chunk length): 각 청크의 최대 크기(문자 단위)예요. 이 길이를 넘는 텍스트는 구분자 설정과 무관하게 강제로 분할돼요.
청크 모드 선택하기
청크 모드는 지식 베이스를 만든 뒤에는 바꿀 수 없어요. 다만 구분자·최대 청크 길이 같은 청크 설정은 언제든 조정할 수 있어요.
General(일반) 모드
General 모드에서는 모든 청크가 동일한 설정을 공유해요. 매칭된 청크가 곧바로 검색 결과로 반환돼요.
청크 설정
구분자와 최대 청크 길이 외에도 청크 오버랩(Chunk overlap) 을 설정할 수 있어요. 인접한 청크 사이에 몇 글자씩 겹치게 할지 지정하는 건데, 의미적 연결을 보존하고 중요한 정보가 청크 경계에서 잘리는 걸 막아 줘요.
예를 들어 50자 오버랩이면 한 청크의 마지막 50자가 다음 청크의 첫 50자로 다시 등장해요.
Parent-child(부모-자식) 모드
Parent-child 모드에서는 텍스트를 작은 자식 청크(child chunk) 와 더 큰 부모 청크(parent chunk) 두 층위로 나눠요. 쿼리가 자식 청크와 매칭되면, 그 자식 청크의 전체 부모 청크가 검색 결과로 반환돼요.
이 방식은 RAG의 흔한 딜레마를 해결해요. 작은 청크는 정밀한 쿼리 매칭이 가능하지만 맥락이 부족하고, 큰 청크는 풍부한 맥락을 주지만 검색 정확도가 떨어지죠. Parent-child 모드는 둘을 조화시켜서 — 정밀하게 검색(precision) 하고 맥락 있게 응답(context) 하도록 해요.
부모 청크 설정
부모 청크는 Paragraph(문단) 또는 Full Doc(전체 문서) 모드로 만들 수 있어요.
- Paragraph: 지정한 구분자와 최대 청크 길이에 따라 문서를 여러 개의 부모 청크로 분할해요. 섹션이 잘 구조화되어 있고 각 섹션이 독립적으로 의미 있는 맥락을 제공하는 긴 문서에 적합해요.
- Full Doc: 문서 전체가 하나의 부모 청크가 돼요. 전체 맥락이 특정 부분을 이해하는 데 필수적인 작고 응집력 있는 문서에 적합해요.
더 알아보기 (Learn more)
- 분할된 청크를 어떻게 임베딩·인덱싱할지는 인덱스 방법과 검색 설정 문서를 참고해요.