Embeddings
Snelle definitie
Een embedding is een lijst van getallen (een vector) die de betekenis van een tekst, afbeelding of ander item vertegenwoordigt, zodat vergelijkbare items nabijgelegen vectoren krijgen. Embeddings maken zoekopdrachten op basis van betekenis mogelijk.
Op deze pagina
Hoe embeddings werken
Een embeddingmodel leest een tekst en geeft een vector van vaste lengte terug, meestal enkele honderden tot een paar duizend getallen. Het model is getraind zodat teksten met verwante betekenissen dicht bij elkaar in die ruimte landen: “terugbetalingsbeleid” en “hoe krijg ik mijn geld terug?” delen bijna geen woorden maar produceren dichtbije vectoren.
Het idee gaat terug naar woordvectoren zoals word2vec (Mikolov en collega's, 2013), die leerden dat woorden die in vergelijkbare contexten voorkomen, vergelijkbare betekenissen hebben. Zinsniveau-modellen zoals Sentence-BERT (2019) breidden het uit naar hele zinnen en passages, wat is wat zoekopdrachten en vraagbeantwoording nodig hebben.
Waar ze voor worden gebruikt
Embeddings versterken semantische zoekopdrachten: vergelijk de vector van een vraag met de vectoren van opgeslagen passages en geef de dichtstbijzijnde terug. Ze zijn de opzoekstap van retrieval-augmented generation (RAG). Ze dienen ook voor het clusteren van vergelijkbare gesprekken, het detecteren van duplicaten, het aanbevelen van vergelijkbare producten en het routeren van een bericht naar het juiste onderwerp.
Meertalige embeddingmodellen plaatsen een vraag in het Frans en een passage in het Engels dicht bij elkaar wanneer ze dezelfde betekenis hebben, waardoor één kennisbasis klanten in veel talen kan bedienen.
Praktische punten
Vectoren van verschillende modellen zijn niet vergelijkbaar: als je het embeddingmodel wijzigt, moet elke opgeslagen passage opnieuw worden ingebed. Embeddings vangen betekenis, niet exacte waarden, dus ze zijn slecht in precieze filters zoals een prijsklasse of een productreferentie — die hebben gestructureerde velden of zoekopdrachten op basis van trefwoorden nodig. En lange documenten moeten in passages worden verdeeld voordat ze worden ingebed, omdat één vector voor een hele handleiding de inhoud vervaagt.
Embeddingmodellen verschillen ook in taaldekking, dimensie (en dus opslagkosten) en waar ze worden gehost.
Embeddings in AI SmartTalk
Elke AI SmartTalk-assistent gebruikt één embeddingmodel voor al zijn kennis. Nieuwe assistenten gebruiken standaard een in de EU gehost model dat meertalig is, en OpenAI-embeddingmodellen zijn ook beschikbaar. De vectoren worden opgeslagen in PostgreSQL met pgvector en gecombineerd met zoekopdrachten op basis van trefwoorden en trigrammen, zodat productreferenties en exacte termen net zo betrouwbaar worden gevonden als parafraserende vragen.
Veelgestelde vragen
Wat is het verschil tussen een embedding en een token?
Een token is een stuk tekst, ruwweg een woordfragment, dat een model leest. Een embedding is een vector van getallen die betekenis vertegenwoordigt — van een token, een zin of een hele passage.
Zijn embeddings hetzelfde als een vectordatabase?
Nee. Embeddings zijn de vectoren; een vectordatabase of index slaat ze op en vindt de dichtstbijzijnde snel.
Kan ik later van embeddingmodellen wisselen?
Ja, maar elk opgeslagen item moet opnieuw worden ingebed met het nieuwe model, omdat vectoren van verschillende modellen in verschillende ruimtes leven en niet kunnen worden vergeleken.