운영자 실전 정리 · 2026년 9월 업데이트 · 약 10분 분량
RAG가 동작하지 않는 이유의 80%는 모델이 아니라 청킹과 검색에 있습니다. 저는 처음에 문서를 통째로 넣었다가 답변이 엉뚱해지는 실패를 겪었습니다. 아래 5단계를 순서대로 점검하세요.
문장을 자르지 말고 문단 단위로 자르세요. 표·코드는 절대 중간에 자르지 마세요. 한국어 문서는 조사 때문에 토큰이 길어지므로 영어 기준보다 20% 짧게 잡는 것이 체감상 좋았습니다.
인덱싱과 질의를 반드시 같은 임베딩 모델로 처리하세요. 모델을 바꾸면 전체를 다시 인덱싱해야 합니다. 한국어 혼합 문서라면 다국어 모델인지 먼저 확인하세요.
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)을 재보세요.
"인용된 문서 번호와 함께 답하라"는 한 줄이 환각을 크게 줄입니다. 근거가 없으면 "모르겠습니다"라고 답하게 하세요. 업무용에서는 이 한 줄이 신뢰도를 결정합니다.
질문 20개를 고정해두고 청킹·k·프롬프트를 바꿀 때마다 정답률을 기록하세요. 숫자가 없으면 튜닝이 아니라 감입니다. Phase 5-27 LLM 평가 레슨과 함께 보면 좋습니다.