Odhadovaný čas čítania: 9 minúty
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.
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ž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é 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:
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.
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.
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?
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.
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.
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
Rozvíjanie jemnej motoriky pomocou vyfarbovania pripravuje deti na zložitejšie zručnosti, ako je písanie. Na farbenie…
Námorný sektor je skutočnou globálnou ekonomickou veľmocou, ktorá smerovala k 150 miliardovému trhu...
Minulý pondelok Financial Times oznámili dohodu s OpenAI. FT licencuje svoju žurnalistiku svetovej triedy…
Milióny ľudí platia za streamovacie služby a platia mesačné predplatné. Je bežný názor, že si…