tovar

Čo sú vektorové databázy, ako fungujú a potenciálny trh

Vektorová databáza je typ databázy, ktorá ukladá údaje ako vysokorozmerné vektory, ktoré sú matematickými reprezentáciami vlastností alebo atribútov. 

Tieto vektory sa zvyčajne generujú aplikáciou nejakého druhu funkcie vkladania do nespracovaných údajov, ako sú text, obrázky, zvuk, video a iné.

Vektorové databázy môžu byť definite ako nástroj, ktorý indexuje a ukladá vložené vektory na rýchle vyhľadávanie a vyhľadávanie podobností s funkciami, ako je filtrovanie metadát a horizontálne škálovanie.

Odhadovaný čas čítania: 9 minúty

Rastúci záujem investorov

V posledných týždňoch sa zvýšil záujem investorov o vektorové databázy. Od začiatku roka 2023 sme si všimli, že:

Pozrime sa podrobnejšie, čo sú vektorové databázy.

Vektory ako reprezentácia údajov

Vektorové databázy sa vo veľkej miere spoliehajú na vkladanie vektorov, čo je typ reprezentácie údajov, ktorý v sebe nesie sémantické informácie, ktoré sú dôležité pre AI na pochopenie a udržiavanie dlhodobej pamäte, z ktorej možno čerpať pri vykonávaní zložitých činností. 

Vektorové vloženie

Vektorové vloženia sú ako mapa, ale namiesto toho, aby nám ukazovali, kde sa veci na svete nachádzajú, ukazujú nám, kde sú veci v niečom tzv. vektorový priestor. Vektorový priestor je akési veľké ihrisko, kde má všetko svoje miesto na hranie. Predstavte si, že máte skupinu zvierat: mačku, psa, vtáka a rybu. Pre každý obrázok môžeme vytvoriť vektorové vloženie tak, že mu dáme špeciálnu pozíciu na ihrisku. Mačka môže byť v jednom rohu, pes na druhej strane. Vták môže byť na oblohe a ryba môže byť v rybníku. Toto miesto je multidimenzionálny priestor. Každý rozmer zodpovedá ich rôznym aspektom, napríklad ryby majú plutvy, vtáky krídla, mačky a psy nohy. Ďalším ich aspektom môže byť, že ryby patria do vody, vtáky hlavne do neba a mačky a psy k zemi. Keď máme tieto vektory, môžeme ich pomocou matematických techník zoskupiť na základe ich podobnosti. Na základe informácií, ktoré máme k dispozícii,

Takže vektorové vloženie je ako mapa, ktorá nám pomáha nájsť podobnosť medzi vecami vo vektorovom priestore. Rovnako ako mapa nám pomáha orientovať sa vo svete, vektorové vloženia pomáhajú orientovať sa na vektorovom ihrisku.

Kľúčovou myšlienkou je, že vložené objekty, ktoré sú si navzájom sémanticky podobné, majú medzi sebou menšiu vzdialenosť. Aby sme zistili, do akej miery sú si podobné, môžeme použiť funkcie vektorovej vzdialenosti, ako je euklidovská vzdialenosť, kosínusová vzdialenosť atď.

Vektorové databázy verzus vektorové knižnice

Vektorové knižnice uložiť vloženie vektorov do indexov v pamäti, aby bolo možné vykonávať vyhľadávanie podobností. Vektorové knižnice majú nasledujúce vlastnosti/obmedzenia:

  1. Uložte iba vektory : Knižnice vektorov ukladajú iba vloženia vektorov a nie priradené objekty, z ktorých boli vygenerované. To znamená, že keď vykonáme dopyt, vektorová knižnica odpovie príslušnými vektormi a ID objektov. Toto je obmedzujúce, pretože skutočné informácie sú uložené v objekte a nie id. Na vyriešenie tohto problému by sme mali objekty uložiť do sekundárneho úložiska. Potom môžeme použiť ID vrátené dotazom a priradiť ich k objektom, aby sme pochopili výsledky.
  2. Údaje indexu sú nemenné : Indexy vytvorené vektorovými knižnicami sú nemenné. To znamená, že po importovaní údajov a vytvorení indexu už nemôžeme vykonávať žiadne zmeny (žiadne nové vloženia, vymazania alebo zmeny). Ak chcete vykonať zmeny v našom indexe, budeme ho musieť prebudovať od začiatku
  3. Dopyt počas obmedzenia importu : Väčšinu vektorových knižníc nemožno počas importu údajov vyhľadávať. Najprv musíme importovať všetky naše dátové objekty. Index sa teda vytvorí po importovaní objektov. To môže byť problém pre aplikácie, ktoré vyžadujú import miliónov alebo dokonca miliárd objektov.

K dispozícii je veľa vektorových vyhľadávacích knižníc: FAISS z Facebooku, Annoy od Spotify a ScanNN spoločnosťou Google. FAISS používa metódu klastrovania, Annoy používa stromy a ScanNN používa vektorovú kompresiu. Pre každý existuje kompromis výkonu, ktorý si môžeme vybrať na základe našej aplikácie a metrík výkonu.

CRUD

Hlavnou vlastnosťou, ktorá odlišuje vektorové databázy od vektorových knižníc, je schopnosť archivovať, aktualizovať a mazať dáta. Vektorové databázy majú podporu CRUD dokončiť (vytvoriť, prečítať, aktualizovať a odstrániť), čo rieši obmedzenia vektorovej knižnice.

  1. Archivujte vektory a objekty : Databázy môžu uchovávať dátové objekty aj vektory. Keďže sú oba uložené, môžeme kombinovať vektorové vyhľadávanie so štruktúrovanými filtrami. Filtre nám umožňujú uistiť sa, že najbližší susedia zodpovedajú filtru metadát.
  2. Premenlivosť : ako vektorové databázy plne podporujú surový, môžeme ľahko pridávať, odstraňovať alebo aktualizovať položky v našom indexe po jeho vytvorení. To je užitočné najmä pri práci s neustále sa meniacimi údajmi.
  3. Vyhľadávanie v reálnom čase : Na rozdiel od vektorových knižníc nám databázy umožňujú vyhľadávať a upravovať údaje počas procesu importu. Pri načítavaní miliónov objektov zostávajú importované údaje plne dostupné a funkčné, takže nemusíte čakať na dokončenie importu, aby ste mohli začať pracovať na tom, čo už existuje.

Stručne povedané, vektorová databáza poskytuje vynikajúce riešenie na manipuláciu s vkladaním vektorov tým, že rieši obmedzenia samostatných vektorových indexov, ako je uvedené v predchádzajúcich bodoch.

Čo však robí vektorové databázy lepšie ako tradičné databázy?

Vektorové databázy verzus tradičné databázy

Tradičné databázy sú navrhnuté na ukladanie a získavanie štruktúrovaných údajov pomocou relačných modelov, čo znamená, že sú optimalizované pre dotazy založené na stĺpcoch a riadkoch údajov. Aj keď je možné ukladať vkladanie vektorov do tradičných databáz, tieto databázy nie sú optimalizované pre operácie s vektormi a nedokážu efektívne vykonávať vyhľadávanie podobností alebo iné zložité operácie na veľkých súboroch údajov.

Je to preto, že tradičné databázy používajú techniky indexovania založené na jednoduchých typoch údajov, ako sú reťazce alebo čísla. Tieto techniky indexovania nie sú vhodné pre vektorové údaje, ktoré majú vysokú dimenzionalitu a vyžadujú si špecializované techniky indexovania, ako sú invertované indexy alebo priestorové stromy.

Tradičné databázy tiež nie sú navrhnuté tak, aby zvládli veľké množstvo neštruktúrovaných alebo pološtruktúrovaných údajov, ktoré sa často spájajú s vkladaním vektorov. Napríklad obrazový alebo zvukový súbor môže obsahovať milióny údajových bodov, ktoré tradičné databázy nedokážu efektívne spracovať.

Na druhej strane vektorové databázy sú špeciálne navrhnuté na ukladanie a získavanie vektorových údajov a sú optimalizované na vyhľadávanie podobností a iné zložité operácie na veľkých súboroch údajov. Používajú špecializované indexovacie techniky a algoritmy navrhnuté na prácu s vysokorozmernými údajmi, vďaka čomu sú oveľa efektívnejšie ako tradičné databázy na ukladanie a získavanie vektorových vložení.

Teraz, keď ste toho o vektorových databázach toľko čítali, možno sa pýtate, ako fungujú? Pozrime sa.

Ako funguje vektorová databáza?

Všetci vieme, ako fungujú relačné databázy: ukladajú reťazce, čísla a iné typy skalárnych údajov do riadkov a stĺpcov. Na druhej strane vektorová databáza funguje na vektoroch, takže spôsob, akým sa optimalizuje a dopytuje, je celkom odlišný.

V tradičných databázach sa zvyčajne dotazujeme na riadky v databáze, kde sa hodnota zvyčajne presne zhoduje s naším dopytom. Vo vektorových databázach používame metriku podobnosti, aby sme našli vektor, ktorý sa najviac podobá nášmu dopytu.

Vektorová databáza využíva kombináciu niekoľkých algoritmov, ktoré sa všetky podieľajú na vyhľadávaní najbližšieho suseda (ANN). Tieto algoritmy optimalizujú vyhľadávanie pomocou hashovania, kvantizácie alebo vyhľadávania na základe grafov.

Tieto algoritmy sú zostavené do potrubia, ktoré poskytuje rýchle a presné vyhľadávanie susedov dopytovaného vektora. Keďže vektorová databáza poskytuje približné výsledky, hlavné kompromisy, ktoré zvažujeme, sú medzi presnosťou a rýchlosťou. Čím presnejší je výsledok, tým pomalší bude dopyt. Dobrý systém však môže poskytnúť ultrarýchle vyhľadávanie s takmer dokonalou presnosťou.

  • Indexovanie : Vektorová databáza indexuje vektory pomocou algoritmu ako PQ, LSH alebo HNSW. Tento krok spája vektory s dátovou štruktúrou, ktorá umožní rýchlejšie vyhľadávanie.
  • Otázka : vektorová databáza porovnáva indexovaný vektor dopytu s indexovanými vektormi v množine údajov s cieľom nájsť najbližších susedov (aplikovaním metriky podobnosti používanej týmto indexom)
  • Následné spracovanie : V niektorých prípadoch vektorová databáza získa konečných najbližších susedov z množiny údajov a následne ich spracuje, aby vrátila konečné výsledky. Tento krok môže zahŕňať preklasifikovanie najbližších susedov pomocou inej miery podobnosti.

výhody

Vektorové databázy sú výkonným nástrojom na vyhľadávanie podobností a ďalšie zložité operácie s veľkými súbormi údajov, ktoré nemožno efektívne vykonávať pomocou tradičných databáz. Na vybudovanie funkčnej vektorovej databázy sú vloženia nevyhnutné, pretože zachytávajú sémantický význam údajov a umožňujú presné vyhľadávanie podobností. Na rozdiel od vektorových knižníc sú vektorové databázy navrhnuté tak, aby vyhovovali nášmu prípadu použitia, vďaka čomu sú ideálne pre aplikácie, kde je kritický výkon a škálovateľnosť. S nárastom strojového učenia a umelej inteligencie sa vektorové databázy stávajú čoraz dôležitejšími pre širokú škálu aplikácií vrátane odporúčacích systémov, vyhľadávania obrázkov, sémantickej podobnosti a zoznam pokračuje. Keďže sa táto oblasť neustále vyvíja, môžeme očakávať, že v budúcnosti uvidíme ešte inovatívnejšie aplikácie vektorových databáz.

Ercole Palmeri

Inovačný bulletin
Nenechajte si ujsť najdôležitejšie novinky o inováciách. Prihláste sa na ich odber e-mailom.

Nedávne články

Výhody farebných stránok pre deti - svet mágie pre všetky vekové kategórie

Rozvíjanie jemnej motoriky pomocou vyfarbovania pripravuje deti na zložitejšie zručnosti, ako je písanie. Na farbenie…

2 mája 2024

Budúcnosť je tu: Ako námorný priemysel prináša revolúciu do globálnej ekonomiky

Námorný sektor je skutočnou globálnou ekonomickou veľmocou, ktorá smerovala k 150 miliardovému trhu...

1 mája 2024

Vydavatelia a OpenAI podpisujú dohody o regulácii toku informácií spracovávaných umelou inteligenciou

Minulý pondelok Financial Times oznámili dohodu s OpenAI. FT licencuje svoju žurnalistiku svetovej triedy…

Apríla 30 2024

Online platby: Takto budete vďaka streamovacím službám platiť navždy

Milióny ľudí platia za streamovacie služby a platia mesačné predplatné. Je bežný názor, že si…

Apríla 29 2024