Microsoft представила систему векторного поиска с интеграцией DiskANN в Azure Cosmos DB: эффективно и с низкой задержкой
Microsoft разработала интегрированную в Azure Cosmos DB систему векторного поиска на базе DiskANN, обеспечивающую масштабируемость, низкую задержку и экономичность для семантических запросов.
Важность поиска по векторам высокой размерности
Современные системы обработки данных требуют возможности поиска по векторам высокой размерности, созданным глубокими нейросетями. Такие векторы отражают семантическое и контекстное значение данных, что позволяет находить результаты не по точному совпадению, а по релевантности и схожести. Это критично для веб-поиска, AI-ассистентов и систем рекомендаций, где нужен доступ к информации в более осмысленном виде, чем просто структурированные запросы.
Проблемы традиционных систем векторного поиска
Традиционные базы векторов оптимизированы под семантический поиск, но требуют дублирования данных из основных транзакционных баз. Это ведет к задержкам, дополнительным затратам на хранение и рискам рассогласования данных. Управление двумя раздельными системами усложняет синхронизацию, ограничивает масштабируемость, гибкость и целостность данных при частых обновлениях.
Ограничения популярных инструментов векторного поиска
Такие инструменты, как Zilliz и Pinecone, работают как отдельные сервисы с сегментированной или полностью в памяти архитектурой. Они требуют частой перестройки индексов и подвержены всплескам задержек и большому потреблению памяти, что снижает эффективность при больших объемах и динамичных данных. Им сложно работать с фильтрацией, обновлениями и мультиарендностью из-за отсутствия глубокой интеграции с транзакционными операциями.
Интеграция DiskANN в Azure Cosmos DB от Microsoft
Исследователи Microsoft разработали подход, интегрирующий индексирование векторов напрямую в NoSQL-движок Azure Cosmos DB с использованием DiskANN — графовой библиотеки индексирования, известной своей производительностью в масштабных семантических поисках. Это устраняет необходимость отдельной базы векторов и использует встроенные возможности Cosmos DB: высокую доступность, эластичность, мультиарендность и автоматическое партицирование. В каждой коллекции поддерживается один векторный индекс на партицию, синхронизированный с основными документами через структуру Bw-Tree.
Технические особенности интеграции DiskANN
Библиотека DiskANN переписана на Rust с асинхронными операциями для совместимости с базой данных. Система извлекает или обновляет только необходимые части векторов, например квантованные версии или списки соседей, снижая потребление памяти. Вставка и запросы векторов выполняются гибридным способом, преимущественно в квантованном пространстве. Поддерживается постраничный поиск и обход с учетом фильтров, что позволяет эффективно выполнять сложные запросы и масштабироваться до миллиардов векторов. Предусмотрен шардированный режим индексирования для разделения по ключам, например по ID арендатора или времени.
Результаты производительности и экономии
В экспериментах с 10 миллионами векторов размерностью 768 запросы выполнялись с задержкой менее 20 мс (p50) и точностью recall@10 94,64%. Стоимость запросов в Cosmos DB была в 15 раз ниже, чем у Zilliz, и в 41 раз ниже, чем у Pinecone. Экономичность сохранялась при масштабировании индекса с 100 тысяч до 10 миллионов векторов, при этом задержка и запросные единицы увеличивались менее чем в 2 раза. Стоимость загрузки 10 миллионов векторов составила около 162,5 долларов, что ниже, чем у Pinecone и DataStax, но выше, чем у Zilliz. Точность оставалась стабильной при интенсивных обновлениях, а локальные удаления улучшали качество при изменениях данных.
Унификация семантического поиска и транзакционных баз
Данное исследование предлагает практическое и масштабируемое решение, которое внедряет векторный поиск в транзакционную базу, упрощая эксплуатацию и обеспечивая значительные преимущества по стоимости, задержкам и масштабируемости. Интеграция DiskANN в Azure Cosmos DB открывает перспективный путь для включения семантических возможностей непосредственно в операционные нагрузки данных.
Более подробную информацию можно найти в оригинальной статье, а обновления — в социальных сетях проекта.
Switch Language
Read this article in English