OpenSearch против Vald: выбор подходящей базы данных для GenAI-приложений
По мере развития приложений на основе ИИ важность возможностей векторного поиска для поддержки этих достижений невозможно переоценить. В этой статье блога мы обсудим две известные базы данных с возможностями векторного поиска: OpenSearch и Vald. Каждая из них предоставляет надежные возможности для работы с векторным поиском — важнейшей функцией для таких приложений, как рекомендательные системы, поиск изображений и семантический поиск. Наша цель — предоставить разработчикам и инженерам понятное сравнение, помогающее решить, какая база данных лучше всего соответствует их конкретным требованиям.
Что такое векторная база данных?
Прежде чем сравнивать OpenSearch и Vald, давайте сначала рассмотрим концепцию векторных баз данных.
Векторная база данных специально разработана для хранения и выполнения запросов к многомерным векторам, которые являются числовыми представлениями неструктурированных данных. Эти векторы кодируют сложную информацию, такую как семантическое значение текста, визуальные характеристики изображений или атрибуты продуктов. Обеспечивая эффективный поиск по сходству, векторные базы данных играют ключевую роль в приложениях ИИ, позволяя выполнять более продвинутый анализ и поиск данных.
Распространенные сценарии использования векторных баз данных включают рекомендации товаров в электронной коммерции, платформы обнаружения контента, обнаружение аномалий в кибербезопасности, анализ медицинских изображений и задачи обработки естественного языка (NLP). Они также играют важнейшую роль в Retrieval Augmented Generation (RAG) — методике, которая повышает производительность больших языковых моделей (LLMs), предоставляя внешние знания для снижения таких проблем, как галлюцинации ИИ.
На рынке доступно множество типов векторных баз данных, включая:
- Специализированные векторные базы данных, такие как Milvus, Zilliz Cloud (полностью управляемый Milvus)
- Библиотеки векторного поиска, такие как Faiss и Annoy.
- Легковесные векторные базы данных, такие как Chroma и Milvus Lite.
- Традиционные базы данных с надстройками для векторного поиска, способные выполнять векторный поиск малого масштаба.
OpenSearch — это поисково-аналитический пакет с открытым исходным кодом и векторным поиском в качестве надстройки; Vald — это движок поиска по плотным векторам.
Что такое OpenSearch? Обзор
OpenSearch — это надежный поисково-аналитический пакет с открытым исходным кодом, который управляет широким спектром типов данных: от структурированных и полуструктурированных до неструктурированных данных. Запущенный в 2021 году как управляемый сообществом форк Elasticsearch и Kibana, этот пакет OpenSearch включает хранилище данных и поисковый движок OpenSearch, OpenSearch Dashboards для расширенной визуализации данных и Data Prepper для эффективного сбора данных на стороне сервера.
Созданный на прочной основе Apache Lucene, OpenSearch обеспечивает высокомасштабируемый и эффективный полнотекстовый поиск (поиск по ключевым словам), что делает его идеальным для обработки больших наборов данных. В своих последних релизах OpenSearch значительно расширил свои поисковые возможности, добавив векторный поиск с помощью дополнительных плагинов, что необходимо для создания приложений на базе ИИ. Теперь OpenSearch поддерживает ряд методов поиска на базе машинного обучения, включая традиционный лексический поиск, k-ближайших соседей (k-NN), семантический поиск, мультимодальный поиск, нейронный разреженный поиск и гибридные модели поиска. Эти улучшения интегрируют нейронные модели непосредственно в поисковый фреймворк, позволяя генерировать эмбеддинги на лету и выполнять поиск в момент поступления данных. Такая интеграция не только оптимизирует процессы, но и заметно повышает релевантность и эффективность поиска.
Недавние обновления еще больше расширили функциональность OpenSearch, представив такие возможности, как дисково-оптимизированный векторный поиск, бинарное квантование и кодирование байтовых векторов в поиске k-NN. Эти дополнения, наряду с улучшениями в обработке задач машинного обучения и производительности поисковых запросов, подтверждают статус OpenSearch как передового инструмента для разработчиков и предприятий, стремящихся в полной мере использовать свои данные. Поддерживаемый динамичным и ориентированным на сотрудничество сообществом, OpenSearch продолжает развиваться, предлагая комплексную, масштабируемую и адаптируемую платформу поиска и аналитики, которая выделяется как один из лучших вариантов для разработчиков, которым нужны продвинутые поисковые возможности в их приложениях.
Что такое Vald? Обзор
Vald — это мощный инструмент для очень быстрого поиска по огромным объемам векторных данных. Он создан для обработки миллиардов векторов и может легко масштабироваться по мере роста ваших потребностей. Самое интересное в Vald то, что он использует сверхбыстрый алгоритм NGT для поиска похожих векторов.
Одна из лучших возможностей Vald — то, как он работает с индексированием. Обычно при построении индекса все приходится останавливать. Но Vald устроен умно — он распределяет индекс по разным машинам, поэтому поиск может продолжаться даже во время обновления индекса. Кроме того, Vald автоматически создает резервные копии данных вашего индекса, так что вам не нужно беспокоиться о потере всего, если что-то пойдет не так.
Vald отлично встраивается в разные конфигурации. Вы можете настраивать, как данные поступают и выходят, что позволяет ему хорошо работать с gRPC. Он также создан для бесперебойной работы в облаке, поэтому вы можете легко добавлять вычислительную мощность или память, когда это потребуется. Vald распределяет ваши данные по нескольким машинам, что помогает ему обрабатывать огромные объемы информации.
Еще один полезный прием Vald — репликация индекса. Он хранит копии каждого индекса на разных машинах. Это означает, что если на одной машине возникнет проблема, ваш поиск все равно будет работать нормально. Vald автоматически балансирует эти копии, так что вам не нужно об этом беспокоиться. Все это делает Vald надежным выбором для разработчиков, которым нужно быстро и стабильно выполнять поиск по огромным объемам векторных данных.
Сравнение OpenSearch и Vald: ключевые различия для GenAI
Методология поиска
OpenSearch продолжает развивать свои надежные поисковые возможности, построенные на Apache Lucene. Теперь он включает расширенные функции векторного поиска наряду с традиционным текстовым поиском, включая методы на базе машинного обучения, такие как k-NN, семантический и мультимодальный поиск. Эти улучшения предназначены для повышения релевантности и эффективности поиска за счет интеграции нейронных моделей непосредственно в поисковый фреймворк, позволяя генерировать эмбеддинги на лету.
Vald использует высокопроизводительный алгоритм NGT (Neighborhood Graph and Tree for Indexing High-dimensional Data) для эффективного поиска по сходству, что делает его исключительно быстрым при работе с векторными данными. Благодаря своей распределенной природе Vald поддерживает непрерывную индексацию даже во время выполнения поисковых запросов, что предотвращает простои при обновлении индекса и повышает общую эффективность поиска.
Работа с данными
OpenSearch универсален в управлении широким спектром типов данных — от структурированных и полуструктурированных до неструктурированных. Его последние обновления включают оптимизированный для дисков векторный поиск, бинарную квантизацию и кодирование байтовых векторов, что значительно повышает его способность эффективно обрабатывать большие наборы данных и делает его идеальным для сложных приложений на базе ИИ.
Vald оптимизирован для обработки огромных объемов многомерных векторных данных с акцентом на масштабируемость и производительность в реальном времени. Он поддерживает автоматическую репликацию и балансировку индексов между несколькими машинами, обеспечивая высокую доступность и надежность при работе с миллиардами векторов.
Масштабируемость и производительность
OpenSearch обладает высокой масштабируемостью и легко поддерживает крупномасштабные развертывания. Его архитектура позволяет эффективно распределять данные и обработку между несколькими узлами, сохраняя производительность даже при высокой нагрузке.
Vald предлагает исключительные возможности масштабирования, предназначенные для бесшовного расширения по мере роста вычислительных потребностей. Его облачно-нативная архитектура и поддержка репликации индексов между несколькими узлами гарантируют, что он сможет обрабатывать обширные векторные наборы данных с минимальной задержкой.
Гибкость и настройка
OpenSearch предоставляет широкие возможности настройки через плагины и динамичный подход к разработке функций, основанный на сообществе. Это позволяет пользователям адаптировать систему под свои конкретные требования, улучшая как функциональность, так и пользовательский опыт.
Vald предлагает настраиваемые механизмы приема и вывода данных, поддерживая различные конфигурации и интеграции, особенно с gRPC для эффективной передачи данных. Его гибкая архитектура подходит для разнообразных операционных конфигураций, особенно в облачных средах.
Интеграция и экосистема
OpenSearch обладает комплексной экосистемой интеграций, включающей продвинутые инструменты визуализации данных и возможности серверного сбора данных. Поддержка сообщества и регулярные обновления делают его надежной платформой для разработчиков.
Vald создан для хорошей интеграции в современные облачные инфраструктуры, предлагая функции, дополняющие его распределенную природу. Он особенно хорошо подходит для интеграции в системы, которым требуется высокопроизводительная и масштабируемая обработка векторных данных.
Простота использования
OpenSearch имеет умеренную кривую обучения из-за своей обширной функциональности, но поддерживается активным сообществом и подробной документацией, что помогает во внедрении и устранении неполадок.
Vald разработан как эффективное и надежное решение для управления векторным поиском, хотя для оптимального использования требуется некоторое знакомство с его специфической архитектурой и базовыми технологиями, такими как Kubernetes и NGT.
Соображения стоимости
OpenSearch, как решение с открытым исходным кодом, может быть экономически эффективным, хотя более крупные развертывания могут повлечь значительные расходы, связанные с масштабированием и управлением в облачных средах.
Vald благодаря своей конструкции снижает затраты на инфраструктуру и обслуживание за счет эффективного управления ресурсами и автоматизации многих аспектов обработки данных и управления индексами, потенциально обеспечивая экономию при крупномасштабных развертываниях.
Функции безопасности
OpenSearch включает надежные меры безопасности, такие как шифрование, управление доступом на основе ролей и ведение журнала аудита, обеспечивая целостность данных и соответствие отраслевым стандартам.
Vald, вероятно, включает базовые практики безопасности, типичные для облачно-нативных приложений, хотя конкретные детали, такие как шифрование и контроль доступа, не были подробно описаны.
Когда выбирать OpenSearch и Vald для GenAI
Выбор между OpenSearch и Vald зависит от конкретных потребностей вашего приложения, особенно с точки зрения типов данных, которыми вы управляете, и необходимых вам поисковых функций. Вот простой ориентир, когда выбирать каждый из них, исходя из их сильных сторон:
Выбирайте OpenSearch для GenAI, когда:
- Нужны расширенные возможности текстового поиска: Вашему приложению требуются сложные функции полнотекстового поиска, включая семантический, ключевой и мультимодальный поиск. OpenSearch идеально подходит для сценариев, где критически важны сложные текстовые запросы и анализ.
- Аналитика и визуализация в реальном времени: Вам нужна система, которая не только выполняет поиск, но и предоставляет мощные инструменты для аналитики в реальном времени и визуализации данных. OpenSearch Dashboards особенно полезны для мониторинга, анализа и визуального представления поисковых данных и метрик.
- Разнообразные типы данных: Ваше приложение работает с комбинацией структурированных, полуструктурированных и неструктурированных данных. Гибкость OpenSearch в работе с различными форматами данных делает его подходящим для приложений, которым требуются широкие возможности приема данных.
- Масштабируемая, полнофункциональная платформа: Вы ищете надежную, масштабируемую платформу поиска и аналитики с сильным сообществом и постоянной поддержкой разработки. OpenSearch предлагает широкую поддержку плагинов и настройку, что делает его адаптируемым к меняющимся требованиям.
Выбирайте Vald для GenAI, когда:
- Высокопроизводительный векторный поиск: Вашему приложению специально требуется управление большими объемами многомерных векторных данных и поиск по ним, например изображений или сложных паттернов, где поиск по сходству важнее, чем поиск по ключевым словам или полнотекстовый поиск.
- Масштабируемость для больших векторных наборов данных: Вам нужна система, которая может эффективно масштабироваться по мере роста вашего набора данных. Vald предназначен для обработки миллиардов векторов и обеспечивает автоматическую масштабируемость, что делает его подходящим для приложений, ожидающих быстрого роста объема данных.
- Эффективное управление ресурсами: Ваша инфраструктура требует решения, которое минимизирует использование ресурсов, сохраняя при этом высокую пропускную способность и низкую задержку в операциях векторного поиска. Cloud-native-дизайн Vald и эффективные механизмы индексирования обеспечивают экономически эффективную масштабируемость.
- Индексирование и обновления в реальном времени: Вашему приложению требуется, чтобы поисковый индекс обновлялся в реальном времени без простоев. Vald поддерживает непрерывное индексирование даже при обработке поисковых запросов, что критически важно для динамических наборов данных, куда часто добавляются новые данные.
Использование open-source VectorDBBench для самостоятельной оценки и сравнения векторных баз данных
VectorDBBench — это open-source инструмент для бенчмаркинга, разработанный для пользователей, которым требуются высокопроизводительные системы хранения и извлечения данных, особенно векторные базы данных. Этот инструмент позволяет пользователям тестировать и сравнивать производительность различных систем векторных баз данных, таких как Milvus и Zilliz Cloud (управляемый Milvus), используя собственные наборы данных, и определять наиболее подходящую для их сценариев использования. Используя VectorDBBench, пользователи могут принимать обоснованные решения на основе фактической производительности векторной базы данных, а не полагаться на маркетинговые заявления или отдельные свидетельства.
VectorDBBench написан на Python и лицензирован по open-source лицензии MIT, что означает, что любой может свободно использовать, изменять и распространять его. Инструмент активно поддерживается сообществом разработчиков, стремящихся улучшать его возможности и производительность.
Загрузите VectorDBBench из его GitHub repository, чтобы воспроизвести наши результаты бенчмарка или получить результаты производительности на собственных наборах данных.
Быстро ознакомьтесь с производительностью популярных векторных баз данных в рейтинге VectorDBBench.
Прочитайте следующие блоги, чтобы узнать больше об оценке векторных баз данных.
Дополнительные ресурсы о VectorDB, GenAI и ML
Читать далее

Will Amazon S3 Vectors Kill Vector Databases—or Save Them?
AWS S3 Vectors aims for 90% cost savings for vector storage. But will it kill vectordbs like Milvus? A deep dive into costs, limits, and the future of tiered storage.

Demystifying the Milvus Sizing Tool
Explore how to use the Sizing Tool to select the optimal configuration for your Milvus deployment.

Legal Document Analysis: Harnessing Zilliz Cloud's Semantic Search and RAG for Legal Insights
Enhance legal document analysis with Zilliz Cloud’s Semantic Search and RAG. Improve accuracy, efficiency, and scalability for contracts, case law, and compliance.
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.


