핵심요약
Amazon Aurora PostgreSQL이 pgvector 0.8.0을 지원하며 벡터 검색 성능과 관련성이 대폭 향상되었습니다. 최대 9배 빠른 쿼리 처리와 100배 더 정확한 검색 결과를 제공하며, 오버필터링 문제를 해결하는 iterative_scan 기능이 도입되었습니다.
Amazon Aurora PostgreSQL에서 pgvector 0.8.0을 통한 벡터 검색 성능 및 관련성 향상
pgvector 0.8.0 주요 개선사항
- 성능: 이전 버전(0.7.4) 대비 최대 5.7배 빠른 쿼리 처리 성능 제공
- 결과 완전성:
iterative_scan기능 도입으로 필터링된 쿼리에서 불완전한 결과 반환 문제 해결 (재현율 최대 100배 개선) - 쿼리 계획: B-tree 등 전통적인 인덱스 활용 등 더 효율적인 실행 경로 선택
- 성능 튜닝:
relaxed_order및strict_order모드를 통한 성능 대비 정확도 조절 기능 제공
오버필터링 문제점 및 반복적 인덱스 스캔
- 기존 문제: 벡터 인덱스 스캔 후 필터링이 발생하여, 필터 조건에 맞는 결과가 적거나 없을 경우(오버필터링) 성능 저하 및 결과 부족 문제 발생
iterative_scan작동 방식:- 벡터 인덱스 스캔 및 필터 적용
- 필터 기준을 만족하는 충분한 결과가 없을 경우, 점진적으로 스캔 범위를 확장하여 필요한 수의 결과 확보
relaxed_order(기본값) 모드는 성능 우선,strict_order모드는 정확한 순서 유지
Aurora PostgreSQL에서의 성능 및 재현율 벤치마크
- 테스트 환경: 1,000만 개 제품 임베딩 데이터셋, Amazon Aurora PostgreSQL-Compatible (db.r8g.4xlarge 인스턴스)
- 성능: pgvector 0.8.0 사용 시 쿼리 지연 시간 최대 9.4배 단축 (p99 기준)
- 재현율: 높은 선택성의 쿼리에서 pgvector 0.7.4 대비 최대 100배의 결과 완전성 개선 확인
RAG 및 시맨틱 검색 시스템 확장
- RAG 애플리케이션: 낮은 지연 시간과 필터링된 쿼리 성능 개선으로 AI 응답 시간 향상 및 도메인별 검색 지원
- 시맨틱 검색: 실시간 검색 경험, 필터링된 검색 구현 향상, 완전한 결과 세트 제공
- 추천 시스템: 대규모 결과 세트 검색 속도 향상, 상황별 추천 지원, 추천 다양성 증대
Aurora PostgreSQL에서 pgvector 0.8.0 시작하기
- Aurora PostgreSQL 버전 17.4 이상 클러스터 시작
CREATE EXTENSION IF NOT EXISTS vector;명령어로 확장 활성화SHOW vector_version;명령어로 최신 버전 확인
모범 사례
- 인덱스 사용: 작은 데이터셋은 순차 스캔 고려, 대규모 데이터셋에 HNSW 인덱스 활용
- 메타데이터 인덱싱: 필터링되는 메타데이터 컬럼에 B-tree 인덱스 생성
- 쿼리 튜닝:
relaxed_order(성능 우선) 또는strict_order(완전성 우선) 모드 선택 및hnsw.ef_search값 조정 - 하드웨어: Graviton4 기반 인스턴스(R8g 시리즈) 활용 권장