<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>RAG Archives -</title>
	<atom:link href="https://blog.kwt.co.kr/tag/rag/feed/" rel="self" type="application/rss+xml" />
	<link>https://blog.kwt.co.kr/tag/rag/</link>
	<description>여러분의 돈과 시간을 낭비하지마세요.</description>
	<lastBuildDate>Wed, 19 Aug 2026 00:07:42 +0000</lastBuildDate>
	<language>ko-KR</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.6.2</generator>

<image>
	<url>https://blog.kwt.co.kr/wp-content/uploads/2022/07/cropped-logo_bg-32x32.jpg</url>
	<title>RAG Archives -</title>
	<link>https://blog.kwt.co.kr/tag/rag/</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>RAG 평가 실무 가이드: 검색 품질과 답변 품질을 분리하는 법</title>
		<link>https://blog.kwt.co.kr/rag-evaluation-retrieval-answer-quality-guide/</link>
					<comments>https://blog.kwt.co.kr/rag-evaluation-retrieval-answer-quality-guide/#respond</comments>
		
		<dc:creator><![CDATA[시간 조절자]]></dc:creator>
		<pubDate>Wed, 19 Aug 2026 00:07:42 +0000</pubDate>
				<category><![CDATA[기술]]></category>
		<category><![CDATA[AI Evals]]></category>
		<category><![CDATA[LangSmith]]></category>
		<category><![CDATA[LLMOps]]></category>
		<category><![CDATA[RAG]]></category>
		<category><![CDATA[RAG 평가]]></category>
		<category><![CDATA[검색 품질]]></category>
		<guid isPermaLink="false">https://blog.kwt.co.kr/rag-evaluation-retrieval-answer-quality-guide/</guid>

					<description><![CDATA[<p>RAG 평가를 검색, 컨텍스트, 답변으로 분리해 Recall@K·MRR·nDCG·근거성·정확성을 측정하고 회귀 테스트로 운영하는 방법을 정리했다.</p>
<p>The post <a href="https://blog.kwt.co.kr/rag-evaluation-retrieval-answer-quality-guide/">RAG 평가 실무 가이드: 검색 품질과 답변 품질을 분리하는 법</a> appeared first on <a href="https://blog.kwt.co.kr"></a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p>RAG 품질을 올리려면 최종 답변 점수 하나만 봐서는 안 된다. <strong>검색이 필요한 문서를 찾았는지, 가져온 문서에 잡음이 얼마나 섞였는지, 답변이 근거를 지켰는지</strong>를 분리해 측정해야 한다. 그래야 임베딩·청킹·검색 파라미터 문제를 프롬프트나 모델 문제로 오진하지 않는다.</p>



<div class="wp-block-group summary-box has-border-color has-background" style="border-color:#dbeafe;border-width:1px;background-color:#eff6ff;margin-top:24px;margin-bottom:24px;padding-top:18px;padding-right:20px;padding-bottom:18px;padding-left:20px"><div class="wp-block-group__inner-container is-layout-flow wp-block-group-is-layout-flow">
<p><strong>핵심 요약</strong></p>



<ul class="wp-block-list">
<li>검색기는 Recall@K·MRR·nDCG와 관련 문서 비율로 평가한다.</li>



<li>생성기는 근거성, 답변 관련성, 정답 정확성, 거절 품질로 평가한다.</li>



<li>정답 문서가 있는 질문과 없는 질문을 섞고, 실제 운영 로그의 실패 사례를 계속 추가한다.</li>



<li>LLM 심사 점수는 사람 라벨과 일치도를 확인한 뒤 회귀 테스트에 사용한다.</li>



<li>출시 기준은 평균점수보다 핵심 질문 실패율과 안전 관련 실패 건수로 잡는 편이 낫다.</li>
</ul>
</div></div>



<h2 class="wp-block-heading">RAG 평가는 검색과 답변을 따로 봐야 한다</h2>



<p>RAG는 질문, 검색, 컨텍스트 조립, 답변 생성의 연쇄 시스템이다. 정답이 틀렸다는 결과만 기록하면 어느 단계가 고장 났는지 알 수 없다. 검색 결과에 정답 문서가 없었다면 생성 모델을 바꿔도 해결되지 않는다. 반대로 정답 문서가 들어왔는데 답변이 근거를 벗어났다면 검색 튜닝보다 프롬프트·모델·출력 검증을 손봐야 한다.</p>



<figure class="wp-block-table"><table class="has-fixed-layout"><thead><tr><th>평가 구간</th><th>확인할 질문</th><th>대표 지표</th><th>실패 시 먼저 볼 곳</th></tr></thead><tbody><tr><td>테스트셋</td><td>실제 사용 질문을 반영했는가</td><td>유형·난도·언어별 분포</td><td>운영 로그와 라벨 기준</td></tr><tr><td>검색</td><td>필요한 문서를 상위 K개 안에 찾았는가</td><td>Recall@K, MRR, nDCG@K</td><td>청킹, 임베딩, 필터, 하이브리드 검색</td></tr><tr><td>컨텍스트</td><td>관련 없는 문서가 답변을 방해하는가</td><td>Context Precision, 노이즈 민감도</td><td>K값, 재랭커, 문서 중복</td></tr><tr><td>답변</td><td>질문에 답하고 근거를 지켰는가</td><td>근거성, 관련성, 정확성</td><td>프롬프트, 모델, 인용·거절 규칙</td></tr></tbody></table></figure>


<div class="wp-block-image">
<figure class="aligncenter size-large is-resized"><img fetchpriority="high" decoding="async" width="1050" height="620" src="https://blog.kwt.co.kr/wp-content/uploads/2026/08/rag-evaluation-pipeline-1.png" alt="RAG 평가를 테스트셋 검색 컨텍스트 답변으로 나눈 구성도" class="wp-image-2789" style="width:620px;height:auto"/><figcaption class="wp-element-caption">검색과 답변을 분리한 RAG 평가 흐름<br />출처: Ragas·LangSmith 공식 문서 기반 재구성</figcaption></figure></div>


<h2 class="wp-block-heading">테스트셋은 정답보다 실패 조건부터 설계한다</h2>



<p>처음부터 수천 건을 만들 필요는 없다. 도입 초기는 핵심 업무 질문 50~100건으로 시작하되 질문 유형을 의도적으로 나누는 편이 실용적이다. 단순 사실 조회만 넣으면 실제 서비스의 긴 질문, 모호한 표현, 문서에 답이 없는 질문을 놓친다. 이후 운영 로그에서 실패 사례를 골라 테스트셋을 늘린다.</p>



<ol class="wp-block-list">
<li><strong>정답이 한 문서에 있는 질문</strong>: 기본 검색 성능을 확인한다.</li>



<li><strong>여러 문서를 조합해야 하는 질문</strong>: 다중 근거 회수와 합성을 확인한다.</li>



<li><strong>문서에 답이 없는 질문</strong>: 근거 없는 생성 대신 모른다고 답하는지 본다.</li>



<li><strong>날짜·버전이 충돌하는 질문</strong>: 최신 문서 우선순위와 메타데이터 필터를 본다.</li>



<li><strong>오탈자·약어·한국어와 영어가 섞인 질문</strong>: 실제 입력 변형에 견디는지 본다.</li>



<li><strong>권한 밖 문서를 묻는 질문</strong>: 검색 단계에서 접근 제어가 지켜지는지 본다.</li>
</ol>



<p>각 행에는 질문, 기대 답변, 관련 문서 ID, 반드시 포함할 사실, 허용 가능한 변형, 중요도, 실패 유형을 저장한다. 정답 문서 라벨이 없으면 검색 Recall을 계산할 수 없으므로 최소한 핵심 질문에는 관련 문서 ID를 사람이 붙이는 것이 좋다.</p>



<pre class="wp-block-code"><code>{
  "question": "환불 요청 가능 기간은?",
  "reference_answer": "수령 후 7일 이내",
  "relevant_doc_ids": ["policy-2026-08"],
  "must_include": ["7일"],
  "risk": "high",
  "expected_behavior": "answer_with_citation"
}</code></pre>



<h2 class="wp-block-heading">검색 품질은 Recall@K 하나로 끝나지 않는다</h2>



<p>검색 평가는 관련 문서 라벨이 있을 때 가장 명확하다. Pinecone의 정보검색 평가 설명처럼 Recall@K는 관련 문서를 얼마나 놓치지 않았는지, MRR은 첫 관련 결과가 얼마나 위에 있는지, nDCG는 여러 결과의 관련도와 순서를 함께 본다. 서비스 목적에 따라 우선순위가 달라진다.</p>



<figure class="wp-block-table"><table class="has-fixed-layout"><thead><tr><th>지표</th><th>무엇을 측정하는가</th><th>잘 맞는 상황</th><th>주의점</th></tr></thead><tbody><tr><td>Recall@K</td><td>관련 문서 중 상위 K개 안에 찾은 비율</td><td>필요한 근거를 놓치면 안 되는 검색</td><td>K를 키우면 잡음과 생성 비용도 늘 수 있다</td></tr><tr><td>Precision@K</td><td>상위 K개 중 관련 문서의 비율</td><td>짧고 깨끗한 컨텍스트가 중요한 경우</td><td>관련 문서 전체를 놓치는 문제는 따로 봐야 한다</td></tr><tr><td>MRR</td><td>첫 관련 문서 순위의 역수 평균</td><td>정답 문서 하나를 빨리 찾는 FAQ</td><td>두 번째 이후 관련 문서 품질을 거의 반영하지 않는다</td></tr><tr><td>nDCG@K</td><td>관련도 등급과 순위를 함께 반영</td><td>부분 관련·핵심 관련을 구분할 수 있는 검색</td><td>등급 라벨 비용과 기준 합의가 필요하다</td></tr><tr><td>Context Precision</td><td>관련 컨텍스트가 앞쪽에 배치됐는지 평가</td><td>LLM 심사 기반으로 문맥 잡음을 점검</td><td>심사 모델과 프롬프트 변화에 영향을 받는다</td></tr></tbody></table></figure>



<p>실무에서는 Recall@K를 먼저 확보한 뒤 Precision과 지연·토큰 비용을 함께 줄이는 순서가 안전하다. 정답 문서를 못 가져오는 상태에서 컨텍스트를 짧게 만드는 것은 품질 개선이 아니라 근거 삭제가 될 수 있다. 검색 구조 자체를 설계하는 단계라면 <a href="https://blog.kwt.co.kr/graphrag-rag-vector-search-knowledge-graph/">GraphRAG와 벡터 검색의 차이</a>도 함께 확인할 수 있다.</p>



<h2 class="wp-block-heading">답변 평가는 근거성·관련성·정확성을 분리한다</h2>



<p>LangSmith 공식 RAG 평가 튜토리얼은 답변과 정답의 정확성, 답변과 질문의 관련성, 답변과 검색 문서의 근거성, 검색 문서와 질문의 관련성을 서로 다른 비교로 정의한다. 이 분리가 중요하다. 근거에는 충실하지만 질문에 답하지 않는 문장도 있고, 그럴듯하고 유용하지만 문서에 없는 사실을 덧붙인 답변도 있기 때문이다.</p>



<figure class="wp-block-table"><table class="has-fixed-layout"><thead><tr><th>평가 항목</th><th>비교 대상</th><th>판정 질문</th></tr></thead><tbody><tr><td>정확성</td><td>생성 답변 <img src="https://s.w.org/images/core/emoji/15.0.3/72x72/2194.png" alt="↔" class="wp-smiley" style="height: 1em; max-height: 1em;" /> 기준 답변</td><td>필수 사실이 맞고 충돌하는 내용이 없는가</td></tr><tr><td>답변 관련성</td><td>생성 답변 <img src="https://s.w.org/images/core/emoji/15.0.3/72x72/2194.png" alt="↔" class="wp-smiley" style="height: 1em; max-height: 1em;" /> 사용자 질문</td><td>질문을 직접 해결하며 불필요하게 벗어나지 않는가</td></tr><tr><td>근거성</td><td>생성 답변 <img src="https://s.w.org/images/core/emoji/15.0.3/72x72/2194.png" alt="↔" class="wp-smiley" style="height: 1em; max-height: 1em;" /> 검색 문서</td><td>답변의 주장마다 검색 문서에서 근거를 찾을 수 있는가</td></tr><tr><td>검색 관련성</td><td>검색 문서 <img src="https://s.w.org/images/core/emoji/15.0.3/72x72/2194.png" alt="↔" class="wp-smiley" style="height: 1em; max-height: 1em;" /> 사용자 질문</td><td>가져온 문서가 질문 해결에 실제로 필요한가</td></tr><tr><td>거절 품질</td><td>답변 <img src="https://s.w.org/images/core/emoji/15.0.3/72x72/2194.png" alt="↔" class="wp-smiley" style="height: 1em; max-height: 1em;" /> 문서 부재·정책</td><td>근거가 없거나 권한이 없을 때 안전하게 중단하는가</td></tr></tbody></table></figure>



<p>Ragas도 Context Precision·Context Recall·Response Relevancy·Faithfulness 같은 RAG 전용 지표를 제공한다. 다만 도구가 내놓은 0~1 점수를 절대적인 품질로 해석하면 안 된다. OpenAI 평가 가이드도 자동 지표를 사람 판단으로 보정하고, 실제 분포를 반영한 과업별 평가를 만들며, 변경 때마다 지속 평가할 것을 권한다.</p>



<h2 class="wp-block-heading">최소 운영 절차는 7단계면 충분하다</h2>



<ol class="wp-block-list">
<li><strong>성공 기준을 먼저 쓴다.</strong> 예를 들어 핵심 정책 질문은 관련 문서가 상위 5개 안에 있어야 하고, 답변은 문서에 없는 숫자를 만들면 실패로 정의한다.</li>



<li><strong>실제 질문을 유형별로 모은다.</strong> 정상·경계·적대·답 없음 질문을 섞는다.</li>



<li><strong>관련 문서와 기준 답변을 라벨링한다.</strong> 위험도가 높은 질문부터 사람이 검수한다.</li>



<li><strong>검색기를 단독 실행한다.</strong> 답변 모델을 호출하기 전에 Recall@K·MRR·지연을 저장한다.</li>



<li><strong>생성기를 고정된 검색 결과로 평가한다.</strong> 검색 변동과 답변 변동을 분리한다.</li>



<li><strong>자동 심사와 사람 판정을 맞춘다.</strong> 불일치 사례를 보고 루브릭과 예시를 보완한다.</li>



<li><strong>모든 변경에서 회귀 테스트한다.</strong> 임베딩, 청킹, 프롬프트, 모델, 재랭커 변경 전후를 같은 데이터셋으로 비교한다.</li>
</ol>



<p>평가 결과를 실행 단위 trace와 연결하면 원인 분석이 빨라진다. 검색 결과, 프롬프트 버전, 모델, 토큰, 지연, 평가 점수를 함께 남기는 방법은 <a href="https://blog.kwt.co.kr/ai-agent-observability-tools-comparison/">AI 에이전트 관측 도구 비교</a>와 <a href="https://blog.kwt.co.kr/ai-agent-cost-tracking-guide/">AI 에이전트 비용 추적 가이드</a>에서 이어서 볼 수 있다.</p>



<h2 class="wp-block-heading">점수 조합으로 실패 원인을 좁힌다</h2>



<figure class="wp-block-table"><table class="has-fixed-layout"><thead><tr><th>관찰된 패턴</th><th>가능성이 큰 원인</th><th>다음 실험</th></tr></thead><tbody><tr><td>Recall은 낮고 근거성은 높다</td><td>가져온 문서에는 충실하지만 정답 문서를 놓침</td><td>청킹·필터·하이브리드 검색·재랭커 비교</td></tr><tr><td>Recall은 높고 Context Precision이 낮다</td><td>K가 크거나 중복·주변 문서가 많음</td><td>K 축소, 중복 제거, 재랭킹</td></tr><tr><td>검색은 좋고 근거성이 낮다</td><td>프롬프트 또는 생성 모델이 문서 밖 사실을 추가</td><td>인용 강제, 주장 단위 검증, 거절 규칙</td></tr><tr><td>근거성은 높고 관련성이 낮다</td><td>문서를 요약했지만 질문에 직접 답하지 않음</td><td>답변 형식과 필수 항목 루브릭 보강</td></tr><tr><td>오프라인은 좋고 운영 불만이 많다</td><td>테스트셋이 실제 사용자 분포를 반영하지 못함</td><td>운영 로그 샘플링과 실패 사례 추가</td></tr></tbody></table></figure>



<h2 class="wp-block-heading">비용과 보안도 평가 설계에 포함한다</h2>



<p>LLM 심사기를 모든 운영 요청에 붙이면 품질 점검 비용과 지연이 커진다. 배포 전에는 전체 회귀 세트를 돌리고, 운영 중에는 위험도 기반 표본 추출과 실패 감지 후 재평가를 섞는 방식이 현실적이다. 규칙으로 판정 가능한 인용 유무·JSON 스키마·금칙어·문서 ID 일치 여부는 코드 평가기로 처리하고, 의미 판단이 필요한 항목만 LLM 심사기에 맡긴다.</p>



<p>외부 평가 서비스나 심사 모델로 질문·검색 문서·답변을 보내면 개인정보와 사내 문서가 함께 반출될 수 있다. 운영 전 데이터 보존 정책, 학습 사용 여부, 리전, 암호화, 접근 제어를 확인해야 한다. 테스트셋에는 고객 식별자를 가명 처리하고, 권한 필터가 적용된 문서만 평가 파이프라인에 전달한다.</p>



<h2 class="wp-block-heading">FAQ</h2>



<h3 class="wp-block-heading">정답 데이터가 없어도 RAG 평가를 시작할 수 있나?</h3>



<p>가능하다. 질문과 답변의 관련성, 답변과 검색 문서의 근거성, 질문과 검색 문서의 관련성은 기준 답변 없이도 LLM 심사나 사람 검토로 볼 수 있다. 다만 검색 Recall과 최종 정확성을 신뢰성 있게 측정하려면 핵심 질문부터 관련 문서와 기준 답변을 붙여야 한다.</p>



<h3 class="wp-block-heading">Ragas와 LangSmith 중 무엇을 써야 하나?</h3>



<p>Ragas는 코드 중심으로 RAG 지표를 조합하고 자체 파이프라인에 넣을 때 편하다. LangSmith는 데이터셋, 실험 비교, trace와 평가를 관리형 워크플로로 묶고 싶을 때 유리하다. 도구보다 먼저 평가 데이터 스키마와 합격 기준을 정해야 나중에 교체하기 쉽다.</p>



<h3 class="wp-block-heading">RAG 품질의 합격 점수는 몇 점으로 잡아야 하나?</h3>



<p>모든 서비스에 통하는 단일 점수는 없다. 현재 시스템의 기준선을 같은 테스트셋에서 측정하고, 핵심 질문의 실패 허용치와 안전 관련 실패 0건 같은 운영 기준을 먼저 둔다. 평균점수 상승보다 기존 정상 사례를 깨뜨리지 않았는지와 고위험 질문 실패가 줄었는지를 우선한다.</p>



<h2 class="wp-block-heading">참고자료</h2>



<ul class="wp-block-list">
<li><a href="https://docs.ragas.io/en/stable/concepts/metrics/available_metrics/">Ragas 공식 문서: RAG 평가 지표 목록</a></li>



<li><a href="https://docs.ragas.io/en/stable/concepts/metrics/available_metrics/context_precision/">Ragas 공식 문서: Context Precision</a></li>



<li><a href="https://docs.ragas.io/en/stable/concepts/metrics/available_metrics/faithfulness/">Ragas 공식 문서: Faithfulness</a></li>



<li><a href="https://docs.langchain.com/langsmith/evaluate-rag-tutorial">LangSmith 공식 문서: Evaluate a RAG application</a></li>



<li><a href="https://platform.openai.com/docs/guides/evaluation-best-practices">OpenAI 공식 문서: Evaluation best practices</a></li>



<li><a href="https://www.pinecone.io/learn/offline-evaluation/">Pinecone: Evaluation Measures in Information Retrieval</a></li>
</ul>



<p><em>자료와 문서 경로는 2026년 8월 19일 확인했다.</em></p>



<script type="application/ld+json">{"@context":"https://schema.org","@type":"FAQPage","mainEntity":[{"@type":"Question","name":"정답 데이터가 없어도 RAG 평가를 시작할 수 있나?","acceptedAnswer":{"@type":"Answer","text":"질문과 답변의 관련성, 답변과 검색 문서의 근거성은 기준 답변 없이도 평가할 수 있다. 다만 검색 Recall과 최종 정확성을 측정하려면 핵심 질문부터 관련 문서와 기준 답변을 붙여야 한다."}},{"@type":"Question","name":"Ragas와 LangSmith 중 무엇을 써야 하나?","acceptedAnswer":{"@type":"Answer","text":"Ragas는 코드 중심 지표 조합에, LangSmith는 데이터셋·실험·trace를 묶은 관리형 워크플로에 적합하다. 도구보다 평가 스키마와 합격 기준을 먼저 정해야 한다."}},{"@type":"Question","name":"RAG 품질의 합격 점수는 몇 점으로 잡아야 하나?","acceptedAnswer":{"@type":"Answer","text":"보편적인 단일 합격 점수는 없다. 같은 테스트셋의 현재 기준선, 핵심 질문 실패 허용치, 안전 관련 실패 건수를 기준으로 정해야 한다."}}]}</script>

		<div class="wpulike wpulike-robeen " ><div class="wp_ulike_general_class wp_ulike_is_restricted"><button type="button"
					aria-label="Like Button"
					data-ulike-id="2790"
					data-ulike-nonce="fd5a5873dd"
					data-ulike-type="post"
					data-ulike-template="wpulike-robeen"
					data-ulike-display-likers=""
					data-ulike-likers-style="popover"
					class="wp_ulike_btn wp_ulike_put_image wp_post_btn_2790"></button><span class="count-box wp_ulike_counter_up" data-ulike-counter-value="0"></span>			</div></div>
	<p>The post <a href="https://blog.kwt.co.kr/rag-evaluation-retrieval-answer-quality-guide/">RAG 평가 실무 가이드: 검색 품질과 답변 품질을 분리하는 법</a> appeared first on <a href="https://blog.kwt.co.kr"></a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://blog.kwt.co.kr/rag-evaluation-retrieval-answer-quality-guide/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>GraphRAG란 무엇인가: 벡터 검색만으로 부족할 때 쓰는 RAG 구조</title>
		<link>https://blog.kwt.co.kr/graphrag-rag-vector-search-knowledge-graph/</link>
					<comments>https://blog.kwt.co.kr/graphrag-rag-vector-search-knowledge-graph/#respond</comments>
		
		<dc:creator><![CDATA[시간 조절자]]></dc:creator>
		<pubDate>Wed, 08 Jul 2026 10:33:57 +0000</pubDate>
				<category><![CDATA[기술]]></category>
		<category><![CDATA[AI 검색]]></category>
		<category><![CDATA[GraphRAG]]></category>
		<category><![CDATA[Knowledge Graph]]></category>
		<category><![CDATA[RAG]]></category>
		<category><![CDATA[벡터 DB]]></category>
		<guid isPermaLink="false">https://blog.kwt.co.kr/?p=2686</guid>

					<description><![CDATA[<p>GraphRAG는 RAG에 지식 그래프를 결합해 벡터 검색만으로 부족한 관계형 질문과 전체 요약 문제를 보완하는 구조다. 일반 RAG와 차이, 도입 기준, 체크리스트를 정리한다.</p>
<p>The post <a href="https://blog.kwt.co.kr/graphrag-rag-vector-search-knowledge-graph/">GraphRAG란 무엇인가: 벡터 검색만으로 부족할 때 쓰는 RAG 구조</a> appeared first on <a href="https://blog.kwt.co.kr"></a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p><strong>GraphRAG</strong>는 RAG에 지식 그래프를 결합한 검색 증강 생성 구조다. 일반 RAG가 질문과 의미적으로 가까운 문서 조각을 찾는 데 집중한다면, GraphRAG는 문서 안의 엔티티와 관계를 그래프로 구성해 “무엇과 무엇이 어떻게 연결돼 있는가”를 답변 생성에 활용한다. 벡터 검색만으로 부족한 관계형 질문, 전체 요약, 복잡한 원인 분석에서 특히 유용하다.</p>



<figure class="wp-block-image size-large"><img decoding="async" width="1400" height="788" src="https://blog.kwt.co.kr/wp-content/uploads/2026/07/graphrag-guide.jpg" alt="GraphRAG 구조 개념도: 문서에서 엔티티와 관계를 추출해 지식 그래프와 벡터 검색을 함께 사용하는 RAG 아키텍처" class="wp-image-2685"/><figcaption class="wp-element-caption">GraphRAG는 문서를 단순 청크로만 찾지 않고 엔티티와 관계를 그래프로 구성해 벡터 검색이 놓치는 연결 질문을 보완하는 RAG 구조다.</figcaption></figure>



<div style="border:1px solid #dbeafe;background:#eff6ff;padding:18px;border-radius:12px;margin:24px 0;">
<strong>핵심 요약</strong>
<ul>
<li>GraphRAG는 RAG에 knowledge graph를 결합한 구조다.</li>
<li>일반 벡터 검색은 “비슷한 문서”를 찾는 데 강하고, 그래프는 “엔티티 사이의 관계”를 따라가는 데 강하다.</li>
<li>조직, 사람, 제품, 사건, 정책처럼 관계가 중요한 데이터에서는 GraphRAG가 일반 RAG보다 더 좋은 답변 근거를 만들 수 있다.</li>
<li>모든 RAG에 GraphRAG가 필요한 것은 아니다. 데이터 규모, 질문 유형, 구축 비용을 함께 봐야 한다.</li>
</ul>
</div>



<h2 class="wp-block-heading">RAG가 먼저 해결한 문제</h2>



<p>RAG는 Retrieval-Augmented Generation의 약자다. LLM이 내부 파라미터에만 의존하지 않고, 외부 문서에서 관련 내용을 검색한 뒤 그 근거를 바탕으로 답변하게 만드는 방식이다. 회사 문서, 정책 자료, 기술 문서, 고객 지원 문서처럼 모델 학습 시점 이후의 지식이나 비공개 지식을 다룰 때 유용하다.</p>



<p>가장 흔한 구현은 문서를 작은 청크로 나누고 embedding을 만든 뒤 벡터 DB에 저장하는 방식이다. 사용자가 질문하면 질문도 embedding으로 바꾸고, 벡터 공간에서 가까운 청크를 찾아 LLM에 넣는다. 이 방식은 간단하고 강력하지만 모든 질문에 충분하지는 않다.</p>



<h2 class="wp-block-heading">벡터 검색만으로 부족한 순간</h2>



<p>벡터 검색은 의미적으로 비슷한 문장을 찾는 데 강하다. 그러나 질문이 여러 문서에 흩어진 관계를 묻거나, 특정 엔티티가 전체 데이터 안에서 어떤 역할을 하는지 묻거나, 여러 사건을 묶어 상위 패턴을 요약해야 할 때는 한계가 드러난다.</p>



<figure class="wp-block-table"><table><thead><tr><th>질문 유형</th><th>일반 벡터 RAG의 어려움</th><th>GraphRAG가 보완하는 점</th></tr></thead><tbody><tr><td>여러 조직의 관계</td><td>각 조직이 나온 청크는 찾지만 연결 구조를 놓칠 수 있다</td><td>조직 간 관계를 edge로 따라간다</td></tr><tr><td>전체 데이터 요약</td><td>상위 k개 청크만으로 전체 맥락을 대표하기 어렵다</td><td>커뮤니티 단위 요약을 활용한다</td></tr><tr><td>원인과 영향 분석</td><td>비슷한 문장 검색만으로 인과 연결이 약하다</td><td>사건, 원인, 결과 노드를 연결한다</td></tr><tr><td>동명이인/동음이의어</td><td>비슷한 텍스트가 섞일 수 있다</td><td>엔티티 식별과 관계 맥락을 사용한다</td></tr><tr><td>장기 문서 컬렉션</td><td>관련 청크가 너무 많아 선별이 어렵다</td><td>그래프 구조로 탐색 범위를 좁힌다</td></tr></tbody></table></figure>



<h2 class="wp-block-heading">GraphRAG의 기본 구조</h2>



<p>GraphRAG는 문서를 단순히 청크로만 저장하지 않는다. 문서에서 사람, 조직, 장소, 제품, 개념, 사건 같은 엔티티를 추출하고, 엔티티 사이의 관계를 edge로 연결한다. 이후 이 그래프를 요약하거나 커뮤니티로 나누고, 질문에 맞는 노드와 관계를 찾아 LLM에 제공한다.</p>



<div style="border:1px solid #e5e7eb;background:#f9fafb;padding:16px;border-radius:10px;margin:22px 0;font-family:monospace;white-space:pre-wrap;">문서 수집
  → 청크 분리
  → 엔티티 추출
  → 관계 추출
  → 지식 그래프 구성
  → 커뮤니티/요약 생성
  → 질문에 맞는 그래프 탐색
  → LLM 답변 생성</div>



<h2 class="wp-block-heading">Local search와 Global search</h2>



<p>Microsoft Research의 GraphRAG 연구는 query-focused summarization 문제에서 local search와 global search 관점을 제시한다. local search는 특정 엔티티나 좁은 주제 주변의 근거를 찾는 데 유리하다. global search는 전체 데이터셋에서 넓은 패턴이나 주제를 요약할 때 유리하다.</p>



<figure class="wp-block-table"><table><thead><tr><th>검색 방식</th><th>잘 맞는 질문</th><th>예시</th></tr></thead><tbody><tr><td>Local search</td><td>특정 엔티티 주변 정보</td><td>이 고객사가 어떤 제품 이슈와 연결돼 있는가</td></tr><tr><td>Global search</td><td>데이터 전체의 큰 주제와 패턴</td><td>최근 장애 보고서에서 반복되는 핵심 원인은 무엇인가</td></tr><tr><td>Vector search</td><td>질문과 의미적으로 가까운 문서</td><td>이 API 설정 방법이 적힌 문서는 어디인가</td></tr><tr><td>Hybrid search</td><td>키워드, 벡터, 그래프를 함께 사용</td><td>정책 변경과 관련 조직, 영향 범위를 함께 찾기</td></tr></tbody></table></figure>



<h2 class="wp-block-heading">GraphRAG가 유리한 데이터</h2>



<ul class="wp-block-list">
<li>조직, 팀, 서비스, 고객, 계약처럼 엔티티 관계가 중요한 업무 문서</li>

<li>사건, 원인, 영향, 대응이 여러 문서에 흩어진 장애 보고서</li>

<li>논문, 특허, 기술 리포트처럼 개념 간 연결이 중요한 지식 데이터</li>

<li>뉴스, 정책, 법령처럼 사람과 기관, 시점, 사건의 관계가 중요한 문서</li>

<li>고객 지원 기록처럼 같은 문제가 다른 표현으로 반복되는 데이터</li>
</ul>



<h2 class="wp-block-heading">GraphRAG가 과한 경우</h2>



<p>GraphRAG는 만능이 아니다. 단순한 FAQ, 짧은 제품 문서, 키워드 검색으로 충분한 데이터, 실시간성이 강해 그래프를 자주 다시 만들어야 하는 데이터에는 비용 대비 효과가 낮을 수 있다. 그래프 구축에는 LLM 호출 비용, 엔티티 정제, 관계 품질 검증, 인덱싱 시간이 들어간다.</p>



<p>따라서 처음부터 GraphRAG를 도입하기보다 일반 RAG로 시작하고, 실패 사례를 모아야 한다. “관련 문서는 찾았지만 관계를 설명하지 못한다”, “전체 문서 컬렉션의 패턴을 요약하지 못한다”, “동일 엔티티가 여러 이름으로 흩어진다” 같은 문제가 반복될 때 GraphRAG를 검토하는 편이 현실적이다.</p>



<h2 class="wp-block-heading">일반 RAG, GraphRAG, Knowledge Graph의 관계</h2>



<figure class="wp-block-table"><table><thead><tr><th>개념</th><th>핵심 역할</th><th>혼동하면 안 되는 점</th></tr></thead><tbody><tr><td>RAG</td><td>외부 문서를 검색해 LLM 답변에 넣는다</td><td>반드시 벡터 DB만 뜻하지는 않는다</td></tr><tr><td>Vector DB</td><td>embedding 기반 유사도 검색을 제공한다</td><td>관계 구조를 자동으로 이해하는 것은 아니다</td></tr><tr><td>Knowledge Graph</td><td>엔티티와 관계를 그래프로 표현한다</td><td>LLM 답변 생성까지 포함하는 개념은 아니다</td></tr><tr><td>GraphRAG</td><td>그래프 구조를 RAG 검색과 요약에 활용한다</td><td>벡터 검색을 완전히 대체하는 구조는 아니다</td></tr></tbody></table></figure>



<h2 class="wp-block-heading">작게 시작하는 GraphRAG 설계</h2>



<p>작은 팀이 GraphRAG를 실험한다면 전체 시스템을 한 번에 바꾸지 않는 편이 좋다. 먼저 기존 RAG에서 실패한 질문 20~50개를 모은다. 그다음 해당 질문이 엔티티 관계 문제인지, 전체 요약 문제인지, 검색 품질 문제인지 분류한다. GraphRAG는 이 중 관계와 전체 요약 문제가 반복될 때 도입 가치가 커진다.</p>



<ol class="wp-block-list">
<li>기존 RAG 실패 질문을 수집한다.</li>

<li>반복적으로 등장하는 엔티티 유형을 정의한다.</li>

<li>문서 일부로 작은 지식 그래프를 만든다.</li>

<li>local search와 global summary 질문을 따로 평가한다.</li>

<li>일반 RAG 답변과 GraphRAG 답변을 같은 질문 세트로 비교한다.</li>

<li>정확도뿐 아니라 비용, 지연 시간, 운영 복잡도도 함께 본다.</li>
</ol>



<h2 class="wp-block-heading">GraphRAG 체크리스트</h2>



<ul class="wp-block-list">
<li>질문이 단순 문서 검색인지 관계 분석인지 구분했는가</li>

<li>추출할 엔티티 유형과 관계 유형을 정의했는가</li>

<li>그래프 생성에 드는 LLM 비용을 계산했는가</li>

<li>그래프 업데이트 주기와 재인덱싱 비용을 정했는가</li>

<li>일반 RAG와 비교할 평가 질문 세트를 만들었는가</li>

<li>답변 근거를 사용자에게 어떻게 보여줄지 정했는가</li>

<li>잘못 추출된 엔티티와 관계를 수정하는 절차가 있는가</li>
</ul>



<h2 class="wp-block-heading">FAQ</h2>



<h3 class="wp-block-heading">GraphRAG는 무엇인가?</h3>



<p>GraphRAG는 문서에서 엔티티와 관계를 추출해 지식 그래프를 만들고, 이 그래프를 RAG 검색과 답변 생성에 활용하는 구조다. 벡터 검색만으로 찾기 어려운 관계형 질문이나 전체 요약 질문에 강하다.</p>



<h3 class="wp-block-heading">GraphRAG와 일반 RAG의 차이는 무엇인가?</h3>



<p>일반 RAG는 질문과 비슷한 문서 청크를 벡터 검색으로 찾는 방식이 많다. GraphRAG는 문서 안의 사람, 조직, 개념, 사건, 관계를 그래프로 연결한 뒤 그 구조를 검색과 요약에 함께 사용한다.</p>



<h3 class="wp-block-heading">GraphRAG를 쓰면 벡터 DB가 필요 없는가?</h3>



<p>그렇지 않다. 실제 구현에서는 벡터 검색과 그래프 검색을 함께 쓰는 경우가 많다. 벡터 검색은 의미적으로 가까운 문서를 찾는 데 강하고, 그래프는 엔티티 간 관계와 커뮤니티 구조를 따라가는 데 강하다.</p>



<h3 class="wp-block-heading">GraphRAG는 언제 과한 선택인가?</h3>



<p>문서 수가 적고 질문이 단순 사실 검색 중심이라면 일반 RAG로도 충분하다. GraphRAG는 그래프 구축, 엔티티 정제, 커뮤니티 탐지, 인덱싱 비용이 들기 때문에 관계 분석이 필요한 데이터에서 더 가치가 크다.</p>



<h3 class="wp-block-heading">Microsoft GraphRAG만이 GraphRAG인가?</h3>



<p>아니다. Microsoft GraphRAG는 대표적인 오픈소스 구현과 연구 사례 중 하나다. GraphRAG라는 이름은 더 넓게 그래프 기반 검색 증강 생성 패턴을 가리킬 때도 쓰인다.</p>



<h2 class="wp-block-heading">참고 자료</h2>



<ul class="wp-block-list">
<li><a href="https://www.microsoft.com/en-us/research/project/graphrag/" target="_blank" rel="noreferrer noopener">Microsoft Research Project GraphRAG</a></li>

<li><a href="https://microsoft.github.io/graphrag/" target="_blank" rel="noreferrer noopener">Microsoft GraphRAG Documentation</a></li>

<li><a href="https://github.com/microsoft/graphrag" target="_blank" rel="noreferrer noopener">microsoft/graphrag GitHub repository</a></li>

<li><a href="https://arxiv.org/abs/2404.16130" target="_blank" rel="noreferrer noopener">From Local to Global: A Graph RAG Approach to Query-Focused Summarization</a></li>

<li><a href="https://www.microsoft.com/en-us/research/blog/graphrag-unlocking-llm-discovery-on-narrative-private-data/" target="_blank" rel="noreferrer noopener">GraphRAG: Unlocking LLM discovery on narrative private data</a></li>
</ul>



<script type="application/ld+json">{"@context": "https://schema.org", "@type": "FAQPage", "mainEntity": [{"@type": "Question", "name": "GraphRAG는 무엇인가?", "acceptedAnswer": {"@type": "Answer", "text": "GraphRAG는 문서에서 엔티티와 관계를 추출해 지식 그래프를 만들고, 이 그래프를 RAG 검색과 답변 생성에 활용하는 구조다. 벡터 검색만으로 찾기 어려운 관계형 질문이나 전체 요약 질문에 강하다."}}, {"@type": "Question", "name": "GraphRAG와 일반 RAG의 차이는 무엇인가?", "acceptedAnswer": {"@type": "Answer", "text": "일반 RAG는 질문과 비슷한 문서 청크를 벡터 검색으로 찾는 방식이 많다. GraphRAG는 문서 안의 사람, 조직, 개념, 사건, 관계를 그래프로 연결한 뒤 그 구조를 검색과 요약에 함께 사용한다."}}, {"@type": "Question", "name": "GraphRAG를 쓰면 벡터 DB가 필요 없는가?", "acceptedAnswer": {"@type": "Answer", "text": "그렇지 않다. 실제 구현에서는 벡터 검색과 그래프 검색을 함께 쓰는 경우가 많다. 벡터 검색은 의미적으로 가까운 문서를 찾는 데 강하고, 그래프는 엔티티 간 관계와 커뮤니티 구조를 따라가는 데 강하다."}}, {"@type": "Question", "name": "GraphRAG는 언제 과한 선택인가?", "acceptedAnswer": {"@type": "Answer", "text": "문서 수가 적고 질문이 단순 사실 검색 중심이라면 일반 RAG로도 충분하다. GraphRAG는 그래프 구축, 엔티티 정제, 커뮤니티 탐지, 인덱싱 비용이 들기 때문에 관계 분석이 필요한 데이터에서 더 가치가 크다."}}, {"@type": "Question", "name": "Microsoft GraphRAG만이 GraphRAG인가?", "acceptedAnswer": {"@type": "Answer", "text": "아니다. Microsoft GraphRAG는 대표적인 오픈소스 구현과 연구 사례 중 하나다. GraphRAG라는 이름은 더 넓게 그래프 기반 검색 증강 생성 패턴을 가리킬 때도 쓰인다."}}]}</script>

		<div class="wpulike wpulike-robeen " ><div class="wp_ulike_general_class wp_ulike_is_restricted"><button type="button"
					aria-label="Like Button"
					data-ulike-id="2686"
					data-ulike-nonce="09a4f8fd5a"
					data-ulike-type="post"
					data-ulike-template="wpulike-robeen"
					data-ulike-display-likers=""
					data-ulike-likers-style="popover"
					class="wp_ulike_btn wp_ulike_put_image wp_post_btn_2686"></button><span class="count-box wp_ulike_counter_up" data-ulike-counter-value="0"></span>			</div></div>
	<p>The post <a href="https://blog.kwt.co.kr/graphrag-rag-vector-search-knowledge-graph/">GraphRAG란 무엇인가: 벡터 검색만으로 부족할 때 쓰는 RAG 구조</a> appeared first on <a href="https://blog.kwt.co.kr"></a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://blog.kwt.co.kr/graphrag-rag-vector-search-knowledge-graph/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
