Vektordatabaser: Varför AI behöver dem
Vad är en vektordatabas och varför pratar alla om dem? Vi förklarar hur de fungerar, varför de skiljer sig från vanliga databaser och varför din AI behöver dem.
Om du har börjat titta på hur man bygger AI-applikationer för företag har du förmodligen stött på ordet "vektordatabas". Kanske har någon tekniker i ditt team sagt att ni faktiskt behöver en Pinecone, Weaviate eller Milvus för att få er nya chattbot att fungera ordentligt.
Men vad är det egentligen? Varför duger inte den vanliga SQL-databasen ni ju redan har investerat miljoner i? Och är detta bara ännu en teknisk fluga som kommer att passera, eller handlar det om en mer grundläggande förändring i hur vi hanterar data?
Låt oss reda ut begreppen. Vi skippar matematiska formler och onödig jargong. Istället tittar vi på hur det fungerar i praktiken och varför det alltså spelar roll för din affär.
Problemet med vanliga databaser
Tänk dig ett traditionellt bibliotek. Böckerna är prydligt sorterade efter författare, titel och genre. Om du vet exakt vad du letar efter, säg "Harry Potter och de vises sten" av J.K. Rowling, är det ju busenkelt att hitta boken. Du går till hyllan för R, letar upp Rowling, och där står den.
Detta är exakt hur en traditionell relationsdatabas som MySQL, SQL Server eller PostgreSQL fungerar. Den är helt enkelt väldigt bra på exakta matchningar och strukturerad data. Om du ber systemet att ge dig alla kunder som bor i Stockholm, är över 30 år gamla och köpte en produkt förra veckan, tittar databasen i sina prydliga rader och kolumner och ger dig ett exakt svar på några millisekunder.
Men tänk om du går till bibliotekarien och säger att du letar efter en bok som handlar om en föräldralös pojke som upptäcker att han har magiska krafter och åker till en internatskola.
Om bibliotekarien bara hade ett traditionellt register med titel, författare och genre skulle hen få enorma problem. Din beskrivning matchar ju inte bokens titel. Den matchar inte författaren. Den kanske matchar genren "fantasy", men det finns förstås tusentals sådana böcker.
För att hitta rätt bok behöver bibliotekarien förstå innebörden av det du säger och matcha det mot innebörden av böckerna i biblioteket. Hen måste alltså förstå koncept, teman och likheter.
Det är precis detta moderna AI-applikationer behöver göra. Och det är här vektordatabaser kommer in i bilden. Vanliga databaser förstår ord som exakta strängar av bokstäver. Vektordatabaser förstår ord som koncept.
Vad är egentligen en vektor?
För att förstå vektordatabaser måste vi först förstå vad en vektor är i det här sammanhanget.
När en AI-modell som GPT-4 läser text förstår den ju inte ord på samma sätt som vi människor gör. Den måste översätta orden till siffror för att kunna räkna på dem. Denna process kallas för att skapa "embeddings". Om du vill dyka djupare i exakt hur detta fungerar rekommenderar jag vår artikel om embeddings förklarat utan matematik.
En vektor är alltså helt enkelt en lång lista med siffror som representerar innebörden av en text. Tänk dig en karta, men istället för bara två dimensioner som norr/söder och öst/väst har den här kartan tusentals dimensioner.
På den här enorma, flerdimensionella kartan placeras ord, meningar och hela dokument ut baserat på vad de betyder. Ord och meningar som betyder ungefär samma sak hamnar väl nära varandra.
"Hund" och "valp" bor i samma kvarter. "Katt" bor i kvarteret bredvid. "Bil" bor i en helt annan stad. "Fordon" bor nog nära "bil", men långt ifrån "katt".
Hur vektordatabasen fungerar i praktiken
En vektordatabas är ett system som är byggt från grunden för att lagra, organisera och extremt snabbt söka bland dessa långa listor av siffror.
När du ställer en fråga till din AI-applikation händer följande bakom kulisserna:
- Din fråga skickas till en AI-modell som översätter den till en vektor, alltså en specifik position på den där enorma kartan.
- Vektordatabasen letar efter andra vektorer som dokument, stycken eller produkter som ligger i närheten av din fråga på kartan.
- Den returnerar de texter som ligger närmast.
Detta kallas för likhetssökning. Istället för att leta efter exakta ordmatchningar letar databasen efter konceptuell likhet.
Låt oss ta ett konkret exempel från kundtjänst. Om en kund söker efter hur man returnerar en trasig produkt kommer vektordatabasen att hitta dokument som pratar om reklamation av defekt vara, även om orden "returnera" och "trasig" inte finns med i texten. Den förstår att innebörden är densamma. En traditionell sökfunktion hade förmodligen gett noll träffar.
Varför RAG kräver vektordatabaser
Detta för oss till varför vektordatabaser har blivit så aktuella just nu. Svaret stavas RAG (Retrieval-Augmented Generation).
Som vi har skrivit om tidigare i vår guide till RAG ur ett företagsperspektiv är RAG den dominerande metoden vi använder för att låta AI-modeller svara på frågor baserat på företagets egna, privata data.
En AI-modell i sig själv är ju som en väldigt allmänbildad person med minnesförlust. Den vet mycket om världen fram till dess att den tränades, men den vet ingenting om era interna policys, era senaste produktmanualer, era kundavtal eller vad vd:n sa på förra veckans månadsmöte.
Dessutom har AI-modeller en begränsning i hur mycket text de kan ta in på en gång, det som kallas kontextfönster. Du kan ju inte bara skicka in hela ert intranät till ChatGPT och ställa en fråga. Det får inte plats, och även om det gjorde det skulle det bli orimligt dyrt och långsamt.
För att AI:n ska kunna svara på frågor om er verksamhet måste vi ge den exakt rätt information innan den svarar.
Processen ser ut så här:
- Användaren ställer en fråga.
- Vi söker i vår databas efter den mest relevanta informationen för just den frågan.
- Vi plockar ut de 5-10 mest relevanta styckena.
- Vi skickar frågan och dessa stycken till AI-modellen.
- AI-modellen läser informationen och formulerar ett bra, korrekt svar.
Steg 2 är den absolut mest kritiska punkten i hela kedjan. Om vi skickar fel information till AI:n kommer den att ge ett felaktigt svar eller börja hallucinera och hitta på saker.
Eftersom användare sällan ställer frågor med exakt samma ord som står i era manualer fungerar inte en vanlig sökfunktion. Vi måste kunna söka på innebörd. Vi måste ha en vektordatabas. Utan en bra vektordatabas faller hela RAG-arkitekturen ihop som ett korthus.
Måste vi köpa ett helt nytt system?
Här kommer den praktiska frågan som alla IT-chefer ställer sig: Måste vi skaffa, drifta och betala för en helt ny databas bara för detta?
Svaret är att det beror på er skala och era krav.
För ett par år sedan var specialiserade vektordatabaser som Pinecone, Milvus, Weaviate och Qdrant det enda vettiga alternativet. De är byggda enbart för detta syfte och använder avancerade algoritmer för att extremt snabbt söka igenom miljarder vektorer. De är bra verktyg, men de lägger till ytterligare en komponent i er IT-infrastruktur.
Men de traditionella databasleverantörerna har inte suttit stilla och tittat på. Idag har nästan alla stora databaser lagt till stöd för vektorsökning.
PostgreSQL har ett populärt tillägg som heter pgvector. MongoDB, Elasticsearch, Redis och till och med Oracle har alla inbyggda vektorfunktioner nu.
Om ni bygger ett internt verktyg för att söka i era HR-dokument eller era säljpresentationer behöver ni förmodligen ingen specialiserad vektordatabas. Det går alldeles utmärkt att använda den PostgreSQL-databas ni redan har och slå på pgvector. Det minskar komplexiteten i er infrastruktur, håller nere kostnaderna och gör IT-avdelningen glad eftersom de slipper lära sig drifta ett helt nytt system.
Om ni däremot bygger en global e-handelsplattform där miljontals användare ska få AI-stödda produktrekommendationer i realtid baserat på miljarder datapunkter kommer en traditionell databas med ett vektortillägg förmodligen att bli för långsam. Då behöver ni en dedikerad vektordatabas som kan hantera den enorma skalan.
Vanliga misstag företag gör
När vi hjälper företag att implementera AI-lösningar ser vi ofta samma misstag upprepas när det gäller vektordatabaser:
- Man tror att databasen löser allt: En vektordatabas är bara en lagringsplats. Om du stoppar in skräp kommer du att få ut skräp. Kvaliteten på din data är fortfarande det absolut viktigaste.
- Man glömmer bort metadata: Att bara spara vektorer räcker sällan. Du vill ofta kunna filtrera sökningen. "Hitta dokument som handlar om X, men bara dokument som är skapade under 2023 och tillhör avdelning Y." För att göra detta måste din vektordatabas också vara bra på att hantera traditionell metadata.
- Man överkomplicerar arkitekturen: Man köper in dyra enterprise-licenser för specialiserade vektordatabaser innan man ens har bevisat att AI-lösningen skapar värde för användarna. Börja enkelt.
Sammanfattning
Vektordatabaser är inte magi, men de är en grundläggande byggsten i modern AI-arkitektur. De låter oss söka på mening och koncept istället för exakta nyckelord. Utan dem skulle det vara nästan omöjligt att bygga pålitliga AI-assistenter som förstår företagets egna data och kan ge korrekta svar.
Tekniken mognar snabbt, och gränsen mellan vanliga databaser och vektordatabaser suddas ut mer för varje dag som går. Det viktiga är inte vilket specifikt verktyg ni väljer i slutändan, utan att ni förstår varför funktionen behövs för att ta era AI-initiativ från roliga experiment till system som faktiskt fungerar i produktion.
Vi brinner verkligen för AI och pratar gärna om det, oavsett om ni precis har börjat fundera eller redan har konkreta planer. Det bästa med vårt jobb är faktiskt samtalen med människor som ser möjligheterna men vill ha en sparringpartner för att diskutera sin unika situation. Vår filosofi är att börja smått och tänka stort. Boka en kostnadsfri rådgivning så tar vi det därifrån.