1. Hash Index란?
Hash Index는 벡터를 해시 함수로 변환하여 비슷한 벡터는 같은 해시 버킷에 들어가게 만들어, 전체를 탐색하지 않고도 유사한 벡터를 빠르게 찾도록 하는 인덱싱 기법입니다.
[여기서 잠깐, 해시 버킷이란?] 해시 버킷은 해시 함수를 통해 얻은 해시값에 따라 데이터를 분류하여 저장하는 그룹 또는 공간입니다. 유사한 입력(벡터)이 같은 해시값을 갖도록 설계된 해시 함수(Locality Sensitive Hash)를 사용하면, 유사한 벡터들이 같은 버킷 안에 들어가게 됩니다. 벡터1 ─┬─> 해시 함수 ─┬─> 버킷 A 벡터2 ─┘ └─> 버킷 B ... 벡터N ───────────────> 버킷 A
|
2. Hash Index 작동 원리 (LSH 기반 예시)
단계 설명
1. 해시 함수 정의 | 유사한 벡터일수록 같은 해시값을 만들도록 설계된 해시 함수 (Locality Sensitive Hash) 사용 |
2. 해시 버킷 생성 | 해시값에 따라 벡터들을 여러 개의 버킷(bucket)에 분류 |
3. 쿼리 시 해시 | 쿼리 벡터도 같은 해시 함수를 통해 버킷으로 매핑 |
4. 후보 선택 | 동일한 버킷에 있는 벡터들을 유사도 기반으로 정렬 |
5. 결과 반환 | 상위 N개 유사 벡터를 반환 |
3. Hash Index의 장단점
항목장점단점
✅ 속도 | 매우 빠름 (특히 고차원에서 효율적) | 유사도 정확도는 떨어질 수 있음 |
✅ 메모리 | 상대적으로 적게 사용 (구현에 따라 다름) | 해시함수 설계에 따라 편차 발생 |
✅ 확장성 | 대용량 벡터셋에 적합 | 고정된 해시로 인해 정밀 제어 어려움 |
4. Hash Index와 다른 인덱스 비교
인덱스 방식 특징 대표 기술
Hash Index (LSH) | 근사 검색, 빠름, 저정밀 | FAISS (LSH), Annoy |
IVF (Inverted File) | 클러스터 기반, 정밀도↑ | FAISS IVF |
HNSW (Graph 기반) | 정확도 매우 높음, 느림 | NMSLIB, FAISS HNSW |
PQ (Product Quantization) | 압축 + 검색, 정밀도 좋음 | FAISS PQ |
5.요약
항목 내용
목적 | 벡터 간 유사도를 빠르게 비교하기 위한 근사 검색 |
원리 | 비슷한 벡터 → 같은 해시값 → 같은 버킷 |
대표 알고리즘 | Locality Sensitive Hashing (LSH) |
활용처 | 대규모 벡터셋에서 빠른 Top-K 검색 |
[AI를 활용해 작성되었습니다]
공감버튼이 큰힘이 됩니다
'AI > RAG 이론' 카테고리의 다른 글
벡터 데이터베이스 : 양자화 기법(SQ, PQ) (1) | 2025.07.14 |
---|---|
벡터 데이터베이스 : Graph Index (0) | 2025.07.14 |
RAG 구현시 고려사항 : (6) 멀티턴 대화(ConversationBufferMemory) (0) | 2025.07.11 |
RAG 구현시 고려사항 : (5) RAG 성능 최적화 전략 (1) | 2025.07.11 |
RAG 구현시 고려사항 : (4) 프롬프트 설계 및 Generator 고려사항 (4) | 2025.07.11 |
댓글