← 커리큘럼으로

RAG 입문: 청킹부터 평가까지 5단계

운영자 실전 정리 · 2026년 9월 업데이트 · 약 10분 분량

RAG가 동작하지 않는 이유의 80%는 모델이 아니라 청킹과 검색에 있습니다. 저는 처음에 문서를 통째로 넣었다가 답변이 엉뚱해지는 실패를 겪었습니다. 아래 5단계를 순서대로 점검하세요.

1단계. 청킹: 500~1000자 + 10% 겹침부터

문장을 자르지 말고 문단 단위로 자르세요. 표·코드는 절대 중간에 자르지 마세요. 한국어 문서는 조사 때문에 토큰이 길어지므로 영어 기준보다 20% 짧게 잡는 것이 체감상 좋았습니다.

2단계. 임베딩: 같은 모델로 통일

인덱싱과 질의를 반드시 같은 임베딩 모델로 처리하세요. 모델을 바꾸면 전체를 다시 인덱싱해야 합니다. 한국어 혼합 문서라면 다국어 모델인지 먼저 확인하세요.

3단계. 검색: top-k=5부터 시작

def retrieve(query_vec, index, k=5):
    scored = [(cosine(query_vec, v), doc) for v, doc in index]
    scored.sort(reverse=True)
    return [doc for _, doc in scored[:k]]

k를 무작정 늘리면 노이즈가 답을 오염시킵니다. 3→5→10 순서로 늘리며 정답 포함률(hit rate)을 재보세요.

4단계. 생성: 인용 강제 프롬프트

"인용된 문서 번호와 함께 답하라"는 한 줄이 환각을 크게 줄입니다. 근거가 없으면 "모르겠습니다"라고 답하게 하세요. 업무용에서는 이 한 줄이 신뢰도를 결정합니다.

5단계. 평가: 20개 질문 세트 고정

질문 20개를 고정해두고 청킹·k·프롬프트를 바꿀 때마다 정답률을 기록하세요. 숫자가 없으면 튜닝이 아니라 감입니다. Phase 5-27 LLM 평가 레슨과 함께 보면 좋습니다.

자주 하는 실수 3가지

다음: Phase 5-23 Chunking Strategies · 프롬프트 가이드