<НА ГЛАВНУЮ

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

Switch to English