Неструктурированные данные играют важнейшую роль в работе самых современных приложений искусственного интеллекта. От генеративного ИИ и поиска по сходству до рекомендательных систем и виртуального поиска лекарств.

  • Индексирование в реальном времени: Векторные базы данных часто нуждаются в постоянном и быстром поступлении и индексировании новых векторных данных. Возможности индексирования в реальном времени необходимы для того, чтобы поддерживать базу данных в актуальном состоянии, не создавая узких мест и отставаний.
  • Высокая пропускная способность: Многие приложения, использующие векторные базы данных, такие как рекомендательные системы, семантические поисковые системы и системы обнаружения аномалий, требуют обработки запросов в реальном или близком к реальному времени. Высокая пропускная способность позволяет векторным базам данных одновременно обрабатывать большой объем входящих запросов, предоставляя конечным пользователям или сервисам ответы с малой задержкой.

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

Использование ускорения GPU

Для решения этих проблем NVIDIA разработала CUDA-Accelerated Graph Index for Vector Retrieval (CAGRA) - ускоренную на GPU структуру, которая использует высокопроизводительные возможности GPU для обеспечения исключительной производительности при работе с векторными базами данных.

На NVIDIA GTC 2024 компании Zilliz и NVIDIA представили Milvus 2.4. Milvus - это система векторных баз данных с открытым исходным кодом, созданная для крупномасштабного поиска векторных сходств и нагрузок ИИ. Изначально созданная компанией Zilliz, новатором в области управления неструктурированными данными и технологий векторных баз данных, Milvus дебютировала в 2019 году. Для поощрения широкого вовлечения и принятия сообществом, с 2020 года он размещается в Linux Foundation.

Изучение архитектуры Milvus 2.4

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

The Milvus 2.4 architecture

Модульная архитектура включает в себя такие компоненты, как координатор, уровень доступа, очередь сообщений, рабочий узел и уровень хранения. Рабочий узел далее подразделяется на узлы данных, узлы запросов и индексные узлы. Индексные узлы отвечают за создание индексов, а узлы запросов выполняют запросы.

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

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

Оценка производительности

Для этой оценки мы использовали три общедоступных типа экземпляров на AWS:

  • m6id.2xlarge: Этот тип экземпляра работает на базе процессора Intel Xeon 8375C.
  • g4dn.2xlarge: Этот экземпляр с GPU-ускорением оснащен графическим процессором NVIDIA T4.
  • g5.2xlarge: Этот тип экземпляра оснащен графическим процессором NVIDIA A10G.

Используя эти различные типы экземпляров, мы стремились оценить производительность и эффективность Milvus с интеграцией CAGRA на различных аппаратных конфигурациях. Экземпляр m6id.2xlarge служил базовым показателем производительности на базе CPU, а экземпляры g4dn.2xlarge и g5.2xlarge позволили нам оценить преимущества GPU-ускорения с помощью графических процессоров NVIDIA T4 и A10G, соответственно.

Оценочные среды, AWS

Мы использовали два общедоступных набора векторных данных из VectorDBBench:

  • OpenAI-500K-1536-dim: Этот набор данных состоит из 500 000 векторов, каждый из которых имеет размерность 1 536. Он получен из языковой модели OpenAI.
  • Cohere-1M-768-dim: Этот набор данных содержит 1 миллион векторов, каждый из которых имеет размерность 768. Он сгенерирован на основе языковой модели Cohere.

Время построения индекса

Мы сравнили время построения индекса между Milvus с GPU-ускорителем CAGRA и стандартной реализацией Milvus с использованием индекса HNSW на центральных процессорах.

Milvus CAGRA vs HNSW

Для набора данных Cohere-1M-768-dim время построения индекса составляет:

  • ПРОЦЕССОР (HNSW): 454 секунды
  • T4 GPU (CAGRA): 66 секунд
  • A10G GPU (CAGRA): 42 секунды

Для набора данных OpenAI-500K-1536-dim время построения индекса составляет:

  • ПРОЦЕССОР (HNSW): 359 секунд
  • T4 GPU (CAGRA): 45 секунд
  • Графический процессор A10G (CAGRA): 22 секунды

Результаты наглядно показывают, что CAGRA, фреймворк с GPU-ускорением, значительно превосходит построение индексов HNSW на базе CPU, причем GPU A10G оказался самым быстрым в обоих наборах данных. GPU-ускорение, обеспечиваемое CAGRA, сокращает время построения индексов на порядок по сравнению с CPU-реализацией, демонстрируя преимущества использования параллелизма GPU для векторных операций, требующих больших вычислений, таких как построение индексов.

Пропускная способность

Мы также сравнили производительность Milvus с GPU-ускорителем CAGRA и стандартной реализации Milvus с использованием индекса HNSW на центральных процессорах. Метрика, которую мы оценивали, - запросы в секунду (QPS), которая измеряет пропускную способность выполнения запросов.

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

Оценка пропускной способности

Графики показывают, что:

  • При размере партии 1 T4 быстрее процессора в 6,4-6,7 раза, а A10G - в 8,3-9 раз.
  • При увеличении размера партии до 10 улучшение производительности становится более значительным: T4 быстрее в 16,8-18,7 раза, а A100 - в 25,8-29,9 раза.
  • При размере партии 100 прирост производительности продолжает расти: T4 быстрее в 21,9 раза - 23,3 раза, а A100 быстрее в 48,9 раза - 49,2 раза.

Результаты демонстрируют значительный прирост производительности за счет использования GPU-ускорения для запросов к векторным базам данных, особенно при больших объемах пакетов и высокоразмерных данных. Milvus с CAGRA раскрывает возможности параллельной обработки данных на GPU, обеспечивая значительное повышение производительности и делая его хорошо подходящим для требовательных рабочих нагрузок векторных баз данных.

Прокладывая новые тропы

Сотрудничество Milvus 2.4 между Zilliz и NVIDIA демонстрирует силу открытых инноваций и разработки под руководством сообщества, обеспечивая GPU-ускорение для векторных баз данных.

Milvus 2.4 с открытым исходным кодом доступен уже сейчас, а предприятия, которым нужна полностью управляемая служба векторных баз данных, могут рассчитывать на GPU-ускорение, которое появится в Zilliz Cloud в конце этого года. Zilliz Cloud обеспечивает беспрепятственное развертывание и масштабирование Milvus на основных облачных провайдерах, таких как AWS, Google Cloud Platform и Azure, без операционных затрат.

Эта статья является экземпляром Текста-спринтера. Такие тексты отлично продвигают сайты в ТОП органического поиска Яндекс и Google. Здесь я пишу об этом более подробно.

Nikita Interactive, founder

Искренне Ваш,

Nikita Interactive

Это реальная история!

Раздел с Текстами-спринтерами привлек 18 090 пользователей за 9 месяцев.
На новом сайте. Без ссылок.

Измеримые результаты и устойчивый успех.