Artiklar

Vad är vektordatabaser, hur de fungerar och potentiell marknad

En vektordatabas är en typ av databas som lagrar data som högdimensionella vektorer, som är matematiska representationer av egenskaper eller attribut. 

Dessa vektorer genereras vanligtvis genom att använda någon form av inbäddningsfunktion på rådata, såsom text, bilder, ljud, video och andra.

Vektordatabaser kan vara definite som ett verktyg som indexerar och lagrar vektorinbäddningar för snabb hämtning och likhetssökning, med funktioner som metadatafiltrering och horisontell skalning.

Beräknad lästid: 9 minuter

Växande investerarintresse

Under de senaste veckorna har investerarnas intresse för vektordatabaser ökat. Sedan början av 2023 har vi märkt att:

  • uppstart av vektordatabas Väv han fick 50 miljoner dollar i serie B-finansiering;
  • Pinecone samlade in 100 miljoner dollar i serie B-finansiering till en värdering på 750 miljoner dollar;
  • Chroma , ett projekt med öppen källkod, samlade in 18 miljoner dollar för sin inbäddningsdatabas;

Låt oss se mer i detalj vad vektordatabaser är.

Vektorer som datarepresentation

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. 

Vektor inbäddar

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.

Vektordatabaser vs vektorbibliotek

Vektorbiblioteken lagra inbäddningar av vektorer i index i minnet för att utföra likhetssökningar. Vektorbibliotek har följande egenskaper/begränsningar:

  1. Lagra endast vektorer : Vektorbibliotek lagrar bara inbäddningar av vektorer och inte de associerade objekt från vilka de genererades. Detta betyder att när vi frågar kommer ett vektorbibliotek att svara med relevanta vektorer och objekt-ID:n. Detta är begränsande eftersom den faktiska informationen lagras i objektet och inte id. För att lösa detta problem bör vi lagra objekten i sekundär lagring. Vi kan sedan använda ID:n som returneras av frågan och matcha dem med objekt för att förstå resultaten.
  2. Indexdata är oföränderlig : Index producerade av vektorbibliotek är oföränderliga. Det betyder att när vi väl har importerat vår data och byggt indexet kan vi inte göra några ändringar (inga nya infogningar, borttagningar eller ändringar). För att göra ändringar i vårt index måste vi bygga om det från grunden
  3. Fråga medan importen begränsas : De flesta vektorbibliotek kan inte frågas när data importeras. Vi måste först importera alla våra dataobjekt. Så indexet skapas efter att objekten har importerats. Detta kan vara ett problem för applikationer som kräver att miljoner eller till och med miljarder objekt importeras.

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.

CRUD

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.

  1. Arkivera vektorer och objekt : Databaser kan lagra både dataobjekt och vektorer. Eftersom båda är lagrade kan vi kombinera vektorsökning med strukturerade filter. Filter tillåter oss att se till att de närmaste grannarna matchar metadatafiltret.
  2. Föränderlighet : som vektordatabaser fullt stöd crud, vi kan enkelt lägga till, ta bort eller uppdatera poster i vårt index efter att det har skapats. Detta är särskilt användbart när du arbetar med ständigt föränderliga data.
  3. Sök i realtid : Till skillnad från vektorbibliotek tillåter databaser oss att fråga och ändra våra data under importprocessen. När vi laddar in miljontals objekt förblir den importerade datan fullt tillgänglig och funktionsduglig, så du behöver inte vänta på att importen ska slutföras för att börja arbeta med det som redan finns där.

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?

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

Hur fungerar en vektordatabas?

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.

  • Indexering : Vektordatabasen indexerar vektorer med hjälp av en algoritm som PQ, LSH eller HNSW. Detta steg associerar vektorerna med en datastruktur som möjliggör snabbare sökning.
  • Fråga : vektordatabasen jämför den indexerade frågevektorn mot indexerade vektorer i datamängden för att hitta de närmaste grannarna (tillämpar ett likhetsmått som används av det indexet)
  • Efterbehandling : I vissa fall hämtar vektordatabasen de sista närmaste grannarna från datasetet och efterbehandlar dem för att returnera de slutliga resultaten. Detta steg kan innefatta omklassificering av de närmaste grannarna med ett annat likhetsmått.

Fördelar

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

Nyhetsbrev för innovation
Missa inte de viktigaste nyheterna om innovation. Registrera dig för att få dem via e-post.

Articoli recenti

Innovativ intervention i Augmented Reality, med en Apple-tittare på Catania poliklinik

En oftalmoplastikoperation med Apple Vision Pro kommersiella tittare utfördes på Catania Polyclinic...

3 maj 2024

Fördelarna med målarbok för barn - en värld av magi för alla åldrar

Att utveckla finmotorik genom färgläggning förbereder barn för mer komplexa färdigheter som att skriva. Att färglägga…

2 maj 2024

Framtiden är här: Hur sjöfartsindustrin revolutionerar den globala ekonomin

Marinesektorn är en sann global ekonomisk makt, som har navigerat mot en marknad på 150 miljarder...

1 maj 2024

Publishers och OpenAI tecknar avtal för att reglera flödet av information som bearbetas av artificiell intelligens

I måndags tillkännagav Financial Times ett avtal med OpenAI. FT licensierar sin journalistik i världsklass...

30 April 2024