AI 기반 분석의 새로운 장을 여는 BigQuery 벡터 검색 정식 버전 출시
Joe Malone
Product Manager
Minmin Jin
Software Engineer
* 본 아티클의 원문은 2024년 09월 28일 Google Cloud 블로그(영문)에 게재되었습니다.
AI 덕분에 조직은 데이터를 대규모로 분석하고 이해할 수 있는 새로운 데이터 표현 방식을 활용하게 되었습니다. AI 모델은 단어와 기타 데이터를 벡터 임베딩으로 인코딩하여 시맨틱 의미를 해석하도록 학습됩니다. 이러한 임베딩을 통해, 인코딩되는 데이터가 벡터 공간에서 차지하는 상대적인 위치를 알 수 있습니다. 의미상 유사한 임베딩은 벡터 공간에서 가까이 위치하고 그렇지 않은 임베딩은 멀리 위치합니다. 데이터의 의미론적 이해를 코드화하고, 그 결과를 모든 유형의 데이터에 적용하며, 간단한 데이터 분석 도구를 제공하는 이 모든 과정을 통해 조직은 데이터 분석을 위한 새로운 접근방식을 활용할 수 있게 됩니다.
이처럼 BigQuery 데이터에 대해 벡터 유사성 검색을 지원하는 BigQuery 벡터 검색이 정식 버전(GA)으로 출시되었다는 기쁜 소식을 전해드립니다. 흔히 근사 최근접 이웃 검색으로도 알려져 있는 이 기능은 대규모 언어 모델(LLM)을 사용한 검색 증강 생성(RAG), 시맨틱 검색, 유사성 감지 등 수많은 새로운 데이터 및 AI 사용 사례를 지원하는 데 중요한 역할을 합니다.
지난 2월에 첫선을 보인 BigQuery 벡터 검색은 데이터 플랫폼 내에 임베딩 생성, 관리, 검색 기능을 통합하여 이상 감지, 멀티모달 검색, 제품 추천, 신약 개발 등 다양한 사용 사례를 지원하는 통합형 서버리스 벡터 분석 솔루션을 제공합니다.
BigQuery 벡터 검색에 필요한 역파일 색인(IVF)도 이번에 정식 버전으로 출시되었습니다. 이 색인은 k-평균 알고리즘을 사용해 벡터 데이터를 클러스터링하고 이를 이중 색인(two-piece index)에서 역방향 행 로케이터와 결합하여 데이터의 유사한 임베딩 표현을 효율적으로 검색할 수 있게 합니다. IVF는 프리뷰 버전 출시 이후 다음과 같은 몇 가지 개선사항이 새롭게 포함되었습니다.
-
확장성 향상: 100억 개의 임베딩 색인을 생성하여 대규모로 애플리케이션을 지원할 수 있습니다.
-
정확성이 보장되는 관리형 색인: 기본 데이터가 변경되면 기존 k-평균 모델을 사용해 자동으로 벡터 색인이 업데이트됩니다. 시스템에서 수정된 데이터의 색인을 다시 생성하기도 전에 벡터 검색은 데이터의 최신 변형을 기반으로 올바른 결과를 반환합니다.
-
저장된 열 사용: 이제 자주 사용하는 열을 색인에 저장할 수 있어 검색 결과에서 추가 데이터를 검색할 때 비용이 많이 드는 조인을 피할 수 있습니다. 이 최적화는 결과-집합 카디널리티가 높은 시나리오에서 가장 두드러진 성능 향상을 보입니다. 쿼리 데이터에 대량의 임베딩이 포함되어 있거나 높은
Top-K
를 필요로 하는 경우가 이에 해당합니다. 예를 들어 10억 개의 96차원 임베딩이 있는 테이블에서 특정 임베딩과 가장 유사한 1,000개의 후보를 반환할 때 저장된 열이 있는 벡터 색인을 사용하면 저장된 열이 없는 경우보다 약 200배 더 적은 슬롯으로 약 4배 더 빠르게 반환할 수 있습니다. -
사전 필터: 벡터 검색 결과를 저장된 열과 결합하면 기본 테이블 문을 필터가 적용된 쿼리로 재작성하여 사전에 필터링할 수 있습니다.
VECTOR_SEARCH()
함수 뒤에 WHERE 절을 추가하는 사후 필터링 방식에 비해 쿼리 성능과 검색 품질이 더 좋고 결과가 누락될 위험도 최소화됩니다.
Palo Alto Networks는 BigQuery 벡터 검색을 통해 유사한 공통 쿼리를 찾아 인사이트 도출 시간을 단축한 대표적인 고객사입니다.
“당사는 BigQuery의 벡터 검색을 Copilot에 활용하여 관련성 높은 쿼리 예시를 제안하고 있으며, 덕분에 고객 경험이 크게 향상되었습니다. BigQuery에서 벡터 검색을 설정하고 사용하는 과정이 정말 간편했고 유사성 검색의 성능과 속도가 매우 뛰어났습니다.” - Sameer Merchant, Palo Alto Networks 선임 특별 엔지니어
Vilya의 신약 개발 프로젝트처럼 대규모 워크로드를 처리할 때도 BigQuery 벡터 검색을 활용하면 프로토타입 제작과 프로덕션 진행이 간편하게 이루어집니다. 게다가 주문형 가격 책정 및 예산 평가 도구 덕분에 용량 기반 과금 모델로 원활하게 확장할 수 있었습니다.
“BigQuery의 성능은 정말 인상적이었습니다. 정밀한 질병 생물학 표적화를 위해 새로운 거대고리를 검색하는 데 필요한 생물학적 데이터 규모로 쉽게 확장이 되었습니다. 사용이 간편하고 확장성이 뛰어난 BigQuery의 벡터 검색 덕분에 수십억 개의 거대고리를 빠르게 검색할 수 있었습니다.” - Patrick Salveson, Vilya 공동 창립자 겸 CTO
실전 예시
BigQuery 벡터 검색을 처음 접하셨나요? 실전에서 바로 시작할 수 있는 예시를 소개해 드리겠습니다.
내부 Q&A 포럼에 질문을 게시하기에 앞서 내 질문과 의미상 유사한 기존 질문이 있는지 확인하고 싶다고 가정해 보겠습니다. 또한 질문에 해당하는 임베딩을 생성하여 <my_posts_questions>
테이블에 저장했다고 가정해 보겠습니다. 이제 다음과 같이 벡터 색인을 생성하고 성능 향상을 위해 자주 사용되는 열(예: 제목, 콘텐츠, 태그)을 색인에 저장할 수 있습니다.
물론 VECTOR_SEARCH()
는 벡터 색인이 없어도 작동하지만 색인을 생성하면 일반적으로 쿼리 성능이 향상될 가능성이 높습니다. 준비가 되면 VECTOR_SEARCH()
를 ML.GENERATE_EMBEDDING과 함께 사용하여, 가령 'Android app using RSS crashing(RSS를 사용하는 Android 앱 비정상 종료)'과 유사한 질문을 검색할 수 있습니다. 결과를 세부적으로 조정하기 위해 'tags' 열에 사전 필터를 사용하여 검색 범위를 제한할 수 있습니다.
최근에는 Google에서 개발한 ScaNN을 기반으로 한 새 색인 유형의 프리뷰 버전을 발표해 검색 성능을 한층 더 향상할 수 있게 되었습니다. BigQuery 벡터 검색은 발전을 거듭하면서 정형 데이터, 비정형 데이터, 멀티모달 데이터로 구성된 정식 BigQuery 기술 자료에 최첨단 Gemini 모델을 사용하는 멀티모달 검색 증강 생성(RAG) 솔루션의 핵심 구성 요소로 자리 잡았습니다.
지금 시작하기
벡터 임베딩과 머신러닝의 결합은 신속하고 비용 효과적인 임베딩 검색부터 시작해, BigQuery 엔터프라이즈 데이터 웨어하우스에 저장된 데이터로 수행할 수 있는 작업에 혁신을 불러올 것입니다. BigQuery 벡터 검색을 시작하려면 다음 리소스를 살펴보세요.