본문 바로가기

벡터 데이터베이스3

벡터 데이터베이스 : 양자화 기법(SQ, PQ) [1] Scalar Quantization 1. Scalar Quantization이란?Scalar Quantization (스칼라 양자화)는 고차원 벡터를 저장하거나 검색할 때 메모리를 줄이고 처리 속도를 높이기 위해 벡터 값을 압축하는 기법입니다. 특히, 벡터 데이터베이스(Vector DB)나 유사도 검색 시스템에서 자주 사용됩니다. 고차원 벡터의 각 **스칼라 값(1차원 수치)**을 일정한 범위의 **이산값(quantized value)**으로 근사화하여 표현하는 방식입니다.예:원래 벡터: [0.12, -1.75, 3.90]양자화 후: [1, -2, 4] (정수 근사)실제 예 (int8 양자화)원래 벡터 값 범위: -1.0 ~ 1.0 0.34round( (0.34+1)/.. 2025. 7. 14.
벡터 데이터베이스 : Graph Index 1. Graph Index란?Graph Index는 각 벡터를 노드(node)로 보고, 유사한 벡터끼리 엣지(edge)로 연결하여 그래프 형태의 인덱스를 구성하는 방식입니다.검색할 때는 그래프 위를 탐색하며 점점 더 유사한 벡터로 이동하는 식으로 근접 벡터를 찾습니다.대표적인 구현은 HNSW (Hierarchical Navigable Small World)입니다. 2. Graph Index의 동작 원리 (HNSW 기준)주요 개념노드(Node): 저장된 벡터엣지(Edge): 유사한 노드 간 연결탐색(Traversal): 이웃 벡터 중 더 가까운 쪽으로 이동레벨(Level): 계층 구조를 통해 탐색 효율 향상 상위 레벨에서 대략적인 위치 탐색하위 레벨로 내려가며 근접 노드들 사이를 이동최종적으로 Top-K .. 2025. 7. 14.
벡터 데이터베이스 : Hash Index란 1. Hash Index란?Hash Index는 벡터를 해시 함수로 변환하여 비슷한 벡터는 같은 해시 버킷에 들어가게 만들어, 전체를 탐색하지 않고도 유사한 벡터를 빠르게 찾도록 하는 인덱싱 기법입니다.[여기서 잠깐, 해시 버킷이란?]해시 버킷은 해시 함수를 통해 얻은 해시값에 따라 데이터를 분류하여 저장하는 그룹 또는 공간입니다.유사한 입력(벡터)이 같은 해시값을 갖도록 설계된 해시 함수(Locality Sensitive Hash)를 사용하면, 유사한 벡터들이 같은 버킷 안에 들어가게 됩니다.벡터1 ─┬─> 해시 함수 ─┬─> 버킷 A 벡터2 ─┘ └─> 버킷 B ... 벡터N ───────────────> 버킷 A해.. 2025. 7. 14.