pile·
백엔드·크몽크몽·

“검색으로 연결되는 재능” — 하이브리드 검색 적용기

크몽 검색 엔지니어가 키워드 검색의 의미·맥락 파악 한계를 극복하기 위해 BM25 기반 키워드 검색과 OpenAI text-embedding-3-small 벡터 검색을 결합한 하이브리드 검색을 도입한 과정을 다룬다. 검색어의 의도와 문맥을 함께 파악해 기존 키워드 매칭으로 잡지 못했던 자연어 검색어에서도 관련 서비스를 찾아낼 수 있게 됐다.

핵심 포인트
  • 기존 키워드(BM25) 검색만으로는 사용자의 검색 의도, 문맥, 의미를 커버하기 어려워 벡터 검색을 결합했다.
  • 하이브리드 검색은 정확도는 키워드 검색이, 맥락 파악은 벡터 검색이 담당하는 역할 분리 구조다.
  • 임베딩 모델로 OpenAI text-embedding-3-small을 선택했다.
  • OpenAI 임베딩 API 장애가 빈번했고, 인프라 전체 다운으로 모든 요청 처리가 불가했던 사례도 있었다.
  • 모델 교체 시 기존 임베딩 필드를 유지하고 신규 필드에 점진적으로 채우는 마이그레이션 전략을 적용했다.
상세 정리
  • 문제 발견: '한국어를 베트남어로 번역'이라는 검색에 번역 서비스가 나오지 않거나 '재즈 연주' 검색 결과가 비어있는 등 키워드 불일치 문제가 실제 사용자에게 영향을 줬다.
  • 원인 분석: 단순 키워드 매칭은 검색어와 서비스 명칭이 다른 경우 사용자의 실제 의도와 의미적 연관성을 파악하지 못한다.
  • 벡터 검색 도입: 텍스트를 임베딩 벡터로 변환해 의미가 가까운 서비스를 찾아내는 시맨틱 검색을 추가했다.
  • 하이브리드 설계: BM25 키워드 검색의 정확도 강점과 벡터 검색의 맥락 파악 강점을 결합해 각각의 단점을 보완한다.
  • 임베딩 모델 선택: OpenAI text-embedding-3-small을 채택했고, 비용과 성능 균형을 고려한 결정이었다.
  • 안정성 문제: OpenAI 임베딩 API가 간헐적으로 실패했고, 심각한 경우 API 인프라 전체 다운으로 모든 요청 처리가 불가한 사례도 경험했다.
  • 임베딩 종속성: 임베딩 벡터는 모델에 종속되어 모델 교체 시 벡터 차원이 달라져 기존 벡터와 호환되지 않는다.
  • 점진적 마이그레이션: 모델 교체 시 기존 임베딩 필드를 그대로 유지하고, 신규 필드에 새 임베딩을 점진적으로 채운 뒤 전환하는 방식을 권장한다.
  • 운영 교훈: 외부 임베딩 API 의존도가 높아 장애 대응 플랜과 폴백 전략이 필수적이다.
왜 읽나검색 서비스에 시맨틱 검색을 처음 도입하거나 하이브리드 검색 아키텍처를 고민하는 엔지니어에게 실제 선택 이유와 운영 중 마주한 함정을 구체적으로 알려준다.
크몽
크몽 블로그
원문은 여기서 이어서 읽을 수 있어요
원문 읽기
읽음 (0)

이 글과 비슷한

  1. 백엔드·twilio-engTwilio Engineering·

    Programmable Messaging에서 Verify API로 마이그레이션하기

    Twilio의 Programmable Messaging API로 자체 OTP 솔루션을 운영하던 서비스가 Verify API로 전환하는 방법을 코드 예시와 함께 설명한다. Verify는 OTP 전송·검증을 위한 전용 API로, 전화번호 구매, 토큰 생성, DB 저장·만료 관리를 내부에서 처리해 개발자가 직접 구현할 코드를 크게 줄인다.

    요약 이어보기
    #authentication#twilio#sms+2
  2. 백엔드·포스타입포스타입·

    포스타입이 개인화 추천을 하는 방법 2부

    포스타입 백엔드 엔지니어가 벡터 기반 개인화 추천 시스템을 실제 운영하며 맞닥뜨린 성능 장애와 용량 문제를 해결한 과정을 담은 2부다. 수백만 개의 벡터 KNN 검색이 피크 시간대에 전체 Elasticsearch 검색 성능을 흔드는 문제부터 클러스터 OOM 사태까지, 쿼리 최적화와 인프라 분리 두 가지 경로로 근본 해결에 이른다.

    요약 이어보기
    #elasticsearch#vector-search#recommendation-system+2
  3. 백엔드·포스타입포스타입·

    포스타입이 개인화 추천을 하는 방법 1부

    포스타입이 태그 기반 추천의 한계를 극복하고 벡터 임베딩 기반 개인화 추천 시스템을 구축한 과정을 담은 1부다. 유사한 콘텐츠가 다른 용어를 쓰거나 동일한 태그가 전혀 다른 톤의 콘텐츠를 가리키는 문제를 임베딩 벡터로 해결하고, OpenSearch의 HNSW ANN 검색으로 수백만 벡터를 실시간 검색하는 시스템을 구축해 구매율 15% 향상을 달성했다.

    요약 이어보기
    #opensearch#vector-search#recommendation-system+2