Приблизний час читання: 9 хвилин
Останніми тижнями спостерігається зростання інтересу інвесторів до векторних баз даних. З початку 2023 року ми помітили, що:
Розберемося докладніше, що таке векторні бази даних.
Векторні бази даних значною мірою покладаються на векторне вбудовування, тип представлення даних, який несе в собі семантичну інформацію, яка є критично важливою для AI, щоб отримати розуміння та підтримувати довготривалу пам’ять для використання під час виконання складних дій.
Векторні вставки схожі на карту, але замість того, щоб показувати нам, де знаходяться речі у світі, вони показують нам, де знаходяться речі в тому, що називається векторний простір. Векторний простір — це свого роду великий майданчик, де все має своє місце для гри. Уявіть, що у вас є група тварин: кіт, собака, птах і риба. Ми можемо створити векторне вбудовування для кожного зображення, надавши йому спеціальну позицію на майданчику. Кішка може бути в одному кутку, собака – в іншому. Птах міг бути в небі, а риба могла бути в ставку. Це місце є багатовимірним простором. Кожен вимір відповідає різним їх аспектам, наприклад, риби мають плавці, птахи мають крила, кішки та собаки мають ноги. Іншим їхнім аспектом може бути те, що риби належать до води, птахи — переважно до неба, а коти й собаки — до землі. Отримавши ці вектори, ми можемо використовувати математичні методи, щоб згрупувати їх на основі їх подібності. На основі інформації, яку ми маємо,
Таким чином, векторні вбудовування схожі на карту, яка допомагає нам знаходити подібність між речами у векторному просторі. Подібно до того, як карта допомагає нам орієнтуватися у світі, векторні вставки допомагають орієнтуватися у векторному майданчику.
Ключова ідея полягає в тому, що вбудовування, які семантично схожі одне на одного, мають меншу відстань між собою. Щоб дізнатися, наскільки вони схожі, ми можемо використовувати векторні функції відстані, такі як евклідова відстань, косинусна відстань тощо.
Векторні бібліотеки зберігати вбудовані вектори в індекси в пам’яті, щоб виконувати пошук подібності. Векторні бібліотеки мають такі характеристики/обмеження:
Існує багато доступних бібліотек векторного пошуку: FAISS Facebook, дратувати від Spotify і ScanNN від Google. FAISS використовує метод кластеризації, Annoy використовує дерева, а ScanNN використовує векторне стиснення. Для кожного є компроміс продуктивності, який ми можемо вибрати на основі нашої програми та показників продуктивності.
Головною особливістю, яка відрізняє векторні бази даних від векторних бібліотек, є можливість архівувати, оновлювати та видаляти дані. Векторні бази даних мають підтримку CRUD завершити (створення, читання, оновлення та видалення), що усуває обмеження векторної бібліотеки.
Коротше кажучи, векторна база даних забезпечує чудове рішення для обробки векторних вбудованих даних, усуваючи обмеження автономних векторних індексів, як обговорювалося в попередніх пунктах.
Але що робить векторні бази даних кращими від традиційних?
Традиційні бази даних призначені для зберігання та отримання структурованих даних за допомогою реляційних моделей, що означає, що вони оптимізовані для запитів на основі стовпців і рядків даних. Хоча можна зберігати вбудовані вектори в традиційних базах даних, ці бази даних не оптимізовані для векторних операцій і не можуть ефективно виконувати пошук схожості чи інші складні операції з великими наборами даних.
Це тому, що традиційні бази даних використовують методи індексування на основі простих типів даних, таких як рядки або числа. Ці методи індексування не підходять для векторних даних, які мають високу розмірність і потребують спеціальних методів індексування, таких як інвертовані індекси або просторові дерева.
Крім того, традиційні бази даних не призначені для роботи з великими обсягами неструктурованих або напівструктурованих даних, які часто пов’язують із вбудованими векторами. Наприклад, зображення чи аудіофайл можуть містити мільйони точок даних, які традиційні бази даних не можуть ефективно обробляти.
Векторні бази даних, з іншого боку, спеціально розроблені для зберігання та отримання векторних даних і оптимізовані для пошуку подібності та інших складних операцій із великими наборами даних. Вони використовують спеціалізовані методи індексування та алгоритми, розроблені для роботи з даними великої розмірності, що робить їх набагато ефективнішими, ніж традиційні бази даних для зберігання та отримання векторних вбудованих даних.
Тепер, коли ви прочитали стільки про векторні бази даних, ви можете задатися питанням, як вони працюють? Давайте поглянемо.
Ми всі знаємо, як працюють реляційні бази даних: вони зберігають рядки, числа та інші типи скалярних даних у рядках і стовпцях. З іншого боку, векторна база даних працює з векторами, тому спосіб її оптимізації та запитів є зовсім іншим.
У традиційних базах даних ми зазвичай запитуємо рядки в базі даних, значення яких зазвичай точно збігаються з нашим запитом. У векторних базах даних ми застосовуємо метрику подібності, щоб знайти вектор, найбільш схожий на наш запит.
Векторна база даних використовує комбінацію кількох алгоритмів, які беруть участь у пошуку найближчого сусіда (ANN). Ці алгоритми оптимізують пошук шляхом хешування, квантування або пошуку на основі графів.
Ці алгоритми зібрані в конвеєр, який забезпечує швидкий і точний пошук сусідів запитуваного вектора. Оскільки векторна база даних забезпечує приблизні результати, ми розглядаємо основні компроміси між точністю та швидкістю. Чим точніший результат, тим повільнішим буде запит. Проте хороша система може забезпечити надшвидкий пошук із майже ідеальною точністю.
Векторні бази даних є потужним інструментом для пошуку подібності та інших складних операцій над великими наборами даних, які неможливо ефективно виконати за допомогою традиційних баз даних. Щоб побудувати функціональну векторну базу даних, вставки є важливими, оскільки вони фіксують семантичне значення даних і забезпечують точний пошук подібності. На відміну від векторних бібліотек, векторні бази даних розроблені відповідно до нашого сценарію використання, що робить їх ідеальними для програм, де продуктивність і масштабованість є критичними. З розвитком машинного навчання та штучного інтелекту векторні бази даних стають все більш важливими для широкого спектру застосувань, включаючи системи рекомендацій, пошук зображень, семантичну подібність і список можна продовжувати. Оскільки галузь продовжує розвиватися, ми можемо очікувати ще більше інноваційних застосувань векторних баз даних у майбутньому.
Ercole Palmeri
Минулого понеділка Financial Times оголосила про угоду з OpenAI. FT ліцензує свою журналістику світового рівня…
Мільйони людей оплачують потокові послуги, сплачуючи щомісячну абонентську плату. Поширена думка, що ви…
Coveware від Veeam продовжить надавати послуги реагування на інциденти кібервимагання. Coveware запропонує криміналістику та можливості відновлення…
Прогнозне технічне обслуговування революціонізує нафтогазовий сектор завдяки інноваційному та проактивному підходу до управління заводом.…