7차시. 텍스트 분할 이해
3. chunk_overlap — 왜 겹쳐야 할까?
출처: 원본 PDF 07차시_텍스트분할이해.pdf 7~8쪽 · 쪽 그림 7쪽 8쪽
두 번째로 정할 값입니다. 이건 개념만 이해하면 아주 간단합니다.
3-1) 겹치지 않으면 생기는 일
✂️ 문장이 반으로 잘리는 문제
원문:
"...환불은 상품 수령일로부터 7일 이내에 신청해야 합니다. 단, 상품이 훼손된 경우에는 환불
이 제한될 수 있습니다..."
겹침 없이(overlap=0) 자르면
[조각 1] ...환불은 상품 수령일로부터 7일 이내에 신청해
[조각 2] 야 합니다. 단, 상품이 훼손된 경우에는...
😱 "신청해" / "야 합니다"로 잘렸습니다.
검색으로 조각 1만 걸리면
"7일 이내에 신청해"까지만 보이고
그 다음 조건은 사라집니다.
3-2) 겹치면 해결되는 이유
🔗 이어 붙이는 다리 역할
overlap=50으로 자르면
[조각 1] ...환불은 상품 수령일로부터 7일 이내에 신청해야 합니다.
[조각 2] 7일 이내에 신청해야 합니다. 단, 상품이 훼손된 경우...
조각 2의 앞부분에
조각 1의 끝부분이 다시 들어갑니다.
→ 어느 조각이 검색되든 문맥이 살아 있습니다
→ 경계에서 정보가 사라지지 않습니다
💡 overlap은 얼마로 잡을까?
chunk_size의 10~20%가 일반적입니다.
· chunk_size 300 → overlap 30~60
· chunk_size 500 → overlap 50~100
· chunk_size 1000 → overlap 100~200
너무 크게 잡으면?
→ 같은 내용이 여러 조각에 중복 저장됩니다
→ 저장 공간과 임베딩 비용이 늘어납니다
→ 검색 결과에 비슷한 조각만 잔뜩 나옵니다
👉
출발점: chunk_size의 10%