AlloyDB ScaNN이 벡터 검색을 100억 개의 벡터로 확장하는 방법
Bin Song
Software Engineer
Itai Rosenblatt
Senior Engineering Manager, AlloyDB AI, Google
*이 콘텐츠는 AI 번역 도구를 사용하여 번역되었습니다. 정확성을 기하기 위해 노력하고 있으나, 자동 번역에는 오류나 누락이 포함될 수 있습니다. 정확한 정보는 영문 원본을 참고해 주시기 바랍니다.
엔터프라이즈급 에이전트 AI 애플리케이션의 요구사항을 충족하기 위해 기본 벡터 데이터베이스는 최신 사용 사례가 수십억 개의 벡터로 확장될 수 있으므로 효과적으로 확장하는 데 어려움을 겪는 경우가 많습니다.
완전 관리형 PostgreSQL 호환 데이터베이스 서비스인 AlloyDB는 까다로운 엔터프라이즈 워크로드를 처리하도록 설계되었습니다. Google의 인프라와 상용 데이터베이스의 안정성을 결합하여 높은 가용성과 확장성을 제공하며, 에이전트 AI 사용 사례에 최적화된 최첨단 분석 엔진을 포함합니다. 이러한 성능의 핵심은 ScaNN 색인으로, 이제 100억 개의 벡터 규모에서도 효율적으로 작동합니다. 이는 혁신적인 4단계 트리 (프리뷰)와 효율적인 메모리 사용량을 결합한 주요 아키텍처 개선을 통해 달성되었습니다.
100억 벡터 규모의 과제
100억 개의 벡터 워크로드로 확장하려면 상당한 메모리와 컴퓨팅 문제가 발생합니다. 이전 AlloyDB ScaNN 트리 기반 색인은 2단계 또는 3단계 트리 구성으로 제한되었으며, 이러한 구조를 확장하려고 하면 다음과 같은 여러 병목 현상이 발생했습니다.
-
컴퓨팅 집약도 증가: 더 큰 트리 구조는 색인 구성과 쿼리 순회 모두에 훨씬 더 많은 연산을 요구합니다.
-
메모리 제약: 100억 개의 벡터에 필요한 샘플링 프로세스가 시스템의 사용 가능한 메모리 용량을 쉽게 초과할 수 있습니다.
솔루션: 4단계 아키텍처
최근 AlloyDB ScaNN 출시의 주요 혁신은 4단계 트리 (프리뷰)의 도입입니다. 그림 1에 나와 있는 이 아키텍처는 하향식 전략을 사용하여 정확성과 빌드 효율성 간의 균형을 최적화합니다. 높은 성능을 유지하고 재현율 손실을 완화하기 위해 시스템은 Top-K 브랜치, SOAR, 중심점 조정, 균형 잡힌 트리 모양과 같은 주요 개선사항을 통합합니다.


그림 1. AlloyDB ScaNN 4단계 트리 아키텍처
이 설계에는 두 가지 주요 이점이 있습니다.
1. 계층적 파티셔닝을 통한 컴퓨팅 집약도 감소
4단계 아키텍처는 계층적 파티셔닝을 사용하여 쿼리 중에 스캔되는 벡터의 양을 제한함으로써 컴퓨팅 집약도를 크게 줄입니다. 평면적이거나 제대로 분할되지 않은 공간을 탐색하는 대신, 다층적 계층 구조는 검색 경로를 기하급수적으로 좁힙니다. 그림 2는 다양한 트리 수준에서 검색 공간을 보여주며 구조적 계층화가 순회 효율성을 어떻게 최적화하는지 보여줍니다.


그림 2. 2단계, 3단계, 4단계 트리의 검색 공간
-
2단계: 대략적인 파티셔닝을 활용하여 쿼리를 안내하므로 기본 검색 복잡도는 O(N1/2)입니다.
-
3단계: 중간 레이어를 도입하여 클러스터를 더 세분화하고 탐색 범위를 O(N1/3)으로 좁힙니다.
-
4단계: 순회 효율성을 O(N1/4)까지 최적화하는 세분화된 파티션을 구현하여 100억 개 이상의 벡터를 충분히 허용합니다.
AlloyDB ScaNN은 데이터 세트가 확장됨에 따라 계층적 레이어를 동적으로 확장하여 쿼리 지연 시간을 매우 낮게 유지하고 계산 규모의 벽이 성능에 영향을 미치지 않도록 방지합니다.
2. 효율적인 메모리 사용
100억 개의 벡터 규모를 달성하려면 높은 메모리 효율성이 필요합니다. AlloyDB ScaNN은 이러한 전략을 사용하여 메모리 관리 성능을 극대화합니다.
-
균형 잡힌 트리 모양 구성: 4단계 트리는 균형 잡힌 구성을 활용하여 학습 데이터 세트의 크기를 제한하는 메모리 제한을 우회합니다. 이 균형 잡힌 아키텍처는 축소된 샘플링 크기를 효과적으로 활용하여 충실도가 높은 트리 파티션을 구성합니다.
-
샘플링 최적화: 시스템이 메모리 제한에 직면하면 성능과 정확성을 고려한 압축된 샘플링 세트를 생성합니다.
성능 테스트 결과
내부 테스트에서 혁신적인 4단계 트리 아키텍처를 활용하여 다음과 같은 성능 결과를 달성할 수 있습니다.
-
AlloyDB는 ScaNN 색인을 사용하여 100억 개 이상의 벡터로 확장할 수 있습니다.
-
AlloyDB는 ScaNN 색인을 사용하여 100억 개의 벡터에서 51ms p95 지연 시간 이하와 95% 재현율을 제공할 수 있습니다.
지금 시작하기
지금 바로 AlloyDB ScaNN의 4단계 트리 (프리뷰) 아키텍처를 경험해 보세요. 빠른 시작 가이드에 따라 인스턴스를 설정하여 AlloyDB용 ScaNN을 배포할 수 있습니다. 최적화된 고속 벡터 검색은 공식 ScaNN 문서를 참조하세요. 신규 사용자는 30일 무료 체험 프로그램을 통해 AlloyDB를 살펴볼 수도 있습니다. 여러분이 빌드할 멋진 결과물을 기대하겠습니다.
