Что нового в 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 в этом документе
Читать далее

Introducing Loon: A New Storage Engine for Vector Data That Never Stops Changing
Loon is a new storage engine for Milvus 3.0 and Zilliz Vector Lakebase, built to manage evolving vector datasets with ColumnGroups, row ID alignment, and Manifests.

Expanding Our Global Reach: Zilliz Cloud Launches in Azure Central India
Zilliz Cloud expands to Azure Central India. This new region helps customers meet compliance, reduce latency, and optimize cloud costs when building AI applications.

OpenAI o1: What Developers Need to Know
In this article, we will talk about the o1 series from a developer's perspective, exploring how these models can be implemented for sophisticated use cases.



