🚀 Попробуйте Zilliz Cloud, полностью управляемый Milvus, бесплатно — ощутите 10-кратное увеличение производительности! Попробовать сейчас>

milvus-logo
LFAI
  • Home
  • Blog
  • Оглашение Топ-10 ключевых слов, доминирующих в сообществе Milvus в 2023 году

Оглашение Топ-10 ключевых слов, доминирующих в сообществе Milvus в 2023 году

  • Engineering
January 21, 2024
Jack Li, Fendy Feng

Завершая 2023 год, давайте проанализируем удивительный путь сообщества Milvus: 25 000 звезд GitHub, запуск Milvus 2.3.0 и более 10 миллионов загрузок образов Docker. В этом посте мы исследуем сердце сообщества, анализируя истории чатов и выявляя 10 ключевых слов в обсуждениях.

#1 Version - Возникновение AIGC способствует быстрой итерации Milvus

Удивительно, но слово "Version" стало самым обсуждаемым ключевым словом в 2023 году. Это открытие связано с волной ИИ этого года, когда векторные базы данных стали критически важной инфраструктурой для решения проблем, связанных с галлюцинациями в приложениях AIGC.

Энтузиазм вокруг векторных баз данных подтолкнул Milvus к стадии быстрой итерации. Только в 2023 году сообщество выпустило двадцать версий, удовлетворяя запросы разработчиков AIGC, заваливших сообщество запросами о выборе оптимальной версии Milvus для различных приложений. Пользователям, ориентирующимся в этих обновлениях, мы рекомендуем использовать последнюю версию для расширения возможностей и повышения производительности.

Если вы интересуетесь планированием выпуска Milvus, обратитесь к странице Milvus Roadmap на официальном сайте.

"Поиск" занимает второе место, что отражает его фундаментальную роль в работе с базами данных. Milvus поддерживает различные возможности поиска, от Top-K ANN-поиска до поиска со скалярной фильтрацией и поиска по диапазону. Ближайший выпуск Milvus 3.0 (Beta) обещает поиск по ключевым словам (разреженные вкрапления), чего с нетерпением ожидают многие разработчики приложений RAG.

Обсуждения поиска в сообществе сосредоточены на производительности, возможностях и принципах. Пользователи часто задают вопросы о фильтрации атрибутов, настройке пороговых значений индексов и решении проблем с задержкой. Такие ресурсы, как документация по запросам и поиску, предложения по усовершенствованию Milvus (MEPs) и обсуждения в Discord, стали основными источниками информации для разгадки тонкостей поиска в Milvus.

#3 Память - компромисс между производительностью и точностью для минимизации затрат памяти

"Память" также заняла центральное место в обсуждениях сообщества за последний год. Векторы, как особый тип данных, по своей природе имеют высокую размерность. Хранение векторов в памяти - обычная практика для оптимальной производительности, но растущий объем данных ограничивает доступную память. Milvus оптимизирует использование памяти, применяя такие техники, как MMap и DiskANN.

Однако достижение низкого использования памяти, отличной производительности и высокой точности одновременно в системе баз данных остается сложной задачей, требующей компромисса между производительностью и точностью для минимизации затрат памяти.

В случае с контентом, генерируемым искусственным интеллектом (AIGC), разработчики обычно отдают предпочтение быстрым ответам и точности результатов перед жесткими требованиями к производительности. Добавление MMap и DiskANN в Milvus минимизирует использование памяти, но при этом максимизирует обработку данных и точность результатов, обеспечивая баланс, который соответствует практическим потребностям приложений AIGC.

#4 Insert - плавный ввод данных

Эффективная вставка данных - важнейшая задача для разработчиков, что вызывает частые дискуссии об оптимизации скорости вставки в сообществе Milvus. Milvus превосходит всех в эффективной вставке потоковых данных и построении индексов благодаря умелому разделению потоковых и пакетных данных. Эта возможность выделяет ее как высокопроизводительное решение по сравнению с другими поставщиками векторных баз данных, такими как Pinecone.

Вот некоторые ценные сведения и рекомендации по вставке данных:

  • Пакетная вставка: Для повышения эффективности выбирайте пакетную, а не однорядную вставку. Примечательно, что вставка из файлов превосходит пакетную вставку по скорости. При работе с большими наборами данных, превышающими десять миллионов записей, используйте интерфейс bulk_insert для упрощения и ускорения процесса импорта.

  • Стратегическое использование flush(): Вместо того чтобы вызывать интерфейс flush() после каждого пакета, сделайте один вызов после завершения вставки всех данных. Чрезмерное использование интерфейса flush() между партиями может привести к созданию фрагментированных сегментных файлов, что создаст значительную нагрузку на систему при уплотнении данных.

  • Дедупликация первичных ключей: Milvus не выполняет дедупликацию первичных ключей при использовании интерфейса insert для вставки данных. Если вам необходимо дедуплицировать первичные ключи, мы рекомендуем использовать интерфейс upsert. Однако производительность вставки upsertниже, чем у insert, из-за дополнительной внутренней операции запроса.

#5 Конфигурация - расшифровка лабиринта параметров

Milvus - это распределенная векторная база данных, в которую интегрировано множество сторонних компонентов, таких как хранилище объектов, очереди сообщений и Etcd. Пользователи пытались настроить параметры и понять их влияние на производительность Milvus, поэтому тема "Конфигурация" стала одной из самых обсуждаемых.

Среди всех вопросов о конфигурациях вопрос "какие параметры настраивать" является, пожалуй, самым сложным, поскольку в разных ситуациях параметры меняются. Например, оптимизация параметров производительности поиска отличается от оптимизации параметров производительности вставки и в значительной степени зависит от практического опыта.

Как только пользователи определят, "какие параметры нужно настроить", последующие вопросы о том, "как настроить", станут более понятными. Конкретные процедуры описаны в нашей документации по настройке Milvus. Отличная новость: начиная с версии 2.3.0 Milvus поддерживает динамическую настройку параметров, что избавляет от необходимости перезапускать систему, чтобы изменения вступили в силу. Конкретные процедуры см. в разделе "Настройка Milvus на лету".

#6 Журналы - навигация по компасу поиска и устранения неисправностей

"Журналы" служат компасом для поиска неисправностей. Пользователи обращались в сообщество за советами по экспорту журналов Milvus, настройке уровней журналов и интеграции с такими системами, как Grafana's Loki. Вот несколько предложений по поводу журналов Milvus.

  • Как просматривать и экспортировать журналы Milvus: Вы можете легко экспортировать журналы Milvus с помощью скрипта export-milvus-log.sh, который доступен в репозитории GitHub одним щелчком мыши.

  • Уровень журнала: Milvus имеет несколько уровней журналов для различных случаев использования. Уровня info достаточно для большинства случаев, а уровень debug предназначен для отладки. Избыток журналов Milvus может свидетельствовать о неправильно настроенных уровнях журналов.

  • Мы рекомендуем интегрировать журналы Milvus с системой сбора журналов, например Loki, для упрощения поиска журналов при устранении неполадок в будущем.

Кластер #7 - масштабирование для производственных сред

Учитывая, что Milvus является распределенной векторной базой данных, термин "кластер" является частой темой для обсуждения в сообществе. Разговоры ведутся вокруг масштабирования данных в кластере, миграции данных, резервного копирования и синхронизации данных.

В производственных средах надежная масштабируемость и высокая доступность являются стандартными требованиями к системам распределенных баз данных. Архитектура Milvus с разделением хранения и вычислений обеспечивает плавное масштабирование данных за счет увеличения ресурсов вычислительных узлов и узлов хранения, что позволяет безгранично масштабировать данные. Milvus также обеспечивает высокую доступность благодаря архитектуре с несколькими репликами и надежным возможностям резервного копирования и синхронизации. Для получения дополнительной информации обратитесь к разделу Coordinator HA.

#8 Документация - путь к пониманию Milvus

"Документация" - еще одно часто поднимаемое ключевое слово в обсуждениях сообщества, часто связанное с вопросами о том, существует ли страница документации по конкретной функции и где ее найти.

Около 80 % запросов сообщества находят ответы в официальной документации, служащей воротами к пониманию Milvus. Мы рекомендуем вам прочитать нашу документацию, прежде чем использовать Milvus или столкнуться с какими-либо проблемами. Кроме того, вы можете изучить примеры кода в различных репозиториях SDK, чтобы получить представление об использовании Milvus.

#9 Развертывание - упрощение пути к Milvus

Простота развертывания остается постоянной целью команды Milvus. Чтобы выполнить это обязательство, мы представили Milvus Lite, легкую альтернативу Milvus, которая полностью функциональна, но не имеет зависимостей от K8s или Docker.

Мы еще больше упростили развертывание, внедрив более легкое решение NATS для обмена сообщениями и консолидировав компоненты узла. В ответ на отзывы пользователей мы готовимся к выпуску автономной версии без зависимостей, а также постоянно работаем над расширением возможностей и упрощением операций развертывания. Быстрая итерация Milvus демонстрирует постоянную приверженность сообщества к постоянному совершенствованию процесса развертывания.

#10 Удаление - разгадка последствий

Распространенные дискуссии об удалении касаются неизменности количества данных после удаления, возможности извлечения удаленных данных и невозможности восстановления дискового пространства после удаления.

В Milvus 2.3 появилось выражение count(*) для решения проблемы задержки обновления количества сущностей. Сохранение удаленных данных в запросах, вероятно, связано с неправильным использованием моделей согласованности данных. Проблемы с восстановлением дискового пространства натолкнули на мысль переработать механизм сборки мусора в Milvus, который устанавливает период ожидания перед полным удалением данных. Такой подход позволяет получить временное окно для возможного восстановления.

Заключение

Десять ключевых слов дают представление об оживленных дискуссиях в сообществе Milvus. Поскольку Milvus продолжает развиваться, сообщество остается бесценным ресурсом для разработчиков, которые ищут решения, делятся опытом и вносят свой вклад в развитие векторных баз данных в эпоху искусственного интеллекта.

Присоединяйтесь к этому захватывающему путешествию, присоединившись к нашему каналу Discord в 2024 году. Там вы сможете пообщаться с нашими блестящими инженерами и объединиться с единомышленниками - энтузиастами Milvus. Кроме того, каждый вторник с 12:00 до 12:30 вечера по тихоокеанскому времени вы сможете посетить обед и обучение сообщества Milvus. Делитесь своими мыслями, вопросами и отзывами, ведь каждый вклад способствует укреплению духа сотрудничества, двигающего Milvus вперед. Ваше активное участие не просто приветствуется, оно ценится. Давайте внедрять инновации вместе!

Like the article? Spread the word

Продолжить чтение