Членове

Какво представляват векторните бази данни, как работят и потенциален пазар

Векторната база данни е тип база данни, която съхранява данни като високомерни вектори, които са математически представяния на функции или атрибути. 

Тези вектори обикновено се генерират чрез прилагане на някаква функция за вграждане към необработени данни, като текст, изображения, аудио, видео и други.

Векторните бази данни могат да бъдат definite като инструмент, който индексира и съхранява векторни вграждания за бързо извличане и търсене по сходство, с функции като филтриране на метаданни и хоризонтално мащабиране.

Очаквано време за четене: 9 Minuti

Нарастващ инвеститорски интерес

През последните седмици се забелязва повишен интерес на инвеститорите към векторните бази данни. От началото на 2023 г. забелязахме, че:

Нека видим по-подробно какво представляват векторните бази данни.

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

Векторните бази данни разчитат в голяма степен на векторно вграждане, тип представяне на данни, което носи в себе си семантичната информация, която е от решаващо значение за AI, за да получи разбиране и да поддържа дългосрочна памет, от която да се възползва при изпълнение на сложни дейности. 

Векторни вграждания

Векторните вграждания са като карта, но вместо да ни показват къде са нещата по света, те ни показват къде са нещата в нещо, наречено векторно пространство. Векторното пространство е нещо като голяма детска площадка, където всичко има своето място за игра. Представете си, че имате група животни: котка, куче, птица и риба. Можем да създадем векторно вграждане за всяко изображение, като му дадем специална позиция на игралната площадка. Котката може да е в единия ъгъл, а кучето от другата страна. Птицата може да е в небето, а рибата може да е в езерото. Това място е многоизмерно пространство. Всяко измерение отговаря на различни техни аспекти, например рибите имат перки, птиците имат крила, котките и кучетата имат крака. Друг аспект от тях може да е, че рибите принадлежат към водата, птиците главно към небето, а котките и кучетата към земята. След като имаме тези вектори, можем да използваме математически техники, за да ги групираме въз основа на тяхната прилика. Въз основа на информацията, която притежаваме,

И така, векторните вграждания са като карта, която ни помага да намерим прилики между нещата във векторното пространство. Точно както картата ни помага да се ориентираме в света, векторните вграждания ни помагат да се ориентираме във векторната площадка.

Ключовата идея е, че вгражданията, които са семантично подобни едно на друго, имат по-малко разстояние между тях. За да разберем колко си приличат, можем да използваме векторни функции за разстояние като евклидово разстояние, косинусово разстояние и т.н.

Векторни бази данни срещу векторни библиотеки

Векторните библиотеки съхранявайте вграждания на вектори в индекси в паметта, за да извършвате търсения по подобие. Векторните библиотеки имат следните характеристики/ограничения:

  1. Съхранявайте само вектори : Векторните библиотеки съхраняват само вграждания на вектори, а не свързаните обекти, от които са генерирани. Това означава, че когато направим заявка, векторната библиотека ще отговори със съответните вектори и идентификатори на обекти. Това е ограничаващо, тъй като действителната информация се съхранява в обекта, а не в идентификатора. За да разрешим този проблем, трябва да съхраняваме обектите във вторично хранилище. След това можем да използваме идентификаторите, върнати от заявката, и да ги съпоставим с обекти, за да разберем резултатите.
  2. Данните за индекса са неизменни : Индексите, произведени от векторни библиотеки, са неизменни. Това означава, че след като импортираме нашите данни и изградим индекса, не можем да правим никакви промени (без нови вмъквания, изтривания или промени). За да направим промени в нашия индекс, ще трябва да го изградим отново от нулата
  3. Заявка при ограничаване на импортирането : Повечето векторни библиотеки не могат да бъдат запитвани, докато импортирате данни. Първо трябва да импортираме всички наши обекти с данни. Така че индексът се създава след импортирането на обектите. Това може да е проблем за приложения, които изискват милиони или дори милиарди обекти да бъдат импортирани.

Има много налични библиотеки за векторно търсене: FAISS на Facebook, Annoy от Spotify и ScanNN от Google. FAISS използва метод на групиране, Annoy използва дървета и ScanNN използва векторна компресия. Има компромис с производителността за всеки, който можем да изберем въз основа на нашето приложение и показатели за производителност.

CRUD

Основната характеристика, която отличава векторните бази данни от векторните библиотеки, е възможността за архивиране, актуализиране и изтриване на данни. Векторните бази данни имат CRUD поддръжка пълно (създаване, четене, актуализиране и изтриване), което разрешава ограниченията на векторната библиотека.

  1. Архивни вектори и обекти : Базите данни могат да съхраняват както обекти с данни, така и вектори. Тъй като и двете се съхраняват, можем да комбинираме векторно търсене със структурирани филтри. Филтрите ни позволяват да се уверим, че най-близките съседи съответстват на филтъра за метаданни.
  2. Изменчивост : като векторни бази данни напълно поддържани мръсотия, можем лесно да добавяме, премахваме или актуализираме записи в нашия индекс, след като е бил създаден. Това е особено полезно при работа с постоянно променящи се данни.
  3. Търсене в реално време : За разлика от векторните библиотеки, базите данни ни позволяват да правим заявки и да променяме нашите данни по време на процеса на импортиране. Докато зареждаме милиони обекти, импортираните данни остават напълно достъпни и работещи, така че не е нужно да чакате импортирането да завърши, за да започнете да работите върху това, което вече е там.

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

Но какво прави векторните бази данни по-добри от традиционните бази данни?

Векторни бази данни срещу традиционни бази данни

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

Това е така, защото традиционните бази данни използват техники за индексиране, базирани на прости типове данни, като низове или числа. Тези техники за индексиране не са подходящи за векторни данни, които имат голяма размерност и изискват специализирани техники за индексиране като обърнати индекси или пространствени дървета.

Освен това традиционните бази данни не са проектирани да обработват големи количества неструктурирани или полуструктурирани данни, често свързани с векторни вграждания. Например изображение или аудио файл може да съдържа милиони точки от данни, които традиционните бази данни не могат да обработват ефективно.

Векторните бази данни, от друга страна, са специално проектирани да съхраняват и извличат векторни данни и са оптимизирани за търсене на сходства и други сложни операции върху големи набори от данни. Те използват специализирани техники за индексиране и алгоритми, предназначени да работят с високоразмерни данни, което ги прави много по-ефективни от традиционните бази данни за съхраняване и извличане на векторни вграждания.

След като сте чели толкова много за векторните бази данни, може би се чудите как работят? Нека да разгледаме.

Как работи векторната база данни?

Всички знаем как работят релационните бази данни: те съхраняват низове, числа и други видове скаларни данни в редове и колони. От друга страна, векторната база данни работи с вектори, така че начинът, по който се оптимизира и прави заявки, е доста различен.

В традиционните бази данни обикновено правим заявки за редове в базата данни, където стойността обикновено съвпада точно с нашата заявка. Във векторните бази данни прилагаме показател за сходство, за да намерим вектор, който е най-сходен с нашата заявка.

Векторната база данни използва комбинация от няколко алгоритъма, които всички участват в търсенето на най-близкия съсед (ANN). Тези алгоритми оптимизират търсенето чрез хеширане, квантуване или базирано на графика търсене.

Тези алгоритми са сглобени в конвейер, който осигурява бързо и точно извличане на съседите на заявен вектор. Тъй като векторната база данни предоставя приблизителни резултати, основните компромиси, които разглеждаме, са между точност и скорост. Колкото по-точен е резултатът, толкова по-бавна ще бъде заявката. Една добра система обаче може да осигури ултра-бързо търсене с почти перфектна точност.

  • Индексиране : Векторната база данни индексира вектори с помощта на алгоритъм като PQ, LSH или HNSW. Тази стъпка свързва векторите със структура от данни, което ще позволи по-бързо търсене.
  • Запитване : векторната база данни сравнява индексирания вектор на заявката с индексираните вектори в набора от данни, за да намери най-близките съседи (прилагайки показател за сходство, използван от този индекс)
  • Последваща обработка : В някои случаи векторната база данни извлича крайните най-близки съседи от набора от данни и ги обработва след това, за да върне крайните резултати. Тази стъпка може да включва повторно класифициране на най-близките съседи, като се използва различна мярка за сходство.

Ползи

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

Ercole Palmeri

Иновационен бюлетин
Не пропускайте най-важните новини за иновациите. Регистрирайте се, за да ги получавате по имейл.

Последни статии

Иновативна намеса в добавената реалност с Apple Viewer в поликлиниката в Катания

Операция по офталмопластика с помощта на търговския зрител Apple Vision Pro беше извършена в поликлиниката в Катания...

3 май 2024

Предимствата на страниците за оцветяване за деца - свят на магия за всички възрасти

Развитието на фини двигателни умения чрез оцветяване подготвя децата за по-сложни умения като писане. Оцветявам…

2 май 2024

Бъдещето е тук: Как корабната индустрия революционизира глобалната икономика

Военноморският сектор е истинска световна икономическа сила, която се е насочила към пазар от 150 милиарда...

1 май 2024

Издателите и OpenAI подписват споразумения за регулиране на потока от информация, обработвана от изкуствения интелект

Миналия понеделник Financial Times обяви сделка с OpenAI. FT лицензира своята журналистика от световна класа...

30 април 2024

Прочетете Иновация на вашия език

Иновационен бюлетин
Не пропускайте най-важните новини за иновациите. Регистрирайте се, за да ги получавате по имейл.

Следвайте ни