하이브리드 검색이란 무엇인가요?

하이브리드 검색의 정의

하이브리드 검색은 두 가지 이상의 검색 기술을 검색 알고리즘에 결합하는 강력한 정보 검색 전략입니다.

일반적으로 하이브리드 검색은 고급 머신 러닝 기술을 활용하여 키워드 검색과 시맨틱 검색을 결합합니다. 시맨틱 검색은 텍스트의 의미에 따라 결과를 검색하는 반면, 전체 텍스트 검색은 정확한 단어 일치에 초점을 맞춥니다. 하이브리드 검색은 사용자가 정확한 키워드를 입력하지 않거나 입력할 수 없는 대화형 쿼리와 정확히 기억이 나지 않는 순간에 매우 유용합니다.

키워드 검색과 시맨틱 검색 모두 고유한 강점이 있습니다. 키워드 검색은 순위 알고리즘과 특정 용어를 사용하여 문서가 검색 쿼리와 얼마나 관련성이 있는지를 결정합니다. 시맨틱 검색은 검색 쿼리를 받아 문맥을 고려합니다.

하이브리드 검색은 시맨틱 검색과 전통적인 검색의 강점을 결합하여 검색 정확도를 향상시킵니다. 하이브리드 검색은 의미론적 이해와 정확한 검색어 간의 균형을 유지하면서 사용자 검색 환경을 개선하는 결과를 제공합니다.

하이브리드 검색이 작동하는 방식

하이브리드 검색은 키워드 검색과 벡터 검색을 혼합하여 포괄적인 검색 결과를 제공합니다. 벡터 임베딩은 문장이나 사진과 같은 데이터를 그 의미와 관계를 파악할 수 있는 숫자로 변환합니다. 데이터는 토큰화되고 색인화되며 숫자 임베딩으로 표시됩니다. 벡터 검색은 비정형 데이터에서 의미를 포착할 수 있습니다. 벡터 검색은 키워드 검색의 한계를 극복하여 사용자가 정확한 설명이나 정확한 키워드를 기억하지 못하더라도 그 의미로 검색할 수 있게 해줍니다. 하이브리드 검색은 밀집 벡터와 희소 벡터를 모두 구문 분석하여 가장 관련성 높은 결과를 얻을 수 있습니다.

밀집 벡터

밀집 벡터는 시맨틱 이해와 문맥 쿼리를 처리합니다. 최신 머신러닝에서는 특히 임베딩 생성과 같은 작업에 일반적으로 사용됩니다.

희소 벡터

희소 벡터는 기존의 키워드 기반 인덱싱을 처리하며 정보가 희소하게 채워집니다. 이 벡터들은 대규모 데이터 세트에 일반적으로 사용됩니다.

쿼리 처리

하이브리드 검색의 쿼리 처리는 정확한 키워드 매칭과 우선순위 지정을 위해 희소 벡터를 사용하고, 문맥적 의미와 의도를 파악하여 의미 이해를 위해 밀집 벡터를 사용합니다. 하이브리드 검색은 이 두 가지 유형의 벡터를 결합하여 구체성과 연관성의 균형을 이루는 포괄적인 검색 결과를 제공합니다. 결과를 달성하기 위해 하이브리드 검색은 상호 순위 결합(RRF)을 사용하여 각각 다른 관련성 지표를 가진 여러 결과 집합을 단일 결과 집합으로 결합합니다.

RAG를 사용한 하이브리드 검색

검색 증강 생성(RAG)은 개인 또는 독점 데이터 소스를 사용하여 LLM의 원래 지식 기반을 보완하는 컨텍스트를 제공하는 검색 기술입니다. RAG는 생성형 AI 시스템이 외부 정보 소스를 사용하여 보다 관련성 높은 응답을 생성할 수 있기 때문에 쿼리에 유용합니다.

RAG와 함께 하이브리드 검색을 사용하고 추가 데이터 소스를 가져오면 컨텍스트를 추가하여 검색 환경의 관련성을 향상시킬 수 있습니다. 추가 정보 소스에는 인터넷의 새로운 정보부터 독점 또는 기밀 비즈니스 문서에 이르기까지 조직이나 고객이 쿼리에 답변하는 데 필요할 수 있는 모든 것이 포함될 수 있습니다.

RAG는 독립적으로 작동하는 언어 모델에 비해 여러 가지 이점을 제공합니다. 비용 효율적이고, 컴퓨팅 및 저장 공간이 덜 필요하며, 모델이 최신 정보에 액세스할 수 있도록 합니다.

RAG 활용 사례

Elastic을 사용한 하이브리드 검색

Elastic은 시맨틱 검색을 기본으로 지원하여 하이브리드 검색을 쉽게 구현할 수 있습니다. Elastic을 사용하면 하나의 플랫폼, 하나의 API에서 하이브리드 검색을 처음부터 더 나은 정확도로 속도와 확장성으로 수행할 수 있습니다.

개발자는 Elastic의 플레이그라운드를 사용하여 로우코드 인터페이스에서 자신의 개인 데이터로 자신이 선택한 기초 LLM을 탐색할 수 있습니다.

Elastic은 개발자가 새로 도입된 쿼리 검색기(표준, kNN, RRF)를 통해 쿼리 구성을 간소화할 수 있도록 지원합니다. 이러한 쿼리를 사용하면 Elastic은 선택한 데이터를 이해하고 통합 쿼리를 자동으로 생성합니다.