Milvus: Ключ к разработке RAG — повысьте эффективность, сократите затраты и улучшите производительность
Введение
В моем предыдущем блоге мы рассмотрели, как Retrieval Augmented Generation (RAG) решает проблемы, с которыми сталкиваются большие языковые модели (LLMs), такие как галлюцинации и потребность в предметно-специфической информации. Мы также подчеркнули ее роль в обеспечении конфиденциальности данных и возможности получения информации в реальном времени.
В основе базовой архитектуры RAG лежат два ключевых элемента: Retriever и Generator. Retriever, работающий на базе векторной базы данных, предоставляет контекстную информацию для пользовательских запросов, тогда как Generator, часто управляемый LLMs вроде ChatGPT, формирует итоговые ответы на основе этого контекста. Понимание этих технических аспектов поможет вам лучше разобраться в тонкостях RAG.
По мере того как разработчики расширяют границы применения RAG и переводят такие приложения в производственные среды, им требуются более быстрые, качественные и точные ответы. Это подчеркивает критическую важность надежных векторных баз данных для повышения эффективности и качества поиска.
Последний выпуск Milvus представляет собой заметный шаг вперед в технологии векторных баз данных, особенно в улучшении производительности RAG. В этой статье мы рассмотрим новейшие возможности Milvus, выделим его функциональность и покажем, почему он является лучшим выбором для разработки успешных RAG-приложений.
Упрощение разработки и валидации RAG за счет интеграции с популярными моделями эмбеддингов и реранжирования
Хотя базовой настройки RAG достаточно для прототипирования или небольших проектов, ее недостаточно для приложений, готовых к продакшену. По мере перехода разработчиков к более сложным RAG-приложениям они добавляют в конвейер дополнительные технические компоненты, что повышает сложность разработки. Кроме того, быстрое развитие и вариации параметров в технологиях, связанных с RAG, создают дополнительные препятствия для создания, тонкой настройки и валидации приложений. Чтобы решить эти проблемы, многие разработчики RAG обращаются к фреймворкам или библиотекам, таким как LangChain, LlamaIndex и DSPy, которые предлагают широкую функциональность для упрощенной разработки и валидации.
Milvus — это специализированная векторная база данных для эффективного хранения и извлечения данных. В своем последнем выпуске Milvus бесшовно интегрирует основные модели эмбеддингов и реранжирования, позволяя пользователям легко преобразовывать текст в доступные для поиска векторы и повторно ранжировать полученные результаты для более точных ответов без добавления дополнительных компонентов эмбеддингов и реранжирования в конвейер RAG. В результате эта интеграция упрощает общий процесс разработки и валидации RAG.
В настоящее время Milvus поддерживает ряд популярных эмбеддингов, включая OpenAI Embedding API, sentence transformers, BGE-M3, BM25, SPLADE и Voyage AI.
| Интегрированные модели эмбеддингов | Тип вектора | API или open-source |
| OpenAI Embedding API | Плотный | API |
| sentence transformers | Плотный | Open-source |
| BM25 | Разреженный | Open-source |
| SPLADE | Разреженный | Open-source |
| BGE-M3 | Гибридный | Open-source |
| Voyage AI | Плотный | API |
В настоящее время Milvus поддерживает следующие модели реранжирования: BGE, Cross-encoder, Voyage AI и Cohere.
| Интегрированные модели реранжирования | API или Open-sourced |
| BGE rerankers | Open-sourced |
| Cross encoders | Open-sourced |
| Voyage AI rerankers | API |
| Cohere rerankers | API |
Мы будем поддерживать больше моделей в ближайшие месяцы. Следите за обновлениями. Документация Milvus предоставляет подробные рекомендации по использованию этих предобученных моделей эмбеддингов.
Повышение качества извлечения и извлечение мультимодальных данных с помощью гибридного поиска
Реальные RAG-приложения используются в разнообразных сценариях, связанных с текстом и мультимодальными данными, такими как изображения, видео и аудио. Обработка насыщенной информации требует от векторной базы данных эффективного хранения и извлечения эмбеддингов для различных типов данных, чтобы обслуживать мультимодальные запросы.
Milvus справляется с этой задачей, предлагая поддержку нескольких векторов и фреймворк гибридного поиска. Пользователи могут объединять несколько векторных полей, до 10, в одной коллекции. Векторы в этих полях могут представлять различные аспекты или модальности данных, связанных с одной и той же сущностью, значительно обогащая информационный пул.
Рис.1: Как Milvus выполняет гибридный поиск
Эта возможность гибридного поиска и смешанные стратегии реранжирования обеспечивают повышенную гибкость при извлечении мультимодальной и многомерной информации. Это оказывается бесценным в сценариях, таких как определение наиболее похожего человека в векторной библиотеке на основе таких атрибутов, как изображения, голос и отпечатки пальцев.
Более того, Milvus расширяет свой гибридный поиск, поддерживая разреженные векторы, широко используемые для знаний вне домена и поиска по ключевым словам. Это расширение обеспечивает смешанное извлечение ключевых слов и векторных эмбеддингов, что приводит к более точным результатам извлечения и в конечном итоге повышает точность генерации итогового ответа в вашем RAG-приложении.
Повышение скорости и точности извлечения с помощью обновленного поиска с фильтрацией по скалярным данным
В практических приложениях не все данные подходят для векторного поиска. Возьмем, к примеру, чат-бота, ориентированного на товарные запасы одежды. Наряду с векторами данные содержат многочисленные атрибуты, такие как цвет и размер. Фильтрация таких скалярных данных до или после векторного поиска оказывается более эффективной и быстрой, чем преобразование их в векторы.
Milvus поддерживает поиск с фильтрацией по скалярным данным, повышая точность и скорость извлечения. Недавние обновления этой функции включают:
Функция группового поиска: Эта функция использует агрегацию скалярных столбцов для предоставления уточненных агрегированных данных высокого уровня. Она оптимизирует поиск, особенно в таких сценариях, как поиск определенного количества документов, связанных с запросом.
Нечеткое сопоставление для скалярных столбцов: Нечеткие запросы для скалярных столбцов теперь охватывают поиск по инфиксу и суффиксу, повышая качество поиска по сравнению с ранее поддерживаемым поиском по префиксу.
Инвертированный индекс для ускорения поиска: Введение инвертированного индекса может повысить производительность более чем в десять раз в сценариях обратного поиска.
Рис. 2: Инвертированный индекс повышает скорость поиска в 10 раз
Эти улучшения позволяют RAG-системам адаптировать свои подходы к конкретным бизнес-требованиям. Например, пользователи могут эффективно искать юридические документы по датам дел или фильтровать релевантные новостные сообщения по географическому местоположению. Такой многомерный подход к поиску повышает точность и эффективность вашего RAG-приложения при обработке целевых запросов.
Предложение экономически эффективных решений RAG
Создание и поддержка большой базы знаний для вашего RAG-приложения может быть финансово затратной, главным образом потому, что наборы данных продолжают расширяться. Поэтому необходимы экономически эффективные решения, облегчающие управление огромными объемами данных.
Milvus предлагает экономически эффективное решение как векторная база данных с открытым исходным кодом под лицензией Apache-2.0, без лицензионных затрат. Набор ее высокопроизводительных функций доступен сразу без каких-либо дополнительных затрат.
Кроме того, Milvus интегрирует Mmap, чтобы минимизировать потребление памяти, оптимизируя распределение ресурсов. Milvus идет еще дальше, внедряя возможности многоуровневого холодного и горячего хранения данных, адаптированные для данных с различной частотой доступа и требованиями к задержке. Milvus снижает затраты на хранение, стратегически размещая данные на различных носителях, таких как RAM, NVMe, EBS и S3, и используя возможности облачного хранения. Интеллектуальное кэширование и методы шардинга данных дополнительно способствуют эффективности использования ресурсов во время запросов, позволяя RAG-приложениям на базе Milvus работать с меньшими затратами без ущерба для производительности.
Рис. 3: Как работает подход многоуровневого холодного и горячего хранения данных
Такой подход минимизирует первоначальные инвестиции и обеспечивает постоянную операционную эффективность, делая Milvus идеальным выбором для RAG-внедрений, ориентированных на снижение затрат.
Резюме
От интеграции с популярными моделями эмбеддингов до возможностей мультимодального извлечения данных и усовершенствованного поиска с фильтрацией по скалярным данным — векторная база данных Milvus помогает разработчикам создавать более быстрые, более точные и более универсальные RAG-приложения, чем когда-либо.
Кроме того, Milvus предлагает экономически эффективное решение для создания и поддержки больших баз знаний благодаря своей открытой природе, высокопроизводительным функциям и оптимизированным стратегиям хранения. Минимизируя потребление памяти, внедряя многоуровневое хранение данных и используя интеллектуальное кэширование и методы шардинга данных, Milvus позволяет RAG-приложениям эффективно работать с меньшими затратами без ущерба для производительности.
В заключение, Milvus преобразует разработку RAG, предоставляя разработчикам инструменты для создания более быстрых, более точных и экономически эффективных приложений. С Milvus возможности для инноваций в RAG безграничны, а будущее поиска информации ярче, чем когда-либо.
Читать далее

Zilliz Cloud Audit Logs Goes GA: Security, Compliance, and Transparency at Scale
Zilliz Cloud Audit Logs are now GA, giving enterprises real-time visibility, compliance-ready trails, and stronger security across AWS, GCP, and Azure.

Our Journey to 35K+ GitHub Stars: The Real Story of Building Milvus from Scratch
Join us in celebrating Milvus, the vector database that hit 35.5K stars on GitHub. Discover our story and how we’re making AI solutions easier for developers.

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.



