M365Con 2027 – бесплатная онлайн-конференция · 11–22 Jan 2027 · 120 sessions→ m365con.net

Блог · Mirko Peters

Решение проблемы миллиарда векторов в Azure AI Search

By ·

Добро пожаловать в наш подробный разбор одной из самых острых задач современного корпоративного искусственного интеллекта: масштабирования векторного поиска до миллиардов записей. Если вы…

Automatically translated with AI from the original post. Read the English original

Добро пожаловать в наш подробный разбор одной из самых острых задач современного корпоративного искусственного интеллекта: масштабирования векторного поиска до миллиардов записей. Если вы работали с современными системами генерации с расширенным поиском (RAG), семантическими поисковыми движками или ИИ-ассистентами, то наверняка сталкивались с тем, как быстро накапливаются данные. Когда организации индексируют миллионы, а иногда и миллиарды документов, изображений и взаимодействий пользователей, традиционные поисковые архитектуры начинают не выдерживать нагрузки. Поэтому понимание принципов индексирования векторов в миллиардном масштабе больше не является необязательным для архитекторов и разработчиков. Это вопрос выживания.

В этой обширной статье мы разберём технические трудности работы с многомерными векторными пространствами, сравним два ведущих графовых алгоритма индексирования: иерархический навигируемый малый мир (HNSW) и DiskANN от Microsoft, а также рассмотрим, как Azure AI Search помогает эффективно справляться с такими нагрузками. Если вы настраиваете параметры памяти, пытаетесь контролировать затраты на аппаратную инфраструктуру или хотите максимизировать полноту поиска, это руководство даст вам необходимую техническую дорожную карту. Для аудиоразбора этих концепций обязательно послушайте связанный подкаст HNSW vs DiskANN for Vector Search in Azure AI Search на M365 FM.

Проблема миллиарда векторов в Azure AI Search

Сложности векторного поиска в миллиардном масштабе

Проблема миллиарда векторов возникает, когда нужно индексировать и просматривать огромные массивы данных в корпоративном ИИ. Работа с миллиардами векторов создаёт особые технические сложности. Нужно строить эффективные системы индексирования, которые обрабатывают большие объёмы данных без снижения скорости. Обновления в реальном времени важны, потому что результаты поиска должны оставаться актуальными и релевантными. Работа с многомерными эмбеддингами также критична для точности поиска.

При работе с наборами данных миллиардного масштаба вы сталкиваетесь с несколькими ограничениями:

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

Из-за этих сложностей проблема миллиарда векторов считается одной из самых трудных в современном ИИ.

Почему выбор алгоритма важен

Выбор алгоритма напрямую влияет на то, как вы решаете проблему миллиарда векторов. Если выбрать такой алгоритм, как HNSW, вы получаете быстрый доступ и эффективный поиск по большим наборам данных. Однако ему нужно много оперативной памяти, а это может повысить затраты. Другие алгоритмы, например точный поиск ближайших соседей (exhaustive KNN), обеспечивают высокую точность, но требуют гораздо больше вычислений, поэтому лучше подходят для небольших наборов данных. Правильный алгоритм помогает сбалансировать скорость, точность и потребление ресурсов. Подбирая алгоритм под конкретные задачи, вы можете оптимизировать производительность своего приложения. От этого решения зависит, насколько хорошо вы справляетесь с огромными наборами данных и сколько тратите на оборудование.

Обзор Azure AI Search

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

Azure AI Search легко интегрируется с другими сервисами Microsoft Azure и сторонними платформами. Вы можете использовать гибридный поиск, который сочетает поиск по ключевым словам и векторный поиск для получения лучших результатов. Настройка ранжирования и релевантности позволяет управлять тем, как отображаются результаты поиска, делая их более полезными для ваших пользователей. Платформа также предлагает интеллектуальные возможности поиска, такие как автозаполнение и предлагаемые результаты. Построенный на глобальной инфраструктуре Azure, Azure AI Search обеспечивает масштаб и надежность, которые нужны для огромных наборов данных и крупномасштабных проектов по работе с данными.

Графовый индекс: HNSW и DiskANN

Graph-Based Index: HNSW and DiskANN

Что такое HNSW

Возможно, вы слышали о HNSW, что расшифровывается как hierarchical navigable small world («иерархический навигируемый малый мир»). Этот алгоритм графового индекса помогает быстро находить похожие векторы в больших наборах данных. HNSW строит многоуровневую графовую структуру, которая связывает точки данных так, чтобы поиск был быстрым и точным. Каждый уровень графа имеет разную плотность: верхние уровни содержат меньше узлов, а нижние — больше. Такая конструкция позволяет начать поиск сверху и двигаться вниз, постепенно сужая результаты. HNSW оптимизирован для векторного поиска в памяти, поэтому он хранит весь граф в RAM. Такой подход обеспечивает результаты с низкой задержкой, но означает, что при росте набора данных вам понадобится большой объем памяти.

Что такое DiskANN

DiskANN — это ответ Microsoft на задачи векторного поиска в масштабе миллиардов. Этот графовый индекс использует гибридный подход, сочетающий память и хранилище на SSD. DiskANN позволяет хранить большую часть индекса на SSD, которые намного дешевле оперативной памяти. В памяти вы держите только самые важные навигационные данные. Такая конструкция помогает управлять огромными наборами данных без высоких затрат на оборудование. DiskANN использует алгоритм графа Vamana, чтобы направлять поиск по данным. Он также применяет специальный метод отсечения, который поддерживает разнообразие и эффективность графа. DiskANN от Microsoft лежит в основе Azure AI Search и других сервисов, что делает его ключевым нововведением для корпоративного ИИ.

НовшествоОписание
Высокоскоростной поиск ANNАрхитектура DiskANN обеспечивает эффективный поиск ANN на SSD, что помогает снизить затраты на оборудование.
Гибридная система памятиDiskANN использует сочетание DRAM и SSD, чтобы управлять миллиардами точек на одной машине.
Экономичное хранениеDiskANN хранит индекс ANN на диске, что обеспечивает бюджетное решение для работы с многомерными данными.

Как работает HNSW

Построение графа

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

Процесс поиска

При поиске с HNSW вы начинаете с верхнего уровня графа. Вы используете связи дальнего действия, чтобы быстро двигаться к области, где может находиться искомый вектор. По мере спуска на каждый уровень связи становятся плотнее. Это помогает уточнить поиск и приблизиться к наилучшему совпадению. На самом нижнем уровне HNSW использует лучевой поиск (beam search), чтобы найти ближайших соседей. Такой процесс дает быстрые и точные результаты, особенно когда весь граф помещается в памяти.

  • Принципы проектирования HNSW:
    • Оптимизирован для операций в памяти, обеспечивая низкую задержку и высокую полноту выборки (recall).
    • Использует многоуровневую графовую структуру, основанную на сетях малого мира.
    • Применяет стратегию отсечения для удаления избыточных рёбер и поддержки разнообразия.
    • Поиск заключается в спуске по уровням: сначала используются разреженные связи дальнего действия, а заканчивается поиск лучевым поиском на базовом уровне.

Как видите, и HNSW, и DiskANN используют графовый индекс, но их конструкции подходят для разных задач. HNSW лучше всего работает, когда всё можно держать в памяти. DiskANN позволяет масштабироваться до миллиардов векторов за счёт SSD, что делает его идеальным выбором для корпоративных нагрузок в Azure AI Search.

Как работает DiskANN

Гибридная архитектура памяти и SSD

Вы сталкиваетесь с необычным подходом, когда используете DiskANN для поиска по миллиардам векторов. DiskANN сочетает оперативную память и SSD-накопители в гибридной архитектуре. Такая конструкция позволяет хранить бо́льшую часть векторного индекса на SSD, которые стоят дешевле ОЗУ. В памяти вы держите только необходимые навигационные данные. Этот метод позволяет масштабировать поиск до миллиардов векторов без дорогостоящего оборудования.

DiskANN использует две основные техники для оптимизации хранения и скорости:

  • Граф Vamana: вы используете эту структуру для эффективной навигации по индексу.
  • Квантование произведения (PQ): векторы сжимаются в памяти, что снижает потребление ОЗУ.

Вы получаете преимущество от двухфазного выполнения запроса. На первой фазе DiskANN использует векторы, сжатые методом PQ, в ОЗУ, чтобы быстро определить набор кандидатов. На этом шаге чтение с диска не требуется. На второй фазе DiskANN извлекает векторы полной точности с SSD для набора кандидатов. Затем вы вычисляете точные расстояния, чтобы найти лучшие совпадения. Такой процесс обеспечивает высокую полноту результатов и низкую задержку при сохранении низких требований к памяти.

Совет: гибридная архитектура DiskANN с памятью и SSD позволяет выполнять поиск в масштабе веб на обычном оборудовании. Вы можете хранить векторные индексы на SSD вместо ОЗУ, что делает крупномасштабные приложения более доступными по стоимости.

Процесс поиска

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

Вы загружаете векторы полной точности с SSD для каждого кандидата и вычисляете точные расстояния между запросом и этими кандидатами. Такой двухфазный процесс гарантирует точность результатов без замедления поиска. Высокая полнота достигается за счёт того, что DiskANN детально проверяет лучших кандидатов. Задержка остаётся низкой, поскольку основная часть работы выполняется в памяти.

Процесс поиска DiskANN хорошо подходит для очень больших наборов данных. Вы можете обрабатывать миллиарды векторов без необходимости в огромных объёмах ОЗУ. Результаты остаются быстрыми и надёжными даже по мере роста данных. Это делает DiskANN сильным выбором для корпоративных нагрузок ИИ в Azure AI Search.

ЭтапЧто вы делаетеПольза
Фаза 1: навигацияИспользовать векторы, сжатые методом PQ, в ОЗУ для поиска кандидатовБыстрый поиск, без чтения с диска
Фаза 2: уточнениеИзвлечь векторы полной точности с SSD и вычислить расстоянияВысокая полнота, низкая задержка

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

Сильные и слабые стороны

Плюсы и минусы HNSW

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

Краткий обзор сильных и слабых сторон HNSW:

Сильные стороныСлабые стороны
Скорость поиска на уровне современных решений и высокая полнота при правильной настройке.Высокое потребление памяти из-за хранения связей графа для каждого вектора.
Хорошо работает с многомерными данными.Долгое построение индекса при параметрах высокого качества построения.
Эффективно поддерживает инкрементальное добавление.Сложное удаление элементов может со временем снижать производительность.

Масштабируется HNSW эффективно, так как построение индекса имеет сложность O(N log N). Параллельное построение позволяет использовать многоядерные процессоры, что ускоряет процесс. Потребление памяти растёт линейно с размером набора данных, поэтому требования к хранилищу можно прогнозировать. Однако весь граф必须 храниться в ОЗУ, что ограничивает масштабируемость для наборов из миллиардов векторов.

Плюсы и минусы DiskANN

К DiskANN стоит обращаться, когда нужно масштабировать векторный поиск за пределы того, что способна вместить ОЗУ. DiskANN оптимизирован для использования SSD, что снижает затраты на оборудование и позволяет управлять очень большими наборами данных. Комбинируя поиск в памяти с пакетным чтением с SSD, вы получаете высокую точность и низкую задержку. DiskANN поддерживает обновления в реальном времени и гибридный поиск, поэтому вы можете эффективно фильтровать и извлекать векторы.

Обратите внимание на следующие моменты о DiskANN:

  • Экономически эффективное масштабирование за счёт использования SSD вместо ОЗУ.
  • Высокая точность и низкая задержка на масштабе благодаря поиску в памяти и чтению с SSD.
  • Обновления в реальном времени и гибридный поиск: векторный плюс фильтрованный.
  • Построение индекса выполняется долго, потому что построение графа Vamana требует больших вычислительных ресурсов.
  • Производительность зависит от пропускной способности и задержки SSD.
  • Обновления обходятся дороже, чем в структурах, работающих в памяти, таких как HNSW.
  • Внедрение и настройка требуют тщательной оптимизации.

Вам полезна способность DiskANN работать с квантованными векторами: это сжимает данные и делает поиск эффективным по памяти. Вы можете использовать DiskANN для рабочих нагрузок на миллиарды векторов и не беспокоиться об ограничениях оперативной памяти.

Эффективность использования памяти и хранилища

При выборе между HNSW и DiskANN для векторного поиска нужно учитывать эффективность использования памяти и хранилища. HNSW хорошо работает с наборами данных, которые помещаются в оперативную память сервера. Вы получаете быстрый доступ и высокую производительность, но не можете выйти за пределы объёма памяти. DiskANN позволяет увеличивать размер набора данных до ёмкости диска, частично жертвуя скоростью ради объёма хранилища. Основную часть индекса вы храните на SSD, поэтому DiskANN идеально подходит для массивных векторных наборов данных.

ХарактеристикаHNSWDiskANN
Эффективность использования памятиОчень эффективен для наборов данных, которые помещаются в кеш сервера (оперативную память).Предназначен для наборов данных, которые слишком велики для оперативной памяти.
Эффективность использования хранилищаОграничен объёмом доступной оперативной памяти.Увеличивает размер набора данных до ёмкости диска, частично жертвуя скоростью ради объёма хранилища.
Оптимизация производительностиИспользует быстрый доступ к памяти для повышения скорости.Минимизирует потери производительности, связанные с более медленным дисковым хранилищем.
Пригодность для наборов данныхПодходит для наборов данных, которые помещаются в оперативную память.Подходит для массивных наборов данных, превышающих объём оперативной памяти.

И в HNSW, и в DiskANN вы используете квантованные векторы, чтобы уменьшить потребность в хранилище и ускорить поиск. Гибридная архитектура DiskANN позволяет масштабировать векторный поиск, сохраняя низкие затраты. Вы получаете эффективный по памяти поиск для задач извлечения данных большого масштаба, особенно при работе с квантованными векторами и хранением на SSD.

Сравнение алгоритмов векторного поиска

Vector Search Algorithm Comparison

Производительность при масштабировании

Нужно измерять, как алгоритм векторного поиска работает по мере роста набора данных. HNSW и DiskANN стремятся обеспечить высокую полноту выдачи (recall) и скорость, но их стратегии различаются. HNSW опирается на графы в оперативной памяти, поэтому, пока векторы помещаются в RAM, вы получаете быстрый поиск ближайших соседей. DiskANN использует гибридный подход, сочетающий память и SSD, поэтому вы можете наращивать производительность поиска, не упираясь в ограничения памяти.

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

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

Масштабируемость для миллиардов векторов

Когда набор данных вырастает от миллионов до миллиардов векторов, возникают новые задачи. HNSW хорошо работает примерно до 50 миллионов векторов. HNSW можно использовать как алгоритм векторного поиска по умолчанию, настраивая параметры под полноту выдачи. При 50–500 миллионах векторов внедряют шардирование и скалярное квантование. Для повышения эффективности может применяться двухфазное извлечение. Для наборов данных свыше 500 миллионов векторов нужны иерархическое извлечение и многоуровневые архитектуры. Для холодных данных применяется агрессивное квантование.

Диапазон количества векторовСтратегия HNSW
1–50 млнИспользовать HNSW по умолчанию, убедиться, что векторы помещаются в RAM, и настраивать параметры под полноту выдачи.
50–500 млнВнедрить шардирование, включить скалярное квантование и рассмотреть двухфазное извлечение для повышения эффективности.
500 млн+Использовать иерархическое извлечение, многоуровневые архитектуры и агрессивное квантование для холодных данных.

DiskANN меняет правила игры для векторного поиска масштаба миллиардов. Основную часть индекса вы храните на SSD, поэтому не нужно беспокоиться об ограничениях RAM. Для сжатия векторов используется квантование произведения, а навигационные данные остаются в памяти. Вы масштабируете поиск ближайших соседей до миллиардов векторов без потери производительности поиска. DiskANN поддерживает приближённый поиск на основе кластеризации и гибридное извлечение, что помогает управлять массивными наборами данных.

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

Задержка запросов и пропускная способность

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

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

С DiskANN вы добиваетесь высокой полноты выдачи и скорости, даже когда объём запросов растёт. Ограничения по памяти вас не беспокоят, поэтому вы можете масштабировать производительность поиска для корпоративных приложений.

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

Влияние на стоимость и ресурсы

При выборе алгоритма векторного поиска для Azure AI Search необходимо учитывать влияние на стоимость и ресурсы. То, как каждый алгоритм использует память и хранилище, влияет на ваш бюджет и на возможность масштабирования.

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

HNSW лучше всего работает с наборами данных среднего размера. Весь индекс нужно держать в оперативной памяти, и это требование ограничивает масштабирование. Если набор данных становится слишком большим, операционные расходы могут заметно вырасти. Кроме того, HNSW поддерживает не более 2 000 измерений, что может ограничивать ваши сценарии использования.

Тип индексаПодходит для нагрузок с миллиардами векторовТребования к памятиОперационные расходы
DiskANNДа, разработан с учётом производительности SSDМасштабируется от тысяч до миллиардов векторовРекомендуется для производственных нагрузок ИИ
HNSWНет, подходит для наборов данных среднего размераТребуется, чтобы индекс помещался в оперативную памятьОграничен 2 000 измерений

Совет: если вы хотите контролировать расходы и масштабировать поиск до миллиардов векторов, DiskANN даёт явное преимущество. Вы можете использовать недорогие SSD и держать потребности в памяти на низком уровне.

Реальные сценарии использования

Ценность этих алгоритмов хорошо видна в реальных приложениях. Многие организации используют DiskANN и HNSW для разных задач векторного поиска.

  • Для приблизительного поиска ближайших соседей можно использовать экономичный гибридный метод. Он сочетает хранение на SSD со структурами графа в памяти.
  • DiskANN можно развернуть для статических наборов данных, например научных корпусов, где данные меняются нечасто.
  • DiskANN стоит выбрать для развёртываний, где важна стоимость. Он хорошо работает в приложениях масштаба миллиардов, где нужно контролировать расходы.
  • DiskANN можно использовать для запросов, которые допускают задержку менее 10 миллисекунд. Этой скорости достаточно для многих задач корпоративного поиска.
  • Для гибридного поиска можно комбинировать HNSW с инвертированными файлами на диске (HNSW-IF). Этот метод обеспечивает высокую полноту выдачи и низкую задержку.
Сценарий использованияОписание
Статические наборы данныхИдеально для научных корпусов, где данные меняются нечасто.
Развёртывания, чувствительные к стоимостиПодходит для приложений масштаба миллиардов, где важна стоимость.
Запросы, устойчивые к задержкеХорошо работает для запросов, которые допускают задержку менее 10 мс.

Примечание: многие организации достигают полноты 90% при задержке 10 мс с помощью гибридных методов. Такой уровень производительности отвечает потребностям большинства корпоративных приложений ИИ-поиска.

Выбор алгоритма должен соответствовать вашей нагрузке. Если нужно масштабировать систему, контролировать расходы и сохранять низкую задержку, DiskANN даст вам необходимую гибкость и эффективность.

Когда использовать HNSW или DiskANN

Выбор подходящего алгоритма для нагрузки Azure AI Search может сильно повлиять на скорость, стоимость и точность. Нужно учитывать ваши данные, оборудование и частоту их изменения. Давайте разберём основные критерии выбора, чтобы вы могли подобрать наилучший инструмент для своих задач векторного поиска.

Критерии выбора

Размер набора данных

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

КритерииHNSWDiskANN
Размер набора данныхПодходит для миллионов векторовЛучше всего подходит для миллиардов векторов

Видно, что HNSW подходит для небольших нагрузок, а DiskANN справляется с огромными наборами данных без снижения скорости.

Оборудование и стоимость

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

КритерииHNSWDiskANN
ИнфраструктураТребования к оперативной памятиСнижает затраты на память

Если вы хотите держать затраты низкими и при этом искать среди миллиардов векторов, DiskANN даёт явное преимущество.

Требования к задержке

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

  • HNSW лучше всего подходит для нагрузок, где важна каждая миллисекунда.
  • DiskANN хорошо работает, когда нужно быстро искать в больших наборах данных и можно принять небольшое увеличение задержки.

Шаблоны обновления

На выбор влияет и то, как часто меняются данные. HNSW хорошо работает со статичными или медленно меняющимися данными. Если вы часто обновляете векторы, может понадобиться перестроение индекса, которое занимает время. DiskANN лучше адаптируется к частым обновлениям. Он сохраняет точность и полноту (recall) стабильными, даже когда вы часто добавляете или изменяете векторы.

ХарактеристикаHNSWDiskANN
Задержка обновленияТребует полного перестроения индексаЭффективно адаптируется к изменениям
RecallВысокий, но зависит от измененийСтабильная точность при частых изменениях

Если вашему приложению нужно обрабатывать большое количество обновлений, DiskANN даёт больше гибкости.

Примеры сценариев

Реальные сценарии помогут определить, какой алгоритм подходит именно вам.

МетрикаHNSWDiskANN
Средний recall0.60.7
Сквозная точность0.9720.933
Robustness-0.2@100.9980.984
Robustness-0.90.840.81
  • HNSW обеспечивает высокий recall и быструю пропускную способность запросов. На наборах данных вроде SIFT1M можно достичь примерно 95% recall@10 всего за 1–2 миллисекунды на запрос на CPU.
  • DiskANN показывает более высокий средний recall, а это значит, что он находит больше действительно релевантных совпадений в больших наборах данных. Он сохраняет высокую точность даже по мере роста данных.
  • HNSW лучше всего работает в системах рекомендаций или поисковых системах, где нужны максимальная точность и скорость.
  • DiskANN подходит для масштабного поиска, например для поиска среди миллиардов изображений товаров или документов, где нужно balanced соотношение скорости, стоимости и масштаба.

HNSW выделяется в нагрузках, которым нужен максимально быстрый поиск на небольших наборах данных. DiskANN раскрывается, когда нужно искать по огромным объёмам данных, не выходя за рамки бюджета.

Миграция и гибридные подходы

Не обязательно выбирать один алгоритм для всех ситуаций. Многие организации начинают с HNSW для небольших наборов данных. По мере роста векторной базы данных они переходят на DiskANN, чтобы обрабатывать больше данных и сохранять низкие затраты. Можно также использовать гибридный подход. Например, самые популярные или свежие векторы можно хранить в памяти с HNSW, а более старые или редко используемые векторы — на SSD с DiskANN.

  • Начните с HNSW для быстрого прототипирования и небольших нагрузок.
  • Переходите на DiskANN, когда набор данных выходит за пределы возможностей памяти.
  • Комбинируйте оба метода для лучшего баланса скорости и масштаба.

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

Понимая размер набора данных, оборудование, требования к задержке и шаблоны обновления, вы можете осознанно выбрать между HNSW и DiskANN. Это поможет построить систему векторного поиска, которая соответствует вашим целям и растёт вместе с бизнесом.

Лучшие практики векторного поиска в Azure

Советы по конфигурации индекса

Высокую производительность в Azure AI Search можно получить, следуя нескольким важным рекомендациям по настройке. Начните с того, чтобы размер индекса укладывался в одну единицу векторного поиска. Это помогает сохранять быстроту и надёжность поиска. Старайтесь сделать размер эмбеддингов как можно меньше. Более компактные эмбеддинги сокращают время выполнения запросов и увеличивают количество запросов в секунду. Используйте запросы Approximate Nearest Neighbor (ANN): они ускоряют поиск без существенной потери точности.

Ограничьте количество результатов на запрос диапазоном от 10 до 100. Этот диапазон снижает задержку и сохраняет отзывчивость поиска. Не используйте в продакшене конечные точки моделей, которые масштабируются до нуля. Холодный старт может замедлить поиск и раздражать пользователей. Планируйте пиковые нагрузки, чтобы система справлялась с внезапным ростом трафика поиска. Используйте служебные принципалы с токенами OAuth для безопасной и эффективной аутентификации. Всегда используйте последнюю версию Python SDK, чтобы получать преимущества в производительности. Если нужна более высокая пропускная способность, масштабируйте конечную точку или распределяйте нагрузку между несколькими конечными точками.

Совет: правильно настроенный индекс — основа оптимизированного векторного поиска в Azure.

Мониторинг и оптимизация

Чтобы поддерживать высокую производительность, особенно при работе с нагрузками на миллиарды векторов, необходимо отслеживать и оптимизировать поисковую систему. В таблице ниже приведены некоторые эффективные методы:

МетодОписание
Многоуровневые индексыИспользуйте быстрые индексы для актуальных данных и сжимайте холодные данные, чтобы экономить место.
Контроль fan-outУправляйте взаимодействием шардов и кластеров, чтобы сократить количество сетевых переходов.
КвантованиеУменьшайте размер векторов с помощью таких методов, как IVF-PQ, чтобы уложиться в ограничения памяти.
Настройка центроидовРегулируйте количество центроидов, чтобы сбалансировать полноту выдачи и накладные расходы.
Асимметричное вычисление расстоянийУскоряйте поиск, сравнивая запросы полной точности со сжатыми векторами.
Целенаправленная маршрутизация запросовИспользуйте метаданные и кластеризацию, чтобы избежать ненужных широковещательных рассылок во время поиска.
Минимизация объёма сетевого трафикаПередавайте между узлами только идентификаторы и оценки, а не полные векторы.
Иерархическая агрегацияАгрегируйте результаты локально, чтобы снизить затраты на координацию и стабилизировать задержку.
Доминирование памятиУбедитесь, что векторы помещаются в память, для наилучшей производительности поиска.
Выборочное использование GPUИспользуйте GPU для индексации при необходимости, но проверьте, повышают ли они пропускную способность поиска.
Качество сетиСледите за состоянием сети, так как от неё зависит задержка поиска.

Примечание: регулярный мониторинг помогает вовремя замечать проблемы и поддерживать бесперебойную работу поиска.

Типичные ошибки

При настройке или масштабировании поисковой системы в Azure можно столкнуться с типичными ошибками. Одна из них — позволить индексу вырасти слишком большим для одной единицы поиска. Это может замедлить запросы и снизить надёжность поиска. Использование больших эмбеддингов тоже может ухудшить производительность. Всегда держите эмбеддинги как можно меньше для вашего сценария.

Другая ошибка — игнорировать пиковые нагрузки. Если не планировать внезапный рост трафика поиска, система может не выдержать нагрузку. Опора на конечные точки, которые масштабируются до нуля, может привести к задержкам холодного старта и замедлить поиск. Отсутствие обновления SDK или неиспользование токенов OAuth может создать риски безопасности и привести к упущенным выгодам в производительности.

Помните: избегайте этих ошибок, чтобы поиск оставался быстрым, безопасным и надёжным.

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


Проблему миллиарда векторов в Azure AI Search решают, выбирая алгоритм, подходящий для ваших задач. DiskANN обеспечивает экономичную масштабируемость для огромных наборов данных, а HNSW даёт быстрые результаты для небольших нагрузок. Алгоритм подбирают под нагрузку, масштаб и бюджет. Таблица ниже поможет выбрать подходящую конечную точку:

Тип SKUОписание сценария использования
Стандартные конечные точкиЛучший выбор для критичных к задержке сценариев с индексами до 320 млн векторов.
Конечные точки, оптимизированные под хранениеИдеальны для 10 млн+ векторов, когда допустима некоторая задержка и важна экономичность.
  • Оцените потребности в хранилище, протестировав систему на нескольких документах.
  • Учитывайте планируемые обновления и общий объём контента.

Azure AI Search даёт гибкость и поддерживает инновации Microsoft для корпоративного ИИ. Чтобы связать эти технические детали с реальной облачной архитектурой, обязательно послушайте сопутствующий выпуск подкаста HNSW vs DiskANN for Vector Search in Azure AI Search.

Часто задаваемые вопросы

В чём главное различие между HNSW и DiskANN?

Вы используете HNSW для векторного поиска в памяти. DiskANN позволяет хранить большую часть индекса на SSD. Поэтому DiskANN лучше подходит для работы с миллиардами векторов без высоких затрат на память.

Можно ли использовать DiskANN для приложений реального времени?

Да. DiskANN обеспечивает поиск с низкой задержкой, часто менее 10 миллисекунд. Его можно использовать для задач ИИ-поиска в реальном времени, даже на очень больших наборах данных.

Как выбрать, какой алгоритм использовать в Azure AI Search?

Выбирайте HNSW для небольших наборов данных, которые помещаются в оперативную память. Выбирайте DiskANN для огромных наборов данных, которым нужно экономичное масштабирование. Учитывайте объём данных, оборудование и требования к задержке.

Нужно ли DiskANN специальное оборудование?

Нет. Вы можете запускать DiskANN на обычных серверах с SSD. Дорогие машины с большим объёмом памяти не нужны. Так масштабирование становится проще и доступнее.

Как Azure AI Search защищает ваши данные?

Azure AI Search использует шифрование и механизмы контроля доступа. Вы контролируете, кто может получать доступ к вашим данным. Функции безопасности Microsoft помогают защищать конфиденциальную информацию.

Можно ли обновлять векторный индекс без простоя?

Вы можете обновлять как индексы HNSW, так и индексы DiskANN. DiskANN поддерживает эффективные обновления больших наборов данных. Результаты поиска остаются актуальными, а система продолжает работать.

Каковы лучшие практики оптимизации производительности векторного поиска?

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


🎧 Слушайте этот эпизод

Хотите понятное объяснение различий HNSW и DiskANN для векторного поиска в Azure AI Search? В этом эпизоде тема разобрана простым языком и показано, почему она важна для Microsoft 365, Azure, Power Platform, безопасности, ИИ и современной работы.

Слушайте этот эпизод, если вы хотите:

  • Понять ключевые концепции HNSW и DiskANN для векторного поиска в Azure AI Search
  • Увидеть, как это вписывается в более широкую экосистему технологий Microsoft
  • Узнать, где это может принести практическую пользу вашей организации

Вам также могут понравиться эти эпизоды M365 FM:

Больше практических обсуждений Microsoft на M365 FM.

Последняя проверка: июль 2026.

Кому стоит слушать

Этот эпизод предназначен для администраторов Microsoft, архитекторов, разработчиков, специалистов по безопасности и руководителей бизнеса, которым нужна практическая основа перед принятием решений о внедрении, эксплуатации или управлении.

🎧 Также рекомендуем послушать

  • Azure Resource Manager — логичный следующий шаг для расширения этой темы.
  • Infrastructure as Code — логичный следующий шаг для расширения этой темы.
  • Azure Policy — логичный следующий шаг для расширения этой темы.

Entities in this article

DiskANN Azure AI Search Vector search Retrieval-augmented generation (RAG) Cold start Embeddings Semantic model

Related articles

RSS