블로그 목록
RAG 기술· 6분 읽기

하이브리드 RAG: 벡터 검색만으로는 부족한 이유

하이브리드 RAG는 의미 검색(벡터)과 키워드 검색을 함께 써서 서로의 약점을 메우는 검색 방식입니다. 개념과 장점, 한국어 서비스에서 주의할 점, 도입 판단 기준을 정리했습니다.

에스제이시스템 대표 정지흥
글 · 정지흥
에스제이시스템 대표 · 16년차 백엔드·AI 개발자

AI 챗봇이 그럴듯한 거짓말을 하지 않게 만드는 대표적인 방법이 RAG(검색 증강 생성)입니다. 질문이 들어오면 먼저 우리 자료에서 근거를 찾고, 찾은 근거를 바탕으로 답하게 합니다. 그런데 실제로 운영해 보면 답의 품질을 좌우하는 것은 생성 모델보다 검색 쪽인 경우가 많습니다. 근거를 못 찾으면 아무리 좋은 모델도 모른다고 하거나, 엉뚱한 근거로 답합니다.

이 글에서는 검색 품질을 끌어올리는 대표적인 방법인 하이브리드 RAG가 무엇인지, 왜 필요한지, 한국어 서비스라면 무엇을 특히 조심해야 하는지 정리합니다. 에스제이시스템도 숙박업 AI 챗봇 스테이톡(STAYTOQ)을 운영하며 하이브리드 방식을 쓰고 있습니다.

RAG란 — 답의 상한은 검색이 정한다

RAG(Retrieval-Augmented Generation)는 생성 모델이 답하기 전에 관련 자료를 검색해 함께 넘겨주는 방식입니다. 흐름은 단순합니다.

  1. 자료(FAQ·안내문·규정)를 검색하기 좋은 단위로 나눠 저장해 둔다
  2. 질문이 오면 관련 있는 자료를 검색한다
  3. 찾은 자료를 근거로 생성 모델이 답을 쓴다

모델은 넘겨받은 근거만큼만 정확할 수 있습니다. 그래서 RAG를 개선한다는 말은 대부분 2번, 검색을 개선한다는 뜻입니다.

벡터 검색만으로는 왜 부족한가

요즘 RAG의 기본은 벡터 검색(Dense)입니다. 문장을 임베딩 모델로 숫자 벡터로 바꾸고, 질문과 뜻이 가까운 자료를 찾습니다. 단어가 달라도 뜻이 같으면 찾아낸다는 것이 최대 장점입니다. "강아지 데려가도 돼요?"와 "반려견 동반 가능 여부"는 겹치는 단어가 없어도 가깝게 나옵니다.

하지만 실제 문의에는 정확한 표기가 중요한 질문이 많습니다. 상품 이름, 가격, 인원 수, 시간, 고유명사 같은 것들입니다. 벡터는 문장의 전체적인 뜻을 담는 대신 이런 세부에는 둔감한 편이라, 숫자 하나만 다른 두 질문을 잘 구분하지 못하기도 합니다.

반대로 키워드 검색(Sparse) — 단어가 얼마나 겹치는지로 찾는 방식 — 은 정확한 표기에 강하지만, 말이 다르면 같은 뜻도 놓칩니다. 두 방식의 강점과 약점이 정확히 엇갈립니다.

벡터 검색 (Dense)키워드 검색 (Sparse)
찾는 기준뜻이 가까운가단어가 겹치는가
강한 질문말을 바꿔 물은 질문, 구어체·은어상품명·가격·숫자·고유명사
약한 질문정확한 표기가 핵심인 질문같은 뜻을 다른 말로 물은 질문
예"댕댕이 데려가도 돼요?" → 반려견 동반 안내"A동 객실 요금" → 해당 객실 요금표

하이브리드 검색은 두 검색을 함께 써서 결과를 합치는 것입니다. 벡터의 약점은 키워드가, 키워드의 약점은 벡터가 메웁니다.

두 결과를 어떻게 합치나

두 검색은 점수를 매기는 방식과 단위가 서로 다릅니다. 그래서 점수를 그대로 더하면 한쪽이 다른 쪽을 압도하기 쉽고, 비율을 맞추려면 계속 손을 봐야 합니다.

그래서 흔히 쓰이는 방법이 점수 대신 순위를 기준으로 합치는 것입니다. 대표적인 방식이 RRF(Reciprocal Rank Fusion)로, 각 검색에서 상위에 오른 자료일수록 높은 점수를 주어 합산합니다. 양쪽 모두에서 상위인 자료가 가장 위로 올라오고, 한쪽에서만 찾은 자료도 후보로 남길 수 있다는 것이 장점입니다.

다만 어떤 방식으로, 어떤 비중으로 합칠지는 자료의 성격과 질문 유형에 따라 달라집니다. 정답은 하나가 아니라서, 우리 서비스의 실제 질문으로 측정해 가며 정하는 것이 중요합니다.

한국어 서비스에서 특히 주의할 점

한국어는 명사 뒤에 조사가 붙습니다. "강아지", "강아지를", "강아지도"는 사람에게는 같은 단어지만, 띄어쓰기로만 단어를 자르는 검색기에게는 전부 다른 단어입니다. 영어권 기준으로 만들어진 키워드 검색을 그대로 가져오면, 하이브리드라고 해 놓고 사실상 벡터 검색 하나만 쓰는 상태가 되기 쉽습니다.

그래서 한국어 서비스라면 키워드 검색이 조사·어미가 붙은 말도 같은 단어로 알아보도록 하는 처리가 필요합니다. 방법은 여러 가지이고 각각 장단점이 있어, 자료와 질문의 특성에 맞게 골라야 합니다. 저희도 운영 초기에 키워드 검색이 기대만큼 동작하지 않는 문제를 겪었고, 이 부분을 바로잡은 뒤 검색 품질이 눈에 띄게 좋아졌습니다.

손님은 자료에 적힌 말로 묻지 않는다

실제 질문에는 줄임말, 은어, 오타, 앞 대화를 가리키는 말("거기 가격은?")이 섞여 있습니다. 검색 전에 질문을 검색하기 좋은 형태로 다듬는 단계가 있으면 같은 검색 엔진으로도 결과가 크게 달라집니다. 업종마다 자주 쓰는 표현이 다르기 때문에, 이 부분은 실제 운영 데이터를 보며 꾸준히 보완하는 것이 중요합니다.

하이브리드 RAG는 이렇게 구성된다

구현 방식은 서비스마다 다르지만, 하이브리드 RAG는 대체로 아래 단계로 이루어집니다.

  1. 질문 다듬기 — 검색하기 좋은 형태로 정리
  2. 두 가지 검색 — 뜻으로 찾기(벡터)와 표기로 찾기(키워드)
  3. 결과 합치기 — 두 결과를 하나의 순위로
  4. (선택) 다시 정렬하기 — 상위 후보를 한 번 더 정교하게
  5. 답변 생성 — 고른 근거를 바탕으로

각 단계에서 무엇을 쓰고 어떻게 조합하느냐가 결국 품질과 비용, 응답 속도를 가릅니다. 자료를 어떤 단위로 나눠 저장하느냐(청킹)도 단계 못지않게 중요합니다. 같은 자료라도 나누는 방식에 따라 찾아지는 근거가 달라지기 때문입니다.

효과는 숫자로 확인한다

검색을 바꿨을 때 "좋아진 것 같다"로 판단하면 안 됩니다. 실제 손님이 물을 법한 질문을 준비해 두고, 정답 근거가 상위 몇 위 안에 들어오는지(recall@k)를 변경 전후로 비교하는 것이 기본입니다.

단계상위 OO개 안에 정답 근거가 들어온 비율
한국어 키워드 검색 보완 전OO%
한국어 키워드 검색 보완 후OO%
결과 정렬 보완 후OO%
스테이톡 검색 품질 측정 추이(손님 말투로 바꿔 쓴 질문 기준)

측정을 해 두면 "어디가 문제인지"도 보입니다. 정답이 아예 후보에 없다면 검색 방식보다 자료 자체가 부족한 것일 수 있고, 그럴 때는 검색을 고치기보다 자료를 보강하는 편이 빠릅니다. 비싼 구성 요소를 더하기 전에, 측정으로 정말 필요한지부터 확인하는 것을 권합니다.

운영하며 배운 것

  • 검색 점수가 낮다고 무조건 답을 막지 않는다. 점수가 낮은 이유가 '틀린 근거'가 아니라 '말이 다른 질문'인 경우가 많습니다. 막기만 하면 맞는 답까지 놓칩니다.
  • 한국어 처리는 처음부터 따로 챙긴다. 영어 기준 설정을 그대로 쓰면 키워드 검색이 제 역할을 못 합니다.
  • 질문 다듬기는 꾸준히 보완한다. 업종 표현과 은어는 운영하면서 계속 늘어납니다.
  • 검색을 바꿀 때마다 측정한다. 개선은 숫자로 확인해야 다음 결정도 쉬워집니다.

우리 서비스에도 하이브리드 RAG가 필요할까

아래에 해당한다면 벡터 검색만으로는 놓치는 질문이 생길 가능성이 큽니다.

  • 자료에 상품명·모델명·코드·가격·날짜처럼 정확히 맞아야 하는 표기가 많다
  • 사용자가 같은 내용을 제각각의 말·은어로 묻는다
  • 한국어처럼 조사·어미가 붙는 언어로 검색한다
  • 답을 지어내면 안 되는 업무(예약·환불·규정 안내)다

에스제이시스템은 하이브리드 RAG를 스테이톡에 직접 적용해 실제 숙소 현장에서 운영하고 있습니다. 사내 문서 검색, 고객 상담 챗봇처럼 우리 자료로 정확히 답해야 하는 AI가 필요하다면, 어디에 RAG를 적용할지 진단하는 것부터 함께 시작할 수 있습니다.

  • #RAG
  • #하이브리드 검색
  • #벡터 검색
  • #키워드 검색
  • #한국어 검색

우리 자료로 정확히 답하는 AI가 필요하신가요?

어디에 RAG를 적용할지 진단하는 것부터 함께 시작합니다. 만든 팀이 끝까지 운영합니다.