Becsült olvasási idő: 9 minuti
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.
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.
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.
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:
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.
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.
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?
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.
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.
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
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…
A haditengerészeti szektor igazi világgazdasági hatalom, amely egy 150 milliárdos piac felé navigált...
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…
Emberek milliói fizetnek a streaming szolgáltatásokért, havi előfizetési díjat fizetve. Általános vélemény, hogy Ön…