RAG를 붙이면 정확도는 올라가는데, 운영 2~3개월 차에 거의 항상 비용 문제가 터집니다. 검색 품질을 유지하면서 비용을 줄이려면 "모델 바꾸기"보다 파이프라인 병목을 분해해서 최적화해야 합니다.
초기 PoC에서는 데이터가 적고 트래픽이 낮아 비용이 작아 보입니다. 운영으로 넘어가면 아래 요소가 동시에 늘어납니다.
결과적으로 "질문 1건당 처리 단가"가 조용히 올라갑니다.
문서가 조금만 바뀌어도 전체를 다시 임베딩하면 비용이 과도하게 낭비됩니다.
너무 작은 청크는 검색 호출 수를 늘리고, 너무 큰 청크는 불필요 토큰을 늘립니다.
Top-k를 높이면 정확도가 늘 것 같지만, 실제로는 잡음 문서까지 들어와 후속 비용이 커집니다.
모든 질의에 고비용 재랭커를 붙이면 비용 대비 성능 이득이 작습니다.
검색 결과를 길게 붙여 넣는 방식은 토큰 비용을 폭증시킵니다.
반복 질의가 많은 서비스에서 캐시가 없으면 같은 비용을 계속 반복 지출합니다.
문서 단위 해시를 저장하고, 변경된 청크만 다시 임베딩합니다.
권장 접근은 고정 토큰 길이가 아니라 문단/섹션 경계 기반 분할입니다.
1차는 저비용 BM25+벡터 혼합 검색, 2차는 필요한 경우에만 재랭킹을 적용합니다.
생성 모델에 전달하기 전 "근거 스니펫 요약"을 거칩니다.
TTL을 업무 특성에 맞춰 다르게 설정하면 정확도 손실 없이 호출량을 줄일 수 있습니다.
팀 환경마다 다르지만, 실무에서 자주 나오는 범위는 아래와 같습니다.
핵심은 한 번에 큰 최적화보다 작은 개선을 연속으로 쌓는 것입니다.
비용만 줄이면 품질이 떨어질 수 있으니 아래 지표를 같이 봐야 합니다.
비용 지표와 품질 지표를 한 화면에서 같이 보지 않으면, 절감 후 품질 하락을 늦게 발견합니다.
질문 1건당 비용을 임베딩/검색/생성으로 분해해 계측합니다.
Top-k, 컨텍스트 길이, 재시도 상한부터 줄입니다.
증분 임베딩과 캐시를 도입합니다.
대표 질의 세트 100개로 정확도/근거 일치율을 비교합니다.
RAG 비용 최적화의 핵심은 "더 싼 모델"이 아니라 "낭비 경로 제거"입니다. 오늘 바로 계측부터 시작해 병목을 숫자로 분해하면, 2주 안에 체감 가능한 비용 절감과 품질 안정화를 동시에 만들 수 있습니다.