DiskANN RAM 에는 모든 벡터의 작은 PQ-압축 사본을, 에는 SSD전체 벡터와 그래프를 보관합니다. 검색은 저렴한 비교를 통해 그래프를 탐색한 다음, 소수의 비용이 많이 드는 디스크 읽기 작업을 통해 상위 후보들의 순위를 재조정합니다. RAM
단일 상품인 ‘ SSD ’만으로도 디스크 측을 쉽게 수용할 수 있습니다. ‘ RAM ’ 측은 어떤 노트북에도 들어갑니다. ‘ PQ ’ 기법이 없다면, 데이터셋을 로드하기 위해서만도 수백 GB의 ‘ RAM ’ 용량을 가진 서버가 필요했을 것입니다.
PQ ≈ 1 µs, SSD ≈ 100 µs로 모델링되었습니다. 실수 값은 하드웨어에 따라 달라집니다.R)입니다. 계층 구조는 없으며, 하나의 거대한 그래프로만 구성됩니다.L 인 후보 벡터 풀을 유지합니다. 최상의 벡터를 추출하고, 그 이웃을 확장하며, in-RAM PQ 코드만을 사용하여 거리를 추정합니다. 탐색 중에는 디스크 I/O가 발생하지 않습니다.정신 모델: ‘ PQ ’는 비용이 적게 드는 “이 주변이 유망한가?”라는 테스트입니다. 디스크 읽기는 비용이 많이 드는 “실제로 확인해 보자”는 점검입니다. ‘ DiskANN ’는 대부분의 작업을 이 저렴한 테스트를 통해 수행합니다.
DiskANN 는 RAM 에 맞지 않는 데이터셋을 위해 설계된 그래프 기반의 근사 최인접 이웃 인덱스입니다. 이 인덱스는 효율적인 디스크 액세스를 위해 배치된 단일 레이어 Vamana 그래프를 구축하고, 메모리 내의 모든 벡터에 대해 아주 작은 제품 양자화(PQ) 코드를 유지하며, 전체 정밀도 벡터와 그래프 에지는 SSD 에 저장합니다. 검색은 비용이 적게 드는 인RAM PQ 비교를 사용하여 그래프를 탐색하며, 소수의 최종 후보를 재순위 지정할 때만 디스크에 접근합니다.
『 Milvus 』에서, DiskANN 는 디스크 기반 인덱스 옵션을 지원합니다. 이를 통해 수십 기가바이트( RAM) 규모의 머신(수백 기가바이트가 아닌)에서도 수십억 규모 컬렉션을 검색할 수 있으며, 디스크 재순위 지정 단계(disk re-rank step)를 통해 리콜률을 메모리 내 그래프 인덱스 수준에 가깝게 유지합니다.
R (그래프 차수, 빌드 시간): ‘ Vamana ’ 그래프에서 노드당 최대 가장자리 수를 의미합니다. R 값이 높을수록 연결성과 리콜이 향상되지만, 디스크에 저장되는 그래프 크기가 커지고 빌드 속도가 느려지는 단점이 있습니다.L / search_list (쿼리 시간): 빔 검색(beam search) 중에 유지되는 후보 풀 — 리콜/지연 시간의 주요 조절 요소로, HNSW 의 ef 와 동일합니다. 이 값은 반드시 top-K 이상이어야 합니다.데이터셋(또는 메모리 사용량)이 RAM 의 용량을 초과할 경우 DiskANN 를 선택하십시오. 이 방법은 SSD 읽기 작업으로 인한 밀리초 수준의 지연 시간을 감수하는 대신, 훨씬 적은 메모리로 높은 리콜을 제공하는 쿼리를 처리합니다. 모든 데이터가 메모리에 여유 있게 들어갈 경우, HNSW 가 더 빠르게 응답합니다. 디스크를 사용하지 않으면서 빠른 인덱스 구축이나 적당한 메모리 절감이 필요한 경우, IVF 변형들이 그 중간에 위치합니다.
벡터가 RAM 에 더 이상 들어가지 않거나, 이를 저장하는 RAM 의 비용이 감당하기 어려울 때를 말합니다. 10억 개의 768차원 부동소수점 벡터는 HNSW 의 경우 메모리에 약 3TB가 필요하지만, RAM 의 경우 수십 GB만 필요하며, DiskANN 를 사용하는 SSD 만 추가하면 됩니다. 데이터셋이 메모리에 여유 있게 들어간다면, HNSW 가 여전히 지연 시간이 더 짧은 선택지입니다.
빠른 NVMe SSD 가 핵심 요구 사항입니다. 쿼리 지연 시간은 소수의 무작위 디스크 읽기 작업(각각 ~100 µs)에 의해 좌우되기 때문입니다. RAM 요구 사항은 적당합니다: 대략 PQ 코드(예: 벡터당 32–64바이트)와 작업용 버퍼 정도면 충분합니다.
쿼리당 처리 시간은 일반적으로 한 자릿수 밀리초 수준이며, 메모리 내 HNSW 의 경우 밀리초 미만입니다. 이는 디스크를 통한 재순위 지정(re-rank)이 메모리 내 RAM 액세스보다 약 100배 더 느리기 때문입니다. 그 대가로 발생하는 비용은 다음과 같습니다: DiskANN 는 리콜률을 90–95% 이상으로 유지하면서, RAM 보다 한 차원 낮은 비용으로 동일한 데이터셋을 처리합니다.
PQ 코드는 그래프 탐색을 유도하는 데만 사용되며, 최종 점수를 산출하는 데는 사용되지 않습니다. 결과를 반환하기 전에, DiskANN 는 SSD 에서 상위 후보들의 전체 정밀도 벡터를 읽어와 정확히 재순위를 매기며, IVF_PQ 와 같은 순수한 PQ 기반 인덱스로는 수정할 수 없는 양자화 오류를 보정합니다.
더 자세히 알아보기: 설정 요구 사항에 대해서는 ‘DiskANN ’ 문서를 참조하거나, 전체 결정 가이드를 보려면 ‘Index Explained’를 참조하십시오.