MongoDB против Aerospike: выбор подходящей базы данных для приложений GenAI
По мере развития приложений на базе ИИ важность возможностей векторного поиска в поддержке этих достижений невозможно переоценить. В этой публикации блога мы рассмотрим две известные базы данных с возможностями векторного поиска: MongoDB and Aerospike. Каждая из них предоставляет надежные возможности для работы с векторным поиском — важной функцией для таких приложений, как рекомендательные системы, поиск изображений и семантический поиск. Наша цель — предоставить разработчикам и инженерам понятное сравнение, помогающее решить, какая база данных лучше всего соответствует их конкретным требованиям.
Что такое векторная база данных?
Прежде чем сравнивать MongoDB vs Aerospike, давайте сначала рассмотрим концепцию векторных баз данных.
Векторная база данных специально предназначена для хранения и запросов высокоразмерных векторов, которые являются числовыми представлениями неструктурированных данных. Эти векторы кодируют сложную информацию, такую как семантическое значение текста, визуальные признаки изображений или атрибуты продуктов. Обеспечивая эффективные поиски по сходству, векторные базы данных играют ключевую роль в приложениях ИИ, позволяя выполнять более продвинутый анализ и извлечение данных.
Распространенные варианты использования векторных баз данных включают рекомендации товаров в электронной коммерции, платформы для обнаружения контента, обнаружение аномалий в кибербезопасности, анализ медицинских изображений и задачи обработки естественного языка (NLP). Они также играют ключевую роль в Retrieval Augmented Generation (RAG) — методе, который повышает производительность больших языковых моделей (LLMs), предоставляя внешние знания для уменьшения таких проблем, как галлюцинации ИИ.
На рынке доступно множество типов векторных баз данных, включая:
- Специализированные векторные базы данных, такие как Milvus, Zilliz Cloud (полностью управляемый Milvus)
- Библиотеки векторного поиска, такие как Faiss и Annoy.
- Легковесные векторные базы данных, такие как Chroma и Milvus Lite.
- Традиционные базы данных с надстройками для векторного поиска, способные выполнять векторный поиск в небольших масштабах.
MongoDB — это NoSQL-база данных, которая хранит данные в JSON-подобных документах ****а Aerospike — распределенная, масштабируемая NoSQL-база данных. Обе имеют возможности векторного поиска в виде надстройки. В этой публикации сравниваются их возможности векторного поиска.
MongoDB: основы
MongoDB Atlas Vector Search — это функция, которая позволяет выполнять поиск векторного сходства по данным, хранящимся в MongoDB Atlas. Вы можете индексировать и запрашивать высокоразмерные векторные эмбеддинги вместе с данными ваших документов и выполнять ИИ и машинное обучение прямо в базе данных.
В своей основе Atlas Vector Search использует алгоритм Hierarchical Navigable Small World (HNSW) для индексирования и поиска векторных данных. Он создает многоуровневый граф векторного пространства, чтобы вы могли выполнять поиски Approximate Nearest Neighbor (ANN). Это баланс скорости и точности для векторного поиска в больших масштабах. Atlas Vector Search также поддерживает поиски Exact Nearest Neighbors (ENN), где приоритет отдается точности, а не производительности, для запросов до 10 000 документов.
Одним из больших преимуществ Atlas Vector Search является его интеграция с гибкой документной моделью MongoDB. Вы можете хранить векторные эмбеддинги вместе с другими данными документа, чтобы выполнять поиск более контекстно и точно. Вы можете запрашивать любые данные, которые можно встроить в пространство размерностью до 4096. Atlas Vector Search позволяет сочетать поиск по векторному сходству с традиционной фильтрацией документов. Например, семантический поиск товаров можно отфильтровать по категории, ценовому диапазону или наличию.
Atlas Vector Search также поддерживает гибридный поиск, объединяя векторный поиск с полнотекстовым поиском для получения более детализированных результатов. Это отличается от Atlas Search, который ориентирован на поиск по ключевым словам. Платформа интегрируется с популярными AI-сервисами и инструментами, поэтому вы можете использовать ее с моделями эмбеддингов от таких провайдеров, как OpenAI, VoyageAI и многих других, перечисленных на Hugging Face. Она также поддерживает open-source-фреймворки, такие как LangChain и LlamaIndex, для создания приложений, использующих большие языковые модели (LLMs).
Чтобы обеспечить масштабируемость и производительность, MongoDB Atlas предоставляет Search Nodes, которые обеспечивают выделенную инфраструктуру для рабочих нагрузок Atlas Search и Vector Search. Это позволяет вам иметь оптимизированные вычислительные ресурсы и независимое масштабирование поисковых потребностей, чтобы получать лучшую производительность в масштабе.
Благодаря наличию этих возможностей в экосистеме MongoDB, Atlas Vector Search является полноценным решением для разработчиков, создающих приложения на базе AI, рекомендательные системы или расширенные функции поиска. Нет необходимости в отдельной векторной базе данных: вы можете использовать масштабируемость и богатые возможности MongoDB вместе с векторным поиском.
Aerospike: Основы
Aerospike — это NoSQL-база данных для высокопроизводительных приложений реального времени. Она добавила поддержку векторной индексации и поиска, поэтому подходит для сценариев использования векторных баз данных. Векторная возможность называется Aerospike Vector Search (AVS) и находится в Preview. Вы можете запросить ранний доступ у Aerospike.
AVS поддерживает только индексы Hierarchical Navigable Small World (HNSW) для векторного поиска. Когда в AVS выполняются обновления или вставки, данные записи, включая вектор, записываются в Aerospike Database (ASDB) и сразу становятся видимыми. Для индексации каждая запись должна иметь как минимум один вектор в указанном векторном поле индекса. Вы можете иметь несколько векторов и индексов для одной записи, поэтому можете искать одни и те же данные разными способами. Aerospike рекомендует назначать upsert-записи определенному set, чтобы вы могли отслеживать их и выполнять с ними операции.
У AVS есть уникальный способ построения индекса: он выполняется конкурентно на всех узлах AVS. В то время как обновления векторных записей записываются напрямую в ASDB, индексные записи обрабатываются асинхронно из очереди индексации. Это выполняется пакетами и распределяется по всем узлам AVS, поэтому задействует все CPU-ядра в кластере AVS и является масштабируемым. Производительность приема данных сильно зависит от памяти хоста и конфигурации слоя хранения.
Для каждого элемента в очереди индексации AVS обрабатывает вектор для индексации, строит кластеры для каждого вектора и фиксирует их в ASDB. Индексная запись содержит копию самого вектора и кластеры для этого вектора на заданном слое графа HNSW. Индексация использует векторные расширения (AVX) для параллельной обработки single instruction, multiple data.
AVS выполняет запросы во время приема данных, чтобы «предварительно гидратировать» кэш индекса, поскольку записи в кластерах взаимосвязаны. Эти запросы не учитываются как запросы, но отображаются как чтения к слою хранения. Таким образом, кэш заполняется релевантными данными и может улучшить производительность запросов. Это показывает, как AVS обрабатывает векторные данные и строит индексы для поиска по сходству, чтобы масштабироваться для высокоразмерных векторных поисков.
Ключевые различия
Когда речь идет о векторном поиске, и MongoDB, и Aerospike предлагают хорошие варианты. Если вы разработчик, который хочет добавить векторный поиск в свое приложение, понимание различий между ними поможет вам принять решение. Давайте сравним MongoDB Atlas Vector Search и Aerospike Vector Search (AVS) по нескольким ключевым пунктам.
Методология поиска
И MongoDB Atlas Vector Search, и Aerospike Vector Search используют алгоритм Hierarchical Navigable Small World (HNSW) для индексирования и поиска векторных данных. Этот алгоритм создает многоуровневый граф векторного пространства, чтобы вы могли выполнять поиск Approximate Nearest Neighbor (ANN). MongoDB Atlas также поддерживает поиск Exact Nearest Neighbors (ENN) для запросов до 10 000 документов. Это дает пользователям MongoDB больше гибкости для балансировки скорости и точности в зависимости от их сценария использования.
Данные
Гибкая документная модель MongoDB позволяет хранить векторные эмбеддинги вместе с другими данными документа. Это обеспечивает более контекстный и точный поиск, поскольку вы можете сочетать поиск по векторному сходству с традиционной фильтрацией документов. Например, вы можете выполнить семантический поиск товаров и отфильтровать результаты по категории, ценовому диапазону или доступности.
Aerospike в первую очередь является хранилищем ключ-значение и добавил возможности векторного индексирования и поиска. Он позволяет использовать несколько векторов и индексов для одной записи, так что у вас есть гибкость в том, как вы можете искать свои данные. Но его модель данных может быть не такой гибкой, как документно-ориентированный подход MongoDB, для обработки полуструктурированных или неструктурированных данных.
Масштабируемость и производительность
MongoDB Atlas имеет Search Nodes, которые предоставляют выделенную инфраструктуру для рабочих нагрузок Atlas Search и Vector Search. Это позволяет оптимизировать вычислительные ресурсы и независимо масштабировать поисковые потребности, чтобы вы получали лучшую производительность в масштабе.
Подход Aerospike к построению индекса отличается. Он асинхронно обрабатывает записи индекса из очереди индексирования на всех узлах AVS. Это использует все ядра CPU в кластере AVS, поэтому может быть более масштабируемым для построения индекса. Aerospike также использует технику “pre-hydration” во время загрузки данных, чтобы заполнить кэш индекса релевантными данными, что может улучшить производительность запросов.
Гибкость и настройка
MongoDB Atlas Vector Search поддерживает несколько метрик расстояния для вычисления сходства и может работать с эмбеддингами от любого поставщика размерностью до 4096. Он также поддерживает гибридный поиск, сочетая векторный поиск с полнотекстовым поиском для более точных результатов.
Aerospike Vector Search, хотя и ограничен текущей preview-версией, позволяет использовать несколько векторов и индексов на запись. Это может быть полезно для поиска одних и тех же данных разными способами.
Интеграция и экосистема
MongoDB Atlas интегрируется с популярными AI-сервисами и инструментами, работает с моделями эмбеддингов от OpenAI, VoyageAI и многими другими, перечисленными на Hugging Face. Он также поддерживает интеграцию с LangChain и LlamaIndex для создания приложений на базе AI.
Aerospike также интегрируется с популярными фреймворками, такими как LangChain.
Простота использования
MongoDB известна своей удобностью для разработчиков, большим количеством документации и крупным сообществом. Atlas как управляемый сервис может упростить настройку и обслуживание.
У Aerospike более крутая кривая обучения, если вы не знакомы с его архитектурой. Его векторный поиск находится в preview-версии, поэтому может иметь меньше документации и поддержки сообщества по сравнению с более зрелыми вариантами.
Стоимость
MongoDB Atlas имеет многоуровневую модель ценообразования, стоимость варьируется в зависимости от вашего использования и функций. Вам нужно оценить, вписывается ли векторный поиск в ваш бюджет.
Цены Aerospike не доступны публично, вам нужно связаться с ними для получения дополнительной информации. Учитывайте как стоимость программного обеспечения, так и инфраструктурные расходы на запуск Aerospike.
Когда использовать каждый из них
MongoDB Atlas Vector Search отлично подходит для приложений, которым нужна гибкая модель данных и интеграция векторного поиска с обычными запросами к документам. Он идеально подходит для проектов, связанных со сложными, полуструктурированными данными, и которым нужно выполнять гибридные поиски, объединяющие векторное сходство с полнотекстовым поиском. MongoDB отлично подходит, когда нужно хранить и запрашивать разные типы данных вместе с векторными эмбеддингами, например в системах рекомендаций контента, семантических поисковых системах или аналитических платформах на базе ИИ, использующих большие языковые модели. Он также отлично подходит для разработчиков, создающих ИИ-приложения, которым нужно работать как со структурированными, так и с неструктурированными данными и интегрироваться с популярными ИИ-сервисами и инструментами.
Aerospike Vector Search отлично подходит для высокопроизводительных приложений реального времени, которые в основном являются key-value, но нуждаются в векторном поиске. Он идеально подходит для сценариев, требующих чрезвычайно низкой задержки и высокой пропускной способности, таких как системы торгов в реальном времени, механизмы обнаружения мошенничества или персонализированные сети доставки контента. Подход Aerospike к построению индексов и предварительному прогреву кэша может дать значительные преимущества в производительности в сценариях, где скорость загрузки данных и скорость запросов имеют критическое значение. Хотя его модель данных может быть не такой гибкой, как у MongoDB, Aerospike — лучший выбор для приложений, которые ставят чистую производительность и масштабирование выше сложных требований к моделированию данных.
Итоги
MongoDB Atlas Vector Search — это полноценное решение, которое сочетает гибкость документной базы данных с возможностями векторного поиска и отлично подходит для сложных приложений на базе ИИ, которым нужно обрабатывать разнообразные данные. Его сильная сторона — интеграция векторного поиска с обычными запросами, гибридный поиск и богатая экосистема ИИ-инструментов. Aerospike Vector Search более специализирован и превосходен в высокопроизводительных сценариях реального времени, где ключевыми являются низкая задержка и высокая пропускная способность. Его подход к индексированию и фокус на производительности делают его хорошим выбором для конкретных сценариев, которым нужны скорость и масштабирование. В конечном счете выбор между MongoDB и Aerospike для векторного поиска должен определяться требованиями вашего приложения, сложностью данных, потребностями в производительности и требованиями к масштабируемости. При принятии решения учитывайте существующую инфраструктуру, природу данных, шаблоны запросов, уровень интеграции с ИИ-инструментами и сервисами.
Прочитайте это, чтобы получить обзор MongoDB и Aerospike, но для их оценки нужно ориентироваться на ваш конкретный сценарий использования. Один инструмент, который может в этом помочь, — VectorDBBench, open-source инструмент для бенчмаркинга и сравнения векторных баз данных. В конечном итоге тщательный бенчмаркинг на ваших собственных наборах данных и шаблонах запросов будет ключевым для принятия решения между этими двумя мощными, но разными подходами к векторному поиску в распределенных системах баз данных.
Использование open-source VectorDBBench для оценки и сравнения векторных баз данных самостоятельно
VectorDBBench — это open-source инструмент для бенчмаркинга для пользователей, которым нужны высокопроизводительные системы хранения и извлечения данных, особенно векторные базы данных. Этот инструмент позволяет пользователям тестировать и сравнивать разные системы векторных баз данных, такие как Milvus и Zilliz Cloud (управляемый Milvus), используя собственные наборы данных, и находить ту, которая подходит для их сценариев использования. С VectorDBBench пользователи могут принимать решения на основе фактической производительности векторных баз данных, а не маркетинговых заявлений или слухов.
VectorDBBench написан на Python и лицензирован под open-source лицензией MIT, что означает, что любой может свободно использовать, изменять и распространять его. Инструмент активно поддерживается сообществом разработчиков, стремящихся улучшать его функции и производительность.
Скачайте VectorDBBench из его репозитория GitHub, чтобы воспроизвести наши результаты бенчмарка или получить результаты производительности на ваших собственных наборах данных.
Быстро ознакомьтесь с производительностью популярных векторных баз данных в таблице лидеров VectorDBBench.
Прочитайте следующие блоги, чтобы узнать больше об оценке векторных баз данных.
Дополнительные ресурсы о VectorDB, GenAI и ML
Читать далее

Zilliz Cloud Enterprise Vector Search Powers High-Performance AI on AWS
Zilliz Cloud on AWS powers secure, scalable, ultra-fast vector search for enterprise AI apps, with BYOC, sub-10ms latency, and zero-DevOps simplicity.

Announcing VDBBench 1.0: Open-Source VectorDB Benchmarking with Your Real-World Production Workloads
Discover VDBBench 1.0, an open-source tool for benchmarking vector databases with real-world production data, streaming ingestion, and concurrent workloads.

Vector Databases vs. Document Databases
Use a vector database for similarity search and AI-powered applications; use a document database for flexible schema and JSON-like data storage.
The Definitive Guide to Choosing a Vector Database
Overwhelmed by all the options? Learn key features to look for & how to evaluate with your own data. Choose with confidence.


