벡터 지원은 벡터 검색 워크로드를 배포하고 관리하기 위한 선언적 SQL 프레임워크를 제공하는 PostgreSQL용 AlloyDB 확장 프로그램입니다. 임베딩 생성, 색인 매개변수, 쿼리 조정을 수동으로 구성하는 대신 SQL 함수를 사용하여 대상 테이블, 소스 텍스트 열, 재현 목표와 같은 워크로드 요구사항을 선언합니다.
벡터 지원은 벡터 사양을 기반으로 자동 조정 알고리즘을 사용하여 검토, 수정, 적용할 수 있는 설명과 함께 최적화된 SQL 권장사항을 생성합니다. 이 워크플로를 사용하면 최소한의 수동 설정으로 프로토타입을 제작하고 프로덕션 레디 시맨틱 검색 애플리케이션을 배포할 수 있습니다.
벡터 지원 작동 방식
벡터 지원을 사용하려면 벡터 사양을 정의해야 합니다. 프레임워크는 이러한 벡터 사양(벡터 사양이라고도 함)을 사용하여 벡터 색인을 만드는 데 필요한 단계를 생성합니다. 벡터 지원은 벡터 워크로드를 권장사항으로 배포하는 데 필요한 단계를 출력합니다. 벡터 사양을 수정할 때마다 벡터 지원은 권장사항을 다시 생성합니다.
이러한 권장 단계를 사용하여 벡터 색인을 생성한 후 벡터 지원을 사용하여 최적화된 검색어를 생성할 수 있습니다.
벡터 지원 사양
벡터 지원을 사용하는 첫 번째 단계 는 벡터 색인 사양 또는 벡터 사양을 설정하는 것입니다. 벡터 사양은 벡터 워크로드의 의도와 요구사항을 정의하는 객체입니다. 여기에는 다음을 비롯한 모든 필수 정보가 포함됩니다.
- 테이블 및 관련 열 (텍스트 또는 벡터)
- 임베딩 모델 환경설정 (임베딩 생성 사용 시)
- 선호하는 색인 유형:
HNSW또는IVFFlat.ScaNN은 지원되지 않습니다. - 검색어의 대상 재현
- 메모리 제한사항
vector_assist.define_spec
함수를 사용하여 벡터 사양을 정의하며 언제든지 수정할 수 있습니다. 시스템은 각 사양에 고유 ID를 할당하고 vector_assist.VECTOR_SPECS라는 테이블에 저장합니다.
벡터 지원은 사양 입력과 최적의 색인 구성을 계산하는 최적화된 자동 조정 알고리즘을 추론합니다. 벡터 지원은 이러한 값을 사용하여 개발 프로세스를 간소화하지만 환경설정에 맞게 맞춤설정할 수도 있습니다.
벡터 지원 권장사항
벡터 사양을 정의한 후 벡터 지원은 입력을 처리하고 권장사항을 생성합니다. 이러한 권장사항은 사양에 따라 벡터 워크로드를 배포하기 위해 실행해야 하는 유용한 단계(일반적으로 SQL 명령어)의 순서가 지정된 목록입니다. 각 권장사항에는 다음이 포함됩니다.
- 실행할 SQL 쿼리
- 쿼리가 수행하는 작업과 권장되는 이유에 대한 자세한 설명
- 예상 색인 크기 또는 빌드 시간과 같은 잠재적 절충안 또는 비용에 관한 정보
벡터 지원은 vector_assist.RECOMMENDATIONS라는 테이블에 권장사항을 저장하며 개별적으로 또는 전체적으로 검토, 수정, 적용할 수 있습니다.
워크로드의 벡터 사양을 수정할 때마다 벡터 지원은 업데이트된 사양을 준수하도록 권장사항을 다시 생성합니다.
제한사항
AlloyDB 인스턴스에서 벡터 지원을 사용하는 경우 다음 제한사항을 고려하세요.
- 벡터 지원은 PostgreSQL 버전 17 이상만 지원합니다.
- 벡터 지원은 모든
pgvector버전을 지원하지만 최적의 성능과 기능 지원을 위해 최신 버전을 사용하는 것이 좋습니다. 자세한 내용은pgvector변경 로그를 참고하세요. - 인스턴스에서
google_ml_integration확장 프로그램을 사용하여 임베딩을 생성하는 경우 벡터 지원을 사용할 때도 제한사항이 적용됩니다. 자세한 내용은 AlloyDB에서 원격 AI 모델 등록 및 호출 개요를 참고하세요. - 벡터 지원은
HNSW및IVFFlat색인 유형만 지원합니다.ScaNN색인 유형은 지원되지 않습니다. - 벡터 지원은 임베딩을 자동 생성하기 위한 텍스트 임베딩 모델만 지원하며
text_column_name을 입력 매개변수로 사용합니다. 벡터 워크로드에 멀티모달 임베딩 모델이 필요한 경우google_ml_integration확장 프로그램 또는 다른 확장 프로그램을 사용하여 이러한 임베딩에 시맨틱 검색을 사용 설정하기 위해 벡터 지원을 사용하기 전에 이러한 임베딩을 수동으로 생성합니다.