RAG에서 청크를 “어디를 기준으로, 얼마나 똑똑하게 나누느냐”는 단순 전처리가 아니라 전체 RAG 성능을 결정하는 핵심 요소입니다. 청크 품질은 임베딩 → 벡터 검색 → LLM 답변 생성까지 연쇄적으로 영향을 주며, 잘못된 청크는 아무리 좋은 모델을 써도 성능이 떨어집니다.
아래에서 잘 짜른 청크가 임베딩, 검색 정확도, 최종 답변의 품질에 어떤 영향을 미치는지 단계별로 설명합니다.
임베딩 모델은 주어진 텍스트를 하나의 의미 벡터로 압축합니다.
따라서 청크가 다음과 같으면 임베딩이 망가지게 됩니다:
너무 길면 : 의미 밀도가 낮아지고 모델의 attention이 분산됨
너무 짧으면: 맥락이 끊어져 의미 정보가 부족함
문장 중간에서 끊기면: 의미적 완결성이 사라짐 → 임베딩 왜곡
의미적으로 응집력 있는 벡터가 생성됨
“이 벡터는 어떤 내용을 설명하고 있다”가 명확해짐
유사도 검색 시 정확한 거리 계산이 가능
즉, 정확한 청크 → 정확한 벡터입니다.
RAG는 결국 임베딩 벡터 간 거리 계산을 기반으로 검색을 합니다.
청크가 잘 만들어져 있으면 다음이 좋아집니다:
질문과 관련된 청크가 벡터 공간에서 더 정확히 묶여있어 → 빠뜨리지 않고 검색 가능
관계 없는 텍스트가 섞인 청크는 벡터의 의미를 흐려 → 질문과 덜 관련된 청크가 검색될 확률 증가
반면 잘 분리된 청크는 노이즈가 없어 → 상위 검색 결과의 관련성이 상승
특히 RecursiveCharacterTextSplitter처럼 구조적 분할은 문단 단위 세그먼트를 보존해 → 질문 맥락과 더 유사한 벡터를 생성
청크의 품질은 RAG 파이프라인의 모든 단계에 영향을 주는 근본 요소입니다.
| 단계 | 청크의 영향 |
|---|---|
| 임베딩 | 의미적 응집력 있는 벡터 생성 |
| 검색 | top-k의 정확도 대폭 상승 |
| 리랭킹(선택 시) | 의미 단위가 뚜렷해 reranker 성능 극대화 |
| LLM 답변 | 정보 손실이 적어 정확한 답변 가능 |
결국 청크 품질 = RAG 품질입니다.
→ 벡터가 의미를 정확히 표현
→ 유사도 검색 시 거리 계산이 정확
→ 올바른 청크가 top-k에 올라옴
→ 불필요한 노이즈 청크 제거
→ 문맥이 온전히 전달
→ 근거 기반 답변 정확도 증가
→ 할루시네이션 감소
→ 답변 복원력, 정확성, 신뢰도 모두 상승
범용적인 권장 기준
| 기준 | 이유 |
|---|---|
| 청크 크기 200–500 tokens | 임베딩 모델이 이해하기 좋은 크기 |
| 의미 단위 유지(문장·문단) | 문맥 보존 → 임베딩 정확도↑ |
| 적절한 overlap (10–20%) | 문장 단절로 인한 의미 손실 방지 |
| 문서 구조 기반 분리 | Markdown, HTML, 제목 기반 Recursive split 권장 |