Denne klumme er et debatindlæg og er alene udtryk for forfatterens synspunkter.
Vi har alle oplevet, at det er nemt at finde information på internettet, men svært at finde det, som vi leder efter, når vi bruger søgeværktøjer sat op til at finde intern virksomhedsinformation eller indhold på hjemmesider.
Med natural language processing eller NLP-baseret maskinlæring er det dog muligt for brugeren at søge med naturlig tekst på samme måde, som vi ville stille et spørgsmål til mennesker.
Maskinlæring har brug for træningsdata for at virke og jo mere jo bedre.
At lave træningsdata, for eksempel ved at angive det korrekte svar til indsamlet søgehistorik, er tidskrævende. Det vil forlænge og fordyre udviklingstiden, før man er nået til en AI løsning, der virker godt nok.
Naturlig tekstsøgning lyder for dyrt for virksomheder, som ikke har ressourcer til at lave en masse træningsdata, men sådan er det faktisk ikke længere.
Pre-træning kommer til undsætning
Naturlig sprogteknologi har gjort store fremskridt de seneste år ved hjælp af det, vi kalder pre-træning.
Det har været den afgørende faktor til at få bedre kvalitet af søgeresultater med en mindre investering.
Som en sidebemærkning gennemgår biologien nøjagtig samme udvikling lige nu: Modellen er den samme, men tekst er udskiftet med proteinsekvenser.
For at forklare pre-træning er det nødvendigt at være specifik omkring, hvad vi mener med træningsdata for tekst:
Data uden svar (engelsk unlabeled data)
Det kan være tekstdata, som er samlet fra internettet eller intern tekstdata fra virksomheden.
Denne type data har vi i praksis uendelig meget af, men vi skal være varsomme med, hvilke data vi bruger, for vores model vil lære ting fra det[/url].
Data med svar (engelsk labeled data).
Det er det dyre data. Hos raffle.ai er dette spørgsmål-svar par.
Vi har brug for et antal spørgsmål for hvert svar. Spørgsmålene kan vi få fra historiske søgninger, samlet over tid og givet svar af interne eksperter i eller konstrueret af AI-trænere.
AI-trænere giver sikkerhed for, at modellen fungerer godt nok fra dag et.
Sådan træner du din sprogmodel
Lidt længere nede vil det blive forklaret præcis, hvad en sprogmodel er.
For nu er det nok at vide, at efter den er trænet “forstår” sprogmodellen betydningen af sætninger. Eller sagt mere præcist, hvis vi tager to forskellige sætninger, der betyder det samme, vil den måde, sprogmodellen repræsenterer dem på være tæt på den samme.
Det er et meget fint fundament, når vi vil bygge sprogteknologi applikationer såsom spørgsmål-svar systemer, fordi det giver os en måde at repræsentere vores spørgsmål som robust i forhold til, hvordan vi præcist stiller spørgsmålet.
Så opskriften for en naturlig sprogteknologi applikation ala 2021 lyder:
- Pre-træn en sprogmodel med store mængder data uden svar — eller endnu bedre — få nogle andre til at stille en til rådighed
- Finpuds på et lille datasæt med svar.
Nøglen til svaret er kontekst: Et enkelt ord i en sætning får en del af sin betydning fra den omstående tekst.
Så hvis vi træner en model til at forudsige et ord givet teksten før: “Josef går tur med sin ” eller teksten omkring: “katten musen” så vil modellen være tvunget til at lære repræsentationer, som anvender konteksten.
Konteksten bestemmer ikke entydigt det manglende ord, så de modeller, vi anvender , forudsiger sandsynligheder over mulige ord.
BERT og venner
Der er mange sprogmodeller på markedet.
En tidlig berømthed er word2vec.
Som navnet antyder, er det en model, der går fra ord til repræsentationer, som er høj-dimensionelle vektorer af reelle tal.
En fascinerede opdagelse ved word2vecs repræsentationer er, at man kan lægge til og trække fra på en semantisk meningsfuld måde: vec(konge) - vec(mand) + vec(kvinde) ≈ vec(dronning) eller vec(Stockholm) - vec(Sverige) + vec(Danmark) ≈ vec(København).
Spoler man hurtigt frem til i dag, så er den mest populære sprogmodel BERT, som er akronym for Bidirectional Encoder Representations from Transformers.
BERT er en såkaldt maskeret sprogmodel, der er trænet til at forudsige et eller flere ord, som er blevet fjernet fra inputtet som vist i øverste linie i eksemplet nedenfor.
Som det ofte er tilfældet i dyb læring, hjælper mere data og større modeller på at løse opgaven bedre.
Den standard pre-trænede BERT model er en 300 million parameter transformer model trænet på hele Wikipedia og mange andre kilder.
Den pre-trænede BERT.model findes på mange sprog og der findes også udgaver trænet samtidigt på over 100 sprog.
Så i princippet kan vi lave applikationer, der virker på næsten ethvert sprog.
Disse modeller lyder gigantiske.
Det er de faktisk også og det kræver tera-flop (1012 floating point operationer) per input sætning, men det er faktisk muligt at sætte dem i produktion, uden at brugerne oplever ventetid på svar. Google bruger BERT til internetsøgning og raffle.ai til vores AI løsninger.
I næste klumme vil vi se nærmere på træning af spørgsmål-svar systemer og se på, hvordan dyb læring fundamentalt er ved at ændre søgeteknologi.
lummer er læsernes platform på Computerworld til at fortælle de bedste historier, og samtidig er det vores meget populære og meget læste forum for videndeling.
Har du en god historie, eller har du specialviden, som du synes trænger til at blive delt?
Læs vores klumme-guidelines og send os din tekst, så kontakter vi dig - måske bliver du en del af vores hurtigt voksende korps af klummeskribenter.