Artikler

Hva er vektordatabaser, hvordan de fungerer og potensielt marked

En vektordatabase er en type database som lagrer data som høydimensjonale vektorer, som er matematiske representasjoner av funksjoner eller attributter. 

Disse vektorene genereres vanligvis ved å bruke en slags innebyggingsfunksjon på rådata, for eksempel tekst, bilder, lyd, video og andre.

Vektordatabaser kan være definite som et verktøy som indekserer og lagrer vektorinnbygginger for rask gjenfinning og likhetssøk, med funksjoner som metadatafiltrering og horisontal skalering.

Beregnet lesetid: 9 minutter

Økende investorinteresse

De siste ukene har det vært en økning i investorinteressen for vektordatabaser. Siden begynnelsen av 2023 har vi lagt merke til at:

  • oppstart av vektordatabase Vev Han fikk 50 millioner dollar i serie B-finansiering;
  • konglen samlet inn 100 millioner dollar i serie B-finansiering til en verdivurdering på 750 millioner dollar;
  • Chroma , et åpen kildekode-prosjekt, samlet inn 18 millioner dollar for sin innebygde database;

La oss se mer detaljert hva vektordatabaser er.

Vektorer som datarepresentasjon

Vektordatabaser er sterkt avhengige av vektorinnbygging, en type datarepresentasjon som inneholder den semantiske informasjonen som er avgjørende for AI for å få forståelse og opprettholde langtidsminne å trekke på når man utfører komplekse aktiviteter. 

Vektor innbygging

Vektorinnbygginger er som et kart, men i stedet for å vise oss hvor ting er i verden, viser de oss hvor ting er i noe som heter vektorrom. Vector space er en slags stor lekeplass hvor alt har sin plass å leke. Tenk deg at du har en gruppe dyr: en katt, en hund, en fugl og en fisk. Vi kan lage en vektorinnbygging for hvert bilde ved å gi det en spesiell posisjon på lekeplassen. Katten kan være i det ene hjørnet, hunden på den andre siden. Fuglen kunne være på himmelen og fisken kunne være i dammen. Dette stedet er et flerdimensjonalt rom. Hver dimensjon tilsvarer forskjellige aspekter ved dem, for eksempel har fisk finner, fugler har vinger, katter og hunder har bein. Et annet aspekt ved dem kan være at fisk tilhører vann, fugler hovedsakelig til himmelen, og katter og hunder til bakken. Når vi har disse vektorene, kan vi bruke matematiske teknikker for å gruppere dem basert på likheten. Basert på informasjonen vi har,

Så vektorinnbygging er som et kart som hjelper oss å finne likheter mellom ting i vektorrommet. Akkurat som et kart hjelper oss å navigere i verden, hjelper vektorinnbygginger å navigere på vektorlekeplassen.

Nøkkelideen er at embeds som er semantisk like hverandre har en mindre avstand mellom seg. For å finne ut hvor like de er, kan vi bruke vektoravstandsfunksjoner som euklidisk avstand, cosinusavstand osv.

Vektordatabaser vs vektorbiblioteker

Vektorbibliotekene lagre innbygginger av vektorer i indekser i minnet, for å utføre likhetssøk. Vektorbiblioteker har følgende egenskaper/begrensninger:

  1. Lagre kun vektorer : Vektorbiblioteker lagrer bare innebygginger av vektorer og ikke de tilknyttede objektene de ble generert fra. Dette betyr at når vi spør, vil et vektorbibliotek svare med de relevante vektorene og objekt-IDene. Dette er begrensende siden den faktiske informasjonen er lagret i objektet og ikke id. For å løse dette problemet bør vi lagre objektene i sekundærlagring. Vi kan deretter bruke ID-ene som returneres av spørringen og matche dem med objekter for å forstå resultatene.
  2. Indeksdata er uforanderlige : Indekser produsert av vektorbiblioteker er uforanderlige. Dette betyr at når vi først har importert dataene våre og bygget indeksen, kan vi ikke gjøre noen endringer (ingen nye innsettinger, slettinger eller endringer). For å gjøre endringer i indeksen vår, må vi gjenoppbygge den fra bunnen av
  3. Søk mens du begrenser import : De fleste vektorbiblioteker kan ikke spørres under import av data. Vi må importere alle dataobjektene våre først. Så indeksen opprettes etter at objektene er importert. Dette kan være et problem for applikasjoner som krever at millioner eller til og med milliarder av objekter importeres.

Det er mange vektorsøkebiblioteker tilgjengelig: FAISS av Facebook, irritere av Spotify og ScanNN av Google. FAISS bruker klyngemetode, Annoy bruker trær og ScanNN bruker vektorkomprimering. Det er en ytelsesavveining for hver, som vi kan velge basert på vår applikasjon og ytelsesmålinger.

CRUD

Hovedfunksjonen som skiller vektordatabaser fra vektorbiblioteker er muligheten til å arkivere, oppdatere og slette data. Vektordatabaser har CRUD-støtte komplett (opprett, les, oppdater og slett) som løser begrensningene til et vektorbibliotek.

  1. Arkiver vektorer og objekter : Databaser kan lagre både dataobjekter og vektorer. Siden begge er lagret, kan vi kombinere vektorsøk med strukturerte filtre. Filtre lar oss sørge for at de nærmeste naboene samsvarer med metadatafilteret.
  2. Foranderlighet : som vektordatabaser fullt ut støttet rått, vi kan enkelt legge til, fjerne eller oppdatere oppføringer i indeksen vår etter at den er opprettet. Dette er spesielt nyttig når du arbeider med data i stadig endring.
  3. Sanntidssøk : I motsetning til vektorbiblioteker lar databaser oss spørre etter og endre dataene våre under importprosessen. Når vi laster inn millioner av objekter, forblir de importerte dataene fullt tilgjengelige og operative, slik at du ikke trenger å vente på at importen er fullført for å begynne å jobbe med det som allerede er der.

Kort sagt gir en vektordatabase en overlegen løsning for å håndtere vektorinnbygginger ved å adressere begrensningene til selvstendige vektorindekser som diskutert i de foregående punktene.

Men hva gjør vektordatabaser overlegne tradisjonelle databaser?

Vektordatabaser vs tradisjonelle databaser

Tradisjonelle databaser er designet for å lagre og hente strukturerte data ved hjelp av relasjonsmodeller, noe som betyr at de er optimalisert for spørringer basert på kolonner og rader med data. Selv om det er mulig å lagre vektorinnbygginger i tradisjonelle databaser, er disse databasene ikke optimalisert for vektoroperasjoner og kan ikke utføre likhetssøk eller andre komplekse operasjoner på store datasett effektivt.

Dette er fordi tradisjonelle databaser bruker indekseringsteknikker basert på enkle datatyper, som strenger eller tall. Disse indekseringsteknikkene er ikke egnet for vektordata, som har høy dimensjonalitet og krever spesialiserte indekseringsteknikker som inverterte indekser eller romlige trær.

Tradisjonelle databaser er heller ikke laget for å håndtere de store mengdene ustrukturerte eller semistrukturerte data som ofte forbindes med vektorinnbygginger. For eksempel kan en bilde- eller lydfil inneholde millioner av datapunkter, som tradisjonelle databaser ikke kan håndtere effektivt.

Vektordatabaser er derimot spesielt utviklet for å lagre og hente vektordata og er optimert for likhetssøk og andre komplekse operasjoner på store datasett. De bruker spesialiserte indekseringsteknikker og algoritmer designet for å fungere med høydimensjonale data, noe som gjør dem mye mer effektive enn tradisjonelle databaser for lagring og henting av vektorinnbygginger.

Nå som du har lest så mye om vektordatabaser, lurer du kanskje på hvordan de fungerer? La oss ta en titt.

Hvordan fungerer en vektordatabase?

Vi vet alle hvordan relasjonsdatabaser fungerer: de lagrer strenger, tall og andre typer skalardata i rader og kolonner. På den annen side opererer en vektordatabase på vektorer, så måten den optimaliseres og spørres på er ganske annerledes.

I tradisjonelle databaser spør vi vanligvis etter rader i databasen der verdien vanligvis samsvarer nøyaktig med søket vårt. I vektordatabaser bruker vi en likhetsberegning for å finne en vektor som ligner mest på søket vårt.

En vektordatabase bruker en kombinasjon av flere algoritmer som alle deltar i nærmeste nabosøk (ANN). Disse algoritmene optimerer søket ved hashing, kvantisering eller grafbasert søk.

Disse algoritmene er satt sammen til en rørledning som gir rask og nøyaktig gjenfinning av en forespurt vektors naboer. Siden vektordatabasen gir omtrentlige resultater, er de viktigste avveiningene vi vurderer mellom nøyaktighet og hastighet. Jo mer presist resultatet er, desto tregere vil spørringen være. Et godt system kan imidlertid gi ultrarask søking med nesten perfekt nøyaktighet.

  • Indeksering : Vektordatabasen indekserer vektorer ved hjelp av en algoritme som PQ, LSH eller HNSW. Dette trinnet knytter vektorene til en datastruktur som vil tillate raskere søk.
  • Query : vektordatabase sammenligner den indekserte spørringsvektoren mot indekserte vektorer i datasettet for å finne de nærmeste naboene (ved å bruke en likhetsmetrikk som brukes av den indeksen)
  • Etterbehandling : I noen tilfeller henter vektordatabasen de endelige nærmeste naboene fra datasettet og etterbehandler dem for å returnere de endelige resultatene. Dette trinnet kan inkludere omklassifisering av de nærmeste naboene ved å bruke et annet likhetsmål.

fordeler

Vektordatabaser er et kraftig verktøy for likhetssøk og andre komplekse operasjoner på store datasett, som ikke kan utføres effektivt ved bruk av tradisjonelle databaser. For å bygge en funksjonell vektordatabase er innbygginger avgjørende, siden de fanger opp den semantiske betydningen av dataene og muliggjør nøyaktige likhetssøk. I motsetning til vektorbiblioteker er vektordatabaser designet for å passe til vårt bruksområde, noe som gjør dem ideelle for applikasjoner der ytelse og skalerbarhet er kritisk. Med fremveksten av maskinlæring og kunstig intelligens, blir vektordatabaser stadig viktigere for et bredt spekter av applikasjoner, inkludert anbefalingssystemer, bildesøk, semantisk likhet, og listen fortsetter. Ettersom feltet fortsetter å utvikle seg, kan vi forvente å se enda flere innovative applikasjoner av vektordatabaser i fremtiden.

Ercole Palmeri

Nyhetsbrev for innovasjon
Ikke gå glipp av de viktigste nyhetene om innovasjon. Registrer deg for å motta dem på e-post.

Siste artikler

Fordelene med fargeleggingssider for barn - en verden av magi for alle aldre

Å utvikle finmotorikk gjennom fargelegging forbereder barna på mer komplekse ferdigheter som å skrive. Å farge…

2 mai 2024

Fremtiden er her: Hvordan shippingindustrien revolusjonerer den globale økonomien

Marinesektoren er en ekte global økonomisk makt, som har navigert mot et 150 milliarder marked...

1 mai 2024

Utgivere og OpenAI signerer avtaler for å regulere flyten av informasjon som behandles av kunstig intelligens

Sist mandag kunngjorde Financial Times en avtale med OpenAI. FT lisensierer sin journalistikk i verdensklasse...

30 april 2024

Nettbetalinger: Her er hvordan strømmetjenester får deg til å betale for alltid

Millioner av mennesker betaler for strømmetjenester og betaler månedlige abonnementsavgifter. Det er vanlig oppfatning at du...

29 april 2024