Hvad er embedding?
En embedding er tekstens betydning omsat til en liste med tal, en vektor, hvor tekster med lignende betydning havner tæt på hinanden. Det gør det muligt for computere at sammenligne betydning i stedet for præcise ord. Embeddings bruges til semantisk søgning, RAG og dubletdetektion og gemmes ofte i en vektordatabase.
En embedding er et af de begreber der lyder mere kompliceret end det er. Grundlæggende er det en måde at omsætte tekst til en liste med tal på så betydningen følger med. Det gør det muligt for en computer at sammenligne hvad tekster faktisk handler om, ikke bare hvilke bogstaver de indeholder, og det er motoren bag moderne søgning og RAG.
Betydning som tal
Forestil dig at hvert tekststykke får tilknyttet en lang liste med tal, en såkaldt vektor. Tallene er valgt så de fanger tekstens betydning. Det centrale er hvad der sker når man sammenligner to sådanne lister: Tekster der betyder omtrent det samme, får vektorer der ligger tæt på hinanden mens tekster om helt forskellige ting havner langt fra hinanden.
Et intuitivt eksempel gør det tydeligt. Ordene “faktura” og “regning” havner tæt på hinanden fordi de betyder næsten det samme. “Faktura” og “ferie” havner langt fra hinanden fordi de handler om vidt forskellige ting. Computeren forstår ikke ordene som et menneske gør, men afstanden mellem vektorerne bliver et mål for hvor ens betydningerne er.
Det er hele grundidéen: betydning oversat til tal, hvor nærhed betyder lighed. Man behøver ikke at forstå hvordan tallene regnes ud, for at forstå hvad de bruges til.
Hvad embeddings bruges til
Når tekst først kan sammenlignes på betydning, åbner der sig flere anvendelsesmuligheder. Tre er særligt almindelige:
| Anvendelse | Hvad embeddings gør muligt |
|---|---|
| Semantisk søgning | Finde dokumenter ud fra betydning: "regning" matcher en tekst om "faktura" |
| RAG | Finde de rigtige dokumenter frem til en sprogmodel før den svarer |
| Dubletdetektion | Opdage tekster der betyder det samme trods forskellig formulering |
Semantisk søgning er måske det tydeligste eksempel. En almindelig søgning kræver at brugeren gætter de rigtige ord; en søgning bygget på embeddings finder det rigtige også når dokumentet udtrykker det samme med andre ord. Det er forskellen på at lede efter præcise bogstaver og at lede efter betydning.
RAG bygger direkte på dette. Når en sprogmodel skal svare ud fra jeres egne dokumenter, bruges embeddings til at finde netop de tekststykker der er relevante for spørgsmålet så modellen får det rigtige grundlag serveret. Endelig gør dubletdetektion det muligt at finde poster der i virkeligheden handler om det samme selvom de er formuleret forskelligt. Det er nyttigt når der skal ryddes op i registre og vidensbaser.
Forholdet til vektordatabaser
Et naturligt opfølgende spørgsmål er hvor alle disse vektorer bliver af. Svaret er som regel en vektordatabase: en database bygget til at gemme embeddings og hurtigt finde de vektorer der ligger tættest på et givet spørgsmål. I laver embeddings af jeres dokumenter, lægger dem i vektordatabasen, og den klarer derefter selve lighedssøgningen effektivt, også når der er tusindvis af dokumenter.
For en beslutningstager er det nok at forstå kæden: Tekst bliver til embeddings, embeddings gemmes i en vektordatabase, og tilsammen gør de det muligt at søge og ræsonnere ud fra betydning. Det er fundamentet under de fleste løsninger hvor AI skal arbejde med jeres egne tekster.
Sådan laves embeddings, og et vigtigt forbehold
Selve omsætningen klares af en embedding-model, en særlig AI-model der udelukkende er trænet til at oversætte tekst til vektorer. I sender et tekststykke ind og får dets vektor tilbage. Det er en hurtig og relativt billig operation sammenlignet med at lade en stor sprogmodel generere tekst, og det er en af grundene til at semantisk søgning skalerer godt, også til store mængder dokumenter.
Et forbehold er værd at nævne. Embeddings fanger betydning påfaldende godt, men de forstår ikke alt: Ironi, meget specifik fagterminologi eller nuancer der kræver baggrundsviden, kan gå tabt. Kvaliteten afhænger også af hvilken embedding-model der bruges og hvor godt den passer til jeres sprog og jeres domæne. Både for sproget og for branchespecifikke begreber er det værd at teste på virkelige eksempler snarere end at gå ud fra at en hvilken som helst model er god nok. Vil du vide hvordan det kan bruges hos jer, kan du læse mere om vores arbejde med AI eller kontakte os.
Ofte stillede spørgsmål
Hvad er en embedding, enkelt forklaret?
Det er en måde at omsætte tekst til tal på så betydningen bevares. Hver tekst får en liste med tal, en vektor, og det fine er at tekster der betyder omtrent det samme, får vektorer der ligger tæt på hinanden. Computeren kan så sammenligne betydning i stedet for bare at matche præcise ord mod hinanden.
Hvordan adskiller det sig fra at søge på nøgleord?
Nøgleordssøgning leder efter præcise ordmatch. Embeddings fanger betydning så en søgning på 'faktura' kan finde et dokument der taler om 'regning' selvom ordet faktura ikke forekommer. Det gør søgningen langt mere træfsikker når brugere og dokumenter beskriver det samme med forskellige ord.
Hvad bruges embeddings til?
Først og fremmest tre ting: semantisk søgning, hvor man søger på betydning i stedet for præcise ord; RAG, hvor de rigtige dokumenter hentes ind før en sprogmodel svarer; og dubletdetektion, hvor tekster der betyder det samme, kan findes selvom formuleringen er forskellig. Fælles for dem er at de bygger på at sammenligne afstanden mellem vektorer.
Hvordan hænger embeddings sammen med vektordatabaser?
En vektordatabase er bygget til at gemme embeddings og hurtigt finde de vektorer der ligger tættest på en given vektor. Når I har lavet embeddings af jeres dokumenter, lægger I dem i en vektordatabase, og den klarer derefter selve lighedssøgningen effektivt, også når dokumenterne er mange.
Skal man forstå matematikken bag for at bruge embeddings?
Nej. Det er nok at forstå idéen: Tekst bliver til tal der fanger betydning, og afstanden mellem tallene svarer til lighed i betydning. Selve udregningen klarer en færdig embedding-model. Som kunde behøver man kun at vide hvad teknologien gør og hvilke problemer den løser, ikke hvordan vektorerne beregnes i detaljer.