Sannsynlighets­maskinene

If you came here, and you don’t read Norwegian, I’m sorry. This is a talk I did as part of a STEM conference for teachers in Norway, and as a consequence, the content is in Norwegian.

Den 19. Oktober hadde jeg æren av å få prate om “Sannsynlighetsmaskinene - Kunstig intelligens enkelt forklart” på Naturfagskonferansen 2023. Under kan dere se tekstversjonen av dette foredraget.


Sannsynlighets­maskinene

Kunstig intelligens - enkelt forklart

Hei alle sammen!

Først og fremst vil jeg si at det er en ære å få stå her foran så mange av kanskje den viktigste yrkesgruppen i Norge. Jeg vet ikke om det sitter noen lærer der ute som kjenner meg, men om det gjør, så vil jeg først og fremst si tusen takk for at dere inspirerte meg til å stå her i dag, og til å bli interessert i naturfag.

Jeg har fått den store oppgaven å forklare hvordan kunstig intelligens funker for dere. Det er ikke en enkel jobb, så her blir det mye innhold, og om det er noe dere ikke henger med på, må dere gjerne komme bort å spørre meg direkte etterpå.

Vi starter med å utforske hvordan det nylige AI-gjennombruddet ble til, hvordan disse modellene fungerer, og veldig kort om hvorfor vi som holder på med dette er både spent og skremt. Det blir nok en litt annen vinkling enn mange andre foredrag om kunstig intelligens, og jeg håper først og fremst at det kan virke opplysende, og inspirere dere til å grave litt dypere.


Dag-Inge Aas

Teknologi- og produktsjef @ draum.com

/assets/Clipboard.png

Men la meg starte med å introdusere meg selv: Hei, jeg heter Dag-Inge, og jeg er teknologi og produktsjef i en oppstartsbedrift som heter Draum.

Jeg har jobbet med krysningen mellom produkt og teknologi i over ti år nå, og har tidligere bygget en del andre startups, Whereby og Confrere. Nå er jeg dypt nede i AI-hypen, for å se om det er noe interessant vi kan bygge der.

Jeg brenner altså for å skape nye opplevelser på ny teknologi, og å være med å skape nye måter å jobbe på med teknologi, på menneskets premiss.

Uansett, dette foredraget handler om kunstig intelligens, så la oss dykke ned i det.


En liten historiefortelling

For å forstå hvor denne bølgen av AI kommer fra, vil jeg ta dere helt tilbake til 1966 og til forskeren Joseph Weizenbaum som observerte at når han fikk pasienter til å interagere med ELIZA, et dataprogram som var laget for å late som om den var psykolog, fremkalte det ekte emosjonelle reaksjoner, der pasientene begynte å tilskrive dataprogrammet menneskelig forståelse og motivasjon.

Eller med andre ord: kunstig intelligens.


ELIZA parodierte altså en psykoterapeut. Og det fungerte stort sett ved å omformulere "pasientens" svar som spørsmål:

> Human: Well, my boyfriend made me come here.
> ELIZA: Your boyfriend made you come here?
> Human: He says I'm depressed much of the time.
> ELIZA: I am sorry to hear you are depressed.
> Human: It's true. I'm unhappy.
> ELIZA: Do you think coming here will help you not to be unhappy?

Denne effekten han observerte, der mennesker tilskriver følelser til et deterministisk dataprogram, ble senere kjent som ELIZA-effekten:

> The ELIZA effect refers to "the susceptibility of people to read far more understanding than is warranted into strings of symbols—especially words—strung together by computers"

– Source: https://en.wikipedia.org/wiki/ELIZA_effect


Og som Weizenbaum senere skrev

> "I had not realized ... that extremely short exposures to a relatively simple computer program could induce powerful delusional thinking in quite normal people."

/assets/Clipboard_2.png

Hvorfor starter jeg med dette? Fordi at for å forstå hvordan kunstig intelligens fungerer, så må vi først forstå hvordan dataprogrammer som kan "snakke" fungerer på vår egen psyke, og vår egen forståelse av teknologi.

Den antropomorfiseringen, eller menneskliggjøringen, av teknologi vi ser i dag, kjenner vi kanskje best som Siri, Alexa og alles Snapchatbestevenn MyAI, påvirker oss til å tillegge datamaskiner følelser, intensjon og ja, intelligens, til tross for at det bakenforliggende "bare" er ganske enkle dataprogrammer.


LaMDA og Transformerne

/assets/Clipboard_3.png Timnit Gebru, tidligere leder av AI-etikkstyret hos Google

La oss spole litt fremover i tid: AI-utviklingen har akselerert kraftig de siste 5-10 årene. I 2013 var AI oftest kalt maskinlæring, og ble hovedsaklig brukt som et ledd i en sannsynlighetsmodell, f.eks. til værmelding.

Spol frem til i dag, så har vi mennesker som jobber med AI-etikk hos de store teknologiselskaper. De jobber altså med å sørge for at man bruker AI på en ansvarlig måte.

Disse har vært utsatt for en god del dramatikk, ettersom de har fått sparken etter at de påpekte at enkelte av modellene som ble utviklet var rasistiske og diskriminerende, og hadde potensial for store, negative, ringvirkninger i samfunnet.

Du har også eksempler på ekstremt oppegående dataingeniører i disse selskapene som hevder at deres AI har blitt bevisst .


Enkelte av disse mener altså at AI-personen deres har:

> …den emosjonelle intelligensen til et barn på 8-9 år som tilfeldigvis kan veldig mye om fysikk

Attention is all you need

Alt dette kommer etter at Google I 2017 publiserte forskningsartikkelen "Attention is all you need" som la frem en ny tilnærming til å bygge store språkmodeller.

/assets/Clipboard_4.png

Denne nye tilnærmingen, kalt "Transformers", skulle komme til å revolusjonere hva AI kunne gjøre, og er grunnen til at vi i det hele tatt har denne samtalen i dag.

Å forstå hvordan denne forskningsartikkelen endret måten vi bygde nevrale nettverk på kan være ganske komplekst, men det er egentlig ikke så vanskelig om man ser forbi den tekniske sjargongen.


Det nevrale nettverket

En Sherlock Holmes fortelling

/assets/Firefly_Portrait+of futuristic Sherlock Holmes in a beanie hat and glasses, apocalyptic_Graphic,psychedelic,cyberpunk,digital_27933.jpg

For å prøve å forklare hvordan dette fungerer, la oss forestille oss ei Sherlock Holmes-fortelling.

I denne fortellingen har Sherlock et bibliotek av bøker med spor som vil lede til morderen. Å sette sammen alle de viktige sporene på en effektiv måte er nøkkelen til å løse mysteriet og redde dagen.


/assets/Firefly_A+man in a beanie hat and glasses, sitting by a desk reading a book, apocalyptic_Graphic,psychedelic,cyberpunk,digital_23519.jpg

På den gamle måten å gjøre ting på, måtte Sherlock Holmes sette seg ned og lese hver bok selv, huske hvert eneste ord og avsnitt for å prøve å sette sammen sporene. Han må prøve å huske viktig informasjon fra tidligere bøker, uten å kunne skrive de ned, eller slå opp i tidligere bøker. Denne prosessen fungerer, men den er treg og noen ganger kan han glemme eller ikke se avgjørende detaljer, eller koblinger. Det er rett og slett en umulig oppgave når antall bøker han må lese går fra ti til tusenvis.

I maskinlæringsterminologi kalles denne prosessen for Recurrent Neural Networks (RNNs), eller Long Short-Term Memory (LSTM), og representerer de beste fremgangsmåtene vi hadde innen maskinlæring inntil nylig.


/assets/Firefly_A+board of pictures and post its, with red string going from item to item, apocalyptic_Graphic,psychedelic,cyberpunk,digital_49816.jpg

Med denne nye Transformers-tilnærmingen, er Sherlock i stand til å lese veldig mange bøker samtidig gjennom sine mange hjelpere, og raskt identifisere de viktige sporene og sammenhenger på tvers av bøker.

Forestill deg at dette gjøres gjennom en gigantisk korktavle med bilder, røde tråder og lignende, som alle de små hjelperne fyller ut løpende.

Dette er analogt med "multi-head attention mechanism", eller "fler-hodet oppmerksomhet" i Transformeren, som hjelper modellen med å fange forskjellige aspekter av input-dataene og forstå forholdene mellom ord mer effektivt.

I tillegg vil denne evnen til å forstå konsepter og sammenhenger, selv når de ikke er fysisk nært hverandre i input-dataene, vise seg å være nøkkelen til å låse opp det neste nivået av uncanny valley-effekter.

Enkelt forklart: En transformer er i stand til å lese en ekstremt stor mengde tekst, se sammenhenger og gruppere like konsepter, gjennom å bruke en parallell prosess med millionvis av små hjerner som leser små mengder av teksten samtidig.


Nå som vi forhåpentligvis har en litt bedre forståelse av hvordan denne mekanismen fungerer konseptuelt, tenkte jeg at vi skal se litt på det tekniske. Det er jo en gjeng naturfagslærere her, så jeg håper det er greit.

La oss lage en språkmodell


/assets/Clipboard_17.png size: contain For å lage en språkmodell trenger vi først massive mengder data. Det kreves helt uhorvelige mengder data, rundt 1 trillion ord for de beste modellene som GPT-4, og en regnekraft som tilsvarer ti tusenvis av datamaskiner med det aller beste grafikkortet på markedet.

Dette er veldig, veldig dyrt, flere hundre million kroner for en modell, og opptil en millard eller mer er sannsynlig for de aller største, men her har vi aldri fått vite eksakte tall.

Måten dette skjer på er at du tar disse store datasettene, med relativt lav kvalitet, som betyr at de kan inneholde alt fra Wikipedia og nyhetsartikler, til direkte spam og spenstige konspirasjonsteorier, også gjør du de om til en maskinrepresentasjon som modellen kan forstå.


Måten dette skjer på er gjennom en prosess vi kaller tokenisering. Å oversette tekst til et språk som datamaskinen forstår.

Vi kan se et eksempel på det på figuren her fra GPT-3, der vi ha tokenifisert definisjonen av en lærer fra Wikipedia. Hver farge er et unikt token, som så blir oversatt til et tall. For eksempel: "En" er det unike tokenet 4834, "mellomrom l" er 300, "æ" er 21241 og "rer" er 11751.

Dette hjelper modellen vår å begrense antall ulike muligheter i nettverket for hva som er det mest sannsynlige neste ordet.

Dette kalles ofte vokabularet til modellen, og på samme måte som vi på norsk har sammensatte ord, så blir lengre ord satt sammen av flere små ord. Det er altså totalt 50257 tokens, eller ord, i ordboken til GPT-3. /assets/Clipboard_18.png size: contain


Tokenisering

Å oversette en tekst til et annet, begrenset vokabular som datamaskinen kan bruke til å forstå sammenhengen mellom ord.

Når denne jobben er gjort så må man få datamaskinen til å lese store mengder tekst, slik at den forstår hvordan ord står i forhold til hverandre.


/assets/Clipboard_19.png size: contain

Dette gjør man ved å ta en mengde B, i dette tilfellet 4, av treningsdataen stykket opp i lengde T, i dette tilfellet 10, og mater dette inn til én av modellens "hoder" som så leser denne treningsdataen.

Tallet T her er signifikant. Dere har kanskje hørt noe om at makslengden til ChatGPT er på 4096 tokens. Det betyr at i treningsdataen til ChatGPT så har den blitt trent med et kontekstvindu der T = 4096.

Fordi vi her har T=10, så vil vår modell bare kunne forstå 10 ord av gangen.


Når et slikt "hode" leser treningsdataen, så vil den se på hvert enkelt tall, og alle tallene på den rekken som kom før det, og notere seg hvilket tall som er det neste tallet for akkurat denne sekvensen av tall.

/assets/Clipboard_21.png size: contain

Det kan vi se et godt eksempel på her. Vi står her i grønt felt, med tallene i gult i minne, og lærer oss at gitt akkurat denne sekvensen, så er neste tall 3384.

Med andre ord, gitt denne rekkefølgen av ord, f.eks. "En lærer", så er neste ord "er" i dette tilfellet.


Det som skjer da er at man bygger seg opp et graf, eller et nettverk, av noder som er tall som representerer en del av et ord, og kanter eller veier som representerer hvor ofte man har sett neste node i treningsdataen.

/assets/Clipboard_23.png

Gitt et hypotetisk tilfelle her, så ser vi at gitt at disse tallene kom før, så er det mest sannsynlig at tallet vi ønsker å se er 11751.


På et mer menneskelig format vil dette se slik ut. Mulige utfall her er "En læ er", "En lærer" og "En læ person", der sekvensen "En lærer" er sett flere ganger enn alternativene.

/assets/Clipboard_24.png


Og nå begynner det å bli litt mer komplisert, for modellen starter heller ikke fra bunnen av.

Den har allerede et gigantisk nettverk av slike koblinger mellom ord og hvor vanlige de er. Forskjellen er at kantene i dette nettverket ser mer ut som tilfeldig støy, og om du prøvde å bruke denne modellen ville du bare fått ut en helt tilfeldig sekvens av bokstaver og mellomrom.

/assets/DALL·E 2023-10-13 14.48.26 - Illustration of an expansive neural network. Thousands of small dots (nodes) interconnected with thin lines (edges) of different opacities to indicate.png


/assets/Clipboard_25.png

Treningen består da i å gi modellen en sekvens av tall, og be den gjette på hva det neste tallet er, frem til man har sett på en hel linje treningsdata.

Så sammenligner man det med fasit og ved hjelp av matematiske metoder kan man regne ut hvor langt fra fasit man var, også justere nettverket bittelitt før neste runde.

Dette gjør man om igjen og om igjen til man når en akseptabel "loss rate", eller distanse mellom hva nettverket genererer, og hva fasit er, som vi kan se et eksempel på i figuren her.

Vi starter altså med en totalt tilfeldig rekke bokstaver, og går gradvis mot noe som ser mer og mer ut som fasit.

Du ønsker ikke at modellen skal være perfekt heller, for det imperfekte er det som gir kreativitet.


/assets/Clipboard_26.png

Og det her er jo ikke så langt fra vår forståelse av hvordan barn lærer nye ting. Man starter med en slags basis-hjerne som er i stand til å lære. En slags tilfeldig suppe av koblinger som er i stand til å holde deg i live.

Deretter lærer man ved et ønske om å imitere, og ved hjelp av prøving, feiling og korreksjon, så kan man lære seg nye konsepter.

Når et barn har lært seg en ting, så er det i stand til å putte det i kontekst av noe annet, og se sammenhenger mellom forskjellige konsept. For eksempel om man ser snø utenfor, så er det kaldt, og at man fryser om man går ut uten jakke.


Det man så som var så annerledes nå var at denne nye teknikken, og de nevrale nettverkene man bygde, ble i stand til å generalisere konsept, og se de i sammenheng med andre konsepter. Det er denne egenskapen som gir språkmodellene så enormt potensial, fordi de har lært seg å "forstå" verden slik vi forstår den.

/assets/Clipboard_27.png

Og det er denne egenskapen som gjør at de lærde strides i om språkmodellene i virkeligheten er intelligente. De har enorm kunnskap, og kan forstå sammenhengen mellom konsepter, og er i tillegg i stand til å komme opp med analogier og forklaringer som ofte er bedre enn det mennesker kan klare.

I tillegg kan de snakke, og relatere seg til oss og våre problem. En Snapchat-bestevenn som alltid lytter, alltid er forståelsesfull.

Og alt det fra en så enkel fremgangsmåte som å lage en sannsynlighetsmodell for sammenhengen mellom ord.

Eller: Datamaskiner som har den emosjonelle intelligensen til en 8-9 åring, som tilfeldigvis kan mye om fysikk. Er det intelligens?


Inferens

Bruk av språkmodeller

La oss snakke litt om å bruke språkmodeller i praksis. Der er det viktig å forstå én ting: Det er stor forskjell på trening og inferens.

Trening, som vi nettopp har snakket om, er hvor vi gir språkmodellen enorme mengder kunnskap den skal trenes i å imitere. I denne fasen kan vi si at språkmodellen "lærer" nye ting. Dette er som nevnt tidligere, svært ressurs- og energikrevende.

Inferens er når vi bruker modellen, der vi gir den en instruksjon, kalt en prompt, og den gir oss et svar tilbake. I denne modusen lærer ikke modellen nye ting, den er som et dataprogram som fyres opp, spytter ut et resultat, og slår seg av igjen etterpå. Dens evne til å "tenke" er begrenset til lengden på input og output, eller kontekstvinduet på 4096 ord. Når vi bruker ChatGPT, så er det denne modusen vi bruker.

Det er altså ingen "læring" i denne prosessen, og når programmet er ferdig, har den i utgangspunktet ikke noe minne om hva som skjedde før neste gang den kjører.


Å gi ny kunnskap til språkmodeller

Men hvordan husker språkmodellen hva vi snakket om da? Det er fordi vi gir den hele chathistorikken som kontekst å "tenke" på, inkludert siste melding, og ber den svare på det.

Om historikken blir for lang må vi kutte den ned, og da "glemmer" språkmodellen hva som har skjedd.

Dette fungerer rett og slett et slags korttidsminne, der langtidsminnet ikke kan endres.


RAG

Langt korttidsminne

Det finnes løsninger på dette, som gjør at vi kan mate ny kunnskap til språkmodellene, som den ikke har lært i treningen. Å få de til å resonnere rundt ny informasjon.

Dette kalles på fagspråket RAG, eller Retrieval Augmented Generation. Det man gjør da er at man tar og forer språkmodellens korttidshukommelse med relevant informasjon for å løse en oppgave, slik som å besvare et spørsmål.

For de av dere som har prøvd Bing Chat, eller Google Bard, så er dette en type RAG der man bruker søkeresultater til å berike svaret fra språkmodeller.

I det tilfellet "leser" språkmodellen informasjonen den er gitt, og forsøker å svare på spørsmålet gitt kun den informasjonen som ligger i kontekstvinduet.


/assets/Clipboard_28.png size: contain

Om vi spør ChatGPT om hvem som snakker om AI på naturfagskonferansen, svarer den at det vet den ikke, ettersom treningsdataen dens stopper i Januar 2022.


/assets/Clipboard_31.png size: contain

Om vi så mater inn hele programmet for Naturfagskonferansen, så er den i stand til å lese programmet, hente ut de to relevante foredragene, og foredragsholderne, og svare på spørsmålet.

Denne metoden er svært effektiv, og er den beste måten vi har i dag for å beskytte oss mot "hallusinasjoner", eller "drømmingen" som AIer ofte kan gjøre.

Utfordringen her ligger i å hente ut akkurat nok og riktig informasjon, og at denne informasjonen i seg selv er sannferdig. Det krever en veldig god søkemotor, og tilgang til veldig godt innhold, typisk fagbøker og lignende.


/assets/Clipboard_11.png

Sannsynlighetsmaskinen

Og faren med stokastiske papegøyer

Før vi avslutter, la oss ta steget litt tilbake og snakke om hvor jeg tror dette er på vei.

Jeg tenker at det vi ser nå, er fødselen av en ny type datamaskin, sannsynlighetsmaskinen. Vi er vant til å tenke på datamaskiner som deterministiske, og til dels dumme. De gjør akkurat det du ber de om, og gjør de noe feil, er det som oftest fordi mennesket som programmerte de ikke er feilfrie.

Dette endrer seg med sannsynlighetsmaskiner. Fundamentalt forstår de ikke hva det er de prosesserer, deres "ønske", om man kan si det på den måten, er kun å svare på instruksjonen du gir den.

Det gjør den gjennom en kjempestor sannsynlighetsmodell som kun forteller sannsynligheten for neste ord, basert på alle ordene som kom før. De kan forstå og kommunisere avanserte konsept, men har ingen indre motivasjon for måloppnåelse. De ønsker ikke å gjøre oss glad, lei oss eller sint. De ønsker ikke å ta over verden, manipulere oss, eller formere seg.

Faktisk vil jeg gå så langt å si at det er umulig at det skjer slik modellene er bygd opp i dag. Men her strides de lærde, og det er langt fra alle som er enige med meg i det.

Uansett hvilken side du står på, så kan vi være enige om at brukt riktig kan språkmodeller øke både produktivitet og kreativitet. Brukt feil så kan de utgjøre både en samfunn og sikkerhetsrisiko vi ikke skal ta for gitt.


/assets/Clipboard_12.png

Mennesker er, som ELIZA-effekten har vist, ekstremt glad i å antropomorfisere omtrent alt. Ta et par øyne på en postkasse, og den har plutselig en slags... sjel. Terminologien vi bruker når vi snakker om disse tingene, Kunstig Intelligens, hjelper heller ikke på inntrykket av hva disse modellen faktisk er i stand til å gjøre.


Jeg skal ikke stå her og messe om hvor farlig eller ufarlig kunstig intelligens er. Eller om de rent faktisk er intelligente. Om du er interessert i emnet anbefaler jeg artikkelen "On the dangers of stochastic Parrots" skrevet til dels av de samme folka som senere fikk sparken fra Google.

/assets/Clipboard_32.png size: contain


Om du bare husker en ting fra dette foredraget i dag, så la det være:

Språkmodeller er et verktøy, ikke en intelligens

Rett og slett: Ikke alt som kan snakke er intelligent.


Next
Next

Why Bluetooth audio quality suffers in video calls