본문으로 건너뛰기

Amazon Bedrock RAG 비용을 줄이는 질의 인식 압축

작은 모델이 검색 문맥에서 필요한 원문만 추출해 Amazon Bedrock RAG 비용을 36%까지 낮추는 구조입니다.

이 요약은 AI가 원문을 분석해 생성했습니다. 정확한 내용은 원문 기준으로 확인하세요.

TL;DR

Amazon Bedrock 기반 RAG는 검색 누락을 줄이기 위해 여러 문서 조각을 주 모델에 전달하지만, 긴 입력 문맥이 호출 비용과 지연을 키울 수 있습니다. 이 글의 query-aware compression은 AWS Lambda에서 Claude Haiku가 질문과 검색 조각을 함께 읽고 답변에 필요한 원문 구간만 추출한 뒤, Claude Sonnet이 압축된 근거로 답변을 생성하는 구조입니다. 500,000개가 넘는 문서와 500개 질문을 사용한 평가에서 compression은 비용을 33%, 주 모델 입력 토큰을 8.6배 줄였고, rerank + compression은 각각 36%와 10.1배를 기록했습니다. 대신 지연 시간은 19%와 12% 늘었으며, 품질 종합 점수는 기준의 97.5%와 97.6%로 나타났습니다. 평균 검색 문맥이 대략 5,000토큰을 넘고 질문이 검색 결과보다 좁은 업무에서 효과를 검증할 가치가 있지만, 실제 배포 전에는 자체 문서와 질의 분포로 품질·지연·비용을 함께 측정해야 합니다.

섹션별 상세

01
대규모 RAG에서는 검색 누락을 줄이기 위해 보통 5~20개의 문서 조각을 주 모델에 모두 전달하지만, 검색 문맥이 수천 입력 토큰으로 커지면 모델 호출 비용이 주요 부담이 됩니다. query-aware compression은 검색과 최종 답변 호출 사이에 작은 모델을 추가해 질문과 검색 조각을 함께 읽게 합니다. 작은 모델이 질문에 직접 관련된 원문 구간만 남기면 주 모델이 처리하는 입력 토큰을 줄이면서 답변 근거와 품질을 유지할 여지가 생깁니다.
02
Amazon Bedrock 기반 구조에서는 retriever가 벡터화된 지식 소스에서 top-k 조각을 반환하고, 하나의 AWS Lambda 함수가 두 번의 모델 호출을 조율합니다. Lambda는 먼저 질문과 전체 검색 문맥을 Claude Haiku에 Amazon Bedrock Converse API로 보내 원문 구간만 추출한 뒤, 압축된 문맥과 질문을 Claude Sonnet에 전달해 최종 답변을 받습니다. 이때 추가되는 단계는 압축 호출 하나이며, 주 모델에는 R/c 토큰만 전달되므로 큰 모델의 입력 비용을 줄이는 구조입니다.
retriever가 질문에 맞는 top-k 문서 조각을 반환하고, AWS Lambda가 작은 모델의 압축 호출과 주 모델의 답변 호출을 차례로 조율하는 구조입니다.
Diagram질문은 벡터화된 지식 소스를 검색하는 retriever로 전달되고, 검색된 전체 문맥은 Lambda 안에서 Claude Haiku에 입력됩니다. Haiku는 관련 원문 구간만 남기고, Lambda는 그 압축 문맥을 Claude Sonnet에 전달해 최종 답변을 생성합니다. 압축 단계가 주 모델 호출 앞에 배치되어 주 모델이 읽는 입력 토큰을 줄이는 흐름이 핵심입니다.
03
비용 절감 폭은 작은 모델과 주 모델의 토큰 가격 비율, 그리고 검색 문맥에서 실제로 제거할 수 있는 비율에 따라 결정됩니다. 압축 호출은 작은 모델의 입력·출력 비용을 추가하지만, 주 모델이 R개 대신 R/c개의 입력 토큰을 읽게 해 절감분을 만듭니다. 검색 문맥이 크고 Sonnet 또는 Opus와 Haiku처럼 가격 차이가 크며 질문이 검색 결과보다 좁은 경우에 경제성이 높아집니다.
text
COMPRESSION_SYSTEM_PROMPT = """You extract evidence from retrieved documents. You will receive a user QUESTION and a list of CHUNKS. Your job: 1. For each chunk, identify the spans (verbatim sentences or short paragraphs) that contain evidence directly relevant to answering the QUESTION. 2. Output ONLY those spans, copied verbatim from the source. Do not paraphrase, summarize, or rewrite. 3. Preserve chunk identifiers so the downstream system can cite sources. 4. If a chunk contains no relevant evidence, output the chunk identifier followed by NO_RELEVANT_EVIDENCE. Output format (strict): [CHUNK_ID: ] [CHUNK_ID: ] NO_RELEVANT_EVIDENCE Do not add commentary, headings, conclusions, or your own words. Only verbatim spans from the source chunks, grouped by chunk identifier."""

검색 문서에서 질문에 직접 답하는 원문 구간만 추출하도록 작은 모델에 지시하는 압축 프롬프트입니다.

python
compressed = bedrock.converse(
    modelId=COMPRESSION_MODEL_ID,
    system=[{"text": COMPRESSION_SYSTEM_PROMPT}],
    messages=[{"role": "user", "content": [{"text": f"QUESTION:
{query}

CHUNKS:
{chunks}"}]}],
    inferenceConfig={"temperature": 0.0},
)

AWS Lambda가 Amazon Bedrock Converse API로 Claude Haiku를 호출해 검색된 문맥을 압축합니다.

python
answer = bedrock.converse(
    modelId=ANSWER_MODEL_ID,
    system=[{"text": "Answer using only the evidence provided. Cite sources."}],
    messages=[{"role": "user", "content": [{"text": f"QUESTION:
{query}

EVIDENCE:
{compressed}"}]}],
)

압축된 근거와 질문을 Claude Sonnet에 전달해 최종 답변을 생성합니다.

04
구현의 핵심은 작은 모델이 문서를 요약하거나 바꾸지 않고 질문에 필요한 문장을 원문 그대로 복사하도록 제한하는 프롬프트입니다. 프롬프트는 각 chunk의 식별자를 유지하고 관련 근거가 없으면 NO_RELEVANT_EVIDENCE를 출력하게 하며, temperature를 0.0으로 설정해 추출 결과의 변동을 낮춥니다. 원문 span과 chunk 식별자를 보존하면 압축 뒤에도 인용 검증과 출처 연결을 이어갈 수 있습니다.
05
500,000개가 넘는 문서와 9개 기업 데이터 유형, 500개 질문으로 구성한 평가에서 compression은 기준 파이프라인보다 비용을 33% 줄이고 주 모델 입력 토큰을 8.6배 적게 사용했습니다. rerank + compression은 비용을 36% 줄이고 토큰을 10.1배 적게 사용했으며, 전체 품질 종합 점수는 각각 기준의 97.5%와 97.6%였습니다. 지연 시간은 compression에서 19%, rerank + compression에서 12% 늘었지만 환각률은 기준 51%에서 각각 44%와 38%로 낮아졌습니다.
Compression은 비용을 33% 줄이고 토큰을 8.6배 적게 사용했으며, Rerank + Compression은 비용을 36% 줄이고 토큰을 10.1배 적게 사용했습니다.
Chart기준 파이프라인을 0% 비용 절감과 1배 토큰으로 놓으면 Compression의 비용 절감 막대는 -33%, 토큰 감소는 8.6배입니다. Rerank + Compression에서는 비용 절감이 -36%, 토큰 감소가 10.1배로 커집니다. rerank를 압축 앞에 추가하면 검색 문맥을 더 선별하면서 주 모델에 전달되는 입력을 더 줄이는 결과가 나타납니다.
세 파이프라인의 correctness, completeness, citation accuracy, conciseness에 대한 LLM judge 점수를 비교한 표입니다.
Chart기준 점수는 correctness 3.92, completeness 3.80, citation accuracy 3.57, conciseness 3.75입니다. Compression은 각각 3.85, 3.51, 3.44, 3.95를 기록했고, Rerank + Compression은 3.85, 3.48, 3.47, 3.99를 기록했습니다. 압축 조건에서 correctness는 기준과 0.07 차이 안에 머물고, completeness와 citation accuracy는 낮아지는 대신 conciseness는 높아졌습니다.
환각률이 기준 51%, Compression 44%, Rerank + Compression 38%로 감소하는 비교 차트입니다.
Chart환각률은 기준 파이프라인에서 51%였고 Compression에서는 44%로, Rerank + Compression에서는 38%로 낮아졌습니다. 이 지표는 기준 근거로 뒷받침되지 않는 주장이 하나 이상 포함된 답변의 비율입니다. 관련 없는 검색 문맥을 제거하면 주 모델이 불필요한 정보에 근거해 답변할 여지가 줄어드는 효과를 확인할 수 있습니다.
질문 난이도가 높아지면 비용 절감 폭이 줄지만, Rerank + Compression이 두 질문 집합에서 더 높은 절감을 유지하는 결과입니다.
ChartTypical queries에서 Compression은 37%, Rerank + Compression은 40%의 비용을 절감합니다. Hard queries에서는 절감 폭이 각각 26%와 30%로 감소하지만, rerank와 compression을 함께 사용한 파이프라인이 여전히 더 높은 절감률을 보입니다. 질문이 복잡해질수록 답변에 필요한 문맥을 더 많이 보존해야 하므로 압축으로 제거할 수 있는 토큰의 비율이 낮아지는 흐름입니다.
06
품질 저하 가능성은 압축 모델이 다단계 추론에 필요한 근거, 숫자, 인용 주변 문맥을 빠뜨리는 데서 생깁니다. 글은 verbatim 추출, chunk marker 유지, temperature=0.0, 선택적 span 검증으로 이를 완화하고, 여러 출처가 필요한 질문에서는 더 많은 구간을 보존하도록 설계합니다. 평가 결과 correctness는 모든 조건에서 기준과 0.07 이내였지만 completeness와 citation accuracy는 소폭 낮아지고 conciseness는 높아졌습니다.
07
이 패턴은 평균 검색 문맥이 대략 5,000토큰을 넘고 주 모델 입력 토큰 가격이 높으며, 질문 대부분이 검색된 전체 문서보다 좁은 업무에 적합합니다. 규제·정책 보조, 대규모 제품 지식 기반 고객지원, runbook과 wiki를 이용하는 내부 엔지니어링 보조, 재무 리서치처럼 긴 문서에서 일부 문단만 필요한 사례가 대상입니다. 반대로 검색 문맥이 작거나 1초 이내 응답이 중요한 대화형 서비스에서는 추가 모델 호출 대신 Prompt Caching이나 Intelligent Prompt Routing이 더 적합할 수 있습니다.

용어 해설

검색 증강 생성(RAG)
RAG는 사용자의 질문과 관련된 외부 문서를 검색한 뒤 그 내용을 언어 모델의 입력 문맥에 넣어 답변을 생성하는 방식입니다. 검색 결과를 넓게 가져오면 누락을 줄일 수 있지만, 긴 문맥이 모델 호출 비용과 지연을 키울 수 있습니다.
질의 인식 문맥 압축(Query-aware Compression)
질의 인식 문맥 압축은 검색된 문서 전체를 그대로 주 모델에 전달하지 않고, 작은 모델이 질문과 각 문서를 함께 읽어 답변에 필요한 원문 구간만 추출하는 방식입니다. 문맥을 요약하거나 바꾸지 않고 출처 식별자와 원문 표현을 유지해 입력 토큰과 비용을 줄입니다.
Rerank API
Rerank API는 검색된 여러 문서 조각을 질문과의 관련성에 따라 다시 정렬하는 기능입니다. 이 글에서는 압축 전에 관련성이 높은 조각을 우선 배치하는 단계로 사용해, 압축만 적용한 경우보다 주 모델에 전달되는 토큰과 비용을 추가로 줄입니다.
프롬프트 캐싱(Prompt Caching)
Prompt Caching은 반복적으로 사용되는 프롬프트 앞부분을 캐시해 매 요청마다 같은 입력을 다시 처리하는 비용을 줄이는 기능입니다. 이 글에서는 질의 인식 압축과 결합할 수 있는 Amazon Bedrock의 추가 비용 최적화 수단으로 제시됩니다.
환각률(Hallucination Rate)
환각률은 답변에 기준 근거로 뒷받침되지 않는 주장이 하나 이상 포함된 비율입니다. 이 평가에서는 검색 결과에서 관련 없는 문맥을 제거했을 때 주 모델이 불필요한 정보에 노출되는 범위가 줄어드는지를 측정하는 지표로 사용했습니다.

기술

  • Amazon Bedrock
  • Amazon Bedrock Knowledge Bases
  • AWS Lambda
  • Amazon Bedrock Converse API
  • Anthropic Claude Haiku
  • Anthropic Claude Sonnet
  • Amazon Bedrock Intelligent Prompt Routing
  • Rerank API
  • Amazon Bedrock Guardrails
  • IAM
  • Amazon OpenSearch Serverless

활용 사례

  • 규제 산업의 컴플라이언스 및 정책 보조
  • 대규모 제품 지식 기반의 고객지원 Copilot
  • Confluence, SharePoint, runbook을 이용하는 내부 엔지니어링 및 운영 보조
  • 10-K 문서와 earnings-call transcript를 이용하는 재무 리서치
AI 분석 전체 내용 보기

AI 요약 · 북마크 · 개인 피드 설정 — 무료

출처 · 인용 안내

원문 발행 2026. 08. 22.수집 2026. 08. 22.출처 타입 RSS

인용 시 "요약 출처: AI Trends (aitrends.kr)"를 표기하고, 사실 확인은 원문 보기 기준으로 진행해 주세요. 자세한 기준은 운영 정책을 참고해 주세요.