벡터 데이터베이스 는 벡터 임베딩 또는 텍스트, 이미지, 오디오와 같은 구조화되지 않은 데이터의 수치 표현을 저장, 색인 생성, 쿼리할 수 있게 해주는 모든 데이터베이스입니다.
Google Cloud는 이러한 엔터프라이즈급 기능을 PostgreSQL용 AlloyDB, Spanner, BigQuery를 비롯한 관리형 서비스에 직접 통합하여 별도의 인프라를 관리하지 않고도 지능형 애플리케이션을 빌드할 수 있도록 지원합니다.
벡터 임베딩은 데이터의 수치적 표현으로, 일반적으로 부동 소수점 숫자의 배열로 정의됩니다. 텍스트, 이미지, 오디오와 같은 복잡한 비정형 데이터를 머신러닝 모델이 처리할 수 있는 형식으로 변환합니다.
이 데이터를 벡터 공간에 매핑함으로써 임베딩은 시맨틱 의미를 캡처합니다. 유사한 항목은 더 가까이 배치되고, 유사하지 않은 항목은 더 멀리 배치됩니다. 이러한 공간적 관계는 시스템이 키워드 일치뿐만 아니라 컨텍스트와 의미를 기반으로 데이터 포인트 간의 연결을 식별하는 데 도움이 됩니다.
일부 특수 데이터베이스는 벡터 임베딩만 지원하지만, 벡터 임베딩 외에도 다른 많은 데이터와 쿼리 유형을 지원하는 데이터베이스도 있습니다. 풍부한 실제 데이터를 기반으로 생성형 AI 애플리케이션을 빌드하려면 다양한 데이터와 쿼리 유형을 지원하는 것이 중요합니다. 벡터 임베딩을 사용한 시맨틱 쿼리의 이점이 분명해짐에 따라 대부분의 데이터베이스가 벡터 지원을 추가할 것입니다. Google Cloud는 앞으로 모든 데이터베이스가 벡터 데이터베이스가 될 것이라고 믿습니다.
Vertex AI의 벡터 검색이 고성능 생성형 AI 애플리케이션 빌드를 어떻게 지원하는지 알아봅니다. Vertex AI의 벡터 검색은 Google 연구팀에서 개발한 확장 가능하고 효율적인 벡터 검색 기술인 ScaNN(Scalable Nearest Neighbor Search)을 기반으로 하므로 대규모 데이터 세트와 실시간 검색 요구사항을 처리하는 데 이상적입니다. 아래 동영상에서 벡터 검색 및 임베딩에 대해 자세히 알아보고 빠른 시작 가이드로 시작하세요.
대규모 벡터 세트를 효율적으로 쿼리하려면 기존 텍스트 또는 숫자 필드와 다른 특수한 색인 생성 및 검색 전략이 필요합니다. 벡터에는 단일 논리 순서가 없기 때문에 벡터 데이터베이스는 다음 메커니즘에 의존하여 데이터를 검색합니다.
벡터 임베딩은 복잡한 데이터의 시맨틱 의미를 캡처합니다. 효율적인 색인 생성 및 검색을 제공하는 벡터 데이터베이스와 결합하면 개발자는 광범위한 지능형 애플리케이션과 데이터 처리 도구를 빌드할 수 있습니다.
벡터 데이터베이스를 사용하면 개발자가 협업 필터링을 뛰어넘는 개인화 시스템을 빌드할 수 있습니다. 사용자 행동과 제품 속성을 벡터로 표현함으로써 애플리케이션은 유사한 항목을 식별하거나 사용자를 선호도에 맞는 콘텐츠와 실시간으로 매칭할 수 있습니다. 이 아키텍처는 전자상거래 제품 추천, 콘텐츠 피드, 미디어 스트리밍 추천을 지원합니다.
기존의 키워드 검색과 달리 벡터 데이터베이스는 사용자 의도를 이해하는 시맨틱 검색 애플리케이션을 지원합니다. 개발자는 사용자가 정확한 문구가 아닌 개념으로 쿼리할 수 있는 검색 환경을 빌드할 수 있습니다. 또한 벡터는 동일한 공간에서 다양한 데이터 유형을 나타낼 수 있으므로 사용자가 텍스트 설명을 사용하여 이미지를 검색하거나 입력 이미지를 사용하여 관련 문서를 찾을 수 있는 멀티모달 검색 도구를 빌드할 수 있습니다.
벡터 데이터베이스는 대규모 데이터 세트에서 불규칙한 패턴을 식별하는 데 도움이 될 수 있습니다. 개발자는 '정상' 동작 또는 거래를 나타내는 벡터 공간을 설정하여 설정된 클러스터에서 멀리 떨어진 이상치를 프로그래매틱 방식으로 감지할 수 있습니다. 이 기능은 금융 사기 감지 시스템, 네트워크 보안 모니터링 도구, IT 인프라 상태 점검을 구축하는 데 매우 중요합니다.
데이터 엔지니어링 워크플로에서 벡터 데이터베이스는 서로 다른 데이터 세트를 정리하고 통합하는 데 도움이 될 수 있습니다. 시스템은 고객 기록 또는 제품 등록정보의 임베딩을 비교하여 텍스트가 약간 다른 경우에도(예: 'Main St.'와 'Main Street') 중복된 항목을 식별할 수 있습니다. 이를 통해 조직은 데이터에 대한 단일하고 정확한 뷰를 유지할 수 있습니다.
PostgreSQL용 AlloyDB는 PostgreSQL의 호환성과 Google의 확장 가능한 인프라를 결합한 솔루션입니다. 표준 pgvector 확장 프로그램을 통해 벡터 임베딩을 기본적으로 지원하며 Google의 ScaNN 색인으로 이를 향상시킵니다. 이를 통해 벡터 쿼리 속도를 높이고 '인라인 필터링'을 사용 설정할 수 있습니다. 인라인 필터링은 벡터 유사성과 메타데이터 필터를 동시에 평가하여 하이브리드 검색을 최적화하고 성능을 개선하는 데 도움이 됩니다.
예: 부동산 하이브리드 검색
사용자가 '분위기'(예: '자연광이 잘 드는 미드 센추리 모던 스타일')를 기준으로 집을 찾으면서도 '방 3개', '80만 달러 미만', 'A 학군'과 같은 엄격한 제약 조건을 준수해야 하는 부동산 애플리케이션이 있다고 가정해 보겠습니다.
Google Cloud는 벡터 검색 기능을 핵심 데이터베이스 서비스에 직접 통합하여 기존 데이터와 워크플로를 사용해 생성형 AI를 운영할 수 있도록 지원합니다.
Google의 전역 분산 데이터베이스인 Spanner는 트랜잭션 애플리케이션을 위한 벡터 검색을 지원합니다. 정확한 근사 최근접 이웃 알고리즘을 사용하여 확장 가능한 고가용성 벡터 검색을 제공할 수 있습니다. 이를 통해 전역 애플리케이션은 엄격한 일관성과 안정성을 유지하면서 실시간 추천 또는 시맨틱 검색과 같은 기능을 구현할 수 있습니다.
예: 전자상거래를 위한 실시간 추천
한 글로벌 전자상거래 플랫폼에서 '비 오는 날씨에 가장 적합한 하이킹 부츠'와 같은 모호한 사용자 검색을 처리하면서 즉각적인 제품 가용성을 보장하는 추천 엔진을 빌드하고자 합니다.
BigQuery를 사용하면 데이터 웨어하우스에서 데이터를 이동하지 않고도 대규모 데이터 세트에 대한 벡터 분석을 수행할 수 있습니다. VECTOR_SEARCH 함수를 사용하면 표준 SQL을 사용하여 유사성 검색을 실행할 수 있습니다. 이는 행동에 따라 고객을 클러스터링하거나 수십억 행의 데이터에서 유사한 제품 트렌드를 식별하는 등의 분석 사용 사례에 특히 유용합니다.
예시: 대규모 사이버 보안 위협 감지
보안팀은 악의적인 활동을 식별하기 위해 페타바이트 규모의 서버 로그를 분석해야 합니다. 공격자는 일치검색 키워드 검색을 피하기 위해 코드를 약간 수정하는 경우가 많습니다.