전체 그래프
Foundational Concepts

Chunking

ai-mlconcept

상위: AI & ML

매우 긴 문서를 LLM이 처리하기 적합한 작은 단위(청크)로 나누는 과정. RAG 시스템의 검색 효율성과 답변 품질에 직접적인 영향을 미침.

청킹의 목적 및 중요성

  • LLM의 컨텍스트 윈도우 한계 극복: 대부분의 LLM은 한 번에 처리할 수 있는 텍스트 길이에 제한이 있음.
  • 검색 효율성 증대: 작은 단위로 분할된 청크는 Vector Database에서 더 정확하게 검색될 가능성이 높음.
  • 관련성 높은 정보 제공: 질문과 직접적으로 관련된 부분만 LLM에 전달하여 불필요한 정보(노이즈)를 줄임.

주요 청킹 전략

고정 크기 청킹 (Fixed-size Chunking)

가장 기본적인 방법으로, 정해진 문자 수 또는 토큰 수만큼 텍스트를 일정한 크기로 자름.

  • 장점: 구현이 간단하고 빠름.
  • 단점: 의미적 경계를 무시하고 잘릴 수 있어 문맥 손실 발생 가능.

재귀적 청킹 (Recursive Chunking)

여러 구분자(예: 문단, 문장, 단어)를 사용하여 텍스트를 재귀적으로 분할. 큰 단위부터 작은 단위로 점진적으로 나눔.

  • 장점: 문서의 계층적 구조를 어느 정도 보존하며 문맥 손실을 최소화.
  • 단점: 적절한 구분자 선택이 중요하며, 복잡한 문서에는 한계가 있음.

의미 기반 청킹

텍스트의 의미적 유사도를 분석하여 주제가 바뀌는 지점을 기준으로 청크를 분할. 각 청크가 하나의 완결된 의미 단위를 가지도록 함.

  • 장점: 문맥 보존 능력이 뛰어나 검색 정확도 향상에 기여.
  • 단점: 구현이 복잡하고, Embedding 모델의 성능에 의존적.

문서 구조 기반 청킹 (Document Structure-based Chunking)

문서의 제목, 문단, 섹션 등 미리 정의된 구조를 활용하여 청크를 분할.

  • 장점: 문서의 논리적 흐름을 가장 잘 반영하여 문맥 손실이 적음.
  • 단점: 구조화되지 않은 문서에는 적용하기 어려움.

청킹 시 고려사항

  • 청크 크기 (Chunk Size): LLM의 컨텍스트 윈도우 크기, 문서의 특성, 질문 유형에 따라 최적의 크기가 달라짐.
  • 오버랩 (Overlap): 청크 간에 겹치는 부분을 두어 문맥 손실을 방지하고, LLM이 정보를 더 잘 연결하도록 도움.
  • 메타데이터 포함: 각 청크에 원본 문서의 제목, 저자, 페이지 번호 등 Metadata를 포함하여 검색 정확도를 높임.