벡터 검색은 Google 연구팀이 개발한 벡터 검색 기술을 기반으로 합니다. 벡터 검색을 사용하면 Google Search, YouTube, Play와 같은 Google 제품의 기초를 제공하는 동일한 인프라를 활용할 수 있습니다.
소개
벡터 검색은 의미상으로 유사하거나 의미상으로 연관이 있는 수십억 개의 항목을 검색할 수 있습니다. 벡터 유사성 일치 서비스에는 추천 엔진, 검색 엔진, 챗봇, 텍스트 분류 구현과 같은 많은 사용 사례가 있습니다.
벡터 검색의 한 가지 가능한 사용 사례로 수십만 개의 의류 품목이 포함된 인벤토리를 갖고 있는 온라인 소매업체가 있습니다. 이 시나리오에서는 텍스트와 이미지를 모두 포함한 다양한 항목에 대한 임베딩을 생성할 수 있도록 멀티모달 임베딩 API가 작동합니다. 이러한 임베딩은 이후 벡터 검색 프로세스에서 제공된 텍스트 쿼리와 의미상으로 유사한 특성을 공유하는 이미지를 식별하기 위해 사용됩니다. 예를 들어 "노란색 여름 드레스"를 검색하면 벡터 검색이 가장 유사한 항목을 반환하고 표시합니다. 벡터 검색은 높은 초당 쿼리 수(QPS) 능력, 높은 리콜, 낮은 지연 시간, 뛰어난 비용 효율성이 특징인 대규모 검색을 지원합니다.
임베딩의 사용은 단어 또는 텍스트로 제한되지 않습니다. 이미지, 오디오, 동영상, 사용자 환경설정을 포함하여 다양한 종류의 데이터에 대한 시맨틱 임베딩을 생성할 수 있습니다. Vertex AI를 사용하여 멀티 모달 임베딩을 생성하는 방법은 멀티 모달 임베딩 가져오기를 참조하세요.
시맨틱 일치를 위한 벡터 검색 사용 방법
시멘틱 일치는 몇 가지 단계로 단순화할 수 있습니다. 첫째, 여러 항목에 대한 임베딩 표현을 생성해야 합니다(벡터 검색 외부에서 수행되는 작업). 둘째, 임베딩을 Google Cloud에 업로드하고 데이터를 벡터 검색에 연결합니다. 임베딩이 벡터 검색에 추가된 다음에는 추천 또는 결과를 얻기 위한 쿼리 실행 색인을 만들 수 있습니다.
임베딩 생성
데이터 세트의 임베딩을 생성합니다. 여기에는 근사 최근접 이웃(ANN)을 검색하는 데 효율적인 방법으로 데이터를 전처리하는 과정이 포함됩니다. Vertex AI 외부에서 이를 수행하거나 Vertex AI에서 생성형 AI를 사용하여 임베딩을 만들 수 있습니다. Vertex AI의 생성형 AI를 사용하여 텍스트 및 멀티모달 임베딩을 모두 만들 수 있습니다.
Cloud Storage에 임베딩 추가
벡터 검색 서비스에서 호출할 수 있도록 Cloud Storage에 임베딩을 업로드합니다.
벡터 검색에 업로드
최근접 이웃 검색을 수행할 수 있도록 벡터 검색에 임베딩을 연결합니다. 쿼리 목적으로 색인 엔드포인트에 배포할 수 있도록 임베딩에서 색인을 만듭니다. 이 쿼리는 근사 최근접 이웃을 반환합니다. 색인을 만들려면 색인 관리를 참조하세요. 엔드포인트에 색인을 배포하려면 색인 엔드포인트 배포 및 관리를 참조하세요.
결과 평가
근사 최근접 이웃 결과를 얻었으면 이를 평가하여 요구를 얼마나 충족하는지 확인할 수 있습니다. 결과가 충분히 정확하지 않으면 알고리즘의 매개변수를 조정하거나 더 높은 초당 쿼리 수를 지원하도록 확장을 사용 설정할 수 있습니다. 이를 위해서는 색인을 구성하는 구성 파일을 업데이트하면 됩니다. 자세한 내용은 색인 매개변수 구성을 참조하세요.
벡터 검색 용어
이 목록에서는 벡터 검색을 사용하기 위해 이해해야 하는 몇 가지 중요한 용어를 보여줍니다.
- 벡터: 벡터는 크기와 방향을 갖는 부동 소수점 값의 목록입니다. 숫자, 공간의 지점, 방향과 같은 모든 종류의 데이터를 나타내기 위해 사용할 수 있습니다.
- 임베딩: 임베딩은 의미론적인 의미를 캡처하는 방식으로 데이터를 표현하는 데 사용되는 벡터 유형입니다. 임베딩은 일반적으로 머신러닝 기법을 사용하여 생성되며 자연어 처리(NLP) 및 기타 머신러닝 애플리케이션에서 자주 사용됩니다.
- 밀집 임베딩: 밀집 임베딩은 대부분 0이 아닌 값을 포함하는 배열을 사용하여 텍스트의 시맨틱 의미를 나타냅니다. 밀집 임베딩을 사용하면 시맨틱 유사성을 기준으로 유사한 검색 결과가 반환될 수 있습니다.
- 희소 임베딩: 희소 임베딩은 밀집 임베딩에 비해 0이 아닌 값이 거의 없는 고차원 배열을 사용하여 텍스트 구문을 나타냅니다. 희소 임베딩은 키워드 검색에 자주 사용됩니다.
- 하이브리드 검색: 하이브리드 검색은 밀집 및 희소 임베딩을 모두 사용하므로 키워드 검색과 시맨틱 검색의 조합을 기반으로 검색할 수 있습니다. 벡터 검색은 밀집 임베딩 기반의 검색을 지원합니다. 벡터 검색은 공개 프리뷰 기능으로 희소 임베딩과 하이브리드 검색을 지원합니다.
- 색인: 유사성 검색을 위해 함께 배포된 벡터 모음입니다. 벡터를 색인에 추가하거나 색인에서 삭제할 수 있습니다. 유사성 검색 쿼리는 특정 색인에 대해 실행되고 해당 색인에서 벡터를 검색합니다.
- 정답: 정답 데이터 세트와 같이 실제 세계에 대한 머신러닝의 정확도 확인을 나타내는 용어입니다.
재현율: 실제로 최근접 인접 항목인 색인으로 반환된 최근접 인접 항목의 비율입니다. 예를 들어 최근접 인접 항목 20개에 대한 최근접 인접 항목 쿼리에서 최근접 인접 항목 정답을 19개 반환하면 재현율은 19/20x100 = 95%가 됩니다.
제한: 불리언 규칙을 사용하여 색인의 하위 집합으로 검색을 제한하는 기능입니다. 제한을 "필터링"이라고도 부릅니다. 벡터 검색에서는 숫자 필터링 및 텍스트 속성 필터링을 사용할 수 있습니다.
다음 단계
- 벡터 검색 빠른 시작으로 1시간 내에 시작하기
- 시작하기 전에에서 기본 요건 및 임베딩 검토
- 입력 데이터 형식 및 구조 구성 방법 알아보기
- 튜토리얼 개요에서 기타 벡터 검색 노트북 튜토리얼 참조
- Spanner에서 벡터 검색으로 임베딩 내보내기 알아보기