Автоматично оптимізуйте векторну базу даних Amazon OpenSearch Service

Автоматично оптимізуйте векторну базу даних Amazon OpenSearch Service

AWS нещодавно оголосила про загальну доступність автоматичної оптимізації для векторної системи Amazon OpenSearch Service. Ця функція спрощує оптимізацію векторного індексу шляхом автоматичної оцінки компромісів конфігурації щодо якості пошуку, швидкості та економії коштів. Потім ви можете запустити векторний конвеєр прийому, щоб створити оптимізований індекс у вашій колекції чи домені. Раніше для оптимізації конфігурацій індексів, зокрема алгоритму, стиснення та налаштувань механізму, потрібні були експерти та тижні тестування. Цей процес потрібно повторити, оскільки оптимізація є унікальною для конкретних характеристик даних і вимог. Тепер ви можете автоматично оптимізувати векторні бази даних менш ніж за годину без керування інфраструктурою та отримання досвіду налаштування індексів.

У цій публікації ми обговорюємо, як працює функція автоматичної оптимізації, її переваги та ділимося прикладами результатів автоматичної оптимізації.

Огляд векторного пошуку та векторних індексів

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

Переваги оптимізації векторних індексів і як це працює

Векторний механізм OpenSearch надає різноманітні конфігурації індексів, які допомагають вам досягти вигідних компромісів між якістю пошуку (відкликання), швидкістю (затримка) і вартістю (вимоги до оперативної пам’яті). Універсально оптимальної конфігурації не існує. Експерти повинні оцінити комбінації налаштувань індексу, таких як параметри алгоритму Hierarchal Navigable Small Worlds (HNSW) (наприклад, m або ef_construction), методи квантування (наприклад, скалярне, двійкове чи добуток) і параметри двигуна (наприклад, оптимізоване для пам’яті, диска або тепло-холодне зберігання). Різниця між конфігураціями може полягати в 10% або більше різниці в якості пошуку, сотнях мілісекунд у затримці пошуку або до трьох разів у економії коштів. Для великомасштабного розгортання оптимізація витрат може збільшити або порушити ваш бюджет.

Наступний малюнок є концептуальною ілюстрацією компромісів між конфігураціями індексів.

avtomatychno optymizujte vektornu bazu danyh amazon opensearch service Автоматично оптимізуйте векторну базу даних Amazon OpenSearch Service

Оптимізація векторних індексів займає багато часу. Експерти повинні скласти індекс; оцінити його швидкість, якість і вартість; і внесіть відповідні налаштування конфігурації перед повторенням цього процесу. Проведення цих експериментів у масштабі може зайняти тижні, оскільки створення та оцінка великомасштабного індексу потребує значної обчислювальної потужності, що призводить до часу обробки лише для одного індексу від годин до днів. Оптимізація є унікальною для конкретних бізнес-вимог і кожного набору даних, а компромісні рішення є суб’єктивними. Найкращі компроміси залежать від варіанту використання, наприклад пошуку внутрішньої вікі або сайту електронної комерції. Тому цей процес потрібно повторити для кожного індексу. Нарешті, якщо дані вашої програми постійно змінюються, якість вашого векторного пошуку може погіршитися, що вимагатиме від вас регулярної перебудови та повторної оптимізації векторних індексів.

Огляд рішення

За допомогою автоматичної оптимізації ви можете запускати завдання для створення рекомендацій щодо оптимізації, які складаються зі звітів із детальними вимірюваннями продуктивності та поясненнями рекомендованих конфігурацій. Ви можете налаштувати завдання автоматичної оптимізації, просто вказавши прийнятну затримку пошуку та вимоги до якості для вашої програми. Досвід роботи з алгоритмами k-NN, методами квантування та налаштуваннями двигуна не потрібен. Це дозволяє уникнути універсальних обмежень рішень, заснованих на кількох попередньо налаштованих типах розгортання, пропонуючи індивідуальне пристосування для ваших робочих навантажень. Він автоматизує ручну працю, описану раніше. Ви просто запускаєте безсерверні завдання з автоматичною оптимізацією за фіксовану ставку за завдання. Ці завдання не споживають ресурси вашої колекції чи домену. Служба OpenSearch керує окремим багатокористувацьким теплим пулом серверів і розпаралелює оцінки індексів серед захищених працівників з одним клієнтом для швидкого отримання результатів. Автоматична оптимізація також інтегрована з векторними конвеєрами прийому, тож ви можете швидко створити оптимізований векторний індекс для колекції чи домену з джерела даних Amazon Simple Storage Service (Amazon S3).

На наступному знімку екрана показано, як налаштувати завдання автоматичної оптимізації на консолі OpenSearch Service.

avtomatychno optymizujte vektornu bazu danyh amazon opensearch service Автоматично оптимізуйте векторну базу даних Amazon OpenSearch Service

Коли завдання буде завершено (зазвичай протягом 30–60 хвилин для наборів даних понад мільйон), ви зможете переглянути рекомендації та звіти, як показано на наступному знімку екрана.

1765258735 316 avtomatychno optymizujte vektornu bazu danyh amazon opensearch service Автоматично оптимізуйте векторну базу даних Amazon OpenSearch Service

Знімок екрана ілюструє приклад, коли вам потрібно вибрати найкращі компроміси. Ви обираєте перший варіант, який забезпечує найбільшу економію (через менші вимоги до пам’яті)? Або ви обираєте третій варіант, який забезпечує покращення якості пошуку на 1,76%, але за більшу вартість? Якщо ви хочете зрозуміти подробиці конфігурацій, які використовуються для отримання цих результатів, ви можете переглянути підвкладки на Подробиці панелі, наприклад Параметри алгоритму вкладка, показана на попередньому знімку екрана.

Зробивши свій вибір, ви можете створити оптимізований індекс у цільовому домені чи колекції OpenSearch Service, як показано на наступному знімку екрана. Якщо ви створюєте індекс для колекції чи домену, де працює OpenSearch 3.1+, ви можете ввімкнути прискорення GPU, щоб збільшити швидкість створення до 10 разів швидше за чверть вартості індексування.

1765258735 1 avtomatychno optymizujte vektornu bazu danyh amazon opensearch service Автоматично оптимізуйте векторну базу даних Amazon OpenSearch Service

Автоматична оптимізація результатів

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

Необхідна оперативна пам’ять = 1,1 x (байт на розмір x розміри + hnsw.parameters.mx 8) x кількість векторів

Ми оцінюємо економію коштів, порівнюючи мінімальну інфраструктуру (має достатньо оперативної пам’яті) для розміщення індексу з параметрами за замовчуванням у порівнянні з оптимізованими налаштуваннями.

Набір даних Автоматична оптимізація конфігурацій завдань Рекомендовані зміни до параметрів за замовчуванням

Необхідна оперативна пам'ять)

(% знижено)

Орієнтовна економія коштів

(Необхідні вузли даних для конфігурації за замовчуванням порівняно з оптимізованою)

Відкликати

(% приросту)

msmarco-distilbert-base-tas-b: 10 млн векторів 384D, згенерованих з MSMARCO v1 Прийнятне відкликання >= 0,95 Невелика затримка (приблизно 200-300 мс) Більше підтримки пам’яті для індексування та пошуку (ef_search=256, ef_constructon=128) Використовуйте оптимізований режим Lucene EngineDisk із 5-кратним збільшенням 4-кратного стиснення (4-бітне двійкове квантування)

5,6 ГБ

(-69,4%)

менше 75%

(3 x r8g.mediumsearch проти 3 x r8g.xlarge.search)

0,995(+2,6%)
all-mpnet-base-v2: 1 млн векторів 768D, згенерованих з MSMARCO v2.1 Прийнятне відкликання >= 0,95 Невелика затримка (приблизно 200–300 мс) Більш щільний графік HNSW (m=32) Більше підтримки індексації та пам’яті для пошуку (ef_search=256, ef_constructon=128) Режим, оптимізований для диска, із 3-кратною передискретизацією, 8-кратним стисненням (4-бітне двійкове квантування)

0,7 ГБ

(-80,9%)

Менше 50,7%

(t3.small.search проти t3.medium.search)

0,999 (+0,9%)
Cohere Embed V3: 113M векторів 1024D, згенерованих з MSMARCO v2.1 Прийнятне відкликання >= 0,95 Швидка затримка (приблизно Більш щільний графік HNSW (m=32)Більша підтримка пам’яті для індексування та пошуку (ef_search=256, ef_constructon=128)Використання стиснення Lucene engine4X (скалярне квантування uint8)

159 ГБ

(-69,7%)

Менше 50,7%

(6 x r8g.4xlarge.search проти 6 x r8g.8xlarge.search)

0,997 (+8,4%)

Висновок

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

Автоматична оптимізація доступна для векторних колекцій OpenSearch Service і доменів OpenSearch 2.17+ у регіонах AWS Схід США (Північна Вірджинія, Огайо), Захід США (Орегон), Азіатсько-Тихоокеанський регіон (Мумбаї, Сінгапур, Сідней, Токіо) та Європа (Франкфурт, Ірландія, Стокгольм).


Про авторів

Ділан Тонг

Ділан Тонг

Ділан є старшим менеджером із продуктів Amazon Web Services. Він очолює продуктові ініціативи для штучного інтелекту та машинного навчання (ML) на OpenSearch, включаючи можливості векторної бази даних OpenSearch. Ділан має десятиліття досвіду безпосередньої роботи з клієнтами та створення продуктів і рішень у сфері баз даних, аналітики та AI/ML. Ділан має ступінь бакалавра та магістра інформатики в Корнельському університеті.

Вамші Віджай Наккіртха

Вамші Віджай Наккіртха

Vamshi — менеджер із розробки програмного забезпечення, який працює над OpenSearch Project і Amazon OpenSearch Service. Його основні інтереси включають розподілені системи.

Вікаш Тіварі

Вікаш Тіварі

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

Джанель Аріта

Джанель Аріта

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

Хуйбінь Шень

Хуйбінь Шень

Хуйбін — науковець з AWS, який цікавиться машинним навчанням та його застосуванням.