Reduce RAG costs on Amazon Bedrock with query-aware compression
Quick Summary
검색 후 소형 모델이 질의와 직접 관련된 원문 증거만 추출하도록 해 주 모델의 입력 토큰과 비용을 줄이는 Amazon Bedrock 기반 RAG 압축 방식과 그 성능 평가를 설명한다.
🖼️ 인포그래픽

🖼️ 4컷 인포그래픽

💡 한 줄 요약
검색 후 소형 모델이 질의와 직접 관련된 원문 증거만 추출하도록 해 주 모델의 입력 토큰과 비용을 줄이는 Amazon Bedrock 기반 RAG 압축 방식과 그 성능 평가를 설명한다.
📌 핵심 요약
- 기존 RAG는 높은 재현율을 위해 여러 문서 조각을 폭넓게 검색한 뒤 모두 주 모델에 전달하므로, 질의마다 수천 개의 입력 토큰이 발생할 수 있다.
- 제안 방식은 검색과 최종 답변 생성 사이에 Claude Haiku 같은 소형 모델을 배치해 질의와 관련된 원문 구간만 추출하고, Claude Sonnet 같은 주 모델에는 압축된 증거만 전달한다.
- 비용 절감 폭은 소형 모델과 주 모델의 가격 차이, 압축률, 검색 문맥의 크기, 답변 품질을 해치지 않고 제거할 수 있는 비관련 내용의 비중에 의해 결정된다.
- 평가는 9종의 기업 데이터 원천에서 수집한 50만 개 이상의 문서와 10개 범주의 질문 500개를 사용해 기준선, 압축, 재정렬 후 압축 파이프라인을 비교했다.
- 벤치마크에서 압축은 비용을 기준선의 67%, 주 모델 입력 토큰을 12%로 줄였고, 재정렬 후 압축은 각각 64%와 10%로 줄였지만 지연 시간은 각각 19%와 12% 증가했다.
🧩 주요 포인트
- 폭넓은 상위 문서 조각 검색은 정답 근거를 포함할 가능성을 높이지만 주 모델의 입력 비용도 키운다. 검색 결과를 질의별로 압축하면 높은 재현율을 위한 검색 범위를 유지하면서 비싼 모델이 처리하는 문맥을 줄일 수 있다.
- 소형 모델에 요약이 아니라 원문 구간의 그대로 추출과 문서 조각 식별자 보존을 요구한다. 이는 인용 가능한 증거를 남기면서 관련 없는 문맥과 환각이 발생할 표면적을 축소하는 설계다.
- 실험에서는 비용과 토큰이 크게 감소하고 종합 품질은 기준선의 약 97.5% 수준을 유지했다. 다만 별도의 압축 호출 때문에 지연 시간이 늘고 완전성과 인용 정확도가 소폭 낮아지는 상충관계가 확인됐다.
🧠 상세 정리
1. RAG 입력 토큰 비용의 문제
대규모 검색 증강 생성에서는 매 호출마다 기반 모델에 전달되는 입력 토큰이 전체 운영비의 의미 있는 부분을 차지한다. 일반적인 검색기는 정답에 필요한 자료가 빠지지 않도록 높은 재현율을 목표로 삼으며, 직접 관련되지 않을 가능성이 있는 문서 조각까지 폭넓게 반환한다. 이러한 설계는 추론 시점에 필요한 정보가 문맥 안에 포함될 가능성을 높이지만, 서비스 규모가 커질수록 주 모델이 처리해야 하는 토큰과 비용도 함께 증가시킨다. 이 글은 검색 범위 자체를 축소하기보다 검색이 끝난 후 문맥을 질의에 맞게 정제해, 답변 품질을 가능한 한 유지하면서 비용과 주 모델의 입력량을 줄이는 방식을 제시한다.
2. 기존 검색 증강 생성 흐름과 압축 지점
기존 흐름에서는 애플리케이션이 사용자 질의를 임베딩하고, 벡터 인덱스가 보통 5~20개의 상위 문서 조각을 반환한다. 선택적으로 재정렬기가 관련도 순서를 조정하지만, 이후에는 검색된 조각 전체가 하나의 프롬프트로 결합되어 주 모델에 전달되고 주 모델이 최종 답변을 생성한다. 일반적인 문서 조각 크기에서 5~20개를 가져오면 기술 문서나 법률 문서를 다루는 작업은 질의당 문맥이 수천 입력 토큰에 이를 수 있다. 제안된 압축 단계는 검색 결과를 받은 직후이자 최종 답변 호출 직전에 위치하며, 검색의 폭은 유지하되 실제 질문에 직접 필요한 근거만 주 모델로 보내도록 한다.
3. 질의 인식 압축 아키텍처
소형 모델은 사용자 질의와 검색된 모든 문서 조각을 함께 읽고, 질문에 직접 관련된 문장이나 짧은 문단을 원문 그대로 출력한다. 애플리케이션은 질의를 검색기에 보내고 상위 문서 조각을 받은 다음, 질의와 전체 검색 문맥을 AWS Lambda 함수에 전달하며 함수 내부에서 압축 호출과 답변 호출을 연속으로 수행한다. 먼저 Claude Haiku가 Amazon Bedrock Converse API를 통해 압축된 증거를 만들고, 이어 Claude Sonnet이 같은 API를 통해 그 증거만 바탕으로 최종 답변을 생성한다. 검색기는 Amazon OpenSearch Serverless를 기반으로 하는 Amazon Bedrock Knowledge Bases를 포함해 다양한 Amazon Bedrock RAG 검색기를 사용할 수 있으며, 구현에는 활성 AWS 계정, Lambda용 IAM 역할과 정책 권한, 해당 리전의 두 모델에 대한 접근 권한이 필요하다.
4. 비용 구조와 절감 조건
경제성은 소형 모델과 주 모델의 토큰 가격 차이, 그리고 소형 모델이 달성하는 압축률이라는 두 요소에 주로 좌우된다. 검색 입력이 R토큰이고 최종 답변이 A토큰이라면 기준선 비용은 주 모델의 입력 비용 R과 출력 비용 A로 구성되지만, 압축 방식은 소형 모델이 R토큰을 읽고 R/c토큰을 출력하는 비용을 추가로 부담한다. 그 대신 주 모델이 읽는 문맥은 R에서 압축 후 R/c로 줄어들며, 최종 답변 출력 비용은 두 방식 모두 동일하게 A토큰을 기준으로 계산된다. 따라서 검색 문맥이 크고, 소형 모델과 주 모델의 가격 차이가 크며, 답변 품질에 영향을 주지 않고 제거할 수 있는 비관련 내용이 많을수록 압축 호출의 추가 비용보다 주 모델 입력 비용의 감소가 커진다.
5. 원문 증거 추출을 위한 압축 프롬프트
구현에서 가장 중요한 부분은 소형 모델이 내용을 새로 요약하지 않고 증거 구간을 추출하도록 제한하는 압축 프롬프트다. 프롬프트는 각 문서 조각에서 질문에 직접 관련된 원문 문장이나 짧은 문단만 찾고, 이를 바꾸어 쓰거나 요약하거나 재작성하지 말도록 명시한다. 또한 후속 답변이 출처를 인용할 수 있도록 문서 조각 식별자를 유지하고, 관련 증거가 없는 조각에는 관련 증거가 없다는 지정 표식을 출력하게 한다. 별도의 설명, 결론, 임의 제목이나 모델 자신의 문장을 추가하는 것도 금지하며, 인용 정확성을 위해 필요한 주변 문맥은 보존하도록 한다. 압축 호출의 온도는 0.0으로 설정해 추출 결과를 결정적으로 만들고 원문 표현을 그대로 복사하도록 유도하지만, 실제 프롬프트는 적용할 문서와 질문 유형에 맞게 조정해야 한다.
6. Lambda와 Converse API를 이용한 구현
Lambda 함수는 입력 이벤트에서 사용자 질의와 검색된 문서 조각을 받고, 환경 변수에서 압축 모델과 답변 모델의 식별자를 읽는다. 함수는 적응형 재시도가 설정된 Amazon Bedrock Runtime 클라이언트를 초기화한 뒤 Converse API를 두 번 호출한다. 첫 번째 호출은 압축 시스템 프롬프트, 질의, 전체 문서 조각을 Claude Haiku에 전달해 관련 원문 증거만 생성하며, 두 번째 호출은 질의와 압축된 증거를 Claude Sonnet에 전달한다. 답변 모델에는 제공된 증거만 사용하고 출처를 인용하라는 지시가 주어지며, 이렇게 생성된 결과가 사용자에게 반환된다. 표준 RAG 흐름에 새로 추가되는 것은 소형 모델의 압축 호출 하나이므로, 이 패턴은 검색 후 사용자 정의 처리를 허용하는 Amazon Bedrock의 개방형 구성에 삽입할 수 있다.
7. 평가 데이터와 품질 측정 방법
평가는 채팅 메시지, 이메일, 이슈 추적기 티켓, 공유 드라이브 문서, 고객 관계 관리 기록, 회의 전사문, 코드 저장소, 위키 페이지 등을 포함한 9종의 기업 데이터 원천에서 수집된 50만 개 이상의 문서를 대상으로 했다. 질문 세트는 정확한 표현과 비격식 표현을 모두 포함하고, 좁은 사실 조회부터 여러 부분으로 구성된 질문까지 아우르는 10개 범주의 질문 500개로 구성됐다. 각 질의는 압축하지 않은 기준선, 압축, 재정렬 후 압축이라는 여러 조건에서 실행됐고, 생성된 답변은 대규모 언어 모델 심사자가 기준 답변과 비교해 평가했다. 품질 평가는 정확성, 완전성, 인용 정확성, 간결성의 네 차원을 사용했으며, 주 모델이 실제로 받은 증거와 답변의 주장을 대조하는 충실도는 별도로 추적했다. 저자는 이 수치가 하나의 말뭉치와 도메인 및 질의 분포에서 나온 결과이므로, 다른 문서와 질문 및 모델 조합에서는 결과가 달라질 수 있다고 명시한다.
8. 비용·품질·지연 시간의 실험 결과
압축 파이프라인의 비용은 기준선의 67%였고 주 모델에 전달된 토큰은 12%로 감소했으며, 재정렬 후 압축은 비용 64%와 토큰 10%를 기록했다. 별도 도표에서는 이를 압축의 비용 절감 33%와 주 모델 문맥 8.6배 감소, 재정렬 후 압축의 비용 절감 36%와 문맥 10.1배 감소로 제시했다. 반면 지연 시간은 압축에서 기준선보다 19%, 재정렬 후 압축에서 12% 늘어났고, 네 차원의 종합 품질은 각각 기준선의 97.5%와 97.6%였다. 환각률은 기준선이 51%로 제시됐으며 압축은 기준선보다 7%포인트, 재정렬 후 압축은 13%포인트 낮아졌고, 정확성 점수는 모든 조건에서 기준선과 0.07 이내의 차이를 보였다. 완전성과 인용 정확성은 압축 조건에서 소폭 낮아졌으며, 제공된 원문은 간결성 결과를 설명하는 문장 중간에서 끝나므로 그 이후의 세부 비교는 확인할 수 없다.
🧾 핵심 주장 / 시사점
- 압축의 핵심 이득은 검색량을 줄이는 데 있지 않고, 저렴한 모델이 전체 검색 결과를 먼저 읽게 한 뒤 비싼 주 모델이 처리하는 문맥만 크게 줄이는 데 있다.
- 원문 그대로의 증거 추출과 문서 조각 식별자 보존은 단순 토큰 절감뿐 아니라 출처 인용을 유지하고 비관련 문맥에서 발생할 수 있는 환각의 표면적을 줄이는 역할을 한다.
- 실험 결과는 큰 비용 및 토큰 절감과 기준선에 가까운 종합 품질을 동시에 보여주지만, 추가 모델 호출에 따른 지연 증가와 완전성·인용 정확성의 소폭 저하를 함께 평가해야 함을 나타낸다.
✅ 액션 아이템
- Amazon Bedrock RAG에서 Claude Haiku를 질의별 압축기로 앞단에 두어 Claude Sonnet으로 전달되는 입력 토큰을 축소한다.
- 폭넓은 검색 후 수천 개 토큰을 모두 보내던 기존 방식 대신 검색 문맥 크기와 압축률을 조절해 재현율을 유지한다.
- 벤치마크에서 기준선 대비 비용 67%·입력 토큰 12% 감소, 재정렬 후 64%·10% 감소 수치와 지연 19%·12% 증가의 상충관계를 기준으로 적용 범위를 결정한다.
❓ 열린 질문
- 소형 모델과 주 모델 가격 차이에 의해 비용 절감이 커지는 경우, query-aware 임계값은 어떤 수준이 합리적인가?
- 50만 개 문서·9종 기업 데이터 원천·10개 범주 질문 500개 조건에서 Claude Sonnet 품질이 기준선 97.5% 수준을 유지할 수 있나?
- 원문 구간 추출과 문서 조각 식별자 보존을 병행할 때 완전성과 인용 정확도 하락을 어떻게 억제하는가?