코알못의 코딩과 AI 가지고 놀기

RAG(검색 증강 생성) 성능 최적화

누군가의진심 2025. 10. 12. 20:44

최근 가장 핫한 AI 기술인 RAG(Retrieval-Augmented Generation)는 AI의 답변 정확도를 획기적으로 높여줍니다. 하지만 방대한 정보를 빠르고 정확하게 찾아내기 위해선 더 고도화된 기술이 필요합니다.
여기, RAG 시스템의 성능을 비약적으로 끌어올리는 핵심 고급 검색 기법 4가지시스템 최적화 전략 4가지를 쉽고 명확하게 설명합니다.


💡 I. RAG의 정확도를 높이는 고급 검색 기법

1. 하이브리드 검색: 정확성과 맥락을 모두 잡는 비결

하이브리드 검색은 두 가지 다른 방식의 검색을 동시에 사용하는 기술입니다. 마치 사전에서 단어를 찾을 때 '정확한 철자'와 '비슷한 의미'를 동시에 떠올리는 것과 같습니다.

검색 방식 작동 원리 장점 단점
BM25 (키워드 검색) 문서에 정확한 단어가 얼마나 자주, 어디에 나오는지 분석 (Sparse) 정확한 단어 매칭에 강함, 계산이 빠름 비슷한 의미의 다른 단어(동의어)는 놓칠 수 있음 (Lexical Gap 발생)
벡터 검색 (의미 검색) 질문의 의미와 문서의 의미가 얼마나 비슷한지 분석 (Dense) 비슷한 의미를 이해함, 질문의 맥락 파악 가능 정확한 키워드가 없어도 순위가 높을 수 있음, 대규모에서 계산 시간이 상대적으로 더 걸릴 수 있음
핵심 기술: 두 방식의 검색 결과를 RRF (Reciprocal Rank Fusion; 상호 순위 융합)이라는 방법으로 합칩니다. 두 목록에서 공통적으로 높은 순위에 나온 문서를 최상위에 배치하여 정확성과 포괄성을 모두 갖춘 결과를 얻습니다.

2. 리랭킹 (Re-ranking): 검색 결과를 다시 정리하기

리랭킹은 1차 검색에서 빠르게 추려낸 문서 목록을 더 꼼꼼히 살펴보고 순서를 다시 매기는 과정입니다.

  • 1단계 검색 (Bi-encoder): 질문과 문서를 따로따로 분석하여 빠르게 상위 25~50개 문서를 추려냅니다.
  • 리랭킹 단계 (Cross-encoder): 리랭커 모델이 질문과 각 문서를 함께(Jointly) 분석하며 관련성을 더 깊은 문맥 수준에서 판단합니다.
  • 효과: 질문과 가장 정확히 맞는 문서 3~5개만 선별하여 AI에게 전달함으로써, 정확도를 크게 높이고 AI가 엉뚱한 답변을 하는 환각 현상(Hallucination)을 줄여줍니다.

3. 쿼리 확장 (Query Expansion): 질문을 다양하게 만들기

사용자가 한 가지 방식으로 질문한 것을 AI가 여러 가지 방식으로 바꿔서 검색하는 기법입니다. 이는 사용자의 키워드 선택 실수로 중요한 정보를 놓치는 것을 방지합니다.

확장 방법 예시 목적
동의어/유의어 추가 "자동차 가격은?" "승용차 비용은?", "차량 시세는?" 어휘의 차이(Lexical Gap)로 인해 누락될 수 있는 문서를 찾음
다각도 질문 생성 AI가 질문을 3~5가지 다른 표현으로 바꿔서 검색 더 넓은 범위와 다른 관점의 관련 정보를 검색
가상 답변 생성 질문에 대한 가상의 답변을 만든 후, 그 답변과 비슷한 문서를 검색 매우 복잡하거나 모호한 질문의 의도를 명확히 파악
 

4. 계층적 검색 (Multi-step Search): 단계별로 정교하게 찾기

계층적 검색은 복잡한 질문에 대해 넓게 훑어본 후 좁혀가면서 정확한 답을 찾는 방식입니다.

  1. 질문 분해 (Decomposition): 복잡한 질문을 여러 개의 하위 질문(Sub-queries)으로 나눕니다.
  2. 광범위 검색: 모든 하위 질문에 대해 가능한 많은 문서를 검색합니다.
  3. 정밀 필터링: 문서에 포함된 메타데이터 (예: 작성 날짜, 부서, 보안 등급)를 이용하여 조건에 맞지 않는 문서를 걸러냅니다.
  4. 최종 검증 (리랭킹): 리랭커를 이용해 최종 선별된 문서들의 정확도를 다시 확인합니다.

실무 적용: 여러 부서의 문서가 섞여있는 대기업 환경이나, 복잡한 사실 관계를 요구하는 질문에 특히 효과적입니다.


🛠️ II. RAG 시스템의 효율을 극대화하는 성능 최적화 전략

검색의 정확도만큼 중요한 것이 속도와 비용입니다. 다음은 시스템을 효율적으로 만드는 기술들입니다.

1. 벡터 양자화 (Vector Quantization): 데이터 압축하기

고화질 사진의 화질을 유지하며 용량을 줄이는 것과 비슷합니다. 거대한 벡터 데이터의 크기를 줄여서 메모리 사용량을 줄이고 검색 속도를 높입니다.

양자화 방법 원리 효과
스칼라 양자화 32비트 숫자를 8비트로 줄임 (약 4배 용량 절약) 품질 손실이 적고, 메모리 절약 효과 우수
이진 양자화 모든 숫자를 0 또는 1로만 표현 (약 32배 용량 절약) 용량 절약은 가장 크지만, 정확도가 다소 떨어질 수 있음
프로덕트 양자화 (PQ) 큰 벡터를 작은 조각으로 나누어 각각 압축 최대 수십 배 압축 가능, 대규모 벡터 검색에 필수적
실제 효과: 70% 이상의 메모리 사용량 감소와 검색 속도 향상으로 서버 비용을 대폭 절감할 수 있습니다.

2. 캐싱 전략 (Caching): 자주 쓰는 것은 미리 준비하기

자주 주문받는 음식을 미리 만들어두는 음식점처럼, 자주 검색되는 내용을 미리 준비해두는 기술입니다.

  • 검색 결과 캐싱: 같은 질문이 또 들어오면 다시 계산하지 않고 저장된 답변을 바로 제공합니다.
  • 문서 임베딩 캐싱: 자주 사용되는 문서의 벡터(임베딩)는 메모리에 계속 보관하여 즉시 재사용합니다.
  • Knowledge Tree 캐싱: 문서 간의 의미적 관계까지 트리 구조로 캐싱하여, 비슷한 질문이 들어왔을 때 효율적으로 문서를 찾고 답변을 생성합니다.

실무 효과: 응답 속도(레이턴시)가 최대 4배까지 빨라지고, 동시에 처리 가능한 요청 수(처리량)가 증가합니다.


3. 분산 처리 (Distributed Processing): 여러 컴퓨터가 함께 일하기

무거운 짐을 여러 사람이 나눠서 드는 것처럼, 큰 데이터를 여러 컴퓨터가 동시에 처리하는 기술입니다.

  • 샤딩 (Sharding): 대용량 데이터를 여러 서버에 나눠서 저장하고, 각 서버가 자신의 부분만 검색하도록 합니다. 데이터가 아무리 늘어나도 안정적인 속도를 유지하는 핵심 기술입니다.
  • 병렬 검색: 여러 데이터베이스나 서버를 동시에 검색하여 검색 시간을 단축합니다.
  • 멀티프로세싱: 하나의 컴퓨터 내에서도 여러 프로세서가 동시에 작업을 수행하도록 프로그래밍합니다.

4. 실시간 업데이트 (Real-time Updates): 최신 정보 자동 반영

뉴스 앱이 새로운 기사를 자동으로 업데이트하는 것처럼, 새로운 문서나 정보가 생겼을 때 자동으로 시스템에 반영하는 기술입니다.

  • 이벤트 기반 업데이트: 새 문서가 추가되거나 기존 문서가 수정되면, 자동으로 벡터로 변환하여 데이터베이스에 추가/업데이트합니다.
  • 점진적 인덱싱 (Incremental Indexing): 전체 시스템을 멈추지 않고(Non-blocking), 변경된 부분만 빠르게 인덱스에 반영합니다. 사용자는 업데이트 과정을 전혀 느끼지 못합니다.

🎯 통합 최적화 전략 및 결론

RAG 성능 최적화는 이 모든 기법을 한 번에 적용하는 것이 아니라, 단계적으로 도입하는 것이 중요합니다.

  1. 기본 RAG 구축: 단순 벡터 검색으로 시작
  2. 하이브리드 검색 도입: 정확성과 포괄성 개선
  3. 리랭킹 추가: 검색 정확도 향상
  4. 캐싱 적용: 속도 개선 및 비용 절감
  5. 분산 처리: 대용량 데이터 및 높은 트래픽 대응

가장 중요한 것은 현재 시스템의 응답 시간, 정확도, 처리량 등의 지표를 꾸준히 모니터링하고, 자신의 상황과 데이터 특성에 맞는 최적의 기법을 선택하여 점진적으로 개선해나가는 것입니다.
 
## 참고:  RAG 를 적용하면서 알게된 것에 대해 gemini 와 perplexity 를 이용해 보고서로 정리하였다. 

반응형