Beräknad lästid: 9 minuter
Under de senaste veckorna har investerarnas intresse för vektordatabaser ökat. Sedan början av 2023 har vi märkt att:
Låt oss se mer i detalj vad vektordatabaser är.
Vektordatabaser är mycket beroende av vektorinbäddning, en typ av datarepresentation som innehåller den semantiska informationen som är avgörande för AI för att få förståelse och bibehålla långtidsminne att dra nytta av när man utför komplexa aktiviteter.
Vektorinbäddningar är som en karta, men istället för att visa oss var saker finns i världen, visar de oss var saker finns i något som kallas vektor utrymme. Vektorutrymme är typ en stor lekplats där allt har sin plats att leka på. Föreställ dig att du har en grupp djur: en katt, en hund, en fågel och en fisk. Vi kan skapa en vektorinbäddning för varje bild genom att ge den en speciell position på lekplatsen. Katten kan vara i ena hörnet, hunden på andra sidan. Fågeln kunde vara på himlen och fisken kunde vara i dammen. Denna plats är ett flerdimensionellt utrymme. Varje dimension motsvarar olika aspekter av dem, till exempel har fiskar fenor, fåglar har vingar, katter och hundar har ben. En annan aspekt av dem kan vara att fiskar tillhör vattnet, fåglar främst till himlen och katter och hundar till marken. När vi väl har dessa vektorer kan vi använda matematiska tekniker för att gruppera dem baserat på deras likhet. Baserat på den information vi har,
Så, vektorinbäddningar är som en karta som hjälper oss att hitta likheter mellan saker i vektorrymden. Precis som en karta hjälper oss att navigera i världen, hjälper vektorinbäddningar att navigera på vektorlekplatsen.
Nyckeltanken är att inbäddningar som är semantiskt lika varandra har ett mindre avstånd mellan sig. För att ta reda på hur lika de är kan vi använda vektoravståndsfunktioner som euklidiskt avstånd, cosinusavstånd osv.
Vektorbiblioteken lagra inbäddningar av vektorer i index i minnet för att utföra likhetssökningar. Vektorbibliotek har följande egenskaper/begränsningar:
Det finns många vektorsökbibliotek tillgängliga: FAISS på Facebook, irritera av Spotify och ScanNN av Google. FAISS använder klustringsmetoden, Annoy använder träd och ScanNN använder vektorkomprimering. Det finns en prestandaavvägning för var och en, som vi kan välja baserat på vår applikation och prestandamått.
Huvudfunktionen som skiljer vektordatabaser från vektorbibliotek är möjligheten att arkivera, uppdatera och radera data. Vektordatabaser har CRUD-stöd komplett (skapa, läs, uppdatera och ta bort) som löser begränsningarna för ett vektorbibliotek.
Kort sagt, en vektordatabas tillhandahåller en överlägsen lösning för att hantera vektorinbäddningar genom att ta itu med begränsningarna hos fristående vektorindex som diskuterats i de föregående punkterna.
Men vad gör vektordatabaser överlägsna traditionella databaser?
Traditionella databaser är designade för att lagra och hämta strukturerad data med hjälp av relationsmodeller, vilket innebär att de är optimerade för frågor baserade på kolumner och rader med data. Även om det är möjligt att lagra vektorinbäddningar i traditionella databaser, är dessa databaser inte optimerade för vektoroperationer och kan inte utföra likhetssökningar eller andra komplexa operationer på stora datamängder effektivt.
Detta beror på att traditionella databaser använder indexeringstekniker baserade på enkla datatyper, som strängar eller siffror. Dessa indexeringstekniker är inte lämpliga för vektordata, som har hög dimensionalitet och kräver specialiserade indexeringstekniker som inverterade index eller rumsliga träd.
Traditionella databaser är inte heller utformade för att hantera de stora mängder ostrukturerad eller semistrukturerad data som ofta förknippas med vektorinbäddningar. Till exempel kan en bild- eller ljudfil innehålla miljontals datapunkter, som traditionella databaser inte kan hantera effektivt.
Vektordatabaser, å andra sidan, är speciellt utformade för att lagra och hämta vektordata och är optimerade för likhetssökningar och andra komplexa operationer på stora datamängder. De använder specialiserade indexeringstekniker och algoritmer utformade för att fungera med högdimensionella data, vilket gör dem mycket effektivare än traditionella databaser för att lagra och hämta vektorinbäddningar.
Nu när du har läst så mycket om vektordatabaser kanske du undrar hur de fungerar? Låt oss ta en titt.
Vi vet alla hur relationsdatabaser fungerar: de lagrar strängar, siffror och andra typer av skalär data i rader och kolumner. Å andra sidan arbetar en vektordatabas på vektorer, så sättet som den optimeras och efterfrågas är helt annorlunda.
I traditionella databaser frågar vi vanligtvis efter rader i databasen där värdet vanligtvis matchar vår fråga exakt. I vektordatabaser använder vi ett likhetsmått för att hitta en vektor som är mest lik vår fråga.
En vektordatabas använder en kombination av flera algoritmer som alla deltar i närmaste grannesökning (ANN). Dessa algoritmer optimerar sökningen genom hashing, kvantisering eller grafbaserad sökning.
Dessa algoritmer är sammansatta i en pipeline som ger snabb och exakt hämtning av en frågad vektors grannar. Eftersom vektordatabasen ger ungefärliga resultat, är de viktigaste avvägningarna vi anser vara mellan noggrannhet och hastighet. Ju mer exakt resultatet blir, desto långsammare blir frågan. Ett bra system kan dock ge ultrasnabb sökning med nästan perfekt noggrannhet.
Vektordatabaser är ett kraftfullt verktyg för likhetssökningar och andra komplexa operationer på stora datamängder, som inte kan utföras effektivt med traditionella databaser. För att bygga en funktionell vektordatabas är inbäddningar väsentliga, eftersom de fångar den semantiska betydelsen av datan och möjliggör exakta likhetssökningar. Till skillnad från vektorbibliotek är vektordatabaser utformade för att passa vårt användningsfall, vilket gör dem idealiska för applikationer där prestanda och skalbarhet är avgörande. Med framväxten av maskininlärning och artificiell intelligens blir vektordatabaser allt viktigare för ett brett spektrum av applikationer inklusive rekommendationssystem, bildsökning, semantisk likhet och listan fortsätter. När området fortsätter att utvecklas kan vi förvänta oss att se ännu fler innovativa tillämpningar av vektordatabaser i framtiden.
Ercole Palmeri
En oftalmoplastikoperation med Apple Vision Pro kommersiella tittare utfördes på Catania Polyclinic...
Att utveckla finmotorik genom färgläggning förbereder barn för mer komplexa färdigheter som att skriva. Att färglägga…
Marinesektorn är en sann global ekonomisk makt, som har navigerat mot en marknad på 150 miljarder...
I måndags tillkännagav Financial Times ett avtal med OpenAI. FT licensierar sin journalistik i världsklass...