Kan kunstig intelligens vippe dronningen af pinden som nytårstaleskriver?

“Vi har fodret en computer med dronningens 50 nytårstaler og bedt den skrive en ny. Vi har givet givet chatGPT samme instruks: Hvem klarer sig bedst?

En variant af denne artikel er publiceret samtidig på ForskerZonen hos videnskab.dk. Det nye år står for døren, og som altid markeres overgangen med dronningens nytårstale. Med dronningens nytårstale følger også de sædvanlige spekulationer om, hvad og hvem regenten mon vil adressere i sin tale. Hvilke begivenheder fra året, der gik, vil blive nævnt? Hvilke begivenheder udelades? Hvad med søens folk? Og skal Gud stadig bevare Danmark?

Med alle disse spekulationer og al den opmærksomhed vedrørende dronningens nytårstale kunne det være sjovt, hvis man ved hjælp af matematik og moderne statistiske metoder kunne få sin computer til at skrive et bud på dronningens nytårstale for os. Hvis man fodrer sin computer med alle data omkring dronningens tidligere nytårstaler, kan man så få computeren til at lave et bud på en autogenereret nytårstale?

Vi forsøgte med vores helt egen model. Efterfølgende gav vi den nye superchatbot, ChatGPT, samme opgave: Skriv en nytårstale.

Det menneskelige sprog er svært at imitere

Når computere arbejder med tekst, kalder man det ofte for ‘natural language processing’ (NLP), som kan oversættes til “naturlig sprogbehandling”. Du kender det formentlig allerede fra din smartphone, hvor telefonen både forsøger at gætte sig til, hvilket ord du gerne vil skrive og forsøger at gætte sig til, hvilket ord du vil skrive som det næste.

Grundlæggende er NLP et tværdisciplinært område af datalogi, lingvistik og kunstig intelligens, der forsøger at få maskiner, der ellers kun kan kommunikere i sekvenser af bits, til at tilegne sig det menneskelige sprog. Det kan lyde meget simpelt, men at få en computer til i praksis at genkende de mange indforståede og subtile nuancer ved det menneskelige sprog er meget svært.

Der er mange implicitte og kontekstuelle detaljer ved tekst og tale, som vi mennesker helt naturligt opfatter, men som en computer ikke nødvendigvis kan forstå på samme måde. Et eksempel kunne være en sarkastisk eller ironisk sætning, hvor forståelsen af sætningen er meget afhængig af den kontekst, som den indgår i.

Eksempler på det er sikke da en smart hat, du har på, og du er sjov, som i mange kontekster ville være ironiske, men det kan være svært for en computer at forstå.

Computere kan let generere sådanne sætninger – uden at være klar over, at de kan forstås på flere måder. Ofte kaldes forståelse af tekst også for “sentiment analysis” (der nok bedst kan oversættes til meningsanalyse), et område indenfor NLP (se dette tidligere indlæg om sentiment analysis af dronningens nytårstaler).

En del af vores hverdag allerede

Trods manglerne er NLP utroligt anvendeligt, eksempelvis i smartphones som nævnt ovenfor. Andre eksempler på anvendelser af NLP og automatisk generering af ord kunne være e-mail-spamfilter, der automatisk detekterer og kategoriserer e-mails med en bestemt ordlyd som spam.

Et andet eksempel er diverse søgemaskiner, der forsøger at gætte sig til, hvad du vil søge på og automatisk udfylder søgefeltet med relevante ord.

Mange har måske også mødt chatbotter, der forsøger at hjælpe besøgende på hjemmesider med problemer (eller få fat i den rigtige kundeservicemedarbejder). NLP indgår med andre ord i vores dagligdag hele tiden, uden at vi tænker over det. Dronningens tale skal skæres i spiselige stykker. Hermed er vi tilbage ved vores mål: Hvordan får vi computeren til at autogenerere tekst, der kunne være dronningens nytårstale? Da kunstig intelligens er et meget populært forskningsområde med ekstremt mange anvendelser i samfundet, findes der et hav af udviklede og veltestede metoder til at afprøve på vores problem. Fælles for mange af disse metoder er, at man er nødt til at opdele teksten i bidder (tokens). På engelsk hedder denne opdeling “tokenization”.

Eksempelvis kan “tokens” være sætninger, ord eller enkelte karakterer. Ofte laver man såkaldte n-grammer, for eksempel er 1-grammer ét tegn, imens 2-grammer er to tegn osv. Her skal et tegn forstås som den mindste enhed i et tekststykke, det vil sige mellemrum, bindestreg, udråbstegn, bogstaver og tal. Man kan så lave en sandsynlighedstabel, der viser betingede sandsynligheder for, hvad næste n-gram skal være i sætningen.

Hvis \(x_j\) er det \(j\)’te n-gram, så vil vi i modellen gerne estimere \(P(x_{j+1}|x_j)\) såfremt næste n-gram kun afhænger af det forrige n-gram.1 En første-ordens Markovkæde. I praksis lader man de betingede sandsynligheder afhænge af de to forrige \(P(x_{j+1}|x_j, x_{j-1})\)2 En anden-ordens Markovkæde eller måske ligefrem alle forrige n-grammer: \(P(x_{j+1}|x_j, x_{j-1}, \ldots, x_1)\). Givet man har bogstaverne ’ju’ og skal gætte de næste to, kan man opbygge sandsynligheder for, hvad det næste 2-gram er. Eksempelvis er det nok mere sandsynligt, at det næste 2-gram er ’le’ (så ordet bliver ’jule’) end ’æå’ (så ordet bliver ’juæå’, der ikke findes).

Når dronningens taler laves til små bidder

Vi vælger ligeledes at benytte os af “tokenization”, når vi skal gøre dronningens taler spiselige for vores computer. Indledningsvist vælger vi at fjerne alle tilfælde af ’Gud bevare Danmark’ fra alle talerne for at undgå, at den autogenererede tale ikke bare er ’Gud bevare Danmark’ gentaget 50 gange. Derefter tager vi samtlige taler fra 1972 til 2021 og gemmer dem som én stor tekstfil, hvorpå vi vælger at splitte tekststykket op efter enkelte karakterer – de kaldes 1-grams. Hvad man vælger at gøre yderligere ved sit tekststykke efter denne indledende processering, afhænger meget af den konkrete model, man anvender.

Computeren skal hjælpes på vej

Vi har i dette eksempel valgt at benytte os af et neuralt netværk til at få computeren til at autogenerere teksten. Man kan tænke på et neuralt netværk som en måde at sammensætte og opbygge betingede sandsynligheder på. Computeren fodres med data, i det her tilfælde dronningens nytårstaler, og så finder det neurale netværk selv ud af at estimere de betingede sandsynligheder.

Man skal dog hjælpe det neurale netværk lidt på vej, da det ikke bare selvstændigt kan opbygge en sandsynlighedstabel ud fra de ufiltrerede nytårstaler. Det gør man ved, at computeren får mulighed for at se så mange sætninger og karakterer som muligt, så den selv kan opbygge en sandsynlighedstabel. Netværket kan dermed selv opdage mønstre i datasættet og få en idé om, hvilke karakterer der højst sandsynligt kommer efter andre bestemte karakterer.

Vi laver derfor et datasæt, der består af består af sætninger fra nytårstalerne, hvor der til hver sætning er associeret den næste karakter efter sætningen – det vil sige næste 1-gram.

Vi vælger desuden en makslængde på 40 karakterer. Denne makslængde skal ligeledes bruges i opbyggelsen af datasættet. Hele tekstfilen med nytårstalerne køres nu igennem, hvor sætninger af længde 39 karakterer gemmes og dertil gemmes også den næste karakter i teksten, altså den fyrretyvende karakter. Vi rykker derefter startplaceringen 3 karakterer frem og gentager proceduren med at gemme sætningen bestående af de næste 39 karakterer samt den efterfølgende karakter.

Sådan foregår det i praksis

Lad os bruge nedenstående klassiske julesætning som et eksempel:

Mein Vater war ein sehr berühmter Spürhund aus Düsseldorf

Nu vælges de første 39 karakterer (markeret med blå). Den fyrretyvende (markeret med rød) skal derfor udregnes på baggrund af de foregående 39.

Mein Vater war ein sehr berühmter Spürhu

Så rykker vi tre karakterer ind i teksten og gør det samme igen. Her skal den altså gætte et mellemrum.

n Vater war ein sehr berühmter Spürhund

Og igen. Nu skal den forudsige, at det næste tegn er ’s’:

ater war ein sehr berühmter Spürhund aus

Og så videre.

Lad os prøve samme øvelse med den første sætning fra dronningens første nytårstale fra 1972:

For min familie og for mig selv blev dette år skelsættende ved min fader kong Frederiks sygdom og død.

Den første sætning i datasættet vil derfor blive: ’For min familie og for mig selv blev de’, hvor den næste karakter er t. Den anden sætning bliver derfor: ’ min familie og for mig selv blev dette’, hvor den næste karakter er ’ ’ (mellemrum). Denne procedure gentages og resulterer i 114.614 sætninger (39 tegn) med tilhørende 114.614 sandsynligheder for den fyrrende karakter i alt i datasættet.3 Der findes et hav af referencer vedrørende neurale netværk, blandt andet har den matematiske YouTube-kanal ‘3Blue1Brown’ en fremragende videoserie omhandlende dette emne. Derfor vil vi ikke gå nærmere ind i de tekniske detaljer vedrørende neurale netværk her, men bare bruge de estimerede betingede sandsynligheder. Når modellen har opbygget en sandsynlighedstabel over karaktererne, bruger den denne til selv at strikke sætninger sammen.

Hvad er ’samfundsmille’, ’Gulkinstang’ og ’hillest’?

Mon det lykkedes at få det neurale netværk til at lave en nytårstale, der kan ligne den ægte vare? Njah… Det ville nok være en overdrivelse at kalde resultatet for en gedigen succes, da teksten ikke just ser menneskeskrevet ud – i hvert fald ikke af en, der mestrer sproget:

»Det er nok derfor, hvor de og deres brog små, at det nye år står også berører os alle sammen. Det er en del af en tak for det grønlandske samfund. Det er nok daligdagen, og at det ikke er stolte af det nye år siden en venner og forskellig for at komme deres betydning, der står også meget at sige tak for det gamle år. Min nytårshilsen må blive travl for dem alle.«

Ikke desto mindre er det lykkedes for det neurale netværk at tilegne sig karakteristika ved det danske sprog, og der indgår velkendte fraser (f.eks. ’berører os alle sammen’) og emner fra tidligere nytårstaler som eksempelvis Grønland. Hvis du synes ovenstående er delvist på vej, men også har elementer af volapyk, skal du bare se det næste:

»Det er sammen med det nye år med besøg hilsen med det ganske samfundsmille været i lille del i Gukinstang og min families hillest, og som har vi er sammen til at se ikke forskel af det. I aften stadig er et fremmedeshåndsommet af deres tak for det forskåns betydning.«

Hvad er ’samfundsmille’, ’Gukinstang’, ’hillest’ eller fremmedeshåndsommet? Det er nonsens-ord.
Og de fleste vil ved første øjekast kunne se, at de sætninger ikke er menneskeskrevet og da slet ikke af dronning Margrethe. Kort sagt: Vores model er langt fra at kunne konkurrere med dronningen.

Hvornår er kunstig intelligens intelligent nok?

Forskere og andre eksperter diskuterer af og til, hvor god en kunstig intelligens er. Et kriterie, som man nogle gange bruger, er, at man ikke skal kunne skelne computeren fra et menneske (altså hvad de foretager sig) – i så fald er den kunstige intelligens god. Dette kalder man for Turing-testen, opkaldt efter den berømte matematiker og datalog Alan Turing.4 For et par år siden forslog nogle forskere The Minimal Turing Test. Hvis du kun må sige ét ord for at overvise en anden person om at du er menneske, hvilket ord vil du så vælge? Vores lille projekt havde ikke til formål at bestå en Turing-test (og ville ikke have en chance i en sådan – du kan læse mere om den og Turing her). Vi ville ’blot’ introducere kunstig intelligens i relation til tekst og computere. Og trods de åbenlyse fejl, er det værd at bemærke, hvor meget af det danske sprog og dronningens sprogbrug, netværket har tilegnet sig.

Sådan kan vores model forbedres

Vores netværk er blevet trænet på en relativt begrænset datamængde bestående af 343.883 karakterer fordelt på 95 unikke karakterer. Selvom det umiddelbart kan lyde af meget, er det peanuts i forhold til de datamængder, som de allerbedste modeller bliver trænet på. Netværket havde desuden 126.943 forskellige parametre, som det kunne justere på, når det blev fodret med sætningerne, og det estimerede de betingede sandsynligheder.

En mulig forbedring af modellen kunne være at øge datamængden. Der findes selvfølgelig kun 50 nytårstaler af dronningen, men man kunne eventuelt også fodre netværket med centrale nyheder og begivenheder fra det forgangne år.

Det er jo her, at dronningen primært henter indholdet til sin nytårstale, og man kunne derfor tage et tværsnit af artikler fra forskellige medier, der omhandler årets væsentligste begivenheder.

… men det øger også beregningstiden

Man kunne selvfølgelig også øge antallet af gange, som netværket bliver trænet på tekstmængden, men det har den hage, at beregningstiden også ville blive forøget. Det tog i forvejen over 24 timer for netværket at blive trænet og generere talerne, når der var allokeret 3 til 4 gigabyte RAM til processen, så det er allerede en beregningstung affære. Nonsens-ordene ovenfor som ’Gukinstang’ trækker naturligvis kvaliteten af den genererede tekst ned.

For at komme disse til livs kunne man importere en dansk ordbog, og således få computeren til at lave et ordbogsopslag ved længere ord for at bekræfte, om det rent faktisk er et rigtigt ord. Igen er der den hage, at beregningstiden vil blive forøget yderligere, hvis modellen også skal søge igennem hele det danske sprog, når den genererer tekst.

Den nye sensation har 175 milliarder parametre

Problemstillingen ovenfor med at autogenerere tekst ud fra et givent tekststykke er blot ét eksempel på den række problemer, der i dag løses med metoder fra kunstig intelligens og ’machine learning’.

Interessen for disse emner er eksploderet de seneste år. Og har du fulgt lidt med i danske eller udenlandske medier de seneste uger, er du formentlig stødt på en ny chatbot.

»Verdens hidtil klogeste sprog- og chatbot har vakt vild opsigt, fordi den kan løse en universitetseksamen og besvare alverdens spørgsmål med et overbevisende sprog og forstand. der eksempelvis kan bruges til snyd i gymnasiet«, som Videnskab.dk skrev forleden.

Den professionelt udviklede sprogmodel, chatbotten bygger på, hedder GPT-3 (’Generative Pre-trained Transformer 3’) og er udviklet af firmaet OpenAI. De anvender ligeledes neurale netværk og metoder fra kunstig intelligens. GPT-3 er state of the art indenfor kunstig intelligens og NLP. GPT-3 har hele 175 milliarder parametre, der kan justeres på – over en million gange flere parametre end vores netværk med 126.943 parametre.

Turing-NLG sprogmodellen udviklet af Microsoft var markedsførende inden GPT-3 så dagens lys og havde ’kun’ 10 milliarder parametre. GPT-3 kan udføre mange forskellige opgaver indenfor NLP. Den kan autogenerere tekst, færdiggøre sætninger, føre en samtale og klassificere sætninger i forskellige kategorier efter sætningens tone, længde osv.

Den bedste kunstige nytårstale

En speciel version af GPT-3 hedder ChatGPT, der er en chatbot, man kan skrive noget til, og så svarer den. Hvis man for eksempel giver ChatGPT følgende simple instruks: “Skriv et eksempel på dronningens nytårstale, der nævner krigen i Ukraine, de stigende priser på vaniljekranse, og hvor der er en hyldest til søens folk”, får man outputtet:

»Kære landsmænd og landsmændinder,

Jeg tager mig denne lejlighed til at ønske jer alle et godt nytår. Vi skal huske at værdsætte hinanden og det liv, vi har sammen, selv i de mørkeste tider.

Som I ved, har vi været igennem en svær tid med krigen i Ukraine, der har påvirket mange af vores borgere og fået mange af os til at føle en dyb sorg. Lad os huske på de mennesker, der har mistet deres kære i konflikten, og lad os fortsætte med at arbejde for fred og forsoning.

Samtidig har vi måttet se stigninger i priserne på mange af de ting, vi holder af, herunder de dejlige vaniljekranse, som vi elsker at spise på denne tid af året. Lad os huske at være taknemmelige for det, vi har, og lad os forsøge at spare, hvor vi kan, for at imødegå de økonomiske udfordringer.

Endelig vil jeg gerne benytte lejligheden til at hylde alle de søfolk, der arbejder hårdt for at holde vores land i drift.

Uanset om de sejler på de store oceaner eller på vores indre farvande, gør de en kæmpe indsats for at sikre, at vi kan fortsætte med at leve det gode liv. Lad os huske at sige tak til dem for alt det, de gør for os.

Jeg ønsker jer alle et godt nytår, og lad os arbejde sammen for at skabe en bedre fremtid for os alle.

Med kongelig hilsen,

Dronningen.«

Dilemmaer og muligheder

Ovenstående nytårstale lider ikke af de åbenlyse fejl, som sætningerne genereret af vores model gjorde. Det ligner umiskendeligt noget, som et menneske kunne have skrevet. Man kan dog få en fornemmelse af, at ovenstående ikke er menneskeskrevet ud fra de meget generelle og vage konstateringer, som ChatGPT kommer med. Det er ikke desto mindre imponerende, at ChatGPT med denne simple instruks kunne generere ovenstående på ingen tid. At AI nu kan emulere det menneskelige sprog noget nær fejlfrit rejser selvfølgelig en lang række af moralske og etiske dilemmaer, men det åbner også for en masse nye muligheder for fremtiden. Hvad der kommer til at fylde mest i det nye år, må tiden vise. Indtil da kan vi glæde os over, at dronningen er her til at holde en vaskeægte, menneskeskrevet tale for hele nationen.

Godt nytår.