Timp de citire estimat: 9 minute
În ultimele săptămâni, a existat o creștere a interesului investitorilor pentru bazele de date vectoriale. De la începutul anului 2023 am observat că:
Să vedem mai detaliat ce sunt bazele de date vectoriale.
Bazele de date vectoriale se bazează în mare măsură pe încorporarea vectorială, un tip de reprezentare a datelor care poartă în ea informații semantice esențiale pentru inteligența artificială pentru a obține înțelegere și a menține memoria pe termen lung pe care să o folosească în timpul execuției.
Înglobările vectoriale sunt ca o hartă, dar în loc să ne arate unde sunt lucrurile în lume, ele ne arată unde sunt lucrurile în ceva numit spațiu vectorial. Spațiul vectorial este un fel de mare loc de joacă în care totul are locul lui de jucat. Imaginează-ți că ai un grup de animale: o pisică, un câine, o pasăre și un pește. Putem crea un vector încorporat pentru fiecare imagine dându-i o poziție specială în locul de joacă. Pisica poate fi într-un colț, câinele pe cealaltă parte. Pasărea ar putea fi pe cer, iar peștele ar putea fi în iaz. Acest loc este un spațiu multidimensional. Fiecare dimensiune corespunde cu diferite aspecte ale acestora, de exemplu, peștii au aripioare, păsările au aripi, pisicile și câinii au picioare. Un alt aspect al acestora poate fi faptul că peștii aparțin apei, păsările în principal cerului și pisicile și câinii la pământ. Odată ce avem acești vectori, putem folosi tehnici matematice pentru a-i grupa în funcție de asemănarea lor. Pe baza informațiilor pe care le avem,
Deci, înglobările vectoriale sunt ca o hartă care ne ajută să găsim asemănarea dintre lucrurile din spațiul vectorial. Așa cum o hartă ne ajută să ne orientăm în lume, încorporarea vectorială ne ajută să ne orientăm în locul de joacă cu vectori.
Ideea cheie este că înglobările care sunt similare semantic între ele au o distanță mai mică între ele. Pentru a afla cât de asemănătoare sunt, putem folosi funcții de distanță vectorială precum distanța euclidiană, distanța cosinus etc.
Biblioteci vectoriale ele stochează încorporarea vectorilor în indecși în memorie, pentru a efectua căutări de similaritate. Bibliotecile vectoriale au următoarele caracteristici/limitări:
Există multe biblioteci de căutare vectorială disponibile: FAISS de pe Facebook, Enervează de Spotify și ScanNN de Google. FAISS folosește metoda de grupare, Annoy folosește arbori și ScanNN folosește compresia vectorială. Există un compromis de performanță pentru fiecare, pe care îl putem alege în funcție de aplicația noastră și de măsurarea performanței.
Caracteristica principală care diferențiază bazele de date vectoriale de bibliotecile vectoriale este capacitatea de a arhiva, actualiza și șterge date. Bazele de date vectoriale au suport CRUD complet (creați, citiți, actualizați și ștergeți) care abordează limitările unei biblioteci vectoriale.
Pe scurt, o bază de date vectorială oferă o soluție superioară pentru gestionarea înglobărilor de vectori prin abordarea limitărilor indicilor vectoriali autonomi, așa cum s-a discutat în punctele anterioare.
Dar ce face bazele de date vectoriale superioare bazelor de date tradiționale?
Bazele de date tradiționale sunt concepute pentru a stoca și a prelua date structurate folosind modele relaționale, ceea ce înseamnă că sunt optimizate pentru interogări bazate pe coloane și rânduri de date. Deși este posibilă stocarea înglobărilor vectoriale în baze de date tradiționale, aceste baze de date nu sunt optimizate pentru operațiuni vectoriale și nu pot efectua căutări de similaritate sau alte operațiuni complexe pe seturi mari de date în mod eficient.
Acest lucru se datorează faptului că bazele de date tradiționale folosesc tehnici de indexare bazate pe tipuri de date simple, cum ar fi șiruri de caractere sau numere. Aceste tehnici de indexare nu sunt potrivite pentru datele vectoriale, care au o dimensionalitate mare și necesită tehnici de indexare specializate, cum ar fi indici inversați sau arbori spațiali.
În plus, bazele de date tradiționale nu sunt concepute pentru a gestiona cantitățile mari de date nestructurate sau semi-structurate asociate adesea cu înglobările vectoriale. De exemplu, un fișier imagine sau audio poate conține milioane de puncte de date, pe care bazele de date tradiționale nu le pot gestiona eficient.
Bazele de date vectoriale, pe de altă parte, sunt concepute special pentru a stoca și a prelua date vectoriale și sunt optimizate pentru căutări de similaritate și alte operațiuni complexe pe seturi mari de date. Ei folosesc tehnici de indexare și algoritmi specializați proiectați să funcționeze cu date de dimensiuni mari, făcându-le mult mai eficiente decât bazele de date tradiționale pentru stocarea și recuperarea înglobărilor vectoriale.
Acum că ați citit atât de multe despre bazele de date vectoriale, poate vă întrebați cum funcționează acestea? Hai să aruncăm o privire.
Știm cu toții cum funcționează bazele de date relaționale: ele stochează șiruri, numere și alte tipuri de date scalare în rânduri și coloane. Pe de altă parte, o bază de date vectorială operează pe vectori, așa că modul în care este optimizată și interogată este destul de diferit.
În bazele de date tradiționale, de obicei interogăm rândurile din baza de date unde valoarea se potrivește de obicei exact cu interogarea noastră. În bazele de date vectoriale, aplicăm o metrică de similaritate pentru a găsi un vector care este cel mai asemănător cu interogarea noastră.
O bază de date vectorială utilizează o combinație de mai mulți algoritmi care toți participă la căutarea celui mai apropiat vecin (ANN). Acești algoritmi optimizează căutarea prin hashing, cuantizare sau căutare bazată pe grafice.
Acești algoritmi sunt asamblați într-o conductă care oferă o recuperare rapidă și precisă a vecinilor unui vector interogat. Deoarece baza de date vectorială oferă rezultate aproximative, principalele compromisuri pe care le considerăm sunt între precizie și viteză. Cu cât rezultatul este mai precis, cu atât interogarea este mai lentă. Cu toate acestea, un sistem bun poate oferi o căutare ultra-rapidă cu o precizie aproape perfectă.
Bazele de date vectoriale sunt un instrument puternic pentru căutarea similarităților și alte operațiuni complexe pe seturi mari de date, care nu pot fi efectuate eficient folosind bazele de date tradiționale. Pentru a construi o bază de date vectorială funcțională, înglobările sunt esențiale, deoarece captează semnificația semantică a datelor și permit căutări precise de similaritate. Spre deosebire de bibliotecile vectoriale, bazele de date vectoriale sunt concepute pentru a se potrivi cazului nostru de utilizare, făcându-le ideale pentru aplicațiile în care performanța și scalabilitatea sunt critice. Odată cu creșterea învățării automate și a inteligenței artificiale, bazele de date vectoriale devin din ce în ce mai importante pentru o gamă largă de aplicații, inclusiv sisteme de recomandare, căutare de imagini, similaritate semantică și lista poate continua. Pe măsură ce domeniul continuă să evolueze, ne putem aștepta să vedem și mai multe aplicații inovatoare ale bazelor de date vectoriale în viitor.
Ercole Palmeri
Luni trecută, Financial Times a anunțat un acord cu OpenAI. FT își licențiază jurnalismul de clasă mondială...
Milioane de oameni plătesc pentru serviciile de streaming, plătind taxe lunare de abonament. Este o părere comună că tu...
Coveware de la Veeam va continua să ofere servicii de răspuns la incidente de extorcare cibernetică. Coveware va oferi capacități criminalistice și de remediere...
Întreținerea predictivă revoluționează sectorul petrolului și gazelor, cu o abordare inovatoare și proactivă a managementului uzinelor...