검색 증강 생성(RAG) 평가하기: 알아야 할 모든 것
소개
Retrieval Augmented Generation (RAG)는 Large Language Models (LLMs)로 구동되는 생성형 AI 애플리케이션을 구현하기 위해 널리 채택되는 접근 방식이 되었습니다. 외부 지식 소스를 통합함으로써 RAG는 특정 질의에 대해 더 정확하고 맥락적으로 관련성 높은 응답을 제공하는 모델의 능력을 향상시킵니다. 이러한 잠재력에도 불구하고, RAG가 생성한 답변이 항상 완전히 정확하거나 검색된 지식과 일관되는 것은 아닙니다.
최근 웨비나에서 Zilliz의 Developer Advocate인 Stefan Webb은 RAG 애플리케이션을 위한 평가 전략을 살펴보며, LLM의 성능을 평가하는 방법과 이 분야의 현재 과제 및 한계를 다루었습니다.
이 블로그에서는 다양한 RAG 파이프라인 아키텍처, 검색 및 평가 프레임워크, LLM의 편향과 실패 사례에 대한 개요를 포함해 Stefan의 핵심 인사이트를 요약해 보겠습니다.
RAG 아키텍처
Stefan은 RAG 애플리케이션의 핵심 구성 요소인 semantic search의 기본 개념을 소개하며 발표를 시작했습니다. Semantic search는 vector embeddings를 위한 지식 베이스 저장 시스템으로 Milvus 또는 Zilliz와 같은 vector databases를 활용합니다. 이러한 데이터베이스는 unstructured data 전반에서 효율적인 검색을 가능하게 하여 사용자의 질의와 관련된 의미적으로 유사한 맥락을 검색합니다. 이 기능은 RAG 시스템의 중추를 이루며, 검색된 지식이 입력 질문과 긴밀하게 정렬되도록 하여 생성된 응답의 품질을 향상시킵니다.
아래 그림 1은 기본적인 나이브 RAG 아키텍처를 보여줍니다. 이 구성에서 시스템은 사용자의 질문과의 semantic similarity를 기반으로 가장 관련성 높은 문서를 검색합니다. 그런 다음 검색된 정보는 지침이 포함된 구조화된 프롬프트로 형식화되어 LLM에 전달됩니다. 모델은 이 맥락을 사용해 충분한 정보를 바탕으로 한 응답을 생성합니다.
그림 1: 나이브 RAG
그림 1: 나이브 RAG
기본 RAG 파이프라인은 관련 문서를 검색하고 응답을 생성할 수 있지만, 그 성능이 항상 최적인 것은 아닙니다. 일부 출력은 정확성이나 관련성이 부족할 수 있습니다. 이러한 과제를 해결하기 위해 RAG 파이프라인을 구축할 때 모듈식 접근 방식을 사용하면 각 단계에서 점진적인 개선이 가능합니다.
아래(그림 2에 표시된 것처럼)는 파이프라인의 효과를 향상시킬 수 있는 핵심 기법입니다.
그림 2: RAG 모듈식 아키텍처
그림 2: RAG 모듈식 아키텍처 (출처)
질의 변환
이 단계는 사용자의 질의가 시스템에 의해 제대로 이해되도록 보장하는 데 초점을 맞춥니다. 질의를 기반 검색 메커니즘과 정렬되는 형식 또는 표현으로 변환합니다.
다중 질의: 다양한 동시에 관련성 있는 정보를 검색하기 위해 주요 질의를 여러 개의 초점화된 하위 질의로 분할합니다.
스텝백: 충분한 결과를 찾지 못했을 때 파이프라인의 이전 단계를 다시 살펴보고, 더 나은 검색을 위해 질의를 정제합니다.
RAG Fusion: 여러 쿼리의 결과를 병합하여 LLM에 응집력 있고 포괄적인 컨텍스트를 제공합니다.
Hypothetical Documents (HyDE): 지식 베이스에서 의미적으로 유사한 문서를 검색하는 데 도움이 될 수 있는 합성 문서 또는 가상의 컨텍스트를 생성하여, 추상적이거나 제대로 구성되지 않은 쿼리에 대한 검색을 개선합니다.
쿼리 라우팅
쿼리 라우팅 접근 방식은 쿼리를 가장 적합한 검색 메커니즘 또는 지식 소스로 안내합니다.
논리적 라우팅: 메타데이터 또는 도메인별 필터링과 같은 사전 정의된 규칙이나 논리 연산자를 기반으로 쿼리를 라우팅합니다.
의미적 라우팅: 쿼리의 의미적 특성을 기반으로 이를 처리하는 데 가장 적합한 데이터베이스 또는 시스템으로 쿼리를 안내합니다.
쿼리 구성
쿼리 구성은 기본 데이터베이스의 구조에 맞도록 쿼리가 공식화되는 방식을 개선합니다.
Relational DB: 기존 관계형 데이터베이스를 위한 SQL 유사 쿼리를 구성합니다.
Graph DB: 그래프 데이터베이스에서 노드와 관계를 탐색하기 위해 그래프 순회 Cypher 쿼리를 사용합니다.
Vector DB: semantic similarity 검색을 위해 임베딩을 활용하여 벡터화된 쿼리를 생성합니다.
인덱싱
인덱싱은 지식 베이스의 구성과 접근성을 개선합니다.
청크 최적화: 컨텍스트를 보존하면서 문서를 의미 있고 검색 가능한 청크로 나눕니다.
다중 표현 인덱싱: 다양한 검색 요구를 위해 데이터의 여러 표현(예: 의미적, 구문적)을 생성합니다.
전문화된 Embeddings: 고도로 전문화되거나 기술적인 정보의 검색을 향상시키기 위해 도메인별 임베딩을 사용합니다.
계층적 인덱싱: 더 빠르고 정확한 조회를 위해 인덱스를 계층적으로 구성합니다.
검색
고급 기법을 사용하여 주어진 쿼리에 가장 관련성 높은 문서 또는 컨텍스트를 검색합니다.
랭킹: 검색된 문서를 관련성에 따라 점수화하여 최적의 매치가 우선되도록 합니다.
Corrective RAG: 피드백 또는 추가 기준을 기반으로 랭킹을 조정하여 결과를 동적으로 개선합니다.
재검색: 초기 결과가 품질 기대치를 충족하지 못할 경우 문서를 반복적으로 검색하여, 수용 가능한 결과가 발견될 때까지 프로세스를 개선합니다.
RAG 파이프라인을 구축하는 이 모듈식 접근 방식은 각 구성 요소를 독립적으로 미세 조정합니다. 각 단계에서 특정 과제를 해결함으로써 파이프라인은 더 견고하고 정확하며 적응력 있게 되고, 궁극적으로 생성된 출력의 품질을 향상시킵니다.
파운데이션 모델 평가
나이브 RAG 접근 방식이든 고급 RAG 접근 방식이든, 각 RAG 애플리케이션의 성능을 평가하는 것은 필수적입니다. 이 평가는 강점과 약점을 식별하는 데 도움이 되어 시스템의 신뢰성과 관련성을 보장합니다. 정교함과 관계없이 모든 LLM은 잠재적 한계, 편향 및 부정확성을 해결하기 위해 엄격한 성능 평가가 필요합니다.
성능 평가
그렇다면 모델의 성능을 어떻게 측정하고 평가할까요? RAG 애플리케이션의 성능을 측정하려면 파이프라인의 다양한 측면을 평가해야 하므로 세밀한 접근 방식이 필요합니다. 효과적인 성능 측정을 위한 주요 고려 사항과 방법은 다음과 같습니다.
작업에 대한 평가 vs. 자체 평가
작업 평가: 종종 멀티턴(예: MT-Bench) 또는 멀티태스크(예: MMLU) 시나리오를 포함하는 사전 정의된 작업 집합에서 모델의 성능을 측정합니다. 각 작업은 특정한 정답 질문 및 참조 답변과 연결됩니다.
자체 평가: 모델이 실용적인 사용 사례와 반드시 연결되지 않더라도 정보를 얼마나 효과적으로 검색하고 처리하는지와 같은 내부 성능 지표에 중점을 둡니다. 이는 파이프라인 성능을 진단하는 데 유용합니다.
정답과 컨텍스트에 대한 답변 비교
정답 비교: 생성된 응답이 사전에 정의된 정확한 답변(정답)과 얼마나 밀접하게 일치하는지 평가합니다. 이 접근 방식은 사실 기반 질의와 같은 객관적인 작업에 적합합니다.
컨텍스트 비교: 응답이 검색된 문서에서 제공된 컨텍스트와 얼마나 잘 부합하는지 검토합니다. 이는 정답을 사용할 수 없거나 주관적인 작업에서 특히 중요하며, 일관성과 관련성을 강조합니다.
검색 평가 vs. LLM 출력 평가
검색 평가: 파이프라인이 검색한 문서의 품질에 중점을 둡니다. 지표에는 검색된 문서와 질의 간의 재현율 및 정밀도가 포함될 수 있습니다.
LLM 출력 평가: 언어 모델이 생성한 최종 출력의 품질을 검토하며, 사실적 일관성 및 질의와 검색된 컨텍스트와의 관련성과 같은 요소를 고려합니다.
“골드 스탠더드”로서의 인간 평가
- 인간 평가는 특히 주관적이거나 복잡한 작업에서 성능을 평가하는 가장 신뢰할 수 있는 방법으로 남아 있습니다. 인간은 논리적 일관성, 어조, 창의성과 같은 미묘한 측면을 평가할 수 있습니다. 그러나 이 접근 방식은 시간과 자원 요구 사항으로 인해 확장성이 좋지 않습니다.
LLM을 사용하여 LLM 평가하기(LLM-as-a-Judge)
- 더 발전되고 효율적인 LLM(LLM-as-a-Judge)을 사용하여 다른 LLM의 출력을 평가할 수 있으며, 특히 정답을 사용할 수 없을 때 유용합니다. 이러한 모델은 관련성 및 정확성과 같은 사전 정의된 기준을 바탕으로 응답에 점수를 매겨 인간 평가에 대한 확장 가능한 대안을 제공합니다. 그러나 평가 모델 자체에서 편향이 유입되지 않도록 주의해야 합니다.
Stefan은 평가에 대한 두 가지 접근 방식, 즉 작업 기반 평가와 자체 평가를 다루며 논의를 이어갔습니다. 작업 기반 평가는 일반적으로 공개적으로 이용 가능한 벤치마크에 의존하는 반면, 자체 평가는 생성된 응답의 품질과 검색된 정보의 관련성을 검토하는 것과 같은 내부 측정이나 자기 성찰에 더 중점을 둡니다.
작업 기반 평가: 벤치마크 접근 방식
작업 기반 평가는 다양한 작업 전반에서 모델 성능을 평가하는 표준화된 공개 벤치마크를 사용하는 것에 기반합니다. 이러한 벤치마크는 지식의 다양한 영역, 질의응답 능력, 대화 기술을 포함하는 경우가 많습니다. 몇 가지 예는 다음과 같습니다.
지식 기반 벤치마크: 이러한 벤치마크는 일반 지식과 사실 기반 질의응답에 중점을 둡니다.
MMLU: 수학, 과학, 역사 등 여러 영역에 걸쳐 언어 모델을 테스트하는 다양한 벤치마크입니다.
HellaSwag: 상식 추론을 측정하기 위해 설계된 벤치마크입니다.
ARC: 추론 능력을 갖춘 질의응답에 중점을 둔 벤치마크입니다.
지시 따르기 벤치마크: 이러한 벤치마크는 모델이 지시를 따르고 관련성 있는 응답을 생성하는 능력을 평가합니다.
Flan: LLM의 지시 따르기 능력을 평가하는 일련의 작업입니다.
Self-instruct: 모델이 자체 생성한 지시를 만들고 따르는 능력을 평가합니다.
NaturalInstructions: 모델이 자연어 지시를 따르는 능력에 중점을 둔 대규모 벤치마크입니다.
대화형 벤치마크: 이러한 벤치마크는 모델이 일관성 있고 관련성 있는 대화에 참여하는 능력을 평가합니다.
CoQA: 다중 턴 대화에서 모델을 테스트하는 대화형 질의응답 데이터셋입니다.
MMDialog: 다양한 시나리오에서 대화의 품질에 중점을 둔 대화형 벤치마크입니다.
OpenAssistant: 자연스러운 대화를 유지하는 모델의 능력을 평가하는 대화형 AI 벤치마크.
벤치마크는 표준화된 평가 기준을 제공하지만, 감성 지능, 대화 흐름, 맥락 민감성과 같은 인간 상호작용의 미묘한 차이를 포착하지 못하는 경우가 많습니다. 예를 들어, 어떤 응답은 벤치마크 기준으로는 사실적으로 정확할 수 있지만, 실제 대화에서 인간이 중요하게 여기는 핵심 요소인 자연스러움이나 공감 측면에서는 여전히 부족할 수 있습니다. 또한 벤치마크는 맥락, 사용자 의도, 감정적 어조에 따라 달라질 수 있는 인간 선호의 복잡성을 항상 반영하지 못할 수도 있습니다. 이것이 바로 대화형 AI를 평가할 때 인간 평가가 여전히 "골드 스탠더드"로 남아 있는 이유입니다. 인간 평가는 벤치마크가 종종 간과하는 인간 선호를 고려하기 때문입니다. 그러나 인간 평가는 비용이 많이 들고 리소스 집약적이므로, 내성 기반 평가와 같은 대안적 방법을 더 확장 가능한 옵션으로 고려할 수 있습니다.
내성 기반 평가
내성 기반 평가는 모델이 생성한 응답의 품질과 맥락과의 정렬성을 평가하는 데 초점을 맞추며, 모델의 출력이 입력에 의해 설정된 기대에 얼마나 잘 부합하는지를 측정하는 것을 목표로 합니다. 이러한 유형의 평가는 두 가지 주요 범주로 나눌 수 있습니다: 생성 기반 평가와 검색 기반 평가. 아래는 관련 지표의 몇 가지 예입니다:
생성 기반 평가
충실성 (근거성): 이 지표는 주어진 맥락에 대해 생성된 답변의 사실적 일관성을 측정합니다. 모델이 검색된 맥락으로 뒷받침될 수 없는 주장을 생성하면 해당 주장은 페널티를 받습니다. 충실성은 모델의 출력이 제공된 정보와 일관되며 그 정보에 근거하도록 보장합니다.
답변 관련성: 이 지표는 응답이 사용자의 질문이나 주어진 맥락을 얼마나 잘 직접적으로 다루는지를 평가합니다. 매우 관련성 높은 응답은 정확하면서도 맥락에 적절하며, 질의에 가장 유용한 답변을 제공합니다.
검색 기반 평가
맥락 관련성: 검색된 문서나 맥락이 질의와 얼마나 관련이 있는지를 측정합니다. 이상적으로, 검색된 맥락은 질문에 답하는 데 필요한 정보만 포함해야 합니다. 관련 없거나 불필요한 정보는 생성된 응답의 품질을 저하시킬 수 있습니다.
맥락 재현율: 이 지표는 검색된 맥락이 정답 기준과 얼마나 잘 일치하는지를 평가하며, 주석이 달린 답변을 참조로 사용하는 경우가 많습니다. 이는 관련 문서가 애초에 검색되었는지를 평가하는 데 도움이 되며, 모델이 의미 있는 응답을 생성하기에 충분한 정보를 갖추도록 보장합니다.
충실성, 답변 관련성, 맥락 관련성 지표의 경우, 정답 기준의 부재는 직접 평가에 어려움을 제기합니다. 그러나 정답 기준이 없는 경우 대안적 방법으로 LLM-as-a-Judge를 활용할 수 있습니다. 강력한 LLM은 응답의 일관성, 관련성, 사실적 근거성을 분석하여 이러한 측면에 점수를 매기는 데 사용될 수 있습니다. 생성된 답변을 맥락과 관련성에 대한 자체 이해와 비교함으로써, 모델은 자동화된 평가를 제공할 수 있습니다.
LLM-as-a-Judge의 과제와 한계
LLM-as-a-Judge를 사용하는 것은 정답 기준을 사용할 수 없을 때 지표를 평가하기 위한 유용한 대안이 될 수 있지만, 이 접근 방식은 반드시 해결해야 할 특정 과제와 한계를 도입합니다. 평가 모델 자체가 편향을 도입할 수 있으며, 이는 평가의 품질과 공정성에 영향을 미칠 수 있습니다. 아래는 고려해야 할 몇 가지 일반적인 편향과 과제입니다.
위치 편향
위치 편향은 평가 모델이 순위에서의 위치나 표시되는 순서에 따라 응답을 선호하는 경향을 의미합니다. 많은 경우, 모델은 실제 품질과 관계없이 첫 번째 또는 최상위 순위의 응답이 더 관련성이 높거나 정확하다고 가정할 수 있습니다. 이는 특히 정답이 최상위 순위 위치에 대한 모델의 편향 때문에 더 낮게 순위가 매겨진 경우 부정확한 평가로 이어질 수 있습니다.
Figure 3: Position Bias
그림 3: 위치 편향 (출처)
장황성 편향
장황성 편향은 평가 모델이 더 길고 자세한 응답을 선호하는 경향이 있을 때 발생하며, 이러한 응답이 반드시 더 정확하거나 관련성이 높은 것은 아닙니다. 어떤 경우에는 모델이 장황함을 품질과 잘못 동일시하여 불필요한 정보를 포함한 긴 응답에 더 높은 점수를 부여할 수 있습니다. 이는 특히 간결하고 명확한 답변이 더 바람직한 맥락에서 평가 과정을 왜곡할 수 있습니다.
Figure 4: Verbosity Bias
그림 4: 장황성 편향 (출처)
잘못된 판단
또 다른 한계는 잘못된 판단의 가능성입니다. LLM-as-a-Judge는 다른 모델과 마찬가지로 응답의 품질이나 관련성을 평가하는 데 실수를 할 수 있습니다. 예를 들어, 맥락을 잘못 해석하거나, 미묘한 세부 사항을 간과하거나, 답변의 뉘앙스를 인식하지 못해 부정확하거나 오해의 소지가 있는 평가 결과로 이어질 수 있습니다
Figure 5: Wrong Judgement
그림 5: 잘못된 판단 (출처)
Chain-of-Thought를 사용한 잘못된 판단
LLM 기반 평가에서 Chain-of-Thought (CoT) 추론은 평가 정확도를 크게 저해할 수 있는 복잡한 오류 전파 메커니즘을 도입합니다. 각 중간 추론 단계는 잠재적인 실패 지점으로 작용하며, 사소한 오해나 논리적 불일치조차도 최종 판단에서 점점 더 큰 오류로 연쇄적으로 이어질 수 있습니다. 예를 들어, 추론 체인의 초기 단계가 핵심적인 맥락적 뉘앙스를 오해하거나 응답의 특정 측면에 잘못된 가중치를 부여하면, 이후 추론 단계는 이 결함 있는 기반 위에 구축되어 초기 오류를 기하급수적으로 증폭시킵니다.
Figure 6: Wrong Judgement with Chain-of-thought
그림 6: Chain-of-thought를 사용한 잘못된 판단 (출처)
이러한 편향은 LLM-as-a-Judge 접근 방식의 한계를 해결하는 평가 전략을 채택하는 것의 중요성을 강조합니다. 한 가지 해결책은 GroundedAI 또는 Flow-Judge-v0.1와 같이 평가 목적에 맞게 특별히 미세 조정된 LLM 모델을 사용하는 것입니다. 또 다른 전략은 가능할 때마다 LLM-as-a-Judge 평가를 인간 평가와 결합하는 것입니다. 인간 평가자는 자동화된 모델이 부족할 수 있는 미묘한 이해와 맥락적 인식을 제공합니다. 평가 모델에 대한 정기적인 감사와 반복적인 개선도 편향을 최소화하고 신뢰성을 향상시키는 데 필수적입니다.
오픈 소스 평가 프레임워크
LLM-as-a-Judge 기법 외에도, RAG 애플리케이션을 평가하기 위해 시장에서 여러 오픈 소스 평가 프레임워크가 널리 사용됩니다. 이러한 프레임워크는 검색 및 생성 성능을 효과적으로 평가하기 위한 구조화된 방법론과 도구를 제공합니다:
RAGAS: RAG 애플리케이션에 맞춘 지표로 RAG 시스템을 평가하기 위한 프레임워크.
DeepEval: 여러 평가 지표에서 RAG 또는 파인튜닝 시스템을 평가하기 위한 유연하고 강력한 도구.
ARES: RAG 모델 평가를 위해 설계되었으며, 컨텍스트 관련성, 답변 충실도, 답변 관련성을 강조합니다.
HuggingFace Lighteval: 여러 백엔드(예: transformers, tgi, vllm 또는 nanotron)에서 RAG 애플리케이션을 평가하기 위한 가볍고 확장 가능한 도구를 제공합니다.
이러한 프레임워크는 평가 프로세스를 단순화하고 서로 다른 시스템 전반의 성능 지표를 표준화하여 비교 가능성과 개선을 촉진하는 데 도움이 됩니다.
결론
검색 증강 생성(RAG)은 대규모 언어 모델(LLMs)의 역량을 향상시키는 혁신적인 접근 방식입니다. 그러나 그 성공은 강력한 평가와 지속적인 개선에 달려 있습니다. Stefan이 웨비나에서 강조했듯이, RAG 파이프라인은 쿼리 변환부터 최종 응답 생성까지 여러 단계를 포함하는 복잡한 구조입니다. LLM-as-a-Judge 평가에서 편향을 완화하는 것부터 정확한 검색을 보장하고 사용자 기대에 부합하는 응답을 생성하는 것까지, 과제는 상당합니다.
핵심 요점은 RAG 평가에 만능 해결책은 없다는 것입니다. 성공을 달성하려면 작업 기반 벤치마크, 내성적 지표, 오픈소스 평가 프레임워크, 그리고 가능하다면 인간 평가를 결합하는 섬세하고 다면적인 접근 방식이 필요합니다. RAGAS, DeepEval, ARES와 같은 도구는 유용한 지원을 제공하지만, 결정적인 해답은 아닙니다. 대신, 이들은 끊임없이 발전하는 생성형 AI 환경 속에서 진화하는 도구를 대표합니다.
앞으로 RAG의 미래는 적응성과 지속적인 개선에 달려 있습니다. AI 시스템이 더욱 정교해짐에 따라, 그 성능을 평가하고 향상시키는 능력은 잠재력을 완전히 실현하는 데 필수적일 것입니다. 현재의 한계를 해결하고 혁신적인 평가 방법을 수용함으로써, RAG 애플리케이션은 정확하고, 맥락적으로 관련 있으며, 신뢰할 수 있는 정보를 일관되게 제공하여 AI 분야의 발전을 이끌 수 있습니다.
추가 자료
계속 읽기

Zilliz Skills Breakdown: How AI Agents Master Vector Databases
Zilliz's Milvus Skill (pymilvus, 7 files) and Zilliz Cloud Skill (zilliz-cli, 14 modules) bring vector-DB dev and ops into one Claude Code session.

Zilliz Cloud Audit Logs Goes GA: Security, Compliance, and Transparency at Scale
Zilliz Cloud Audit Logs are now GA, giving enterprises real-time visibility, compliance-ready trails, and stronger security across AWS, GCP, and Azure.

Why AI Databases Don't Need SQL
Whether you like it or not, here's the truth: SQL is destined for decline in the era of AI.



