더 정확한 검색 품질과 답변을 위한 RAG 성능 개선 방법을 실제 기업 사례와 함께 알아봅니다.
RAG(Retrieval-Augmented Generation)는 대규모 데이터베이스에서 필요한 정보를 검색하고, 이를 바탕으로 답변을 생성하는 기술입니다. 하지만 기술이 아무리 뛰어나더라도, 정확한 성능 평가 없이는 그 가치를 제대로 보여줄 수 없겠죠.
스켈터랩스는 RAG 성능을 끌어 올리기 위해 오랜 기간 연구해왔습니다. "RAG 성능 좋아요"라는 말을 그저 흘러가는 말이 아닌, 객관적인 사실로 만들고 기업 고객에게 신뢰성 높은 서비스를 제공하는 것이 목표이기 때문입니다.
이번 글에서는 RAG 시스템 성능을 평가하는 다양한 방법과, 스켈터랩스가 실제 사례를 통해 연구하고 있는 개선 방안을 자세히 살펴보겠습니다.
📖목차
• RAG 성능 평가란?
• RAG 성능 평가 요소
• 최신 RAG 평가 방법
• RAG 실제 적용 사례
📍RAG 성능 평가란?
RAG 성능 평가(RAG Evaluation)는 RAG가 얼마나 효과적으로 작동하는지 측정하는 과정입니다.
RAG 시스템은 기업의 핵심 업무를 지원하는 중요한 도구로 자리잡았습니다. 고객 문의에 자동으로 응답하고, 방대한 내부 문서를 검색하며, 의사결정에 필요한 데이터를 분석하는 등 다양한 역할을 수행하고 있습니다.
이처럼 중요한 업무를 처리하는 시스템인 만큼, 그 성능이 신뢰할 수 있는 수준인지 반드시 확인해야 합니다. 부정확한 정보나 적절하지 않은 답변은 기업의 신뢰성에 영향을 미칠 수 있기 때문입니다.
하지만 RAG의 성능을 평가하는 건 쉽지 않은 일입니다. RAG 시스템이 동작하는 방식을 이해한다면, 왜 복잡한지 알 수 있습니다. RAG는 크게 두 단계로 작동합니다:
- 검색 단계: 질문과 관련된 정보를 찾아오는 단계
- 생성 단계: 찾아온 정보를 바탕으로 답변을 만드는 단계
이처럼 RAG는 두 단계가 유기적으로 연결되어 작동하기 때문에, 각 단계의 성능을 개별적으로, 그리고 전체적으로 평가해야 합니다. 검색된 정보의 관련성과 생성된 답변의 정확성을 체계적으로 평가함으로써, 일관된 사용자 경험과 신뢰할 수 있는 성능을 보장할 수 있습니다.
📍RAG 성능 평가 요소
일반적으로 RAG 시스템은 세 가지 단계로 평가됩니다:
1. 검색 단계 평가 (Retrieval Evaluation)
정보를 찾아오는 능력을 평가하는 단계입니다.
• 관련성(Relevance)
검색된 문서가 질문과 얼마나 관련 있는지를 평가합니다. 필요 없는 정보를 가져오면 그 답변은 소용이 없기 때문입니다. 예를 들어, "2024년 자율주행차 안전 규제"에 대한 질문에 대해 최신 안전 규제 문서를 찾아왔다면 좋은 검색 결과입니다. 반면 오래된 규제나 일반적인 자동차 규제를 찾았다면 좋은 결과가 아닙니다.
• 정밀도(Precision)
검색된 문서 중 유용한 문서의 비율을 평가합니다. 많은 문서를 가져오지만 그중 중요한 정보를 놓친다면 좋은 평가를 받을 수 없습니다. 예를 들어, 10개의 문서 중 8개가 유용하다면 정확도는 80%로 산정됩니다.
2. 생성 단계 평가 (Generation Evaluation)
검색된 정보를 바탕으로 얼마나 정확한 답변을 생성하는지 평가합니다.
• 유창성(Fluency)
답변이 사실에 기반해 정확한 정보를 제공하는지 평가합니다. 예를 들어, '2024년 자율주행차는 안전 인증을 반드시 받아야 한다'는 내용이 담긴 문서가 있을 경우, 이를 기반으로 '2024년부터 자율주행차는 안전 인증이 필수입니다'라고 답변한다면 정확한 답변이 됩니다.
• 적응성(Adaptability)
검색된 정보가 완벽히 일치하지 않더라도, 질문에 적합한 답변을 유연하게 제공할 수 있는지를 평가합니다. 예를 들어, "자율주행차의 미래는?"이라는 질문에 대해 여러 문서의 정보를 종합해 자율주행차의 트렌드와 전망을 설명한다면, 적응성이 높은 답변이 됩니다.
• 일관성(Consistency)
여러 출처에서 얻은 정보가 서로 모순되지 않고, 논리적으로 연결되어 있는지 평가합니다. 예를 들어, "자율주행차는 매우 안전하다"고 말한 후 "안전성이 검증되지 않았다"는 모순된 답변을 제공하면, 일관성이 없는 결과가 됩니다.
3. 종합 평가 (End-to-End Evaluation)
시스템 전체의 성능을 평가하는 단계로, 검색과 생성이 얼마나 조화를 이루고 있는지 종합적으로 평가합니다.
• 전체적인 유용성(Overall Utility)
사용자 질문에 실제로 도움이 되는 답변을 제공했는지 평가합니다. 이를 위해 실제 사용자 피드백과 전문가의 평가가 함께 이루어집니다.
• 응답 속도(Latency)
질문부터 답변까지 걸리는 시간을 평가합니다. 정확성과 속도 간의 균형을 맞추는 것이 중요합니다. 너무 빠르면 정확도가 떨어지고, 너무 정확하게만 하려다 응답 시간이 느려지면 사용자 경험이 저하될 수 있습니다. 최적의 균형을 찾는 것이 핵심입니다.
📍스켈터랩스는 RAG를 이렇게 평가합니다
1. 검색 능력 평가: 필요한 정보를 잘 찾아오나요?
스켈터랩스는 두 가지 주요 지표를 사용해 검색 능력을 평가합니다.
• Recall@k
질문에 대해 상위 k개의 검색 결과 안에 관련 정보가 포함되어 있는지를 평가하는 정량적 지표입니다. 시스템이 얼마나 빠짐없이 관련 정보를 찾아내는지를 측정하죠. 예를 들어, 총 100개의 질문(테스트 케이스) 중에서, 각 질문의 상위 5개 검색 결과 안에 관련 문서가 포함된 경우가 60개라면, Recall@5는 60%가 됩니다.
• MRR@k
첫 번째 관련 정보가 검색 결과의 몇 번째에 등장하는지를 평가합니다. 1위면 1점, 2위면 1/2점, 3위면 1/3점을 부여하는 방식으로, 중요한 정보가 상위에 랭크될수록 높은 점수를 받습니다. 이는 사용자가 원하는 정보를 얼마나 빨리 찾을 수 있는지를 나타내는 중요한 지표입니다.
2. 답변 품질 평가: 얼마나 좋은 답변을 만들어내나요?
스켈터랩스는 G-eval이라는, AI의 생성된 답변을 체계적으로 평가하는 시스템을 사용합니다. 이는 답변의 정확성, 일관성, 의도 파악 등을 1~5점으로 점수화해 전체적인 품질을 평가합니다:
• 답변이 정확한가요? (사실과 다른 내용은 없나요?)
• 질문의 의도를 제대로 파악했나요?
• 앞뒤가 안 맞는 이야기는 없나요?
• 답변이 이해하기 쉽게 잘 설명되어 있나요?
3. 속도 평가: 얼마나 빨리 답변하나요?
아무리 좋은 답변이라도 응답 시간이 길다면 사용자가 불편을 겪을 수 있습니다. 그래서 응답 속도도 중요한 평가 대상입니다.
스켈터랩스는 SLM(Small Language Model)을 도입해, 대형 모델의 성능을 유지하면서도 응답 지연 시간을 줄이는 전략을 실험 중입니다. 대형 모델의 정확성을 유지하면서도, 더 빠른 응답 시간을 제공하는 것이 목표입니다.
📍RAG 실제 적용 사례
이처럼 체계적인 평가 시스템을 구축하고 운영하는 것은 결코 쉬운 일이 아닙니다. 고객사들이 자주 겪는 문제들과 그에 대한 스켈터랩스의 해결 방안을 살펴보겠습니다.
1. 데이터 품질 관리 – "정보가 너무 빨리 바뀌어요!"
데이터가 자주 변경되는 환경에서는 RAG 시스템의 성능이 그 데이터의 정확성과 최신성에 크게 좌우됩니다. 고객사에서 자주 겪는 문제는 다음과 같습니다:
🆘 회사의 인사 정보가 자주 변경될 때
🆘 제품 가격이나 재고 정보가 수시로 변동될 때
🆘 새로운 정책이나 규정이 업데이트될 때
스켈터랩스는 이러한 문제들을 해결하기 위해 다음과 같은 방안을 제시하고 있습니다:
✅ 정기적인 데이터 업데이트를 통해 최신 정보를 지속적으로 반영합니다.
✅ 오래된 정보를 자동으로 걸러내는 유효기간(timestamp) 기능을 활용합니다.
✅ 최신 정보를 우선적으로 검색할 수 있는 알고리즘을 적용해, 최신 데이터를 제공합니다.
✅ 공공자료 등 신뢰성 있는 데이터 소스만을 사용하여, 높은 수준의 정확성을 유지합니다.
2. 상충된 정보 조율 – "서로 다른 문서에서 다른 답변이 나와요!"
다양한 소스에서 상충된 정보가 제공되는 경우, 이를 어떻게 조율하고 우선순위를 정할지는 중요합니다. 실제로 고객사에서 자주 겪는 문제는 다음과 같습니다:
🆘 A 부서 문서에서는 이렇게 말하지만, B 부서 문서는 저렇게 말할 때
🆘 예전 규정과 새 규정이 섞여 있을 때
🆘 여러 부서의 의견이 다를 때
이러한 문제들을 해결하기 위해 스켈터랩스는 다음과 같은 해결 방안을 제공하고 있습니다:
✅ 신뢰할 수 있는 출처에 더 높은 가중치를 부여해 중요한 정보가 우선적으로 반영됩니다.
✅ 최신 정보가 항상 우선적으로 검색되도록 알고리즘을 최적화합니다.
✅ 여러 출처에서 동일한 정보를 제공하는 경우, 이를 우선적으로 활용해 신뢰도를 높입니다.
✅ 상충된 정보가 있다면, 사용자에게 명확하게 알림으로써 정보의 차이를 투명하게 설명합니다.
📍더 좋은 RAG 성능을 위해
RAG의 성능을 제대로 측정하는 일은 생각보다 복잡합니다. 단순히 얼마나 빠르고 정확한지만 보는 것이 아니라, 실제 업무 환경에서 얼마나 도움이 되는지까지 살펴봐야 하기 때문입니다.
AI가 많은 영역에서 활용되고 있는 오늘날, 그 성능과 신뢰성을 체계적으로 검증하는 과정은 필수적입니다. 특히 RAG와 같은 시스템이 기업의 중요한 결정을 지원할 때, 그 신뢰성은 단순한 기술적 성과 이상의 의미를 가집니다.
이러한 맥락에서 RAG 기술의 성능 평가는 앞으로도 계속 발전해야 할 영역입니다. 더 정확한 평가 지표의 개발, 실제 사용 환경을 고려한 방법론의 확립, 그리고 사용자 피드백을 반영한 지속적인 개선. 이것이 바로 스켈터랩스가 집중하고 있는 지점입니다.
Reference
스켈터랩스 NLP팀 유재효 님