MongoDB против Vald: выбор правильной базы данных для приложений GenAI
По мере развития приложений на базе ИИ важность возможностей векторного поиска для поддержки этих достижений невозможно переоценить. В этой публикации блога будут рассмотрены две известные базы данных с возможностями векторного поиска: MongoDB и Vald. Каждая из них предоставляет надежные возможности для обработки векторного поиска — важной функции для таких приложений, как рекомендательные системы, поиск изображений и семантический поиск. Наша цель — предоставить разработчикам и инженерам понятное сравнение, помогающее решить, какая база данных лучше всего соответствует их конкретным требованиям.
Что такое векторная база данных?
Прежде чем сравнивать MongoDB и Vald, давайте сначала рассмотрим концепцию векторных баз данных.
Векторная база данных специально предназначена для хранения и выполнения запросов к высокоразмерным векторам, которые являются числовыми представлениями неструктурированных данных. Эти векторы кодируют сложную информацию, такую как семантическое значение текста, визуальные признаки изображений или атрибуты продуктов. Обеспечивая эффективный поиск сходства, векторные базы данных играют ключевую роль в приложениях ИИ, позволяя выполнять более продвинутый анализ и извлечение данных.
Распространенные сценарии использования векторных баз данных включают рекомендации товаров в электронной коммерции, платформы обнаружения контента, обнаружение аномалий в кибербезопасности, анализ медицинских изображений и задачи обработки естественного языка (NLP). Они также играют важную роль в Retrieval Augmented Generation (RAG) — методе, который повышает производительность больших языковых моделей (LLMs), предоставляя внешние знания для снижения таких проблем, как галлюцинации ИИ.
На рынке доступно множество типов векторных баз данных, включая:
- Специализированные векторные базы данных, такие как Milvus, Zilliz Cloud (полностью управляемый Milvus)
- Библиотеки векторного поиска, такие как Faiss и Annoy.
- Легковесные векторные базы данных, такие как Chroma и Milvus Lite.
- Традиционные базы данных с надстройками векторного поиска, способные выполнять векторный поиск в небольшом масштабе.
MongoDB — это база данных NoSQL с векторным поиском в виде надстройки. Vald — это специализированная векторная база данных. В этой публикации сравниваются их возможности векторного поиска.
MongoDB: основы
MongoDB Atlas Vector Search — это функция, которая позволяет выполнять поиск векторного сходства по данным, хранящимся в MongoDB Atlas. Вы можете индексировать и запрашивать высокоразмерные векторные embeddings вместе с данными ваших документов и выполнять задачи ИИ и машинного обучения прямо в базе данных.
В своей основе 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, для создания приложений, использующих Large Language Models (LLMs).
Чтобы обеспечить масштабируемость и производительность, MongoDB Atlas предоставляет Search Nodes, которые обеспечивают выделенную инфраструктуру для нагрузок Atlas Search и Vector Search. Это позволяет иметь оптимизированные вычислительные ресурсы и независимое масштабирование поисковых потребностей, чтобы вы получали лучшую производительность в масштабе.
Благодаря наличию этих возможностей в экосистеме MongoDB, Atlas Vector Search является полноценным решением для разработчиков, создающих приложения на базе AI, рекомендательные системы или продвинутые функции поиска. Нет необходимости в отдельной векторной базе данных: вы можете использовать масштабируемость MongoDB и богатый набор возможностей вместе с векторным поиском.
Vald: Основы
Vald — это мощный инструмент для очень быстрого поиска по огромным объемам векторных данных. Он создан для обработки миллиардов векторов и может легко расти по мере увеличения ваших потребностей. Крутая особенность Vald в том, что он использует сверхбыстрый алгоритм под названием NGT для нахождения похожих векторов.
Одна из лучших возможностей Vald — то, как он работает с индексированием. Обычно, когда вы строите индекс, все должно остановиться. Но Vald устроен умно — он распределяет индекс по разным машинам, так что поиск может продолжаться даже во время обновления индекса. Кроме того, Vald автоматически создает резервные копии данных вашего индекса, поэтому вам не нужно беспокоиться о потере всего в случае сбоя.
Vald отлично вписывается в разные конфигурации. Вы можете настраивать, как данные поступают и выводятся, обеспечивая хорошую работу с gRPC. Он также создан для бесперебойной работы в облаке, поэтому вы можете легко добавлять больше вычислительной мощности или памяти, когда это необходимо. Vald распределяет ваши данные по нескольким машинам, что помогает ему обрабатывать огромные объемы информации.
Еще один полезный прием Vald — репликация индексов. Он хранит копии каждого индекса на разных машинах. Это означает, что если у одной машины возникнет проблема, ваши поисковые запросы все равно смогут работать нормально. Vald автоматически балансирует эти копии, поэтому вам не нужно об этом беспокоиться. Все это делает Vald надежным выбором для разработчиков, которым нужно быстро и надежно искать по огромным объемам векторных данных.
Ключевые различия
При выборе между MongoDB Atlas Vector Search и Vald для ваших задач векторного поиска необходимо понимать различия. Оба предлагают мощную работу с векторными данными, но имеют разные подходы и сильные стороны. Давайте сравним их по нескольким ключевым областям, чтобы помочь вам принять решение.
Методология поиска
MongoDB Atlas Vector Search использует алгоритм Hierarchical Navigable Small World (HNSW) для индексирования и поиска векторных данных. Он создает многоуровневый граф векторного пространства для поисков Approximate Nearest Neighbor (ANN). Он также поддерживает поиски Exact Nearest Neighbors (ENN) для небольших наборов данных.
Vald использует алгоритм NGT для быстрого поиска по векторному сходству. Он предназначен для обработки миллиардов векторов.
Обработка данных
MongoDB интегрирует векторный поиск со своей гибкой документной моделью. Вы можете хранить векторные эмбеддинги вместе с другими данными документа и выполнять более контекстный и точный поиск. Вы можете сочетать поиск по векторному сходству с фильтрацией документов и даже выполнять гибридный поиск, объединяющий векторный и полнотекстовый поиск.
Vald ориентирован на векторные данные и разработан для обработки их огромных объемов. Хотя он может не обладать такой же гибкостью для невекторных данных, как MongoDB, его чистый векторный поиск непревзойден.
Масштабируемость и производительность
MongoDB Atlas имеет выделенные Search Nodes для нагрузок Vector Search, поэтому вы можете масштабировать поисковые ресурсы независимо от ваших данных и потребностей поиска.
Vald изначально разработан как масштабируемый. Он распределяет индексирование по нескольким машинам, поэтому вы можете выполнять поиск во время обновления индекса. Распределенная архитектура Vald может обрабатывать миллиарды векторов и масштабироваться горизонтально по мере необходимости.
Гибкость и настройка
Документная модель MongoDB очень гибка в моделировании данных и запросах. Вы можете хранить и запрашивать векторы размерностью до 4096 и сочетать векторный поиск с другими типами запросов.
Vald имеет возможности настройки ввода и вывода данных и хорошую поддержку gRPC. Хотя он может не обладать такой же гибкостью моделирования данных, как MongoDB, его чистый векторный поиск непревзойден.
Интеграция и экосистема
MongoDB Atlas Vector Search интегрируется с более широкой экосистемой MongoDB. Он хорошо работает с популярными AI-сервисами и инструментами, включая модели эмбеддингов от OpenAI и фреймворки вроде LangChain и LlamaIndex.
Vald разработан для работы в облаке и может интегрироваться с другими системами через свои обработчики данных. Но его экосистема может быть не такой большой, как у MongoDB.
Простота использования
MongoDB имеет обширную документацию и большое сообщество, поэтому его легче изучать и использовать. Если вы уже знаете MongoDB, добавление векторного поиска может быть очевидным решением.
Vald мощный, но может иметь более крутую кривую обучения, особенно если вы новичок в векторных базах данных. Но он сосредоточен на векторном поиске, поэтому может быть проще для вашего варианта использования.
Стоимость
MongoDB Atlas — это управляемый сервис, поэтому он упрощает эксплуатацию, но может стоить дороже. Цены варьируются в зависимости от вашего использования и требований.
Vald имеет открытый исходный код, поэтому он дешевле, но вам нужно будет учитывать стоимость самостоятельного запуска и обслуживания инфраструктуры.
Безопасность
MongoDB Atlas имеет надежные функции безопасности, включая шифрование, аутентификацию и детализированный контроль доступа, которые распространяются и на векторный поиск.
Безопасность Vald зависит от вашей реализации и инфраструктуры, которой вы его окружаете.
Когда использовать каждый из них
Используйте MongoDB Atlas Vector Search, когда вам нужно решение, которое сочетает векторный поиск с документными базами данных. Он отлично подходит для приложений, требующих контекстного поиска, где нужно учитывать как векторное сходство, так и другие атрибуты документа. MongoDB хорош, когда у вас смешанные типы данных, нужно выполнять гибридный поиск или вы хотите использовать всю экосистему MongoDB. Используйте MongoDB, когда вы создаете приложения на базе AI, рекомендательные системы или расширенные функции поиска, которые должны работать с вашими существующими данными MongoDB.
Vald — это выбор, когда ваше основное требование — высокопроизводительный векторный поиск в масштабе. Он отлично подходит для приложений, которые имеют миллиарды векторов и нуждаются в быстром, эффективном поиске сходства. Vald хорош, когда вам нужно непрерывное индексирование без прерывания поисковых операций или когда вам нужна система, способная горизонтально масштабироваться на несколько машин. Используйте Vald, когда вы создаете крупномасштабные поисковые системы для изображений или видео, системы рекомендаций контента или любое приложение, где производительность чистого векторного поиска является главным приоритетом.
Заключение
MongoDB Atlas Vector Search — это полноценное решение, которое сочетает векторный поиск с гибкой документной базой данных, богатой экосистемой и возможностями гибридного поиска. Vald — это высокопроизводительный векторный поиск для огромных масштабов и непрерывной индексации. Выбор между ними должен основываться на вашем сценарии использования, типе данных, с которыми вы работаете, и ваших требованиях к производительности. Если вам нужна база данных, которая может работать как с векторными, так и с невекторными данными и обладает сильной поддержкой экосистемы, MongoDB может быть подходящим вариантом. Если вы сосредоточены на высокоскоростном векторном поиске в масштабе и готовы управлять собственной инфраструктурой, Vald может быть лучшим выбором. При принятии решения учитывайте ваш существующий технологический стек, экспертизу команды и будущие потребности в масштабируемости.
Прочитайте это, чтобы получить обзор MongoDB и Vald, но для их оценки необходимо исходить из вашего сценария использования. Один из инструментов, который может в этом помочь, — VectorDBBench, open-source инструмент бенчмаркинга для сравнения векторных баз данных. В конечном итоге тщательное бенчмаркинг-тестирование на ваших собственных наборах данных и паттернах запросов будет ключевым фактором для принятия решения между этими двумя мощными, но разными подходами к векторному поиску в распределенных системах баз данных.
Использование Open-source VectorDBBench для самостоятельной оценки и сравнения векторных баз данных
VectorDBBench — это open-source инструмент бенчмаркинга для пользователей, которым нужны высокопроизводительные системы хранения и извлечения данных, особенно векторные базы данных. Этот инструмент позволяет пользователям тестировать и сравнивать различные системы векторных баз данных, такие как Milvus и Zilliz Cloud (управляемый Milvus), используя собственные наборы данных, и находить решение, подходящее для их сценариев использования. С VectorDBBench пользователи могут принимать решения на основе фактической производительности векторных баз данных, а не маркетинговых заявлений или слухов.
VectorDBBench написан на Python и распространяется по open-source лицензии MIT, что означает, что любой может свободно использовать, изменять и распространять его. Инструмент активно поддерживается сообществом разработчиков, стремящихся улучшать его функции и производительность.
Скачайте VectorDBBench из его GitHub repository, чтобы воспроизвести наши результаты бенчмаркинга или получить результаты производительности на собственных наборах данных.
Быстро ознакомьтесь с производительностью популярных векторных баз данных в VectorDBBench Leaderboard.
Прочитайте следующие блоги, чтобы узнать больше об оценке векторных баз данных.
Дополнительные ресурсы о VectorDB, GenAI и ML
Читать далее

Zilliz Cloud Update: Tiered Storage, Business Critical Plan, Cross-Region Backup, and Pricing Changes
This release offers a rebuilt tiered storage with lower costs, a new Business Critical plan for enhanced security, and pricing updates, among other features.

Creating Collections in Zilliz Cloud Just Got Way Easier
We've enhanced the entire collection creation experience to bring advanced capabilities directly into the interface, making it faster and easier to build production-ready schemas without switching tools.

Why Deepseek is Waking up AI Giants Like OpenAI And Why You Should Care
Discover how DeepSeek R1's open-source AI model with superior reasoning capabilities and lower costs is disrupting the AI landscape and challenging tech giants like OpenAI.
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.


