Wat is een embedding?

Een embedding is een reeks getallen die de betekenis van een tekst voorstelt, zodat twee teksten met een gelijkaardige betekenis gelijkaardige reeksen krijgen.

4 min leestijd

Een computer begrijpt niet dat "openingsuren" en "hoe laat bent u open?" over hetzelfde gaan: de woorden verschillen. Een embedding lost dat probleem op. Het is een reeks getallen die de betekenis van een tekst voorstelt, berekend door een gespecialiseerd model, zodat twee teksten met een gelijkaardige betekenis gelijkaardige reeksen getallen krijgen.

Hoe het werkt, eenvoudig gezegd

Stel u een kaart voor waarop elke zin geplaatst wordt volgens wat hij betekent. Vragen over openingsuren komen in dezelfde hoek, vragen over prijzen in een andere, vragen over retouren nog ergens anders. Een embedding is het adres van een tekst op die kaart. De kaart heeft geen twee dimensies maar enkele honderden of zelfs enkele duizenden, wat fijne nuances laat onderscheiden.

Om te weten of twee teksten over hetzelfde gaan, volstaat het dan de afstand tussen hun adressen te meten. Dat is een snelle berekening, die de computer in een fractie van een seconde voor duizenden passages kan herhalen.

Waar het idee vandaan komt

Het idee om woorden met getallen voor te stellen volgens hun context is oud in de taalkunde: je herkent een woord aan zijn buren. Het brak praktisch door in 2013 met word2vec, een methode van een Google-team onder leiding van Tomas Mikolov, die per woord een vector berekende. Huidige modellen gaan verder: ze berekenen een embedding voor een hele zin of alinea, rekening houdend met de woordvolgorde en de context.

Waarvoor embeddings dienen in een AI-assistent

Embeddings vormen het hart van semantisch zoeken, waarmee een assistent de juiste passage in uw documenten vindt, ook als de bezoeker niet dezelfde woorden gebruikt. De werking verloopt in twee tijden:

  1. Bij de voorbereiding wordt elk document van de kennisbank in passages geknipt en krijgt elke passage haar embedding. Die vectoren worden opgeslagen in een vectordatabase
  2. Bij elke vraag krijgt de vraag op haar beurt een embedding, en zoekt het systeem de passages waarvan de vectoren het dichtst liggen. Die passages gaan naar het taalmodel, dat het antwoord schrijft

Dat is de eerste stap van RAG. Vindt ze de verkeerde passages, dan geeft zelfs het beste model een antwoord dat ernaast zit.

Embeddings over taalgrenzen heen

Meertalige embeddingmodellen plaatsen teksten in verschillende talen op dezelfde kaart. Een Nederlandse vraag over de "opzegtermijn" komt dan dicht bij een Franse passage over de "délai de préavis". Zo kan een Belgische assistent in drie talen antwoorden vanuit één versie van de documenten, op voorwaarde dat de vaktermen gecontroleerd worden.

Die koppeling werkt goed voor gewone woordenschat. Ze kan minder betrouwbaar zijn voor interne afkortingen, namen van aanbiedingen of administratieve termen die eigen zijn aan een gewest. Een woordenlijst die zulke termen naast elkaar zet in de documenten, helpt het zoeken.

De grenzen om te kennen

  • Betekenis, geen feiten. Een embedding zegt dat twee teksten over hetzelfde onderwerp gaan, niet dat de ene de andere correct beantwoordt. Een passage over retouren in de winkel ligt dicht bij een vraag over online retouren, ook als ze er niet op van toepassing is
  • De opdeling telt. Een te lange passage mengt meerdere onderwerpen en wordt vaag; een te korte passage verliest haar context. Documenten met duidelijke secties geven betere resultaten
  • Getallen en codes worden slecht voorgesteld. Een productreferentie of artikelnummer wordt beter gevonden met klassiek zoeken op de exacte woorden
  • Van embeddingmodel wisselen verplicht om alle vectoren opnieuw te berekenen, want twee modellen plaatsen teksten niet op dezelfde kaart

Daarom combineren veel systemen zoeken met embeddings en zoeken op trefwoorden: het eerste vindt de betekenis, het tweede de exacte termen.

Embedding, training en vertrouwelijkheid

Een embedding berekenen verandert het model niet en traint het niet op uw documenten. De tekst wordt naar het embeddingmodel gestuurd, dat de reeks getallen terugstuurt. Zoals voor alle gegevens die naar een dienstverlener gaan, moeten de verwerkingsvoorwaarden gekend zijn, zeker als de documenten persoonsgegevens bevatten. Het eenvoudigst blijft om geen persoonsgegevens in een publieke kennisbank te laden.

En in KernChat?

KernChat gebruikt vandaag geen embeddings. De bronnen van een kennisruimte gaan ongewijzigd in het contextvenster van het model, in de prioriteitsvolgorde die de organisatie vastlegt, en elke zin die op een bron steunt, citeert ze. Passen de bronnen niet allemaal binnen de voorziene grens, dan komen eerst die met de meeste gemeenschappelijke woorden met de vraag aan bod. Die keuze houdt het antwoord trouw aan de volledige tekst van de documenten, zonder afhankelijk te zijn van een opdeling in passages, en past bij de omvang van de documentatie van een kmo.

Verder lezen over dit onderwerp

Veelgestelde vragen

Traint een embedding het model op mijn documenten?
Nee. Een embedding berekenen verandert het model niet: de tekst gaat naar het embeddingmodel, dat een reeks getallen terugstuurt. De verwerkingsvoorwaarden van de dienstverlener moeten zoals bij alle doorgegeven gegevens gecontroleerd worden.
Wat is het verschil tussen een embedding en zoeken op trefwoorden?
Zoeken op trefwoorden vindt teksten met dezelfde woorden. Embeddings vinden teksten met dezelfde betekenis, ook anders geformuleerd of in een andere taal. Veel systemen combineren beide.

Zie het op uw eigen situaties

Alles begint met een audit van een uur over uw vragen, uw documenten en uw tools. Daarna stellen we u het niveau voor dat past.

Een demonstratie aanvragen