Elasticsearch мертв, да здравствует лексический поиск
К настоящему времени все знают, что гибридный поиск улучшил качество поиска RAG (Retrieval-Augmented Generation). Хотя поиск с плотным вложением показал впечатляющие возможности в улавливании глубоких семантических связей между запросами и документами, у него все еще есть заметные недостатки. К ним относятся недостаточная объясняемость и неоптимальная производительность при работе с длинными хвостовыми запросами и редкими терминами.
Многие приложения RAG испытывают трудности из-за того, что предварительно обученным моделям часто не хватает знаний о конкретной области. В некоторых сценариях простое сопоставление ключевых слов BM25 превосходит эти сложные модели. Именно здесь гибридный поиск устраняет разрыв, сочетая семантическое понимание плотного векторного поиска с точностью подбора ключевых слов.
Почему гибридный поиск сложен в производстве
Хотя такие фреймворки, как LangChain или LlamaIndex, позволяют легко создать гибридный поисковый механизм, масштабирование до уровня производства с огромными массивами данных является сложной задачей. Традиционные архитектуры требуют отдельных векторных баз данных и поисковых систем, что приводит к ряду ключевых проблем:
Высокая стоимость обслуживания инфраструктуры и сложность эксплуатации
избыточность данных в нескольких системах
Сложное управление согласованностью данных
Сложная система безопасности и контроля доступа.
Рынку необходимо унифицированное решение, поддерживающее лексический и семантический поиск при одновременном снижении сложности и стоимости системы.
Болевые точки Elasticsearch
Elasticsearch стал одним из самых влиятельных поисковых проектов с открытым исходным кодом за последнее десятилетие. Построенный на базе Apache Lucene, он завоевал популярность благодаря высокой производительности, масштабируемости и распределенной архитектуре. Несмотря на то что в версии 8.0 был добавлен векторный поиск ANN, производственные развертывания сталкиваются с рядом серьезных проблем:
Высокие затраты на обновление и индексирование: Архитектура Elasticsearch не позволяет полностью разделить операции записи, построения индексов и выполнения запросов. Это приводит к значительным перегрузкам процессора и ввода-вывода при операциях записи, особенно при массовых обновлениях. Конкуренция ресурсов между индексированием и запросами влияет на производительность, создавая серьезное "узкое место" в сценариях с высокой частотой обновлений.
Низкая производительность в режиме реального времени: Будучи поисковой системой "почти реального времени", Elasticsearch вносит заметную задержку в видимость данных. Эта задержка становится особенно проблематичной для приложений ИИ, таких как агентские системы, где высокочастотное взаимодействие и динамичное принятие решений требуют немедленного доступа к данным.
Сложное управление шардами: Хотя Elasticsearch использует шардинг для распределенной архитектуры, управление шардами создает значительные проблемы. Отсутствие поддержки динамического шардинга создает дилемму: слишком большое количество шардов в небольших наборах данных приводит к низкой производительности, а слишком малое количество шардов в больших наборах данных ограничивает масштабируемость и приводит к неравномерному распределению данных.
Необлачная нативная архитектура: Разработанный до того, как облачные архитектуры получили широкое распространение, дизайн Elasticsearch жестко связывает хранение и вычисления, что ограничивает его интеграцию с современными инфраструктурами, такими как публичные облака и Kubernetes. Масштабирование ресурсов требует одновременного увеличения как хранилища, так и вычислений, что снижает гибкость. В сценариях с несколькими репликациями каждый шард должен создавать свой индекс самостоятельно, что увеличивает вычислительные затраты и снижает эффективность использования ресурсов.
Низкая производительность векторного поиска: Хотя в Elasticsearch 8.0 появился векторный поиск ANN, его производительность значительно отстает от специализированных векторных движков, таких как Milvus. Основанная на ядре Lucene, структура индексов оказывается неэффективной для высокоразмерных данных и не справляется с масштабными требованиями к векторному поиску. Производительность становится особенно нестабильной в сложных сценариях, включающих скалярную фильтрацию и многопользовательский доступ, что затрудняет поддержку высокой нагрузки или разнообразных бизнес-потребностей.
Чрезмерное потребление ресурсов: Elasticsearch предъявляет высокие требования к памяти и процессору, особенно при обработке больших объемов данных. Его зависимость от JVM требует частой корректировки размера кучи и настройки сборки мусора, что сильно сказывается на эффективности использования памяти. Операции векторного поиска требуют интенсивных SIMD-оптимизированных вычислений, для которых среда JVM далеко не идеальна.
Эти фундаментальные ограничения становятся все более проблематичными по мере масштабирования инфраструктуры ИИ, что делает Elasticsearch особенно сложным для современных приложений ИИ, требующих высокой производительности и надежности.
Представление Sparse-BM25: переосмысление лексического поиска
ВMilvus 2.5 появилась встроенная поддержка лексического поиска с помощью Sparse-BM25, основанная на гибридных возможностях поиска, представленных в версии 2.4. Этот инновационный подход включает в себя следующие ключевые компоненты:
Расширенная токенизация и предварительная обработка с помощью Tantivy
Распределенный словарный запас и управление частотой терминов
Генерация разреженных векторов с использованием TF корпуса и TF-IDF запроса
Поддержка инвертированных индексов с помощью алгоритма WAND (Block-Max WAND и поддержка графовых индексов в разработке).
По сравнению с Elasticsearch, Milvus предлагает значительные преимущества в гибкости алгоритмов. Вычисление сходства на основе векторного расстояния позволяет проводить более сложное сопоставление, включая реализацию TW-BERT (Term Weighting BERT), основанного на исследовании "End-to-End Query Term Weighting". Этот подход продемонстрировал превосходную производительность при тестировании как в домене, так и за его пределами.
Еще одним важным преимуществом является экономичность. Благодаря использованию инвертированного индекса и сжатия плотных вкраплений Milvus достигает пятикратного повышения производительности при снижении запоминания менее чем на 1 %. Благодаря обрезке хвостовых частей и квантованию векторов, использование памяти сократилось более чем на 50 %.
Особого внимания заслуживает оптимизация длинных запросов. Там, где традиционные алгоритмы WAND не справляются с длинными запросами, Milvus превосходит их за счет сочетания разреженных вкраплений с графовыми индексами, обеспечивая десятикратное улучшение производительности в сценариях поиска по высокоразмерным разреженным векторам.
Milvus: лучшая векторная база данных для RAG
Milvus - это лучший выбор для приложений RAG благодаря широкому набору функций. Ключевые преимущества включают:
Богатая поддержка метаданных с возможностями динамической схемы и мощными опциями фильтрации
Многопользовательская поддержка корпоративного уровня с гибкой изоляцией с помощью коллекций, разделов и ключей разделов
Первая в отрасли поддержка дисковых векторных индексов с многоуровневым хранением от памяти до S3.
Масштабируемость на основе облачных технологий, поддерживающая плавное масштабирование с 10 М до 1 В+ векторов
Широкие возможности поиска, включая группировку, диапазон и гибридный поиск
Глубокая интеграция экосистемы с LangChain, LlamaIndex, Dify и другими инструментами ИИ.
Разнообразные поисковые возможности системы включают группировку, диапазон и гибридные методы поиска. Глубокая интеграция с такими инструментами, как LangChain, LlamaIndex и Dify, а также поддержка множества продуктов для ИИ ставят Milvus в центр современной экосистемы инфраструктуры ИИ.
Перспективы
По мере того как ИИ переходит от POC к производству, Milvus продолжает развиваться. Мы стремимся сделать векторный поиск более доступным и экономически эффективным, повышая при этом качество поиска. Независимо от того, являетесь ли вы стартапом или предприятием, Milvus снижает технические барьеры для разработки приложений ИИ.
Благодаря этому стремлению к доступности и инновациям мы сделали еще один важный шаг вперед. Хотя наше решение с открытым исходным кодом продолжает служить основой для тысяч приложений по всему миру, мы понимаем, что многим организациям необходимо полностью управляемое решение, которое избавит их от операционных накладных расходов.
Zilliz Cloud: Управляемое решение
За последние три года мы создали Zilliz Cloud, полностью управляемый сервис векторных баз данных на основе Milvus. Благодаря "облачной" реализации протокола Milvus он обеспечивает повышенное удобство использования, экономическую эффективность и безопасность.
Опираясь на наш опыт обслуживания крупнейших в мире кластеров векторного поиска и поддержки тысяч разработчиков приложений искусственного интеллекта, Zilliz Cloud значительно снижает операционные накладные расходы и затраты по сравнению с самостоятельными решениями.
Готовы познакомиться с будущим векторного поиска? Начните бесплатную пробную версию уже сегодня, получив до 200 долларов в кредит, без необходимости использования кредитной карты.
- Почему гибридный поиск сложен в производстве
- Болевые точки Elasticsearch
- Представление Sparse-BM25: переосмысление лексического поиска
- Milvus: лучшая векторная база данных для RAG
- Перспективы
- Zilliz Cloud: Управляемое решение
On This Page
Try Managed Milvus for Free
Zilliz Cloud is hassle-free, powered by Milvus and 10x faster.
Get StartedLike the article? Spread the word