MongoDB против Rockset: выбор правильной базы данных для приложений GenAI
По мере развития приложений на основе ИИ важность возможностей векторного поиска для поддержки этих достижений невозможно переоценить. В этой статье блога мы обсудим две заметные базы данных с возможностями векторного поиска: MongoDB и Rockset. Каждая из них предоставляет надежные возможности для обработки векторного поиска — важной функции для таких приложений, как рекомендательные системы, поиск изображений и семантический поиск. Наша цель — предоставить разработчикам и инженерам понятное сравнение, помогающее принять решение о том, какая база данных лучше всего соответствует их конкретным требованиям.
Что такое векторная база данных?
Прежде чем сравнить MongoDB и Rockset, давайте сначала рассмотрим концепцию векторных баз данных.
Векторная база данных специально предназначена для хранения и запроса многомерных векторов, которые являются числовыми представлениями неструктурированных данных. Эти векторы кодируют сложную информацию, такую как семантическое значение текста, визуальные признаки изображений или атрибуты товаров. Обеспечивая эффективный поиск по сходству, векторные базы данных играют ключевую роль в приложениях ИИ, позволяя выполнять более продвинутый анализ и извлечение данных.
Распространенные варианты использования векторных баз данных включают рекомендации товаров в электронной коммерции, платформы для обнаружения контента, обнаружение аномалий в кибербезопасности, анализ медицинских изображений и задачи обработки естественного языка (NLP). Они также играют критически важную роль в генерации с дополненным поиском (RAG) — методе, который повышает производительность больших языковых моделей (LLMs), предоставляя внешние знания для уменьшения таких проблем, как галлюцинации ИИ.
На рынке доступно множество типов векторных баз данных, включая:
- Специализированные векторные базы данных, такие как Milvus, Zilliz Cloud (полностью управляемый Milvus)
- Библиотеки векторного поиска, такие как Faiss и Annoy.
- Легковесные векторные базы данных, такие как Chroma и Milvus Lite.
- Традиционные базы данных с дополнениями для векторного поиска, способные выполнять векторный поиск в малом масштабе.
MongoDB — это база данных NoSQL, а Rockset — база данных для поиска и аналитики; обе предлагают векторный поиск в качестве дополнения. В этой статье сравниваются их возможности векторного поиска.
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 вместе с векторным поиском.
Rockset: обзор и основная технология
Rockset — это база данных для поиска и аналитики в реальном времени для структурированных и неструктурированных данных, включая векторные эмбеддинги. Ее сильная сторона — прием, индексирование и запросы данных в реальном времени, поэтому она отлично подходит для приложений, которым нужны инсайты с точностью до текущей секунды. Rockset поддерживает как потоковый, так и пакетный прием данных, может обрабатывать высокоскоростные потоки событий и каналы change data capture (CDC) за 1–2 секунды.
Одна из ключевых функций Rockset — Converged Indexing, построенная на изменяемой RocksDB. Это позволяет выполнять обновления векторов и метаданных на месте, что делает ее очень эффективной для сценариев, где данные часто меняются. Rockset может обрабатывать документы размером до 40MB и поддерживает размерность векторов до 200 000, поэтому подходит для широкого спектра сценариев использования векторных эмбеддингов.
Векторный поиск встроен в ядро Rockset. Она поддерживает методы поиска K-Nearest Neighbors (KNN) и Approximate Nearest Neighbors (ANN) и использует распределенный индекс FAISS для масштабируемости. Rockset не привязана к конкретному алгоритму, поэтому вы можете выбрать собственную реализацию поиска. Оптимизатор на основе стоимости может динамически выбирать между методами поиска KNN и ANN для оптимальной производительности.
Уникальность Rockset для векторного поиска заключается в Converged Index, который объединяет поисковые, ANN, колоночные и строковые индексы в один. Это означает, что вы можете из коробки обрабатывать широкий спектр шаблонов запросов. Rockset также поддерживает фильтрацию по метаданным и гибридный поиск. Оптимизатор выберет наиболее эффективный путь выполнения запроса. Возможен поиск по нескольким ANN-полям, поддерживаются мультимодальные модели, а для интерфейса запросов доступны как SQL, так и REST API.
Ключевые различия
При выборе между MongoDB Atlas Vector Search и Rockset для векторного поиска вам нужно знать различия, чтобы принять обоснованное решение. Давайте сравним эти два решения по нескольким ключевым областям:
Методология поиска
MongoDB Atlas Vector Search использует алгоритм Hierarchical Navigable Small World (HNSW) для индексирования и поиска векторных данных. Он поддерживает как поиск Approximate Nearest Neighbor (ANN), так и Exact Nearest Neighbors (ENN).
Rockset имеет методы поиска K-Nearest Neighbors (KNN) и Approximate Nearest Neighbors (ANN). У нее есть распределенный индекс FAISS для масштабируемости, и она не привязана к конкретному алгоритму, поэтому вы можете выбрать собственную реализацию поиска.
Данные
MongoDB Atlas Vector Search интегрируется с гибкой документной моделью MongoDB, поэтому вы можете хранить векторные эмбеддинги вместе с другими данными документа. Это означает более контекстный и точный поиск с поддержкой до 4096 измерений.
Rockset может обрабатывать структурированные и неструктурированные данные, включая векторные эмбеддинги. Он может обрабатывать документы размером до 40 МБ и векторы размерностью до 200 000, поэтому подходит для многих сценариев использования.
Масштабируемость и производительность
MongoDB Atlas имеет выделенные Search Nodes для рабочих нагрузок Search и Vector Search, поэтому вы можете масштабировать поиск независимо и оптимизировать производительность в масштабе.
Rockset имеет Converged Index, который объединяет поисковый, ANN, колоночный и строковый индексы в один, поэтому может обрабатывать множество шаблонов запросов. Он разработан для приема, индексирования и запроса данных в реальном времени.
Гибкость и настройка
MongoDB Atlas Vector Search позволяет сочетать поиск по векторному сходству с фильтрацией документов и поддерживает гибридный поиск, объединяя векторный поиск с полнотекстовым поиском.
Rockset дает вам гибкость в выборе собственной реализации поиска и поддерживает фильтрацию по метаданным и гибридный поиск. Его оптимизатор на основе стоимости может выбирать между методами поиска KNN и ANN за вас.
Интеграция и экосистема
MongoDB Atlas Vector Search интегрируется с популярными AI-сервисами и инструментами, поддерживает embedding-модели от OpenAI и VoyageAI и работает с open-source фреймворками, такими как LangChain и LlamaIndex.
Rockset имеет как SQL, так и REST API для запросов, но в информации не указаны интеграции с экосистемой.
Простота использования
MongoDB Atlas Vector Search строится поверх существующей экосистемы MongoDB, поэтому многие разработчики будут с ним знакомы. Это полноценное решение внутри платформы MongoDB, поэтому оно может упростить процесс разработки.
Поддержка SQL в Rockset делает его более привычным для пользователей SQL-баз данных.
Стоимость
MongoDB имеет развитую экосистему, много документации, и разработчики с ним знакомы. Если вы уже используете MongoDB, добавление векторного поиска может быть очевидным решением.
Ценообразование Rockset основано на вычислительных ресурсах и хранилище. Хотя оно более гибкое, может потребоваться больше управления ресурсами для оптимизации затрат.
Когда использовать каждый из них
MongoDB Atlas Vector Search — хороший выбор, если вы уже используете MongoDB для хранения данных и хотите добавить векторный поиск без внедрения новой системы. Он отлично подходит для приложений, которым нужна бесшовная интеграция векторного поиска с запросами к документам, например для систем рекомендаций контента или семантического поиска на платформах электронной коммерции. Вы можете хранить векторные эмбеддинги вместе с другими данными документа, поэтому он идеально подходит для сценариев, где важен контекст, и поддерживает гибридный поиск для более детализированных результатов.
Rockset отлично подходит для сценариев использования, которым требуются аналитика и поиск в реальном времени по быстро меняющимся данным. Его Converged Indexing идеально подходит для приложений, которым нужно принимать, индексировать и запрашивать высокоскоростные потоки данных с низкой задержкой. Rockset поддерживает векторы очень высокой размерности (до 200 000 измерений), поэтому он хорошо подходит для продвинутых приложений машинного обучения или сложных сценариев поиска по сходству. Если ваш сценарий использования предполагает частые обновления векторных данных или требует инсайтов в реальном времени из потоковых источников данных, то Rockset может быть лучшим выбором.
Итоги
MongoDB Atlas Vector Search использует преимущества документной модели MongoDB и масштабируемости, чтобы предложить единую платформу как для традиционного, так и для векторного поиска. Она интегрирована с популярными AI-сервисами и поддерживает гибридный поиск, поэтому это отличный выбор для разработчиков, уже работающих в экосистеме MongoDB. Rockset отлично подходит для аналитики в реальном времени и высокоразмерного векторного поиска благодаря своему уникальному подходу к индексированию, позволяющему быстро выполнять запросы по быстро меняющимся данным. Выбор между этими двумя решениями в конечном итоге зависит от вашего сценария использования. Учитывайте существующую инфраструктуру, характер ваших данных (статические или быстро меняющиеся), размерность ваших векторных эмбеддингов и важность аналитики в реальном времени в вашем приложении. Оба решения предлагают мощный векторный поиск, но их сильные стороны соответствуют разным сценариям использования и потребностям обработки данных.
Прочитайте это, чтобы получить обзор MongoDB и Rockset, но для их оценки необходимо исходить из вашего сценария использования. Один из инструментов, который может в этом помочь, — VectorDBBench, инструмент сравнительного тестирования с открытым исходным кодом для сравнения векторных баз данных. В конечном итоге тщательное бенчмаркинг-тестирование на ваших собственных наборах данных и шаблонах запросов будет ключевым фактором при принятии решения между этими двумя мощными, но разными подходами к векторному поиску в распределенных системах баз данных.
Использование open-source VectorDBBench для самостоятельной оценки и сравнения векторных баз данных
VectorDBBench — это инструмент сравнительного тестирования с открытым исходным кодом для пользователей, которым нужны высокопроизводительные системы хранения и извлечения данных, особенно векторные базы данных. Этот инструмент позволяет пользователям тестировать и сравнивать различные системы векторных баз данных, такие как Milvus и Zilliz Cloud (управляемый Milvus), используя собственные наборы данных, и находить то решение, которое соответствует их сценариям использования. С VectorDBBench пользователи могут принимать решения на основе фактической производительности векторных баз данных, а не маркетинговых заявлений или слухов.
VectorDBBench написан на Python и распространяется по open-source лицензии MIT, что означает, что любой может свободно использовать, изменять и распространять его. Инструмент активно поддерживается сообществом разработчиков, стремящихся улучшать его функции и производительность.
Загрузите VectorDBBench из его репозитория GitHub, чтобы воспроизвести наши результаты бенчмарка или получить результаты производительности на собственных наборах данных.
Быстро ознакомьтесь с производительностью популярных векторных баз данных в рейтинге VectorDBBench.
Прочитайте следующие блоги, чтобы узнать больше об оценке векторных баз данных.
Дополнительные ресурсы о VectorDB, GenAI и ML
Читать далее

1 Table = 1000 Words? Foundation Models for Tabular Data
TableGPT2 automates tabular data insights, overcoming schema variability, while Milvus accelerates vector search for efficient, scalable decision-making.

Milvus WebUI: A Visual Management Tool for Your Vector Database
Explore Milvus WebUI to monitor, manage, and optimize your vector database with real-time insights, performance tracking, and system health monitoring.

Vector Databases vs. Graph Databases
Use a vector database for AI-powered similarity search; use a graph database for complex relationship-based queries and network analysis.
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.


