M365Con 2027 – безкоштовна онлайн-конференція · 11–22 Jan 2027 · 120 sessions→ m365con.net

Блог · Mirko Peters

Подолання проблеми мільярда векторів в Azure AI Search

By ·

Ласкаво просимо до детального огляду однієї з найактуальніших проблем сучасного корпоративного штучного інтелекту: масштабування векторного пошуку до мільярдів записів. Якщо ви працювали з сучасними системами генерації з доповненням пошуку (RAG), семантичними пошуковими движками або AI-асистентами, то, ймовірно, вже стикалися зі швидкістю, з якою накопичуються дані. Коли організації обробляють міл

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

Ласкаво просимо до детального огляду однієї з найактуальніших проблем сучасного корпоративного штучного інтелекту: масштабування векторного пошуку до мільярдів записів. Якщо ви працювали з сучасними системами генерації з доповненням пошуку (RAG), семантичними пошуковими движками або AI-асистентами, то, ймовірно, вже стикалися зі швидкістю, з якою накопичуються дані. Коли організації обробляють мільйони, а інколи й мільярди документів, зображень і взаємодій користувачів, традиційні пошукові архітектури починають не витримувати навантаження. Саме тому розуміння механіки індексування векторів у масштабі мільярдів більше не є необов’язковим для архітекторів і розробників; це вже питання виживання.

У цьому докладному матеріалі ми розберемо технічні труднощі багатовимірних векторних просторів, порівняємо два провідні графові алгоритми індексування — Hierarchical Navigable Small World (HNSW) та DiskANN від Microsoft — і покажемо, як Azure AI Search допомагає ефективно опрацьовувати такі навантаження. Чи налаштовуєте ви параметри пам’яті, намагаєтеся контролювати витрати на апаратну інфраструктуру чи прагнете максимізувати повноту пошуку, цей посібник дасть вам технічну дорожню карту. Для аудіоогляду цих концепцій обов’язково послухайте пов’язаний подкаст HNSW vs DiskANN for Vector Search in Azure AI Search на M365 FM.

Проблема мільярда векторів в Azure AI Search

Виклики векторного пошуку в масштабі мільярдів

Проблема мільярда векторів постає перед вами, коли потрібно індексувати й шукати серед величезних наборів даних у корпоративному ШІ. Робота з мільярдами векторів створює унікальні технічні виклики. Потрібно будувати ефективні системи індексування, які обробляють дані великого обсягу без втрати швидкодії. Оновлення в режимі реального часу важливі, адже ви хочете, щоб результати пошуку залишалися актуальними. Керування багатовимірними вбудуваннями також критичне для точності результатів пошуку.

Працюючи з наборами даних у масштабі мільярдів, ви стикаєтеся з низкою обмежень:

  • Висока розмірність збільшує обчислювальні витрати і може сповільнювати пошук.
  • Семантичний розрив між векторними представленнями та реальним змістом може призводити до неточностей.
  • Збирання сміття стає складним, через що важко видаляти застарілу інформацію з індексів.
  • Якість векторів залежить від моделі вбудовування, яку ви обираєте, а це впливає на точність пошуку.
  • Масштабування розтягує вимоги до пам’яті й може збільшувати час пошуку.
  • Проблема холодного старту ускладнює пошук нових елементів без якісних векторних представлень.
  • Інтерпретованість низька, тож зрозуміти, чому з’явився той чи інший результат пошуку, може бути непросто.

Через ці виклики проблема мільярда векторів є однією з найскладніших у сучасному ШІ.

Чому вибір алгоритму важливий

Вибір алгоритму безпосередньо впливає на те, як ви розв’язуєте проблему мільярда векторів. Якщо обираєте алгоритм на кшталт HNSW, отримуєте швидкий доступ і ефективний пошук у великих наборах даних. Однак потрібно багато оперативної пам’яті, а це може підвищувати витрати. Інші алгоритми, наприклад вичерпний KNN, забезпечують високу точність, але потребують значно більше обчислень, тому краще підходять для менших наборів даних. Правильний алгоритм допомагає збалансувати швидкість, точність і використання ресурсів. Ви можете оптимізувати продуктивність для свого застосунку, підбираючи алгоритм під свої потреби. Саме це рішення визначає, наскільки добре ви впораєтеся з величезними наборами даних і скільки витратите на апаратне забезпечення.

Огляд Azure AI Search

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

Azure AI Search легко інтегрується з іншими службами Microsoft Azure та сторонніми платформами. Можна використовувати гібридний пошук, який поєднує пошук за ключовими словами та векторний пошук, щоб отримувати найкращі результати. Ранжування та налаштування релевантності дають змогу змінювати те, як відображаються результати пошуку, і робити їх кориснішими для користувачів. Платформа також пропонує розумні сценарії пошуку, зокрема автозаповнення та запропоновані результати. Azure AI Search створено на глобальній інфраструктурі Azure, тож він забезпечує масштабованість і надійність, потрібні для величезних наборів даних і масштабних проєктів з даними.

Індекси на основі графів: HNSW і DiskANN

Graph-Based Index: HNSW and DiskANN

Що таке HNSW

Можливо, ви чули про HNSW, що розшифровується як hierarchical navigable small world (ієрархічний навігований малий світ). Цей алгоритм індексування на основі графів допомагає швидко знаходити схожі вектори у великих наборах даних. HNSW будує багатошарову структуру графа, яка з'єднує точки даних так, щоб пошук був швидким і точним. Кожен шар графа має різну щільність: у верхніх шарах вузлів менше, у нижніх — більше. Така архітектура дає змогу почати пошук зверху та рухатися вниз, поступово звужуючи результати. HNSW оптимізовано для векторного пошуку в пам'яті, тобто весь граф зберігається в RAM. Такий підхід забезпечує результати з низькою затримкою, але водночас означає, що зі зростанням набору даних вам знадобиться багато пам'яті.

Що таке DiskANN

DiskANN — це відповідь Microsoft на виклики пошуку векторів у масштабі мільярдів. Цей індекс на основі графів використовує гібридний підхід, що поєднує пам'ять і сховище на SSD. DiskANN дає змогу зберігати більшу частину індексу на SSD, які значно дешевші за RAM. У пам'яті ви тримаєте лише найважливіші навігаційні дані. Така архітектура допомагає керувати величезними наборами даних без високих витрат на обладнання. 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, які коштують дешевше за RAM. У пам'яті ви тримаєте лише необхідні дані для навігації. Такий метод дозволяє масштабувати пошук до мільярдів векторів без дорогого обладнання.

DiskANN використовує дві основні техніки для оптимізації зберігання та швидкості:

  • Граф Vamana: Ви використовуєте цю структуру для ефективної навігації індексом.
  • Квантування продуктів (PQ): Ви стискаєте вектори в пам'яті, що зменшує використання RAM.

Ви отримуєте переваги дво­етапного процесу виконання запиту. На першому етапі DiskANN використовує вектори, стиснуті за допомогою PQ, у RAM, щоб швидко визначити набір кандидатів. На цьому кроці читання з диска не потрібне. На другому етапі DiskANN отримує вектори повної точності з SSD для набору кандидатів. Потім ви обчислюєте точні відстані, щоб знайти найкращі збіги. Такий процес забезпечує високу повноту результатів і низьку затримку, зберігаючи при цьому невисокі вимоги до пам'яті.

Порада: Гібридна архітектура DiskANN з пам'яттю та SSD уможливлює пошук у масштабі вебу на звичайному обладнанні. Ви можете зберігати векторні індекси на SSD замість RAM, що робить великомасштабні застосунки доступнішими.

Процес пошуку

Пошук у DiskANN починається з навігації графом Vamana з використанням стиснутих векторів у пам'яті. Цей крок допомагає швидко знайти перспективних кандидатів. На цьому етапі ви уникаєте читань з диска, що прискорює процес. Щойно у вас з'являється набір кандидатів, DiskANN переходить до наступного етапу.

Ви отримуєте вектори повної точності з SSD для кожного кандидата. Обчислюєте точні відстані між вашим запитом і цими кандидатами. Цей дво­етапний процес гарантує точні результати без уповільнення пошуку. Ви досягаєте високої повноти, адже DiskANN детально перевіряє найкращих кандидатів. Затримка також залишається низькою, бо більшість роботи виконується в пам'яті.

Процес пошуку в DiskANN добре працює з масивними наборами даних. Ви можете обробляти мільярди векторів без потреби в великих обсягах RAM. Ви отримуєте швидкі й надійні результати навіть тоді, коли дані зростають. Це робить DiskANN сильним вибором для корпоративних навантажень ШІ в Azure AI Search.

КрокЩо ви робитеПеревага
Етап 1: НавігаціяВикористовуйте вектори, стиснуті за PQ, у RAM, щоб знайти кандидатівШвидкий пошук, без читань з диска
Етап 2: УточненняОтримайте вектори повної точності з SSD і обчисліть відстаніВисока повнота, низька затримка

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

Переваги та недоліки

Плюси та мінуси HNSW

Для векторного пошуку ви часто обираєте HNSW, бо він забезпечує найсучасніші показники швидкості пошуку та високу повноту. Коли HNSW належно налаштовано, ви отримуєте швидкі результати та точні збіги. Він добре працює з високовимірними векторними даними, що важливо для сучасних навантажень ШІ. Ви також отримуєте переваги від інкрементальних додавань, тож можете оновлювати індекс без повного перебудовування.

Ось короткий огляд сильних і слабких сторін HNSW:

Сильні сторониСлабкі сторони
Найсучасніша швидкість пошуку та висока повнота за належного налаштування.Значне споживання пам'яті через зберігання зв'язків графа для кожного вектора.
Добре працює з високовимірними даними.Тривалий час побудови індексу з високоякісними параметрами конструювання.
Ефективно підтримує інкрементальні додавання.Складне видалення елементів може з часом погіршувати продуктивність.

HNSW ефективно масштабується, адже для побудови індексу використовує O(N log N). Паралельна побудова дає змогу використовувати багатоядерні процесори, що прискорює процес. Використання пам'яті зростає лінійно зі збільшенням набору даних, тож ви можете прогнозувати потреби в сховищі. Однак весь граф потрібно тримати в RAM, а це обмежує масштабованість для наборів із мільярдами векторів.

Плюси та мінуси DiskANN

До DiskANN ви звертаєтеся, коли потрібно масштабувати векторний пошук понад те, що може витримати RAM. DiskANN оптимізовано для використання SSD, що знижує витрати на обладнання та дозволяє керувати величезними наборами даних. Ви отримуєте високу точність і низьку затримку, поєднуючи пошук у пам'яті з пакетними читаннями з SSD. DiskANN підтримує оновлення в реальному часі та гібридний пошук, тож ви можете ефективно фільтрувати та отримувати вектори.

Зверніть увагу на такі моменти щодо DiskANN:

  • Економічно ефективне масштабування завдяки використанню SSD замість RAM.
  • Висока точність і низька затримка у великому масштабі завдяки пошуку в пам'яті та читанням із SSD.
  • Оновлення в реальному часі та гібридний пошук за векторами з фільтрацією.
  • Побудова індексу відбувається повільно, адже створення графа Vamana вимагає багато обчислень.
  • Продуктивність залежить від пропускної здатності та затримки SSD.
  • Оновлення обходяться дорожче, ніж у структур у пам’яті, наприклад HNSW.
  • Впровадження та налаштування потребують ретельної оптимізації.

Перевага DiskANN у тому, що він працює з квантованими векторами: це стискає дані та покращує пошук з ефективним використанням пам’яті. Ви можете використовувати DiskANN для навантажень на мільярди векторів і не турбуватися про обмеження оперативної пам’яті.

Ефективність використання пам’яті та сховища

Вибираючи між HNSW і DiskANN для пошуку векторів, обов’язково враховуйте ефективність використання пам’яті та сховища. HNSW добре працює з наборами даних, які вміщуються в оперативну пам’ять сервера. Ви отримуєте швидкий доступ і високу продуктивність, але не можете масштабуватися за межі обсягу пам’яті. DiskANN дозволяє збільшувати розмір набору даних до ємності диска, жертвуючи частиною швидкості заради місця. Більшість індексу зберігається на SSD, тому DiskANN ідеально підходить для величезних наборів векторів.

ХарактеристикаHNSWDiskANN
Ефективність використання пам’ятіДуже ефективний для наборів даних, що вміщуються в кеш сервера (оперативну пам’ять).Розроблений для наборів даних, які занадто великі для оперативної пам’яті.
Ефективність використання сховищаОбмежений обсягом доступної оперативної пам’яті.Розширює розмір набору даних до ємності диска, жертвуючи частиною швидкості заради місця.
Оптимізація продуктивностіВикористовує швидкий доступ до пам’яті для досягнення високої швидкості.Мінімізує втрати продуктивності, пов’язані з повільнішим дисковим сховищем.
Придатність для наборів данихПідходить для наборів даних, які вміщуються в оперативну пам’ять.Підходить для величезних наборів даних, що перевищують обсяг оперативної пам’яті.

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

Порівняння алгоритмів векторного пошуку

Vector Search Algorithm Comparison

Продуктивність у масштабі

Потрібно вимірювати, як алгоритм векторного пошуку працює зі зростанням набору даних. І HNSW, і DiskANN прагнуть забезпечити високу повноту результатів і швидкість, але їхні стратегії відрізняються. HNSW спирається на графи в пам’яті, тож пошук найближчих сусідів виходить швидким, доки вектори вміщуються в оперативну пам’ять. DiskANN використовує гібридний підхід із пам’яттю та SSD, тому ви можете масштабувати продуктивність пошуку, не обмежуючись обсягом пам’яті.

Коли ви виконуєте пошук найближчих сусідів на мільйонах векторів, HNSW забезпечує високошвидкісний пошук і низьку затримку. Параметри можна налаштувати під потрібний баланс повноти та швидкості. DiskANN зберігає високу повноту та швидкість навіть тоді, коли набір даних зростає. Більшість індексу зберігається на SSD, що дозволяє обробляти мільярди векторів. Для балансу між швидкістю та точністю використовується двоетапний пошук: перший етап знаходить кандидатів у пам’яті, а другий уточнює результати з використанням SSD.

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

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

Коли набір даних зростає від мільйонів до мільярдів векторів, з’являються нові виклики. HNSW добре працює з до 50 мільйонами векторів. Його можна використовувати як алгоритм векторного пошуку за замовчуванням, налаштовуючи параметри під повноту результатів. Коли кількість векторів сягає від 50 до 500 мільйонів, варто впровадити шардинг і скалярне квантування. Для підвищення ефективності може знадобитися двофазний пошук. Для наборів понад 500 мільйонів векторів потрібні ієрархічний пошук і багаторівневі архітектури. Для холодних даних використовуйте агресивне квантування.

Діапазон кількості векторівСтратегія HNSW
1–50 млнВикористовуйте HNSW як алгоритм за замовчуванням, переконайтеся, що вектори вміщуються в оперативну пам’ять, і налаштуйте параметри під повноту результатів.
50–500 млнВпровадьте шардинг, увімкніть скалярне квантування та розгляньте двофазний пошук для підвищення ефективності.
Понад 500 млнВикористовуйте ієрархічний пошук, багаторівневі архітектури та агресивне квантування для холодних даних.

DiskANN змінює правила гри для векторного пошуку в масштабі мільярдів. Більшість індексу зберігається на SSD, тож не потрібно турбуватися про обмеження оперативної пам’яті. Для стиснення векторів використовується продуктове квантування, а навігаційні дані залишаються в пам’яті. Ви масштабуєте пошук найближчих сусідів до мільярдів векторів без втрати продуктивності пошуку. DiskANN підтримує наближений пошук на основі кластеризації та гібридний пошук, що допомагає керувати величезними наборами даних.

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

Затримка запитів і пропускна здатність

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

DiskANN використовує двоетапний процес пошуку. Спочатку ви шукаєте в стиснутих векторах у пам'яті, що дає швидкий відбір кандидатів. Потім уточнюєте запит, отримуючи повноточні вектори з SSD. Такий підхід утримує затримку на низькому рівні та зберігає високу пропускну здатність навіть для наборів даних на рівні мільярдів. Пошук оптимізується за рахунок пакетного читання з SSD і ефективних структур навігації.

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

DiskANN забезпечує стабільну затримку запитів і пропускну здатність, тож це сильний вибір для пошуку найближчих сусідів у великому масштабі.

Вартість і вплив на ресурси

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

DiskANN виділяється для робочих навантажень на мільярди векторів. Більшу частину індексу можна зберігати на SSD, які коштують дешевше за RAM. Така архітектура дозволяє масштабуватися від тисяч до мільярдів векторів без значного зростання витрат на пам'ять. DiskANN добре підходить для промислових AI-навантажень, адже ефективно використовує SSD і тримає в пам'яті лише найважливіші дані.

HNSW найкраще працює з наборами даних середнього розміру. Весь індекс потрібно тримати в RAM. Ця вимога обмежує масштабування. Якщо набір даних стане занадто великим, можуть виникнути високі експлуатаційні витрати. Крім того, HNSW обмежено 2 000 вимірами, що може звузити сценарії використання.

Тип індексуПридатність для навантажень на мільярди векторівВимоги до пам'ятіЕксплуатаційні витрати
DiskANNТак, розроблений для продуктивності SSDМасштабується від тисяч до мільярдів векторівРекомендовано для промислових AI-навантажень
HNSWНі, підходить для наборів даних середнього розміруПотребує, щоб індекс вміщувався в RAMОбмежено 2 000 вимірами

Порада: Якщо ви хочете контролювати витрати та масштабувати пошук до мільярдів векторів, DiskANN дає явну перевагу. Ви можете використовувати доступні SSD і тримати потребу в пам'яті на низькому рівні.

Практичні сценарії використання

Цінність цих алгоритмів добре видно в реальних застосунках. Багато організацій використовують DiskANN і HNSW для різних типів задач векторного пошуку.

  • Для наближеного пошуку найближчих сусідів можна застосувати економічний гібридний метод. Цей підхід поєднує зберігання на SSD зі структурами графа в пам'яті.
  • DiskANN можна розгортати для статичних наборів даних, наприклад наукових корпусів, де дані змінюються рідко.
  • DiskANN варто обрати для розгортань, де важлива вартість. Він добре працює для застосунків на мільярди записів, коли потрібно контролювати витрати.
  • DiskANN можна використовувати для запитів, які витримують затримку менше 10 мілісекунд. Такої швидкості достатньо для багатьох корпоративних задач пошуку.
  • HNSW можна поєднати з дисковими інвертованими файлами (HNSW-IF) для гібридного пошуку. Цей метод забезпечує високу повноту і утримує затримку на низькому рівні.
Сценарій використанняОпис
Статичні набори данихІдеально для наукових корпусів, де дані змінюються нечасто.
Розгортання, чутливі до вартостіПідходить для застосунків на мільярди записів, де вартість є важливим чинником.
Запити, толерантні до затримкиДобре працює для запитів, які витримують затримку менше 10 мс.

Примітка: Багато організацій досягають 90% повноти при затримці 10 мс, використовуючи гібридні методи. Такої продуктивності достатньо для більшості корпоративних застосунків пошуку на основі AI.

Вибір алгоритму слід узгоджувати з навантаженням. Якщо вам потрібно масштабуватися, контролювати витрати й утримувати низьку затримку, DiskANN дає гнучкість та ефективність, які вам потрібні.

Коли використовувати HNSW або DiskANN

Вибір правильного алгоритму для навантаження Azure AI Search може суттєво вплинути на швидкість, вартість і точність. Варто переглянути ваші дані, апаратне забезпечення і те, як часто дані змінюються. Розберімо основні критерії прийняття рішення, щоб ви могли обрати найкращий інструмент для векторного пошуку.

Критерії прийняття рішення

Розмір набору даних

Насамперед варто оцінити розмір вашого набору даних. Якщо ви працюєте з мільйонами векторів, HNSW забезпечує швидкий і точний пошук. Найкраще він працює, коли дані вміщуються в пам’ять. Коли набір даних зростає до мільярдів векторів, кращим вибором стає DiskANN. Він зберігає більшу частину індексу на SSD, тож вам не доведеться турбуватися про нестачу оперативної пам’яті.

КритерійHNSWDiskANN
Розмір набору данихПідходить для мільйонів векторівЕфективний для мільярдів векторів

Видно, що HNSW краще підходить для менших навантажень, тоді як DiskANN справляється з величезними наборами даних без втрати швидкодії.

Апаратні ресурси та вартість

Ваше обладнання та бюджет також відіграють велику роль. HNSW потребує багато оперативної пам’яті, оскільки тримає весь граф у пам’яті. Зі зростанням векторної бази це може стати дорогим. DiskANN допомагає заощадити, зберігаючи більшу частину індексу на SSD, які коштують дешевше за оперативну пам’ять. Вам потрібно лише достатньо пам’яті для навігаційної частини індексу.

КритерійHNSWDiskANN
ІнфраструктураВимоги до оперативної пам’ятіЗменшує витрати на пам’ять

Якщо ви хочете утримувати витрати на низькому рівні й водночас шукати серед мільярдів векторів, DiskANN дає чітку перевагу.

Вимоги до затримки

Варто подумати, наскільки швидко вам потрібні результати пошуку. HNSW забезпечує дуже низьку затримку, бо шукає в пам’яті. Результати можна отримати лише за кілька мілісекунд, якщо дані вміщуються в оперативну пам’ять. DiskANN поєднує швидкість і масштабованість. Він використовує двоетапний процес пошуку, тож навіть на величезних наборах даних результати залишаються швидкими. Для більшості корпоративних застосунків DiskANN утримує час запитів до 10 мілісекунд.

  • HNSW найкраще підходить для навантажень, де важлива кожна мілісекунда.
  • DiskANN добре працює, коли потрібно швидко шукати у великих наборах даних і можна допустити невелике збільшення затримки.

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

На вибір впливає й те, how часто змінюються ваші дані. HNSW добре працює зі статичними або повільно змінюваними даними. Якщо ви часто оновлюєте вектори, може знадобитися перебудова індексу, а це займає час. DiskANN краще адаптується до частих оновлень. Він зберігає точність і повноту пошуку стабільними, навіть коли ви часто додаєте або змінюєте вектори.

ХарактеристикаHNSWDiskANN
Затримка оновленняПотребує повної перебудови індексуЕфективно адаптується до змін
Повнота (recall)Висока, але залежить від змінСтабільна точність при частих змінах

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

Типові сценарії

Щоб вибрати алгоритм, який відповідає вашим потребам, можна скористатися реальними сценаріями.

МетрикаHNSWDiskANN
Середня повнота0.60.7
Точність «від початку до кінця»0.9720.933
Robustness-0.2@100.9980.984
Robustness-0.90.840.81
  • HNSW забезпечує високу повноту та швидку пропускну здатність запитів. На наборах даних на кшталт SIFT1M можна досягти близько 95% recall@10 лише за 1–2 мілісекунди на запит на CPU.
  • DiskANN demonstrує вищу середню повноту, тобто знаходить більше справжніх збігів у великих наборах даних. Він утримує високу точність, навіть коли дані зростають.
  • HNSW найкраще працює для систем рекомендацій або пошукових систем, де потрібні найвища точність і швидкість.
  • DiskANN підходить для масштабного пошуку, наприклад серед мільярдів зображень товарів або документів, де потрібно збалансувати швидкість, вартість і масштаб.

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

Міграція та гібридні підходи

Не обов’язково обирати лише один алгоритм для всіх ситуацій. Багато організацій починають із HNSW для менших наборів даних. Коли їхня векторна база зростає, вони переходять на DiskANN, щоб обробляти більше даних і утримувати витрати. Можна також використовувати гібридний підхід. Наприклад, найпопулярніші або нещодавні вектори можна тримати в пам’яті з HNSW, а старіші чи рідше використовувані зберігати на SSD з DiskANN.

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

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

Розуміючи розмір набору даних, апаратні ресурси, вимоги до затримки та шаблони оновлення, ви зможете зробити обґрунтований вибір між HNSW і DiskANN. Це допоможе побудувати систему векторного пошуку, яка відповідає вашим цілям і зростає разом із вашим бізнесом.

Найкращі практики векторного пошуку в Azure

Поради щодо конфігурації індексу

Ви можете досягти високої продуктивності в Azure AI Search, дотримуючись кількох важливих порад щодо налаштування. Почніть з того, що переконайтеся, що розмір вашого індексу вміщується в одну одиницю векторного пошуку. Це допоможе зберегти ваш пошук швидким і надійним. Намагайтеся мінімізувати розмір ваших вбудовувань. Менші вбудовування прискорюють обробку запитів і збільшують кількість запитів за секунду. Використовуйте запити Approximate Nearest Neighbor для ефективності: вони прискорюють пошук без значної втрати точності.

Тримайте кількість результатів на запит у діапазоні від 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?

Для менших наборів даних, які вміщуються в RAM, обирайте 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