Inbäddningar
Snabb definition
En inbäddning är en lista med siffror (en vektor) som representerar betydelsen av en text, bild eller annat objekt, så att liknande objekt får närliggande vektorer. Inbäddningar är vad som gör sökning efter betydelse möjlig.
På den här sidan
Hur inbäddningar fungerar
En inbäddningsmodell läser en text och ger ut en vektor med fast längd, vanligtvis flera hundra till några tusen siffror. Modellen är tränad så att texter med relaterade betydelser hamnar nära varandra i det utrymmet: "återbetalningspolicy" och "hur får jag tillbaka mina pengar?" delar nästan inga ord men producerar nära vektorer.
Idén går tillbaka till ordvektorer som word2vec (Mikolov och kollegor, 2013), som lärde sig att ord som förekommer i liknande sammanhang har liknande betydelser. Meningsnivåmodeller som Sentence-BERT (2019) utvidgade det till hela meningar och stycken, vilket är vad sökning och frågesvar behöver.
Vad de används för
Inbäddningar driver semantisk sökning: jämför vektorn av en fråga med vektorerna av lagrade avsnitt och returnera den närmaste. De är hämtningsteget i retrieval-augmented generation (RAG). De används också för att gruppera liknande konversationer, upptäcka dubbletter, rekommendera liknande produkter och dirigera ett meddelande till rätt ämne.
Flerspråkiga inbäddningsmodeller placerar en fråga på franska och ett avsnitt på engelska nära varandra när de betyder samma sak, vilket gör att en kunskapsbas kan betjäna kunder på många språk.
Praktiska punkter
Vektorer från olika modeller är inte jämförbara: om du byter inbäddningsmodell måste varje lagrat avsnitt inbäddas på nytt. Inbäddningar fångar betydelse, inte exakta värden, så de är dåliga på precisa filter som ett prisspann eller en produktreferens — dessa behöver strukturerade fält eller nyckelordsökning vid sidan av. Och långa dokument måste delas upp i avsnitt innan de inbäddas, eftersom en vektor för en hel manual suddar ut dess innehåll.
Inbäddningsmodeller skiljer sig också åt i språktäckning, dimension (och därmed lagringskostnad) och var de är värd.
Inbäddningar i AI SmartTalk
Varje AI SmartTalk-assistent använder en inbäddningsmodell för all sin kunskap. Nya assistenter använder som standard en EU-värd flerspråkig modell, och OpenAI inbäddningsmodeller är också tillgängliga. Vektorerna lagras i PostgreSQL med pgvector och kombineras med nyckelords- och trigram-sökning, så att produktreferenser och exakta termer hittas lika pålitligt som omformulerade frågor.
Vanliga frågor
Vad är skillnaden mellan en inbäddning och en token?
En token är en bit text, ungefär ett ordfragment, som en modell läser. En inbäddning är en vektor av siffror som representerar betydelse — av en token, en mening eller ett helt avsnitt.
Är inbäddningar samma som en vektor databas?
Nej. Inbäddningar är vektorerna; en vektor databas eller index lagrar dem och hittar de närmaste snabbt.
Kan jag byta inbäddningsmodeller senare?
Ja, men varje lagrat objekt måste inbäddas på nytt med den nya modellen, eftersom vektorer från olika modeller lever i olika utrymmen och inte kan jämföras.