728x90
반응형

개요
DiskANN은 마이크로소프트 리서치에서 개발한 근사 최근접 탐색(ANN, Approximate Nearest Neighbor) 알고리즘으로, RAM이 아닌 디스크(SSD)에 저장된 고차원 벡터 데이터를 고속으로 검색할 수 있도록 설계되었습니다. 수십억 개의 벡터도 소량의 메모리만으로 빠르게 탐색할 수 있어, 대규모 검색 시스템에 적합합니다.
1. 개념 및 정의
| 항목 | 설명 |
| 정의 | SSD에 저장된 대규모 벡터 인덱스에서 최근접 이웃을 근사적으로 탐색하는 알고리즘 |
| 목적 | RAM 사용을 최소화하면서도 빠른 벡터 검색 구현 |
| 필요성 | 메모리 크기를 넘는 벡터 데이터를 실시간 탐색할 수 있는 구조 필요 |
DiskANN은 HNSW 기반 탐색과 SSD 친화적인 I/O 최적화를 결합함
2. 특징
| 특징 | 설명 | 비교 |
| SSD 기반 인덱스 | 대부분의 인덱스가 디스크에 상주 | Faiss는 대부분 RAM 상주 |
| 고속 탐색 | 수 ms 이내에 수십억 벡터 탐색 | IVF보다 정확도·속도 우수 |
| RAM 최소 사용 | 탐색 시 필요한 최소 메타 정보만 메모리 사용 | 수백 MB 수준으로 TB급 검색 가능 |
대용량 벡터 검색 환경에서 뛰어난 확장성과 실용성 제공
3. 구성 요소
| 구성 요소 | 설명 | 예시 |
| Disk Graph Index | SSD에 저장되는 벡터 그래프 인덱스 | 노드 연결 정보를 압축 저장 |
| Beam Search | 근사 탐색 시 사용되는 경로 확장 알고리즘 | 초기 후보군에서 고속 확장 |
| RAM-resident Metadata | 노드 ID, offset 등 최소 메타 정보 | 메모리 상에 수백 MB만 유지 |
RAM에 일부 prefetching buffer를 두어 I/O latency 보완
4. 기술 요소
| 기술 | 설명 | 사용 예 |
| Graph-based ANN | 그래프 탐색을 기반으로 근접 이웃 탐색 | HNSW, NSW와 유사 구조 |
| SSD Prefetching | I/O latency 보완을 위한 블록 예측 로딩 | sequential read 최적화 |
| Pruned Graph Construction | 그래프 간선 수를 최적화하여 검색 성능 향상 | 노이즈 제거 및 메모리 절약 |
SSD 특성을 고려한 인덱스 구조 및 탐색 순서가 핵심
5. 장점 및 이점
| 장점 | 설명 | 효과 |
| 저메모리 사용 | RAM이 제한적인 환경에서도 작동 | 임베디드 시스템 가능 |
| 대규모 확장성 | 수십억 벡터도 단일 노드에서 처리 가능 | 벡터 DB에 적합 |
| 고정밀 탐색 | 타 ANN 알고리즘 대비 높은 정확도 | 하이브리드 추천, 이미지 검색에 적합 |
하드웨어 비용을 줄이면서도 고성능 ANN 구현 가능
6. 주요 활용 사례 및 고려사항
| 사례 | 설명 | 참고사항 |
| 벡터 데이터베이스 | Milvus, Vespa 등과 통합 | 외부 인덱서로 연동 가능 |
| 대규모 추천 시스템 | 사용자 임베딩 기반 추천 계산 | 수십억 노드 처리 가능 |
| 이미지/문서 검색 | 임베딩 기반 유사도 검색 | 실시간 검색에 충분한 속도 |
SSD 성능에 따라 탐색 지연 시간 차이 발생 가능성 존재
7. 결론
DiskANN은 대규모 벡터 검색에서 메모리 사용량을 최소화하면서도 높은 정확도와 속도를 제공하는 최신 근사 최근접 탐색 기술입니다. SSD의 순차 읽기 특성을 고려한 설계 덕분에 하드웨어 제약이 있는 환경에서도 고성능 검색 시스템을 구현할 수 있어, AI 검색, 추천, 멀티모달 분석 등 다양한 분야에 적합한 선택지입니다.
728x90
반응형
'Topic' 카테고리의 다른 글
| RRF(Reciprocal Rank Fusion) (0) | 2026.01.30 |
|---|---|
| t-digest (0) | 2026.01.29 |
| Snappy (0) | 2026.01.29 |
| LZ4 (0) | 2026.01.28 |
| Apache ORC(Optimized Row Columnar) (0) | 2026.01.28 |