기본 발상
의미 기반 분할은 각 문장을 임베딩하고 인접 문장 사이의 코사인 유사도를 계속 계산하다가, 값이 기준선 아래로 떨어지는 지점에서 새 청크를 시작해. 일정한 길이가 아니라 주제가 바뀌는 경계에 맞춰 나누는 방식이야.
때로 큰 차이를 만드는 이유
블로그 글, 녹취록, 소설처럼 길게 이어지는 문서에서는 의미 기반 분할의 검색 관련성이 고정 크기 분할보다 10–20% 높아질 수 있어. 한 청크가 한 주제에 머무르므로 모델이 생각 중간에서 뚝 잘린 조각을 받지 않거든.
실제 서비스에서 자주 불리한 이유
- 비용. 모든 문장을 분할할 때 한 번, 저장할 때 한 번 임베딩해야 해.
- 지연 시간. 80페이지 문서를 나누는 데 몇 분씩 걸릴 수 있어.
- 설명하기 어려움. 청크가 이상하게 나와도 왜 그 지점에서 잘렸는지 밝히기 쉽지 않아.
- 구조가 있는 문서에서는 이득이 작음. 마크다운 제목이 이미 주제 경계를 표시하므로 의미 기반 분할을 더해도 얻는 것이 거의 없어.
구조 없는 긴 산문에는 의미 기반 분할을 검토하고, 제목이나 마크업이 조금이라도 있다면 구조 기반 분할부터 시도해.