상위: AI & ML
매우 긴 문서를 LLM이 처리하기 적합한 작은 단위(청크)로 나누는 과정. RAG 시스템의 검색 효율성과 답변 품질에 직접적인 영향을 미침.
청킹의 목적 및 중요성
- LLM의 컨텍스트 윈도우 한계 극복: 대부분의 LLM은 한 번에 처리할 수 있는 텍스트 길이에 제한이 있음.
- 검색 효율성 증대: 작은 단위로 분할된 청크는 Vector Database에서 더 정확하게 검색될 가능성이 높음.
- 관련성 높은 정보 제공: 질문과 직접적으로 관련된 부분만 LLM에 전달하여 불필요한 정보(노이즈)를 줄임.
주요 청킹 전략
고정 크기 청킹 (Fixed-size Chunking)
가장 기본적인 방법으로, 정해진 문자 수 또는 토큰 수만큼 텍스트를 일정한 크기로 자름.
- 장점: 구현이 간단하고 빠름.
- 단점: 의미적 경계를 무시하고 잘릴 수 있어 문맥 손실 발생 가능.
재귀적 청킹 (Recursive Chunking)
여러 구분자(예: 문단, 문장, 단어)를 사용하여 텍스트를 재귀적으로 분할. 큰 단위부터 작은 단위로 점진적으로 나눔.
- 장점: 문서의 계층적 구조를 어느 정도 보존하며 문맥 손실을 최소화.
- 단점: 적절한 구분자 선택이 중요하며, 복잡한 문서에는 한계가 있음.
의미 기반 청킹
텍스트의 의미적 유사도를 분석하여 주제가 바뀌는 지점을 기준으로 청크를 분할. 각 청크가 하나의 완결된 의미 단위를 가지도록 함.
- 장점: 문맥 보존 능력이 뛰어나 검색 정확도 향상에 기여.
- 단점: 구현이 복잡하고, Embedding 모델의 성능에 의존적.
문서 구조 기반 청킹 (Document Structure-based Chunking)
문서의 제목, 문단, 섹션 등 미리 정의된 구조를 활용하여 청크를 분할.
- 장점: 문서의 논리적 흐름을 가장 잘 반영하여 문맥 손실이 적음.
- 단점: 구조화되지 않은 문서에는 적용하기 어려움.