안녕하세요. 저희는 Agentic AI Lab 에서 KT의 검색 기술(K RAG) 개발에 참여하고 있는 김영욱(Embedding/Reranker), 조준희(Modular RAG Components) 입니다. 저희 부서에서는 K RAG 기술 개발을 위해 자연어 질의에 최적화된 고성능 검색 기술을 연구/개발하여 차별화된 핵심 검색 모델을 확보하는 것을 목표로 하고 있습니다.
K RAG 기술 개발을 통해 확보된 기술들은 SearchAI 엔진/솔루션에 포함되어 B2B/B2C사업화에 활용되고 있습니다. 본 게시글에서는 K RAG의 Embedding과 Reranker 모델(이하, KT-Embedding/KT-Reranker)을 활용해 질의에 적합한 문서를 찾고 순위화하는 Retrieval Model과 사용자의 자연어 질의 이해부터 검색, 그리고 응답의 검증까지 완결성을 보완해주는 Modular RAG의 각 Component에 해당하는 Task들을 다루는 RAG-Instruct Model, 두 종류의 주요 모델을 기술하고 현재 개발하고 있는 Next RAG 기술에 대해 간략한 소개를 드리려고 합니다.
1. Overview of RAG
RAG 연구 패러다임은 Naive RAG, Advanced RAG, Modular RAG의 세 단계로 발전해 왔습니다. Naive RAG 방식을 적용함에 따라 기본 Large Language Models (LLMs)을 사용하는 것보다 비용 효율적이며 뛰어난 응답 정확도를 보였지만 몇 가지 한계를 보였고, Advanced RAG는 Naive RAG의 단점을 보완하며 Modular RAG는 RAG의 구성요소를 모듈화하여 활용하기 위한 개념으로 제안되었습니다.
Naive RAG/Advanced RAG
Naive RAG는 LLM이 널리 사용되기 시작한 직후 등장한 초기 RAG 방법론입니다. 이 방식은 색인, 검색, 생성의 전통적인 과정을 따르며, “검색-읽기(Retrieve-Read)” 프레임워크로도 알려져 있습니다. 그러나 이 패러다임에서는 검색 정확도와 관련된 여러 한계점이 존재합니다. 예를 들어, 검색 정확도가 낮아 관련 없는 chunk가 선택될 경우 응답에 필요한 정보가 누락될 수 있고, 질의에 적합하지 않은 내용을 생성하는 환각(hallucination) 현상, 관련성 부족, 편향된 응답 등이 발생할 수 있습니다.
Advanced RAG는 Naive RAG의 한계를 극복하기 위한 개선된 방식으로, 검색 품질 향상에 중점을 둡니다. 검색 사전/사후 단계에 색인 개선과, 검색 최적화를 위한 슬라이딩 윈도우, 세분화된 분할, 메타데이터 활용 등과 같은 다양한 기법을 도입합니다. 즉, Advanced RAG는 검색 사전/사후 처리를 도입하여 정보 검색의 정확성의 향상에 기여합니다.
Modular RAG
Advanced RAG 보다 확장성을 가지면서 유연한 구조를 제공하기 위해 제안되었습니다. 질의와 문서를 고정된 구성으로 다루기 보다, 데이터 별로 특징에 특화된 검색 모듈 적용, routing, retrieval, generator 튜닝 등으로 질의에 적합한 RAG 모듈 재구성 및 파이프라인 재배치를 통해 문제를 해결합니다. 즉, 레고 블록처럼 조립 가능한 모듈(Module) 단위로 RAG를 구성하여, RAG 파이프라인의 유연성/확장성/유지 보수성 향상에 기여합니다.
KT는 RAG 모듈화 및 각 모듈의 지속적인 성능 개선을 통해 Modular RAG 패러다임의 K RAG 기술을 개발하고 있습니다. K RAG 기술의 주요 구성 요소인 검색을 수행하는 Retrieval Model과 검색 시스템의 완결성을 위한 RAG-Instruct Model에 대한 중점 내용을 지금부터 소개 드리겠습니다.
2. 적절한 문서를 찾고 순위화하는 Retrieval Model
색인된 문서를 “retrieval-then-generation” 형태로 수행하는 RAG 시스템에서 검색은 사용자 질의에 대해 적절한 문서를 효율적으로 찾아내는 중요한 요소입니다. 검색은 벡터 기반 검색으로 대량의 문서에서 관련 있는 문서 후보군을 찾아내는 임베딩 기술과 제한된 후보군 안에서 질의와 관련 있는 문서를 정밀하게 찾아내는 리랭킹 기술로 구분할 수 있습니다. 먼저, KT의 검색 파이프라인을 소개하겠습니다.
그림 2. KT의 Retrieval 및 Rerank Pipeline
질의가 주어졌을 때 먼저 KT-Embedding을 통해 대량의 문서 집합으로부터 질의와 잠재적으로 유사할 수 있는 문서 후보군 리스트를 검색합니다. 그리고 KT-Reranker를 사용하여 질의에 대해 문서 후보군 리스트의 순위를 재정렬합니다. KT-Embedding 및 KT-Reranker 각각에 사용한 구조, 정확성, 속도의 상대적 비교는 표 1과 같습니다.
|
Bi-encoder
|
Cross-encoder
|
구조 [2]
|
|
|
| 정확성
|
비교적 낮음
|
비교적 높음
|
| 속도
|
비교적 빠름
|
비교적 느림
|
| 모델군
|
KT-Embedding
|
KT-Reranker
|
표 1. Bi-encoder 및 Cross-encoder 구조 및 성능 비교
Retrieve 단계는 대량의 문서에서 관련 있는 문서 후보군을 빠르게 가져오는데 목적이 있으므로 KT-Embedding은 Bi-encoder 구조를 택하였습니다. 이에 비해 Rerank 과정은 제한된 후보군 안에서 질의와 유사한 문서를 정밀하게 찾아내는데 목적이 있으므로 KT-Reranker는 Cross-encoder 구조를 택하여 개발했습니다.
2.1 Retrieval Model 구조 및 학습 전략
KT-Embedding 및 KT-Reranker를 개발하기 위한 모델 구조 및 학습 전략을 소개합니다. KT-Embedding 및 KT-Reranker에 공통적으로 적용된 모델 구조 및 학습 전략은 다음과 같습니다.
- LLM-based Embedding/Reranker: 모델을 처음부터 학습하지 않고 대량의 코퍼스로 학습되어 뛰어난 언어 관련 성능을 보여주는 디코더 구조의 LLM을 베이스 모델로 하여 학습합니다. 이를 통해, 입력 컨텍스트 길이 확장 등 베이스 모델의 이점을 최대한 활용할 수 있었습니다. 디코더 구조의 LLM을 모델의 베이스로 사용하는 경우 causal attention mechanism으로 인해 풍부한 contextualized representation을 활용하지 못하는 한계가 존재하는 것으로 알려져 있으며, 이를 극복하고자 bidirectional attention 활용 및 masked next token prediction (MNTP)이 제안된 바 있습니다[3]. KT-Embedding도 마찬가지로 bidirectional attention 활용 및 MNTP를 활용한 학습을 진행했습니다.
그림 3. Bidirectional Attention 과 Masked Next Token Prediction [3]
- Hard Negative Mining: 수집된 데이터에 negative로 활용할 수 있는 정보가 있는 경우 해당 정보를 활용했으며, 그렇지 않은 경우 Hard Negative Mining 방법을 통하여 negative를 부착하였습니다. Hard Negative Mining 시에는 적절한 난이도의 negative를 부착하기 위해 임베딩 모델을 활용하였습니다.
- Knowledge Distillation: 상대적으로 큰 오픈 모델을 기반으로 지식 증류 기법(Knowledge Distillation)을 활용해 학습합니다. 지식 증류의 경우 대중적인 방식인 response-based knowledge distillation을 사용했습니다. teacher 모델의 스코어 분포를 student 모델이 근사하도록 학습합니다. 학습 시에는 KLD (Kullback-Leibler Divergence) loss를 활용했습니다.
- Model Merging: 모델 병합(Model Merging)은 여러 모델의 파라미터를 합쳐 추가적인 학습 데이터 및 계산 없이도 모델의 성능을 향상시키는 기술을 말합니다. 기본적인 선형 결합부터 최근 제안되고 있는 여러 병합 방법 등을 여러 체크 포인트에 대해 적용하여 KT-Embedding 및 KT-Reranker의 범용성을 향상시켰습니다.
2.2와 2.3에서는 각각 KT-Embedding 및 KT-Reranker에 특화된 학습 전략을 소개합니다.
2.2 KT-Embedding 모델의 학습 전략
KT-Embedding은 대조 학습(Contrastive Learning)을 활용해 학습되었습니다. 대조 학습은 긍정 쌍은 서로 가깝게, 부정 쌍은 서로 멀게 임베딩 공간에서 배치되도록 모델을 훈련시키는 기법입니다. 대조 학습을 통해 임베딩 공간에서 질의와 문서의 유사도를 학습합니다. anchor-positive-negative로 구성된 Triplet 데이터를 기반으로 대조 학습을 통해 anchor로부터 positive는 가깝게 negative는 멀어지도록 학습합니다.
또한, Triplet의 negative 외에도 미니배치 내의 다른 triplet의 문서들을 in-batch negative로 활용합니다. 동시에 서로 다른 GPU의 미니배치도 함께 활용하여 in-batch negative를 확장했습니다. 아울러, 미니 배치 구성에 대한 실험을 통해 in-batch negative를 고도화할 수 있었습니다. 같은 데이터 셋끼리 하나의 미니 배치로 묶이도록 구성하게 되며, 매 스텝마다 다른 데이터 셋으로 미니 배치를 구성합니다.
그림 4. In-Batch Negative 고도화
2.3 KT-Reranker 모델의 학습 전략
KT-Reranker는 하나의 질의에 대해 positive와 여러 개의 negative를 두어 상대적인 비교를 하는 방식(Listwise)으로 학습을 수행합니다. 이러한 방식이 상대적인 비교 없이 하나의 질의에 대해 각 문서의 관련성에 대한 score 값을 학습하는 방식(Pointwise)에 비해 높은 성능을 보이는 것을 실험적으로 확인할 수 있었습니다. 또한, negative를 고도화하기 위해서 KT-Embedding을 활용하여 질의와 관련이 있는 상위 top-k 개의 문서를 추출하고, 이 중 positive가 아닌 샘플 중 일부를 negative로 추출하여 활용합니다.
3. 문서 보강, 질의 이해, 검증까지: RAG-Instruct Model
RAG-Instruct 모델은 Modular RAG를 구성하는 핵심 모듈들의 총칭으로, RAG의 성능 향상을 위해 문서, 질의, 응답의 관점에서 Data Enrichment(보강), Query Reasoning(추론), Verification(검증) 파트로 구성됩니다.
3.1 RAG 성능향상(1): Data Enrichment
Data Enrichment는 색인 문서를 추출·생성·변환의 세 가지 방법으로 보강하여 검색 성능을 향상시킵니다. RAG-Instruct 모델에서는 현재 NER, Keyphrase Refinement, Summarization, Pseudo Passage 그리고 Pseudo Title까지, 총 다섯 가지 방식을 지원합니다. 질의, 문서, 주제 영역에 따른 다양한 Data Enrichment 방법을 적용하고 실험한 결과, Keyphrase Refinement, Summarization, Pseudo Title 방식이 전반적인 검색 성능 향상에 기여함을 확인했습니다.
- NER (Named Entity Recognition): 문서에 등장하는 특정 개체를 분류하고 개체 분류(태그)를 붙이는 과정입니다. 예를 들어, 특정 브랜드명, 지명, 인물명이 어떤 범주에 속하는지 구분합니다. 이를 통해 사용자가 알고 싶어 하는 정보의 범주를 특정하고 질의와 매칭될 확률을 높입니다. 태그 셋은 TTA 표준 대분류 개체명을 바탕으로 사용합니다.
- Keyphrase Refinement: 문서에 등장하는 주요 내용을 구(phrase) 형식으로 추출 및 재구성합니다. 단순 추출 방식이 아닌 문맥을 파악한 추출+생성 방식을 활용하여 문서에 등장한 비슷하지만 산재한 중요 정보를 하나의 구로 결합합니다. 이를 통해 문서에서 핵심적인 정보를 단편의 자연스러운 구로 변환하여 문서의 정보를 풍부하게 합니다.
- Summarization: 장문의 문서를 핵심 내용을 중심으로 요약합니다. 불필요하거나 지나치게 반복되는 유사 정보를 압축 및 삭제하여, 문서에 핵심적인 내용만 남길 수 있습니다. 이를 통해 원본 문서의 노이즈(stopword, markdown 문자 등)를 줄이고 통일성과 자연스러움을 키워, 사용자의 질의와 쉽게 매칭될 수 있도록 합니다.
- Pseudo Passage: 원본 문서의 내용을 유지하면서 형식을 변형해 새로운 자연어 문서를 생성합니다. 예를 들어 원본 문서가 표, 리스트 등의 구조화된 문서라면, 구조를 파악하여 내용의 누락/변형 없이 줄글로 변환합니다. 이를 통해 줄 글로 들어오는 사용자의 질의 패턴과 그 유사성을 높입니다.
- Pseudo Title: 색인 문서의 내용을 반영하는 제목을 생성합니다. 긴 내용의 문서는 원활한 검색을 위해 일정 단위로 잘리게 되는데, 이때 잘린 각각의 문서에서 중점 내용을 반영하는 제목을 생성하여 전체 문서의 내용은 물론 색인 문서의 내용도 반영할 수 있도록 합니다.
3.2 RAG 성능향상(2): Query Reasoning
한 번의 검색으로 질의에 해당하는 문서를 찾기 어려운 복잡한 질문을 Query Reasoning(질의를 더 유용하게 처리하기)을 통해 분석합니다. RAG-Instruct 모델은 Query Router, Query Decomposition 그리고 Multi-Query의 세 가지 방식을 포함합니다.
- Query Router: 질의를 single-hop(한 번의 추론으로 답할 수 있는 질문)과 multi-hop(여러 단계를 거쳐야 답할 수 있는 질문)으로 구분합니다. Single-hop 쿼리로 분류되면 간단한 RAG process를 거쳐 질의에 대해 응답하고, multi-hop 질의로 분류되면 query decomposition 과정을 수행하여 각 단계별 필요 정보를 검색하고 응답하도록 설계했습니다.
- Query Decomposition: 여러 정보를 필요로 하는 복합적인 질의로 판단되는 질의를 여러 개의 단일 질의로 분해합니다. 연계된 여러 요소를 하나의 질의를 통하면 일부 요소가 검색 결과에서 빠질 수 있고 검색 성능의 저하로 이어지는 것을 관찰했고, 미리 하나의 질의에 하나의 결과가 보장될 수 있도록 복합 질의를 분석하여 의미를 변하지 않는 병렬적/단계적 단순 질의로 분해하여 검색 정보를 보장할 수 있도록 했습니다.
- Multi-Query: 사용자의 질의를 다양한 방식으로 확장합니다. 예를 들어, 사용자는 구어체나 일상어를 쓰지만, 문서들은 문어체나 전문 용어로 작성된 경우가 많습니다. 따라서 질의를 다양한 어휘와 표현으로 확장하여 더 많은 문서를 검색할 수 있도록 합니다. 또한, 사용자 질의에 등장하는 표현을 다양하게 치환하여 문서의 표현과 매칭될 확률을 높입니다.
3.3 RAG 성능향상(3): Verification
서비스에서 LLM이 RAG를 통해 검색된 문서를 기반으로 응답을 생성하더라도 때로는 LLM이 제공된 문서의 문맥을 무시하거나 hallucination을 만들어낼 가능성이 있습니다. Verification(신뢰할 수 있는 답변 여부 확인하기)에서는 이런 문제를 방지하기 위해 기술로 Knowledge Groundedness Check와 Citation을 task로 포함하고 있습니다.
- Knowledge Groundedness Check: 답변이 실제 검색된 문서 기반으로 만들어졌는지 검증합니다. 질의, 검색된 문서, 응답이 주어졌을 때, 응답의 모든 내용이 문서에서 찾을 수 있는 정보인지 판별합니다. 이를 통해 근거 없는 응답이나 모델의 주관적인 해석을 걸러낼 수 있습니다.
- Citation: 답변이 어떤 문서를 참조했는지 명시합니다. 경우에 따라 참조한 문서가 없다는 것도 확인할 수 있어, Groundedness Check를 보완하는 역할도 합니다.
Open LLM을 활용할 수 있지만, 실제 서비스에 적용될 경우 상표나 상품명 같은 도메인 특화 정보에서 성능이 보장되지 않는다는 문제가 있었습니다. 이를 해결하기 위해 다양한 도메인의 데이터를 수집 및 구축하고 SFT(Supervised Fine-Tuning)를 적용하여 성능을 개선했습니다. 데이터는 다양한 도메인(의료/공공/금융/법률/미디어 등)의 공개된 데이터와 자체 구축 데이터를 활용했으며, 데이터 분석과 LLM + 고도화된 prompt를 통해 일련의 검수 과정을 거쳐 학습 데이터를 정제하고, 고품질의 평가 데이터를 구축했습니다.
4. 모델의 성능 검증
Retrieval Model과 RAG-Instruct Model은 다양한 영역에서의 검색 성능을 검증하기 위해 아래 4개의 성능 지표를 활용했습니다.
- Hit@K : K 개의 검색 결과 중, 정답 문서가 있는지 측정합니다. 검색 시스템의 순수 검색 능력을 확인할 수 있는 지표입니다.
- nDCG@K : K 개의 검색 결과에서 순위(나아가 선호도)를 반영하고 0~1사이로 정규화한 지표입니다. 정답 문서의 순위(나아가 선호도)를 고려하기 때문에 검색 시 시스템의 정밀한 검색 능력을 측정합니다
- MAP@K : K까지 정밀도(precision@1 ~ precision@K)의 평균(AP)을 다수 쿼리에 대하여 평균 계산한 지표입니다. AP 계산에서 순위에 따른 점수가 반영되기 때문에 검색 시스템의 전반적인 성능을 평가합니다.
- Recall@K : 전체 정답 문서 중, K 개의 검색 결과가 얼마나 존재하는지 측정합니다. 검색 시스템의 순수 검색 능력을 확인할 수 있는 지표입니다.
4.1 Retrieval Model 성능 검증
KT-Embedding 및 KT-Reranker의 성능을 평가하기 위해 한국어와 영어에 대한 벤치마크 성능을 측정했습니다. 한국어 평가는 MTEB leaderboard의 한국어 검색 성능 평가를 위한 8개의 데이터 셋(
MTEB-ko-retrieval Leaderboard )을 활용하였으며, 영어 평가는 MTEB(eng, v2) leaderboard의 영어 검색 성능 평가를 위한 10개의 데이터 셋을 활용했습니다
[4]. Reranker 모델의 경우, KT-Embedding으로 질의당 상위 20개의 후보를 뽑은 뒤 해당 후보군에 대한 검색 성능을 측정했습니다.
4.1.1 KT-Embedding 모델의 한국어/영어 성능
한국어 검색 성능: 8개의 평가 데이터 셋에 대해서 KT-Embedding이 평균적으로 가장 높은 성능을 보였습니다. 특히, AutoRAGRetrieval 및 MultiLongDocRetrieval와 같은 데이터 셋에서 높은 성능을 보입니다.
표 2. Embedding 모델의 MTEB-ko-retrieval 평가 결과
영어 검색 성능: 10개의 평가 데이터 셋에 대해서 KT-Embedding 모델이 평균적으로 가장 높은 성능을 보였습니다. 특히, Arguana 및 ClimateFEVERHardNegatives와 같은 데이터 셋에서 높은 성능을 보입니다.
표 3. Embedding 모델의 MTEB(eng, v2) Retrieval 평가 결과
4.1.2 KT-Reranker 모델의 한국어/영어 성능
한국어 검색 성능: 8개의 평가 데이터 셋에 대해서 KT-Reranker 모델이 평균적으로 가장 높은 성능을 보였습니다. Average nDCG@10 기준으로, KT-Embedding 대비 5.52%p 향상되었으며, 두 번째로 높은 성능의 모델인 bge-reranker-v2-m3 대비 1.66%p 높은 성능을 보였습니다.
표 4. Reranker 모델의 MTEB-ko-retrieval 평가 결과
영어 검색 성능: 10개의 평가 데이터 셋에 대해서 KT-Reranker 모델이 평균적으로 가장 높은 성능을 보였습니다. Average nDCG@10 기준으로, KT-Embedding 대비 3.26%p 향상되었으며, 두 번째로 높은 성능의 모델인 mxbai-rerank-base-v2 대비 2.05%p 높은 성능을 보였습니다. ArguAna 및 SCIDOCS 데이터 셋에 대해서는 KT-Embedding이 가장 높은 성능을 보이는데, QA 형식에 reranker가 더 피팅되며 학습되어 나타나는 성능 차이로 추정합니다(ArguAna: Argument Retrieval, SCIDOCS: Citation Prediction).
표 5. Reranker 모델의 MTEB(eng, v2) Retrieval 평가 결과
4.2 RAG-Instruct Model 성능 검증
표 6은 RAG-Instruct의 기능에서 Data Enrichment(Retrieval 성능 향상)와 Query Reasoning(질의 해석 능력 향상) 모듈을 활용한 Modular RAG를 적용했을 때의 검색 성능을 나타냅니다. 위의 Embedding / Reranker에서의 테스트는 Query Reasoning 능력이 필요한 질의 셋의 비율이 크지 않아 자체적으로 금융/법률/공공 도메인에서 전문 데이터 주석자를 통해 구축한 데이터를 통해 검증했습니다. gpt-4o 와 gpt-4o-mini는 Modular RAG와 동일한 프로세스 수행에 대한 성능을 RAG-Instruct Model 적용시와 비교하기 위해 실험하였습니다.
Modular RAG의 전반적인 검색 성능은 RAG-Instruct 모델을 적용하였을 때 대부분의 domain에서 gpt-4o-mini / gpt-4o를 적용한 Modular RAG보다 우수한 성능을 보였습니다. 이는 RAG-Instruct에 적용된 데이터, 학습 기법 그리고 prompt가 목표로 하는 domain 과 task에 제대로 대응하고 있음을 증명합니다.
표 6. Modular RAG 프로세스 적용시 검색 성능 비교 (금융/법률/공공 도메인)
5. Next RAG: 자율적 Agent 기능을 통합하여 혁신
K RAG 기술 개발은 이에 그치지 않고, 차세대 RAG 솔루션으로 주목받고 있는 Agentic RAG의 적용 및 개발로 나아가고 있습니다. 현재의 Modular RAG에도 Pre-defined workflow를 따르는 일부 Agentic Pattern은 적용되어 있으나 이를 뛰어넘어 reasoning을 통한 질의 분석, 검색/분석에 대한 자율적 에이전트 기능을 통합한 다음 버전으로 나아가려고 합니다.
아래 4가지 방향으로 Agentic RAG의 장점을 설명합니다.
결과적으로, Agentic RAG는 복잡한 연구 과제, 다단계 분석, 창의적 문제 해결 등 기존 RAG로는 어려웠던 고차원적 작업을 가능하게 하며, AI 시스템의 자율성과 신뢰성을 동시에 향상시키는 혁신적인 발전 방향을 제시하고 있습니다. K RAG 기술은 Query Reasoning 단계에서 사용자의 질의를 자동으로 분석하여 분기점을 형성하고, 그에 따른 자체 로직에 따라 적절한 문서 검색 기법을 적용할 수 있도록 발전하고 있습니다.
Reference
[1] Gao, Yunfan, et al. "Retrieval-augmented generation for large language models: A survey." arXiv preprint arXiv:2312.10997 2.1 (2023).
링크
[2] Humeau, Samuel, et al. "Poly-encoders: Transformer architectures and pre-training strategies for fast and accurate multi-sentence scoring." arXiv preprint arXiv:1905.01969 (2019).
링크
[3] BehnamGhader, Parishad, et al. "Llm2vec: Large language models are secretly powerful text encoders." arXiv preprint arXiv:2404.05961 (2024).
링크
[4] Enevoldsen, Kenneth, et al. "Mmteb: Massive multilingual text embedding benchmark." arXiv preprint arXiv:2502.13595 (2025).
링크