본문으로 바로가기
공학석사 학위 논문으로, 대학원 생활 동안 연구해왔던 주제를 하나의 논문으로 정리해 최종 디펜스 심사까지 무사히 마쳤습니다.
긴 시간 고민했던 연구를 마무리하고 나니 뿌듯함과 함께,
동시에 아직 더 개선하고 확장해보고 싶은 부분들이 많이 남아 있어 아쉬움도 함께 느껴집니다.

본 연구는 석사 과정 동안 진행한 질의응답 성공·실패 재사용 기반 Agentic RAG 시스템 연구로, 기존 질의응답 시스템의 어떤 문제를 해결하고자 했는지, 그리고 이를 어떻게 구조적으로 개선했는지를 전체적인 내용을 가볍게 정리해 공유해보고자 합니다.

1.1. 연구 배경: Agentic RAG의 등장

대규모 언어 모델(LLM)의 환각(Hallucination) 문제를 해결하기 위해 등장한 RAG(Retrieval-Augmented Generation) 기술은 계속해서 발전해 왔습니다.

 

초기의 Traditional RAG는 사용자의 질문에 대해 문서를 한 번 검색(Retrieve)하고 답변을 생성하는 선형적인 구조였습니다.

하지만 이 방식은 복잡한 추론이 필요한 질문(Multi-hop Query)이나, 검색된 문서가 부정확할 경우 적절히 대응하지 못한다는 한계가 있었습니다.

 

이를 극복하기 위해 최근에는 Agentic RAG가 등장했습니다.
Agentic RAG는 LLM이 스스로 검색 필요 여부를 판단하고, 결과가 불충분할 경우 재검색이나 쿼리 수정을 반복하는 동적 파이프라인을 가집니다. 이러한 구조로 인해 복잡한 질문에 대한 정확도는 크게 향상되었습니다.

 

이 차이를 보다 직관적으로 이해하기 위해, 간단한 예시를 들어보겠습니다.

예시 질의
"프랑스와 독일의 2030년 재생에너지 목표를 공식 문서 기반으로 비교해줘."

 

Traditional RAG (정적 파이프라인)
기존 방식은 질문 키워드(재생에너지, 프랑스, 독일)를 기반으로 단 1회의 검색을 수행합니다.

만약 검색 결과로 구체적인 수치가 없는 일반적인 정책 개요 문서만 추출된다면,

LLM은 정보 부족으로 인해 "명확한 비교가 어렵습니다"라며 답변에 실패하게 됩니다.

그 결과, “두 국가 모두 재생에너지 확대 정책을 추진하고 있으나, 구체적인 수치 비교는 어렵습니다.” 와 같은 정보 부족 기반의 불완전한 응답에 그치게 됩니다.

 

Agentic RAG (동적 파이프라인)
반면 Agentic RAG는 대표적으로 [추론(Thought) → 행동(Action) → 관찰(Observation)]의 루프를 통해 부족한 정보를 스스로 보완할 수 있습니다. 


1.2. Agentic RAG의 한계와 연구 동기

하지만 Agentic RAG는 정확도가 좋아진만큼, 응답 지연시간이 증가하는 트레이드오프(Trade-off)를 감수해야 했습니다.
이러한 동적 파이프라인 덕에 정확도는 좋아졌지만 바로 "정확도가 높아질수록,  답변을 받기까지 기다려야 하는 시간(지연 시간)도 함께 길어진다"는 점입니다.

 

동적 파이프라인 구조상, 사용자의 질문 하나를 해결하기 위해 내부적으로는 수차례의 검색과 검증, 그리고 재생성 과정을 반복해야 하기 때문입니다. 이로 인해 답변의 품질은 좋아지지만, 사용자가 답변을 받기까지 기다려야 하는 시간과 연산 비용은 크게 증가하게 됩니다.

 

제가 주목한 더 근본적인 비효율의 원인은, 기존 시스템들이 이전의 처리 이력을 전혀 참조하지 않고, 들어오는 모든 질의를 독립적으로 처리한다는 점입니다.

 

쉽게 예를 들어 설명해 보겠습니다.
시스템이 "프랑스와 독일의 2030년 에너지 목표를 공식 문서 기반으로 비교해줘"라는 질의를 받았다고 가정해 봅시다.

이 질의가 복잡한(Multi-hop) 이유는 단일 문서에서 정답을 찾을 수 없기 때문입니다. AI는 프랑스의 정책 문서(예: PPE2)와 독일의 법안(예: EEG)을 각각 별도로 검색해서 찾아내야 하고, 서로 다른 두 문서에 흩어진 구체적인 수치를 추출하여 비교 및 통합하는 고도의 추론 과정을 거쳐야 합니다. 이 과정에서 필연적으로 여러 번의 검색과 재검토가 발생하게 됩니다.

 

문제는 동일하거나 의미적으로 매우 유사한 질문이 다시 입력되었을 때 발생합니다.
효율적인 시스템이라면 앞서 힘들게 도출한 통합된 답변을 바로 활용해야겠지만, 기존의 Agentic RAG는 이전에 해당 질문을 성공적으로 처리했다는 사실을 인지하지 못합니다.

 

결국 이미 검증된 답변과 해결 경로가 존재함에도 불구하고, 다시 처음부터 문서를 검색하고 추론하는 '중복 연산'을 수행하게 됩니다. 저는 이러한 구조적 비효율을 해결하기 위해, 시스템이 과거의 성공과 실패 경험을 저장하고 이를 재사용할 수 있는 방법이 필요하다고 판단했습니다.


2.1. 제안 방법: 경험 데이터베이스(Experience DB)의 구축과 활용

이러한 비효율을 극복하기 위해, 저는 매번 독립적으로 질의를 처리하던 기존 방식(유사하거나 동일한 질의 처리 이력을 기억하지 않는 방식)을 개선하여, "과거의 경험을 축적하고 이를 실시간으로 꺼내 쓰는" 새로운 시스템 SFE-RAG를 제안했습니다.

본 시스템은 질의응답 과정에서 발생하는 데이터를 벡터화하여 '경험 데이터베이스(Experience DB)'에 저장하고, 다음 3가지 핵심 전략을 통해 효율성을 극대화합니다.

 

① 전략 1: 경험 데이터베이스 구축 (Experience DB Construction)
시스템이 처리한 모든 질의응답 결과(성공 및 실패)를 단순히 로그로 남기는 것에 그치지 않고,

추후 검색이 가능한 형태(벡터 임베딩)로 변환하여 저장합니다.

이를 통해 시스템은 운영 기간이 길어질수록 활용 가능한 경험 자산을 지속적으로 축적하게 됩니다.

 

② 전략 2: 성공 답변의 즉시 재사용 (Direct Reuse Path)
사용자 질의가 입력되면, 먼저 경험 DB를 탐색하여 의미적으로 매우 유사한 '과거의 성공적인 질의-응답 쌍'이 존재하는지 확인합니다. 검증된 성공 사례가 발견될 경우, 비용이 많이 드는 '추론-검색-검증'의 반복 과정을 생략하고 저장된 답변을 즉시 반환합니다. 이를 통해 불필요한 연산을 제거하고 응답 속도를 크게 단축합니다.

 

③ 전략 3: 케이스별 동적 프롬프트 반영 (Dynamic Prompting)
유사한 경험이 있지만 즉시 재사용하기에는 적합도가 다소 낮은 경우, 과거 경험을 프롬프트로 변환하여 LLM에 제공합니다.

  • 성공 경험 활용 (Success Guidance): 과거의 성공적인 해결 논리를 모범 사례(Few-shot)로 제공하여,
    현재 질의에 대한 정답 유도율을 높입니다.
  • 실패 경험 활용 (Failure Avoidance): 과거에 실패했던 기록(오답, 검색 실패 등)이 있다면 이를 '오류 회피 지침'으로
    제공합니다. LLM이 동일한 시행착오를 반복하지 않도록 사전에 제어하여, 재시도(Retry) 횟수를 최소화합니다.

결과적으로 SFE-RAG는 경험이 축적될수록 이미 해결한 문제는 빠르게 처리하고(Direct Reuse),

새로운 문제는 과거의 경험을 참조하여(Dynamic Prompting) 효율적으로 해결하는 구조를 갖추게 됩니다.

 


2.2. 제안 방법: 경험 케이스별 동적 프롬프트 적용

앞서 설명한 전략을 정교하게 수행하기 위해,
검색된 과거 경험과 현재 질문의 관계를 분석하여 총 5가지 케이스(Case)로 분류했습니다. 

  • Case A-1 (성공 답변 즉시 재사용): 현재 입력된 질의가 과거에 성공적으로 처리했던 질의와 표현만 다를 뿐 의미적으로 완전히 동일하다고 판단되는 경우입니다.
    예를 들어 사용자가 한국 수도가 어디야?라고 묻는 상황입니다. 시스템은 저장된 답변인 서울입니다를 즉시 반환합니다. 
    이러한 즉시 재사용 방식은 간단한 질문 외에도, 원래 여러 문서를 찾고 통합해야 해서 오랜 시간 이상 소요되었을 
    복잡한 멀티홉 질의에서는 처리 시간을 획기적으로 줄여주기 때문에 굉장히 효과적입니다.

  • Case A-2 (성공 경험 참고): 유사한 성공 사례가 존재하지만, 질문의 대상이 달라 답변을 그대로 재사용할 수는 없는 경우입니다. 이때는 인컨텍스트 러닝(In-Context Learning) 기법을 활용합니다.
    인컨텍스트 러닝이란 AI 모델을 새로 학습시키지 않고, 프롬프트(명령어) 안에 참고할 만한 예시를 넣어줌으로써 AI가 그 패턴을 보고 정답을 유추하게 만드는 기법을 말합니다.


    예시 상황: 사용자가 "일본의 수도는 어디인가요?"라고 질의
    시스템 동작: 저장된 '대한민국의 수도는 서울이다'라는 성공 사례를 패턴으로 LLM에게 제공합니다. 
    AI는 이 패턴(국가 → 수도)을 참고하여, 일본의 수도가 도쿄라는 정답을 더 정확하고 신속하게 도출해낼 수 있습니다.

  • Case B (실패 회피): 과거에 유사한 질의에 대해 실패했던 경험만 검색된 상황입니다. 이때는 시스템이 과거에 발생했던 오류 카테고리 정보를 LLM에게 전달합니다.
  • Case C (복합 참조): 관련된 성공 경험과 실패 경험이 모두 검색된 경우입니다. 시스템은 성공 사례를 모범 지침으로,
    실패 사례를 오류 회피 지침으로 동시에 활용합니다. 따라야 할 긍정적인 패턴과 주의해야 할 오류 유형을
    함께 제공하여 답변의 완성도를 높이는 전략입니다.

  • Case D (기본 처리): 관련된 과거 경험이 DB에 존재하지 않는, 완전히 새로운 유형의 질의가 들어온 경우입니다.
    이때는 이전 처리 이력을 참조하지 않고 일반적인 Agentic RAG 프로세스를 통해 문서를 검색하고 답변을 생성하며,
    도출된 결과는 새로운 경험 데이터로서 DB에 저장됩니다.

 

결과적으로 SFE-RAG는 이 5가지 케이스 분류를 통해, 정적인 규칙에 의존하던 기존 시스템과 근본적으로 차별화됩니다.
즉, 과거의 성공/실패 경험을 실시간으로 분석하여 LLM에게 반영하는 동적 프롬프트(Dynamic Prompt)를 구현함으로써,
매 질의마다 가장 효율적인 답변 전략을 자율적으로 선택하고 실행하게 됩니다.


3.1. 실험 결과

제안한 SFE-RAG 모델의 효용성을 검증하기 위해 HotpotQA(멀티홉 추론), NQ(실제 검색 질의) 등 다양한 성격의 벤치마크 데이터셋을 활용해 실험을 진행했습니다.
특히, 시스템 운영 기간이 길어질수록 성능이 어떻게 변화하는지 관찰하고자 데이터를 배치(Batch) 단위로 나누어 순차적으로 학습 및 평가를 수행했습니다.
본 연구는 최종 사용자가 체감하는 성능(답변 정확도와 응답 시간)과 시스템의 구조적 효율성 입증에 집중하여 다음과 같은 지표들을 활용했습니다.

 


3.2. 정확도 및 효율성 분석

데이터셋 평가지표 SFE-RAG RAG-Critic
(Baseline)
FLARE Self-Ask Self-RAG
HotpotQA EM 0.95 (+4.4%↑) 0.91 0.49 0.43 0.48
F1 0.98 (+5.4%↑) 0.93 0.53 0.53 0.52
LLM Judge 0.98 (+5.4%↑) 0.93 0.52 0.49 0.53
NQ EM 0.89 (+8.5%↑) 0.82 0.26 0.29 0.29
F1 0.92 (+8.2%↑) 0.85 0.33 0.35 0.37
LLM Judge 0.89 (+17.1%↑) 0.76 0.31 0.23 0.33
PopQA EM 0.97 (-1.0%↓) 0.98 0.77 0.34 0.69
F1 0.97 (-2.0%↓) 0.99 0.80 0.61 0.74
LLM Judge 0.95 (+2.2%↑) 0.93 0.79 0.33 0.71
  • 정확도 상승: SFE-RAG는 기존의 고성능 모델인 RAG-Critic과 비교했을 때도, HotpotQA 기준 F1 Score가 약 5.4% 포인트 상승하는 결과를 보였습니다.
  • 향상 요인: 이러한 정확도 향상은 Case A-2(성공 경험 참고)와 Case B(실패 회피)를 통한 경험 기반 동적 프롬프트 전략 덕분입니다. 성공적인 답변 패턴을 모범 지침으로 제공하고(A-2), 과거에 발생했던 오류 유형을 사전에 인지하여 회피하도록 유도함으로써(B), LLM이 첫 시도부터 더 높은 품질의 답변을 생성하게 되어 최종 정확도가 상승했습니다.

 

방법론 배치 1 배치 2 배치 3 변화
SFE-RAG 7.0s 2.4s 2.4s ↓ 4.6s (−65.7%)
RAG-Critic 6.0s 5.3s 6.2s ↑ 0.2s
FLARE 4.7s 3.9s 3.8s ↓ 0.9s
Self-Ask 1.2s 1.1s 1.3s ↑ 0.1s
Self-RAG 3.2s 3.1s 3.0s ↓ 0.2s
데이터셋 처리 시간 AIL (재시도 횟수) ARR (재사용률) FASR (첫 시도 성공)
HotpotQA 7.0s → 2.4s
(↓65.7%)
0.52 → 0.08
(↓85%)
0% → 84%
(↑84%p)
57% → 91%
(↑34%p)
NQ 9.9s → 6.5s
(↓34.7%)
0.89 → 0.56
(↓37%)
0% → 38%
(↑38%p)
25% → 56%
(↑31%p)
PopQA 3.9s → 2.4s
(↓37.3%)
0.26 → 0.10
(↓62%)
0% → 94%
(↑94%p)
78% → 95%
(↑17%p)
  • 처리 시간 단축: 경험 데이터가 축적된 후반 배치(Batch 3)에서는 HotpotQA 데이터셋 기준으로 평균 7.0초에서 2.4초로 약 65.7%의 시간 단축을 달성했습니다.
  • ARR (재사용률) 증대: 이 시간 단축의 핵심 원동력은 ARR(답변 재사용률)이 초기 0%에서 84%까지 증가했기 때문입니다. 즉, 전체 질의 중 대부분이 Case A-1(즉시 재사용)으로 처리되면서 불필요한 LLM 연산과 검색이 생략되었습니다.
  • AIL (재시도 횟수) 감소: 평균 재시도 횟수(AIL) 역시 크게 감소했습니다. 이는 Case A-2(성공 참고)와 Case B(실패 회피) 전략이 첫 시도의 성공률을 높여 불필요한 재시도 루프 진입을 줄였음을 의미합니다.

4.1. 결론 및 연구 요약

본 연구는 기존 Agentic RAG 시스템이 직면했던 정확도-응답 시간 트레이드오프 문제와 중복 연산 문제를 해결하기 위해, 성공-실패 경험 DB 기반의 자기 개선 Agentic RAG 시스템인 SFE-RAG를 제안했습니다.

  • 구조적 기여: 경험 DB 구축과 성공 답변 즉시 재사용(Direct Reuse Path), 그리고 경험 기반 동적 프롬프트 전략을 통해 시스템의 구조적 효율성을 확보했습니다.
  • 정량적 성과: 실험 결과, HotpotQA 데이터셋 기준으로 응답 처리 시간이 최대 65.7% 단축되었으며, 정확도 또한 기존 RAG-Critic 대비 5.4% 포인트 향상되어 정확도와 효율성을 동시에 개선했습니다.
  • 의의: SFE-RAG는 경험 축적을 통해 성능이 지속적으로 향상되는 Self-Improving Agentic 시스템의 실현 가능성을 입증했습니다.

4.2. 한계점 및 향후 연구 과제

본 연구는 다음과 같은 한계점을 가지며, 이는 향후 연구의 방향이 될 것입니다.

  • 유사 질의 표현 검증의 필요성: 현재 시스템은 벡터 유사도를 기반으로 경험을 검색하나, 실제 사용자가 다양한 표현으로 질의할 경우의 일반화 성능 검증이 더 필요합니다.
  • 시간 민감 정보 관리 부재: 검증된 답변이 '현재 총리', '최신 주가' 등 시간이 지남에 따라 유효성이 만료되는 정보를 포함할 경우, 이에 대한 자동 갱신 및 만료 처리 정책이 미비합니다.
  • 다도메인 확장성: QA 데이터셋을 중심으로 성능을 입증했으나, 법률, 의학 등 다양한 전문 도메인에서의 범용성 검증이 필요합니다.