Beregnet lesetid: 9 minutter
De siste ukene har det vært en økning i investorinteressen for vektordatabaser. Siden begynnelsen av 2023 har vi lagt merke til at:
La oss se mer detaljert hva vektordatabaser er.
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.
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.
Vektorbibliotekene lagre innbygginger av vektorer i indekser i minnet, for å utføre likhetssøk. Vektorbiblioteker har følgende egenskaper/begrensninger:
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.
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.
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?
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.
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.
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
Å utvikle finmotorikk gjennom fargelegging forbereder barna på mer komplekse ferdigheter som å skrive. Å farge…
Marinesektoren er en ekte global økonomisk makt, som har navigert mot et 150 milliarder marked...
Sist mandag kunngjorde Financial Times en avtale med OpenAI. FT lisensierer sin journalistikk i verdensklasse...
Millioner av mennesker betaler for strømmetjenester og betaler månedlige abonnementsavgifter. Det er vanlig oppfatning at du...