KERBE.io

TECH / ai

RAG 성능은 청킹 전략에서 갈린다

#RAG#임베딩#검색

RAG(Retrieval-Augmented Generation) 파이프라인을 운영하면서 가장 많이 손댄 부분은 임베딩 모델 교체가 아니라 청킹(chunking) 전략이었습니다.

자주 겪는 문제

  • 고정 길이로 자르면 문맥이 중간에 끊겨 검색 정확도가 떨어짐
  • 문단 단위로 자르면 문서마다 청크 길이 편차가 커져 임베딩 품질이 불균일해짐
  • 표, 코드 블록처럼 구조화된 콘텐츠는 일반 텍스트와 같은 방식으로 자르면 의미가 깨짐

적용한 방법

  1. 의미 기반 청킹: 문장 임베딩 유사도가 급격히 떨어지는 지점을 경계로 분할
  2. 오버랩 윈도우: 청크 간 10~20% 정도 겹치게 해서 경계 문맥 손실 최소화
  3. 구조 인식 파서: 마크다운/HTML 구조를 먼저 파싱해서 표·코드는 별도 청크로 분리

결과

같은 임베딩 모델(text-embedding-3-large)을 유지한 채 청킹 전략만 바꿨는데도, 검색 recall이 눈에 띄게 개선됐습니다. 모델을 바꾸기 전에 청킹부터 점검하는 것을 권합니다.