Что нового в Milvus 2.1 - На пути к простоте и скорости
Что нового в Milvus 2.1 - в сторону простоты и скорости
Мы очень рады объявить овыходе версии Milvus 2.1 после шести месяцев напряженной работы всех участников сообщества Milvus. Эта крупная итерация популярной векторной базы данных подчеркивает производительность и удобство использования, два наиболее важных ключевых слова нашего фокуса. Мы добавили поддержку строк, очереди сообщений Kafka и встроенного Milvus, а также ряд улучшений в области производительности, масштабируемости, безопасности и наблюдаемости. Milvus 2.1 - это потрясающее обновление, которое позволит преодолеть "последнюю милю" от ноутбука инженера-алгоритмиста до сервисов поиска векторного сходства на производственном уровне.
Задержка на уровне 5 мс
Milvus уже поддерживает приближенный поиск ближайших соседей (ANN), что является существенным скачком по сравнению с традиционным методом KNN. Однако проблемы пропускной способности и задержки по-прежнему стоят перед пользователями, которым приходится иметь дело со сценариями поиска векторных данных миллиардного масштаба.
В Milvus 2.1 появился новый протокол маршрутизации, который больше не полагается на очереди сообщений в канале поиска, что значительно сокращает время поиска для небольших наборов данных. Результаты наших тестов показывают, что теперь Milvus снижает уровень задержки до 5 мс, что соответствует требованиям критически важных онлайн-соединений, таких как поиск по сходству и рекомендации.
Контроль параллелизма
В Milvus 2.1 усовершенствована модель управления параллелизмом за счет внедрения новой модели оценки затрат и планировщика параллелизма. Теперь он обеспечивает контроль параллелизма, что гарантирует отсутствие большого количества одновременных запросов, конкурирующих за ресурсы процессора и кэша, а также недоиспользование процессора из-за недостаточного количества запросов. Новый интеллектуальный уровень планировщика в Milvus 2.1 также объединяет запросы с малым количеством запросов, которые имеют согласованные параметры запроса, обеспечивая удивительный прирост производительности в 3,2 раза в сценариях с малым количеством запросов и высоким параллелизмом запросов.
Реплики в памяти
В Milvus 2.1 появились реплики in-memory, которые улучшают масштабируемость и доступность для небольших наборов данных. Подобно репликам только для чтения в традиционных базах данных, реплики in-memory могут масштабироваться горизонтально путем добавления машин, когда QPS чтения высок. При векторном поиске по небольшим наборам данных рекомендательной системе часто требуется обеспечить QPS, превышающий предел производительности одной машины. В таких сценариях пропускная способность системы может быть значительно повышена за счет загрузки нескольких реплик в память. В будущем мы также внедрим механизм хеджированного чтения на основе реплик in-memory, который будет быстро запрашивать другие функциональные копии в случае необходимости восстановления системы после сбоев и будет полностью использовать избыточность памяти для повышения общей доступности системы.
Реплики in-memory позволяют сервисам запросов основываться на отдельных копиях одних и тех же данных.
Ускоренная загрузка данных
Последний прирост производительности связан с загрузкой данных. Milvus 2.1 теперь сжимает двоичные журналы с помощью Zstandard (zstd), что значительно уменьшает размер данных в хранилищах объектов и сообщений, а также сетевые накладные расходы при загрузке данных. Кроме того, теперь внедрены пулы хороутинов, благодаря чему Milvus может загружать сегменты одновременно с контролируемым объемом памяти и минимизировать время, необходимое для восстановления после сбоев и загрузки данных.
Полные результаты бенчмарка Milvus 2.1 будут опубликованы на нашем сайте в ближайшее время. Следите за новостями.
Поддержка строковых и скалярных индексов
В версии 2.1 Milvus теперь поддерживает строку переменной длины (VARCHAR) в качестве скалярного типа данных. VARCHAR может использоваться в качестве первичного ключа, который возвращается при выводе, а также может выступать в качестве фильтра атрибутов. Фильтрация атрибутов - одна из самых популярных функций, необходимых пользователям Milvus. Если вы часто сталкиваетесь с необходимостью "найти наиболее похожие на пользователя товары в ценовом диапазоне " или "найти статьи, содержащие ключевое слово "векторная база данных" и относящиеся к облачно-нативной тематике", вам понравится Milvus 2.1.
Milvus 2.1 также поддерживает скалярный инвертированный индекс для повышения скорости фильтрации на основелаконичныхMARISA-Tries в качестве структуры данных. Теперь все данные могут быть загружены в память с очень малой занимаемой площадью, что позволяет значительно ускорить сравнение, фильтрацию и сопоставление префиксов в строках. Результаты наших тестов показывают, что для загрузки всех данных в память и обеспечения возможности запросов MARISA-trie требуется всего 10 % памяти по сравнению со словарями Python.
В Milvus 2.1 MARISA-Trie сочетается с инвертированным индексом, что значительно повышает скорость фильтрации.
В будущем Milvus продолжит фокусироваться на разработках, связанных со скалярными запросами, поддерживать больше типов скалярных индексов и операторов запросов, а также предоставлять возможности скалярных запросов с использованием диска - все это является частью постоянных усилий по снижению стоимости хранения и использования скалярных данных.
Поддержка Kafka
Наше сообщество давно просило поддержать Apache Kafka в качестве хранилища сообщений в Milvus. Теперь Milvus 2.1 предлагает вам возможность использоватьPulsar или Kafka в качестве хранилища сообщений в зависимости от пользовательских конфигураций, благодаря абстракции и инкапсуляции Milvus и Go Kafka SDK, предоставленному компанией Confluent.
Готовый к производству Java SDK
Вместе с Milvus 2.1 официально выпущен наш Java SDK. Java SDK обладает теми же возможностями, что и Python SDK, с еще более высокой производительностью параллелизма. На следующем этапе наши участники сообщества будут постепенно улучшать документацию и примеры использования Java SDK, а также помогут продвинуть Go и RESTful SDK до стадии готовности к производству.
Наблюдаемость и сопровождаемость
В Milvus 2.1 добавлены важныеметрики мониторинга, такие как количество вставленных векторов, задержка/пропускная способность поиска, затраты памяти узла и затраты процессора. Кроме того, в новой версии значительно оптимизировано ведение журналов за счет настройки уровней журналов и сокращения бесполезной печати журналов.
Встраиваемый Milvus
Milvus значительно упростил развертывание крупномасштабных сервисов поиска массивных векторных данных, но для ученых, которые хотят проверить алгоритмы в меньших масштабах, Docker или K8s все еще слишком неоправданно сложны. С появлением встроенного Milvus вы можете установить Milvus с помощью pip, как и Pyrocksb и Pysqlite. Встроенный Milvus поддерживает все функциональные возможности как кластерной, так и автономной версии, позволяя вам легко переключиться с ноутбука на распределенную производственную среду, не меняя ни строчки кода. Инженеры-алгоритмисты получат гораздо больше удовольствия при создании прототипа с помощью Milvus.
Более того, в Milvus 2.1 также есть несколько значительных улучшений в стабильности и масштабируемости, и мы с нетерпением ждем ваших отзывов и комментариев.
Что дальше
- Все изменения в Milvus 2.1 описаны в подробной информации о выпуске.
- УстановитеMilvus 2.1 и попробуйте новые возможности
- Присоединяйтесь к нашему Slack-сообществу и обсуждайте новые функции с тысячами пользователей Milvus по всему миру.
- Следите за нами в Twitter иLinkedIn, чтобы получать обновления после выхода наших блогов о конкретных новых функциях.
Отредактировано Songxian Jiang
- Задержка на уровне 5 мс
- Контроль параллелизма
- Реплики в памяти
- Ускоренная загрузка данных
- Поддержка строковых и скалярных индексов
- Поддержка Kafka
- Готовый к производству Java SDK
- Наблюдаемость и сопровождаемость
- Встраиваемый Milvus
- Что дальше
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