정의

벡터 검색은 무엇인가요?

벡터 검색은 머신 러닝(ML)을 활용하여 텍스트, 이미지 등 비정형 데이터의 의미와 컨텍스트를 캡처한 후 이를 숫자 표현으로 변환합니다. 시맨틱 검색에 자주 사용되는 벡터 검색은 근사 최근접 이웃(ANN) 알고리즘을 사용하여 유사한 데이터를 찾습니다. 기존 키워드 검색과 비교할 때 벡터 검색은 더 정확한 결과를 제공하고 더 빠르게 실행됩니다.

Video thumbnail

벡터 검색이 중요한 이유

무언가를 찾지만 정확한 명칭이 무엇인지 모르는 경우가 얼마나 자주 있으신가요? 아마도 그것이 어떤 일을 하는지 알거나 그것에 대해 설명할 수 있으실 겁니다. 하지만 키워드가 없으면 계속해서 검색을 하게 됩니다.

벡터 검색은 이러한 한계를 극복하고 의미를 기반으로 검색할 수 있도록 지원합니다. 유사성 검색을 기반으로 쿼리에 대한 답변을 신속하게 제공할 수 있습니다. 벡터 임베딩이 동영상, 이미지 및 오디오 등과 같이 텍스트를 넘어 비정형 데이터를 캡처하기 때문입니다. 컨텍스트를 기반으로 쿼리에 대한 답변을 신속하게 제공할 수 있습니다. 이는 벡터 임베딩이 동의어와 연관성, 즉 검색 이면의 의미를 캡처하기 때문입니다. 벡터 검색을 필터링 및 집계와 결합하여 하이브리드 검색을 구현하고 이를 기존 점수와 결합함으로써 정확도를 최적화하면 검색 경험을 향상시킬 수 있습니다.

Video thumbnail

벡터 검색 엔진의 작동 방식

벡터 데이터베이스, 시맨틱 또는 코사인 검색으로 알려진 벡터 검색 엔진은 주어진(벡터화된) 쿼리에서 최근접 이웃을 찾습니다.

기존 검색이 언급된 키워드, 어휘 유사성 및 단어 발생 빈도에 의존하는 반면, 벡터 검색 엔진은 임베딩 공간의 거리를 사용하여 유사성을 나타냅니다. 관련 데이터를 찾는 것은 쿼리의 최근접 이웃을 검색하는 작업입니다.

  • 벡터 임베딩

    벡터 임베딩은 고차원(밀집) 벡터에 저장된 데이터 및 관련 컨텍스트의 숫자 표현입니다. 임베딩을 생성하는 모델은 더 관련성이 높고 정확한 결과를 제공하기 위해 수백만 개의 예제를 사용해 훈련됩니다. 경우에 따라 문서의 주요 기능을 나타내기 위해 수집하거나 엔지니어링한 숫자 데이터를 임베딩으로 사용할 수 있습니다. 필요한 것은 효율적으로 검색할 수 있는 기능입니다.

  • 유사성 점수

    벡터 검색 엔진의 핵심은 데이터와 문서가 비슷하면 벡터도 비슷할 것이라는 개념입니다. 벡터 임베딩을 사용하여 쿼리와 문서를 모두 색인하면 쿼리의 최근접 이웃인 유사한 문서를 찾을 수 있습니다.

  • ANN 알고리즘

    k-최근접 이웃 알고리즘(kNN)과 같은 기존의 최근접 이웃 알고리즘은 실행 시간이 과도하게 길어지고 컴퓨팅 리소스를 빠르게 소모합니다. ANN은 고차원 임베딩 공간에서 대규모로 효율적으로 실행하지만, 대신 정확도가 감소합니다.

벡터 검색 사용 사례

벡터 검색은 차세대 검색 경험을 강화할 뿐만 아니라 다양한 새로운 가능성의 문을 열어줍니다.

  • 시맨틱 검색

    벡터 검색은 시맨틱 또는 유사성 검색을 강화합니다. 임베딩에서 의미와 컨텍스트가 캡처되므로 벡터 검색은 정확한 키워드 일치 없이도 사용자가 의미하는 바를 찾을 수 있습니다. 텍스트 데이터(문서), 이미지 및 오디오에서 작동합니다. 쿼리와 유사하거나 관련된 제품을 쉽고 빠르게 찾을 수 있습니다.

  • 추천

    임베딩을 생성하는 모델은 임베딩 공간에서 유사한 문서와 벡터를 인식하는 방법을 학습합니다. 예를 들어, 애플리케이션은 사용자가 구매한 영화나 제품을 구매한 다른 사람들이 좋아했던 제품을 추천할 수 있습니다. 그러나 임베딩은 인기도 또는 호감도의 척도를 대상 메트릭으로 사용하여 도출해야 합니다.

    벡터 거리는 추천이 여러 목표를 달성하도록 다른 메트릭과 결합할 수 있습니다. 예를 들어, 만족도 점수와 수익 잠재력을 기준으로 제품 추천 순위를 지정할 수 있습니다.

  • 질문 답변

    문서를 텍스트 임베딩으로 변환하는 작업을 최신 자연어 처리(NLP)와 결합하여 질문에 대한 풀텍스트 답변을 제공할 수 있습니다. 이 접근 방식을 사용하면 사용자가 긴 설명서를 공부할 필요가 없으며 팀이 좀 더 신속하게 답변을 제공할 수 있습니다.

    "질문 답변" 트랜스포머 모델은 문서의 기술 자료와 현재 질문 모두에 대한 텍스트 임베딩 표현을 사용하여 가장 근접한 일치 항목을 "답변"으로 전달할 수 있습니다.

무궁무진한 벡터 검색 활용 방법

시맨틱 검색에 만족하지 마세요!

  • 비정형 데이터 탐색

    원하는 비정형 데이터를 검색하세요. 텍스트, 이미지, 오디오 또는 센서 측정값에 대한 임베딩을 생성할 수 있습니다.

  • 메타데이터 필터링

    메타데이터를 사용하여 벡터 검색 결과를 필터링하세요. 근사 최근접 이웃(ANN) 검색에 따라 필터를 적용하여 속도 저하 없이 재현율을 유지할 수 있습니다.

  • 검색 결과 순위 재지정

    벡터 유사성은 다른 데이터로 다시 순위를 매길 수 있는 유사성 점수로 해석될 수 있습니다. 여기에는 벡터 검색 데이터베이스에 이미 있는 정적 필드와 머신 러닝 모델을 적용한 새로운 속성이 포함됩니다.

  • 하이브리드 점수

    최적화를 강화하려면 벡터 유사성을 하이브리드 점수로 알려진 BM25F 점수와 결합하세요. 그러면 BM25F를 구현하는 동안 벡터 유사성에 따라 이미지의 순위를 지정할 수 있으며, 이를 통해 텍스트에 더 나은 순위를 제공할 수 있습니다.

시작하는 방법

Elastic으로 간편해진 벡터 검색 및 NLP

큰 노력 없이도 벡터 검색을 구현하고 NLP 모델을 적용할 수 있습니다. Elasticsearch Relevance Engine™(ESRE)을 사용하면 생성형 AI 및 대규모 언어 모델(LLM)과 함께 사용할 수 있는 AI 검색 애플리케이션을 구축하기 위한 툴킷을 확보할 수 있습니다.

ESRE를 사용하면 혁신적인 검색 애플리케이션을 구축하고, 임베딩을 생성하고, 벡터를 저장 및 검색하고, Elastic의 Learned Sparse Encoder를 사용하여 시맨틱 검색을 구현할 수 있습니다. Elasticsearch를 벡터 데이터베이스로 사용하는 방법에 대해 자세히 알아보세요.

Video thumbnail
  • 즉시 사용 가능한 시맨틱 검색

    Elastic Learned Sparse Encoder는 도메인 적응 없이 바로 사용 가능한 매우 정확한 시맨틱 검색을 제공합니다. 검색 애플리케이션을 구성할 때 클릭 한 번으로 사용할 수 있습니다. 이 모델은 훈련 과정에서 학습한 관련 키워드 및 정확도 점수로 쿼리를 확장하므로 동의어를 구성할 필요가 없으며 밀집 벡터 임베딩과 달리 쉽게 해석할 수 있습니다.

  • 대규모 언어 모델

    공개적으로 훈련된 데이터뿐만 아니라 프라이빗 데이터를 사용하여 LLM에 비즈니스별 정보를 제공합니다. Elasticsearch를 사용하고 원하는 LLM에 통합된 플러그인 및 API로 생성형 AI에 액세스합니다.

  • 텍스트 임베딩 등

    Elastic을 사용하여 데이터에 정서 및 기타 범주를 할당하는 방법에 대해 알아보세요. 명명된 엔티티 인식(NER)을 적용하여 추가 메타데이터로 검색 환경을 개선할 수 있습니다.