Когда RAM становится слишком дорогой: как выбирать между in-memory и on-disk индексами для векторного поиска
Рост систем RAG, семантического поиска и agentic-подходов повышает требования к инфраструктуре векторного поиска. Индексы, которые раньше работали с миллионами векторов, теперь масштабируются до сотен миллионов и миллиардов записей. На таких объёмах хранение индексов и связанных данных в RAM может стоить тысячи долларов в месяц, а HNSW начинает упираться в ограничения по масштабированию.
Как пишет Towards Data Science, главная задача при проектировании таких систем заключается в поиске баланса между задержкой, стоимостью хранения и качеством поиска. В материале разбираются approximate nearest neighbor (ANN) алгоритмы, которые ускоряют поиск за счёт приближённых результатов вместо полного перебора данных. В отличие от exact search, где проверяются все элементы индекса и хуже масштабируется latency, ANN-алгоритмы используют структуры вроде графов, чтобы сократить число обращений при поиске.
Автор делит ANN-подходы на две группы. RAM-based алгоритмы, включая HNSW, рассчитаны на хранение данных в памяти и обеспечивают минимальные задержки, хотя обходятся дороже. On-disk решения, такие как DiskANN и SPANN, уменьшают потребление RAM и активнее используют дисковое хранение. При этом оба типа могут частично хранить структуры и в памяти, и на диске, но максимальную эффективность показывают в тех сценариях, для которых изначально проектировались.
Ключевые факты
Exact search перебирает все элементы индекса и показывает лучшие retrieval-метрики, но хуже масштабируется по latency.
Современные ANN-алгоритмы, включая HNSW и DiskANN, часто используют графовые структуры для снижения задержек при запросах.
Некоторые векторные базы данных для небольших коллекций обходятся без построения индекса и используют kNN-поиск.
В материале отдельно рассматриваются on-disk алгоритмы DiskANN и SPANN как способы снизить потребление RAM.