Что нового в Milvus 2.3 Beta — в 10 раз быстрее с GPU
Мы рады объявить о бета-релизе Milvus 2.3 от имени сообщества Milvus. Этот бета-релиз содержит новые функции и улучшения, которые, как мы уверены, повысят производительность ваших приложений на базе ИИ. Мы ценим вашу помощь в тестировании некоторых из этих возможностей, чтобы быстрее довести нас до общего релиза! В этой записи блога будут освещены некоторые из наиболее заметных функций. Полный список изменений см. в примечаниях к релизу.
- 📦 PyPI: https://pypi.org/project/milvus/
- 📚 Документация: https://milvus.io/docs
- 🛠️ Примечания к релизу: https://github.com/milvus-io/milvus/releases
- 🐳 Docker Image: docker pull milvusdb/milvus
- 🚀 Релиз: https://github.com/milvus-io/milvus/releases/tag/v2.3.0-beta
Одной из функций Milvus 2.3 Beta является поддержка ускорения на GPU и интеграции на основе RAFT, что позволяет Milvus в полной мере использовать мощность современных графических процессоров. Milvus с ускорением на GPU обеспечивает в 10 раз более высокую производительность, чем версия только для CPU. Это может значительно повысить скорость и отзывчивость ваших приложений на базе ИИ и машинного обучения, обеспечивая более быструю и точную обработку данных.
Еще одна важная функция Milvus 2.3 Beta — поддержка поиска по диапазону, позволяющая пользователям искать данные в заданном диапазоне. Это может быть особенно полезно для приложений, которым требуются сложные запросы к данным, поскольку обеспечивает более точный и корректный поиск. Кроме того, Milvus 2.3 Beta также поддерживает mmap и инкрементальные резервные копии, что может дополнительно повысить производительность и эффективность ваших ИИ-приложений. Обеспечивая более эффективное управление данными и их хранение, эти функции помогают гарантировать, что ваши ИИ-системы постоянно работают на максимальном уровне.
В целом улучшения в этом релизе важны для любого разработчика, создающего приложения с возможностями поиска по сходству.
Поддержка Nvidia GPU Эта новая функция добавляет возможность поддержки гетерогенных вычислений, что может значительно ускорить специализированные рабочие нагрузки. Новое дополнение позволяет пользователям рассчитывать на более быстрый и эффективный поиск векторных данных, в конечном итоге повышая продуктивность и производительность. Мы сравнили RAFT-IVF-Flat (GPU) с IVF-Flat (CPU) и HNSW (CPU) на четырех наборах данных при 95% recall. Индекс GPU достиг в среднем в 32 и 8 раз более высокой пропускной способности, чем IVF-Flat и HNSW. Результаты оценки показаны в Таблице 1. (Эти бенчмарки выполнялись для Knowhere на хосте с 8-ядерным CPU, 32 GB RAM и Nvidia A100 GPU)
Таблица 1. QPS IVF-Flat, HNSW, RAFT-IVF-Flat на четырех наборах данных при 95% recall
| SIFT | GIST | GLOVE | DEEP | |
|---|---|---|---|---|
| IVF-Flat (CPU) | 3097 | 142 | 791 | 723 |
| HNSW (CPU) | 14,537 | 791 | 1,516 | 5,761 |
| RAFT-IVF-Flat (GPU) | 121,568 | 5,737 | 20,163 | 16,557 |
Особая благодарность @wphicks и @cjnolet из Nvidia за их ценный вклад в код RAFT.
Поиск по диапазону Поиск по диапазону — это метод поиска, отличающийся от запроса k-NN. Запросы k-NN возвращают фиксированное число ближайших соседей. Для поиска по диапазону при заданном запросе q и пороге расстояния R он возвращает все сущности в пределах расстояния R от q. Поиск по диапазону обычно используется для нахождения всех релевантных результатов в заданном диапазоне. Например, он может помочь (но не ограничивается этим) с дедупликацией данных или обнаружением нарушения авторских прав без пропуска похожих кандидатов.
Upsert Upsert — это операция, которая обновляет значение сущности, если она уже существует в коллекции, или вставляет новую, если она не существует. Milvus предлагает высокую гибкость при добавлении данных в ваши коллекции. На данный момент всего есть три варианта:
- Bulk insert для высокой пропускной способности в офлайн-сценариях.
- Insert для низкой задержки в сценариях онлайн-стриминга.
- Upsert для случаев, когда вы не уверены, нужно ли обновлять или вставлять новые сущности.
Change Data Capture (CDC) Change Data Capture (CDC) — это процесс выявления и захвата изменений данных в векторной базе данных в реальном времени и доставки этих изменений в нижестоящие системы. Теперь Milvus предлагает резервное копирование и синхронизацию без простоя на основе этого механизма. Разработчики также могут использовать CDC для захвата и предоставления непрерывного потока изменений для своих нижестоящих рабочих нагрузок, таких как аналитика данных или настраиваемый аудит.
Memory-mapped (mmap) file I/O В сценариях с недостаточным объемом памяти при больших наборах данных и некритичной производительностью запросов Milvus использует mmap, чтобы позволить системе обращаться с частями файла так, как если бы они находились в памяти, сокращая использование памяти и повышая производительность, если все данные находятся в страничном кэше системы.
Резюме
В дополнение ко всем перечисленным выше функциям, Milvus 2.3 Beta включает несколько исправлений ошибок и улучшений. Чтобы узнать больше:
- См. примечания к выпуску для версии 2.3 Beta, где приведен полный список изменений
- Скачайте Milvus и начните работу
- Ознакомьтесь с бенчмарками Milvus в этом документе
Читать далее

Notion's Vector Search Is Excellent. Their Next Problem Is Harder.
Notion solved vector search scaling in two years. The next bottleneck — offline context engineering, unified data, and the real-time/offline gap — is harder.

How to Build RAG with Milvus, QwQ-32B and Ollama
Hands-on tutorial on how to create a streamlined, powerful RAG pipeline that balances efficiency, accuracy, and scalability using the QwQ-32B and Milvus.

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.



