Articole

Ce sunt bazele de date vectoriale, cum funcționează și piața potențială

O bază de date vectorială este un tip de bază de date care stochează date ca vectori cu dimensiuni mari, care sunt reprezentări matematice ale caracteristicilor sau atributelor. 

Acești vectori sunt de obicei generați prin aplicarea unui fel de funcție de încorporare datelor brute, cum ar fi text, imagini, audio, video și altele.

Bazele de date vectoriale pot fi defieste un instrument care indexează și stochează înglobări vectoriale pentru regăsire rapidă și căutare de similaritate, cu caracteristici precum filtrarea metadatelor și scalarea orizontală.

Timp de citire estimat: 9 minute

Interes în creștere al investitorilor

Î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.

Vectorii ca reprezentare a datelor

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ări vectoriale

Î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.

Baze de date vectoriale vs biblioteci vectoriale

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:

  1. Stochează numai vectori : Bibliotecile vectoriale stochează numai înglobări vectoriale, nu obiectele asociate din care au fost generate. Aceasta înseamnă că atunci când executăm o interogare, o bibliotecă vectorială va răspunde cu vectorii și ID-urile obiectelor relevanți. Acest lucru este limitativ, deoarece informațiile reale sunt stocate în obiect și nu în id. Pentru a rezolva această problemă, ar trebui să stocăm obiecte în memoria secundară. Apoi putem folosi ID-urile returnate de interogare și le putem potrivi cu obiecte pentru a înțelege rezultatele.
  2. Datele index sunt imuabile : Indecii produși de bibliotecile vectoriale sunt imutabili. Aceasta înseamnă că odată ce ne-am importat datele și am construit indexul, nu putem face nicio modificare (fără inserări, ștergeri sau modificări noi). Pentru a face modificări la indexul nostru, va trebui să-l reconstruim de la zero
  3. Interogați limitând importul : Majoritatea bibliotecilor vectoriale nu pot fi interogate la importarea datelor. Mai întâi trebuie să importam toate obiectele noastre de date. Deci indexul este creat după ce obiectele sunt importate. Aceasta poate fi o problemă pentru aplicațiile care necesită importarea de milioane sau chiar miliarde de obiecte.

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.

CRUD

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.

  1. Stocați vectori și obiecte : Bazele de date pot stoca atât obiecte de date, cât și vectori. Deoarece ambele sunt stocate, putem combina căutarea vectorială cu filtre structurate. Filtrele ne permit să ne asigurăm că cei mai apropiați vecini se potrivesc cu filtrul de metadate.
  2. Mutabilitate : Deoarece bazele de date vectoriale acceptă pe deplin CRUD, putem adăuga, elimina sau actualiza cu ușurință intrări în indexul nostru după ce acesta a fost creat. Acest lucru este util în special atunci când lucrați cu date care se schimbă constant.
  3. Căutare în timp real : Spre deosebire de bibliotecile vectoriale, bazele de date ne permit să interogăm și să ne modificăm datele în timpul procesului de import. Pe măsură ce încărcăm milioane de obiecte, datele importate rămân pe deplin accesibile și operaționale, astfel încât nu trebuie să așteptați finalizarea importului pentru a începe să lucrați la ceea ce este deja acolo.

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?

Baze de date vectoriale vs baze 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.

Cum funcționează o bază de date vectorială?

Ș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ă.

  • Indexarea : Baza de date vectorială indexează vectorii folosind un algoritm cum ar fi PQ, LSH sau HNSW. Acest pas mapează vectorii la o structură de date care va permite o căutare mai rapidă.
  • Întrebare : baza de date vectorială compară vectorul de interogare indexat cu vectorii indexați din setul de date pentru a găsi cei mai apropiați vecini (aplicând o metrică de similaritate utilizată de acel index)
  • Post procesare : În unele cazuri, baza de date vectorială preia cei mai apropiați vecini finali din setul de date și îi post-procesează pentru a returna rezultatele finale. Acest pas poate include reclasificarea celor mai apropiați vecini folosind o măsură diferită de similaritate.

beneficii

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

Buletin informativ de inovare
Nu rata cele mai importante știri despre inovație. Înscrieți-vă pentru a le primi pe e-mail.

Articole recente

Editorii și OpenAI semnează acorduri pentru a reglementa fluxul de informații procesate de Inteligența Artificială

Luni trecută, Financial Times a anunțat un acord cu OpenAI. FT își licențiază jurnalismul de clasă mondială...

Aprilie 30 2024

Plăți online: Iată cum serviciile de streaming vă fac să plătiți pentru totdeauna

Milioane de oameni plătesc pentru serviciile de streaming, plătind taxe lunare de abonament. Este o părere comună că tu...

Aprilie 29 2024

Veeam oferă cel mai complet suport pentru ransomware, de la protecție la răspuns și recuperare

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...

Aprilie 23 2024

Revoluția verde și digitală: cum întreținerea predictivă transformă industria petrolului și gazelor

Întreținerea predictivă revoluționează sectorul petrolului și gazelor, cu o abordare inovatoare și proactivă a managementului uzinelor...

Aprilie 22 2024