Cikkek

Mik azok a vektoros adatbázisok, hogyan működnek és a potenciális piac

A vektoradatbázis egy olyan típusú adatbázis, amely az adatokat nagydimenziós vektorokként tárolja, amelyek a jellemzők vagy attribútumok matematikai reprezentációi. 

Ezeket a vektorokat általában úgy állítják elő, hogy valamilyen beágyazási függvényt alkalmaznak nyers adatokra, például szövegre, képekre, hangra, videóra és egyebekre.

A vektoros adatbázisok lehetnek defiA nite olyan eszköz, amely indexeli és tárolja a vektorbeágyazásokat a gyors visszakeresés és a hasonlóságkeresés érdekében, olyan funkciókkal, mint a metaadat-szűrés és a vízszintes méretezés.

Becsült olvasási idő: 9 minuti

Növekvő befektetői érdeklődés

Az elmúlt hetekben megnőtt a befektetői érdeklődés a vektoros adatbázisok iránt. 2023 eleje óta azt tapasztaltuk, hogy:

Nézzük meg részletesebben, melyek azok a vektoradatbázisok.

Vektorok mint adatábrázolás

A vektoros adatbázisok nagymértékben támaszkodnak a vektoros beágyazásra, egy olyan adatreprezentációra, amely magában hordozza azokat a szemantikai információkat, amelyek kritikusak az AI számára ahhoz, hogy megértsék és fenntartsák a hosszú távú memóriát, amelyre összetett tevékenységek végrehajtása során támaszkodhat. 

Vektor beágyazások

A vektoros beágyazások olyanok, mint egy térkép, de ahelyett, hogy megmutatnák, hol vannak a dolgok a világban, azt mutatják meg, hogy hol vannak a dolgok egy ún. vektor tér. A vektortér egyfajta nagy játszótér, ahol mindennek megvan a maga helye. Képzeld el, hogy van egy állatcsoportod: egy macska, egy kutya, egy madár és egy hal. Minden képhez létrehozhatunk egy vektoros beágyazást úgy, hogy a játszótéren speciális pozíciót adunk neki. Lehet, hogy a macska az egyik sarokban, a kutya a másik oldalon. A madár lehet az égen, a hal pedig a tóban. Ez a hely egy többdimenziós tér. Mindegyik dimenzió más-más aspektusának felel meg, például a halaknak van uszonya, a madaraknak szárnyuk, a macskáknak és a kutyáknak lábaik. Egy másik aspektusuk lehet, hogy a halak a vízhez, a madarak elsősorban az éghez, a macskák és kutyák a földhöz tartoznak. Ha megvannak ezek a vektorok, matematikai technikákkal csoportosíthatjuk őket hasonlóságuk alapján. A birtokunkban lévő információk alapján

Tehát a vektoros beágyazások olyanok, mint egy térkép, amely segít megtalálni a hasonlóságot a vektortérben lévő dolgok között. Ahogy a térkép segít eligazodni a világban, a vektorbeágyazás segít eligazodni a vektoros játszótéren.

A kulcsgondolat az, hogy az egymáshoz szemantikailag hasonló beágyazások között kisebb a távolság. Hogy megtudjuk, mennyire hasonlítanak egymásra, használhatunk vektortávolság-függvényeket, például euklideszi távolságot, koszinusz távolságot stb.

Vektoros adatbázisok vs vektorkönyvtárak

A vektorkönyvtárak vektorok beágyazásait tárolja indexekbe a memóriában a hasonlósági keresések végrehajtása érdekében. A vektorkönyvtárak a következő jellemzőkkel/korlátozásokkal rendelkeznek:

  1. Csak vektorok tárolása : A vektorkönyvtárak csak a vektorok beágyazásait tárolják, és nem a kapcsolódó objektumokat, amelyekből előállították. Ez azt jelenti, hogy amikor lekérdezünk, egy vektorkönyvtár válaszol a megfelelő vektorokkal és objektumazonosítókkal. Ez korlátozza, mivel a tényleges információt az objektum tárolja, és nem az azonosító. A probléma megoldásához az objektumokat másodlagos tárolóban kell tárolnunk. Ezután felhasználhatjuk a lekérdezés által visszaadott azonosítókat, és objektumokkal párosíthatjuk az eredmények megértéséhez.
  2. Az indexadatok megváltoztathatatlanok : A vektorkönyvtárak által előállított indexek megváltoztathatatlanok. Ez azt jelenti, hogy miután importáltuk adatainkat és felépítettük az indexet, nem tudunk semmilyen változtatást végrehajtani (nincs új beillesztés, törlés vagy módosítás). Ha módosítani szeretnénk az indexünket, újra kell építenünk azt a semmiből
  3. Lekérdezés az importálás korlátozása közben : A legtöbb vektorkönyvtárat nem lehet lekérdezni adatok importálása közben. Először importálnunk kell az összes adatobjektumunkat. Tehát az index az objektumok importálása után jön létre. Ez problémát jelenthet azoknál az alkalmazásoknál, amelyek több millió vagy akár milliárd objektumot igényelnek.

Számos vektorkereső könyvtár áll rendelkezésre: FAISS a Facebookról, bosszantó a Spotify és ScanNN a Google által. A FAISS klaszterezési módszert, az Annoy fákat, a ScanNN pedig vektortömörítést használ. Mindegyikhez tartozik egy teljesítmény kompromisszum, amelyet az alkalmazási és teljesítménymutatóink alapján választhatunk.

CRUD

A vektoros adatbázisokat a vektorkönyvtáraktól megkülönböztető fő jellemző az adatok archiválása, frissítése és törlése. A vektor adatbázisok CRUD támogatással rendelkeznek teljes (létrehozás, olvasás, frissítés és törlés), amely megoldja a vektorkönyvtár korlátait.

  1. Vektorok és objektumok archiválása : Az adatbázisok adatobjektumokat és vektorokat is tárolhatnak. Mivel mindkettő tárolva van, a vektorkeresést kombinálhatjuk strukturált szűrőkkel. A szűrők segítségével megbizonyosodhatunk arról, hogy a legközelebbi szomszédok megegyeznek a metaadatszűrővel.
  2. Változékonyság : mivel a vektoros adatbázisok teljes mértékben támogatják nyers, könnyen hozzáadhatunk, eltávolíthatunk vagy frissíthetünk bejegyzéseket az indexünkben annak létrehozása után. Ez különösen akkor hasznos, ha folyamatosan változó adatokkal dolgozik.
  3. Valós idejű keresés : A vektorkönyvtáraktól eltérően az adatbázisok lehetővé teszik, hogy lekérdezzük és módosítsuk adatainkat az importálási folyamat során. Miközben több millió objektumot töltünk be, az importált adatok továbbra is teljes mértékben elérhetőek és működőképesek maradnak, így nem kell megvárnia az importálás befejezését, hogy elkezdjen dolgozni a már meglévőn.

Röviden, a vektoradatbázis kiváló megoldást kínál a vektorbeágyazások kezelésére azáltal, hogy kezeli az önálló vektorindexek korlátait, amint azt az előző pontokban tárgyaltuk.

De mi teszi a vektoros adatbázisokat jobbá a hagyományos adatbázisokhoz képest?

Vektor adatbázisok kontra hagyományos adatbázisok

A hagyományos adatbázisok strukturált adatok tárolására és lekérésére szolgálnak relációs modellek segítségével, ami azt jelenti, hogy oszlopokon és adatsorokon alapuló lekérdezésekre vannak optimalizálva. Noha lehetséges a vektorbeágyazások tárolása hagyományos adatbázisokban, ezek az adatbázisok nincsenek vektorműveletekre optimalizálva, és nem tudnak hatékonyan hasonlósági kereséseket vagy más összetett műveleteket végrehajtani nagy adatkészleteken.

Ennek az az oka, hogy a hagyományos adatbázisok egyszerű adattípusokon, például karakterláncokon vagy számokon alapuló indexelési technikákat használnak. Ezek az indexelési technikák nem alkalmasak vektoradatokhoz, amelyek nagy dimenziójúak, és speciális indexelési technikákat igényelnek, például fordított indexeket vagy térbeli fákat.

Ezenkívül a hagyományos adatbázisokat nem úgy tervezték, hogy kezeljék a vektorbeágyazásokhoz gyakran kapcsolódó nagy mennyiségű strukturálatlan vagy félig strukturált adatot. Például egy kép vagy hangfájl több millió adatpontot tartalmazhat, amelyeket a hagyományos adatbázisok nem tudnak hatékonyan kezelni.

A vektoradatbázisokat ezzel szemben kifejezetten vektoradatok tárolására és lekérésére tervezték, és hasonlóságkeresésre és más összetett műveletekre optimalizálták nagy adatkészleteken. Speciális indexelési technikákat és algoritmusokat használnak, amelyeket nagy dimenziós adatokkal való munkavégzésre terveztek, így sokkal hatékonyabbak a hagyományos adatbázisoknál a vektorbeágyazások tárolására és visszakeresésére.

Most, hogy már annyit olvasott a vektoros adatbázisokról, felmerülhet a kérdés, hogyan működnek? Lássuk.

Hogyan működik egy vektoros adatbázis?

Mindannyian tudjuk, hogyan működnek a relációs adatbázisok: karakterláncokat, számokat és más típusú skaláris adatokat tárolnak sorokban és oszlopokban. Másrészt a vektoros adatbázis vektorokon működik, így az optimalizálás és a lekérdezés módja egészen más.

A hagyományos adatbázisokban általában olyan sorokat kérdezünk le az adatbázisban, ahol az érték általában pontosan megegyezik a lekérdezésünkkel. A vektoros adatbázisokban hasonlósági metrikát alkalmazunk, hogy megtaláljuk a lekérdezésünkhöz leginkább hasonlító vektort.

A vektoradatbázis több olyan algoritmus kombinációját használja, amelyek mindegyike részt vesz a legközelebbi szomszéd keresésében (ANN). Ezek az algoritmusok hash-el, kvantálással vagy gráf alapú kereséssel optimalizálják a keresést.

Ezek az algoritmusok egy folyamatba vannak összeállítva, amely gyors és pontos lekérdezést biztosít a lekérdezett vektor szomszédjairól. Mivel a vektoradatbázis hozzávetőleges eredményeket ad, a fő kompromisszumokat a pontosság és a sebesség között tartjuk szem előtt. Minél pontosabb az eredmény, annál lassabb lesz a lekérdezés. Egy jó rendszer azonban ultragyors keresést biztosít közel tökéletes pontossággal.

  • Indexelés : A vektoradatbázis olyan algoritmusok segítségével indexeli a vektorokat, mint a PQ, LSH vagy HNSW. Ez a lépés a vektorokat egy olyan adatstruktúrához társítja, amely gyorsabb keresést tesz lehetővé.
  • Kérdés : a vektoradatbázis összehasonlítja az indexelt lekérdezési vektort az adatkészletben lévő indexelt vektorokkal, hogy megtalálja a legközelebbi szomszédokat (az index által használt hasonlósági mérőszám alkalmazásával)
  • Utófeldolgozás : Bizonyos esetekben a vektoradatbázis lekéri a végső legközelebbi szomszédokat az adatkészletből, és utófeldolgozással visszaadja a végső eredményeket. Ez a lépés magában foglalhatja a legközelebbi szomszédok átsorolását egy másik hasonlósági mérték használatával.

Előnyök

A vektoradatbázisok hatékony eszközt jelentenek a hasonlósági keresésekhez és más összetett műveletekhez nagy adathalmazokon, amelyeket hagyományos adatbázisokkal nem lehet hatékonyan végrehajtani. A funkcionális vektoros adatbázis felépítéséhez elengedhetetlenek a beágyazások, mivel megragadják az adatok szemantikai jelentését, és pontos hasonlósági keresést tesznek lehetővé. A vektoros könyvtárakkal ellentétben a vektoros adatbázisokat úgy tervezték meg, hogy megfeleljenek a használati esetünknek, így ideálisak olyan alkalmazásokhoz, ahol a teljesítmény és a méretezhetőség kritikus fontosságúak. A gépi tanulás és a mesterséges intelligencia térnyerésével a vektoros adatbázisok egyre fontosabbá válnak számos alkalmazás számára, beleértve az ajánlórendszereket, a képkeresést, a szemantikai hasonlóságot, és a lista folytatható. Ahogy a terület folyamatosan fejlődik, a jövőben még innovatívabb vektoradatbázis-alkalmazásokra számíthatunk.

Ercole Palmeri

Innovációs hírlevél
Ne maradjon le az innovációval kapcsolatos legfontosabb hírekről. Regisztráljon, hogy megkapja őket e-mailben.

Friss cikkek

A színező oldalak előnyei gyerekeknek – a varázslatok világa minden korosztály számára

A finom motoros készségek színezéssel történő fejlesztése felkészíti a gyerekeket olyan összetettebb készségekre, mint az írás. Kiszínezni…

Május 2 2024

A jövő itt van: Hogyan forradalmasítja a hajózási ágazat a globális gazdaságot

A haditengerészeti szektor igazi világgazdasági hatalom, amely egy 150 milliárdos piac felé navigált...

Május 1 2024

A kiadók és az OpenAI megállapodásokat írnak alá a mesterséges intelligencia által feldolgozott információáramlás szabályozására

Múlt hétfőn a Financial Times bejelentette, hogy megállapodást köt az OpenAI-val. Az FT engedélyezi világszínvonalú újságírását…

30 április 2024

Online fizetés: Így fizethet örökké a streaming szolgáltatások

Emberek milliói fizetnek a streaming szolgáltatásokért, havi előfizetési díjat fizetve. Általános vélemény, hogy Ön…

29 április 2024