Kategoriarkiv: Techstuff

Hur fungerar ChatGPT?

Det finns en tid före ChatGPT och en tid efter ChatGPT. Denna AI-tjänst har påverkat hur vi ser på AI och hur den kan hjälpa oss. Samtidigt är det kanske några som funderar på hur ChatGPT fungerar och varför just denna AI-chat-hjärna är så bra? I denna artikel försöker jag förklara den underliggande tekniken.

OBS Delar av denna artikel är skapad med hjälp av ChatGPT!

ChatGPT är en så kallad transformer-modell, en typ av maskininlärningsalgoritm som är utformad för att hantera textdata. Den är tränad på en mycket stor datamängd med text, till exempel böcker och artiklar, och har lärt sig att förstå och generera text på olika språk. Om vi ställer en fråga till ChatGPT, använder den den inlärda modellen för att konstruera ett svar eller en fortsättning på texten.

Maskininlärning

Maskininlärning är ett sätt att träna upp en matematisk modell på en större mängd data. Denna inlärning kan ske på flera sätt och två metoder som används för att träna ChatGPT är övervakad (”supervised”) och belöningsstyrd (”reinforced”) inlärning . Dessa två metoder kombineras i olika steg i inlärningsprocessen av ChatGPT.

I övervakad maskininlärning (”supervised”) så tränas modellen med hjälp av att data som i förväg klassificerats där vi ger processen både input och output, dvs., förväntat rätt svar till respektive input. Modellen lär sig att generera rätt output för ett givet input genom att förbättra sina parametrar och målet är att modellen ska kunna generalisera vidare och kunna förutsäga rätt output för ny input.

I belöningsstyrd (”reinforced”) maskininlärning ger vi modellen återkoppling i form av belöningar och straff utifrån fördefinierade regler. En agent som agerar utifrån modellen gör olika handlingar och får återkoppling för hur bra dessa fungerade. Detta är väldigt kraftfullt eftersom vi kan ge agenten väldigt få instruktioner och sedan får den helt enkelt gissa sig fram till vad som är rätt utifrån den återkoppling den får. I vissa applikationer är det lätt att ge snabb återkoppling medan i andra (som t.ex. schack) så kan det vara väldigt många steg tills den kan få någon belöning eller straff.

I följande exempel så har jag programmerat en enkel applikation för att träna upp en AI-hjärna med hjälp av belöningsstyrd maskininlärning. Målet är att hjärnan ska rulla en boll över en yta till kuben som dyker upp på olika ställen på ytan samt att bollen inte ska ramla ner. Belöningen är 1.0 om den träffar kuben och 0.1 om den i varje steg kommer närmare kuben. Straffet är -1.0 om den ramlar ner och -0.1 om den rör sig bort från kuben. Under träningen, får den som input hur långt från kuben den är och sina egna X,Y-koordinater. Vidare kan hjärnan putta på bollen i form av att ge den en fysisk knuff i samma plan. Jag har alltså inte explicit talat om att målet är att den ska träffa kuben utan det styrs helt av belöningssystemet. Applikationen är skapad och tränad i dataspelsmotorn Unity.

Hur tränas ChatGPT?

ChatGPT är tränad med hjälp av både övervakad och belöningsstyrd maskininlärning med tillägget att människor har varit inblandade i själva träningen i något som kallas ”reinforcement learning from human feedback (RLHF)”, fritt översatt till belöningsstyrd maskininlärning med mänsklig återkoppling. Som namnet säger så är det människor som gett modellen återkoppling på vad som är bra respektive dåliga svar. Lite paradoxalt så är det människor som gjort delar, eller i alla fall hjälpt till med själva maskininlärningen. Detta är i sig inget nytt för första gången i just ChatGPT utan snarare det som är nytt är hur många människor som varit involverade. OpenAI, företaget bakom ChatGPT har inte sagt något om hur många som involverats men gissningsvis så har de lagt ner mycket pengar på just denna del av träningen i form av ersättning.

Följande information kommer primärt från OpenAI:s eget blogginlägg om ChatGPT och från publikationen om InstructGPT som ChatGPT baseras på.

ChatGPT har tränats i flera steg där de utgår ifrån en modell som tränats med övervakad maskininlärning och denna modell kallas GPT-3.5 som tränades klart i början av 2022 med data till ca mitten av 2021.

Steg 1

I steg 1 får människor skriva lämpliga svar på slumpmässigt utvalda frågor och dessa svar används för att skapa en bas för modellen som kallas SFT-modellen (”supervised fine-tuning model”). Frågorna kommer både från en pool av frågor som utvecklare (människor) skrivit för denna träning samt från frågor som användare av föregångaren till ChatGPT har skrivit i andra OpenAI-produkter. Bilderna nedan kommer från OpenAI:s blogginlägg om ChatGPT och jag har klippt upp en större bild i dessa tre delar.

I steg 2 genererar ChatGPT flera svar (4-9 stycken) på olika frågor och människor får sedan klassificera dessa i förhållande till varandra och utifrån dessa skapas en ny modell för belöningar, RM-modellen (”reward model”). Denna kan ses som facit för ChatGPT för att hjälpa den lära sig vilka svar som faktiskt är bra. Detta steg genererar mänskligt data mycket fortare än steg 1 där människorna var tvungna att skriva hela svar själva. Resultatet från steg 2 är en modell för hur belöningarna ska delas ut i steg 3.

Steg 3

Det sista steget, steg 3 är var den stora träningen sker via belöningsstyrd maskininlärning. Här används något som heter Proximal Policy Optimization, PPO för att optimera belöningsmodellen där den finjusteras i varje steg. Dvs., för varje fråga/svar så optimerar den modellen.

Samtidigt justeras den inte för mycket, dvs., i varje steg kan den bara ändra belöningarna lite grann för att modellen inte ska blir helt trasig.

Exakt alla detaljer om hur denna träning går till har inte OpenAI avslöjat.

Steg 3 körs många gånger för att träna modellen och samtidigt finjustera belöningsmodellen.

Diskussion

Genom att involvera människor i processen så kan träningen bli mer korrekt utifrån mänskliga värderingar som är svåra att fånga via datorprogram. Slutresultatet har vi alla sett i form av ChatGPT som är minst sagt imponerande.

Begränsningar och problem

Tack vare att människor involveras så är det också stor risk att fördomar påverkar resultatet. Människor är involverade i både att skriva frågorna (till och med i andra produkter där de inte ens är medvetna om att de kommer att användas för träning) samt när svaren ska klassificeras för att skapa belöningsmodellen. Vidare är utvecklarna av modellen också människor som i sin tur påverkar resultatet. Sammantaget så är dessa inte representativa för en global användargrupp och utvecklare skriver själva om just denna begränsning.

Vidare händer det också att människorna inte är överens om hur svaren klassificeras i steg 2 och personliga åsikter kommer in i träningen. Här finns ingen faktisk sanning som kan vara avgörande om de inte är överens.

Alla som provar ChatGPT har säkert också identifierat flera problem med denna tjänst.

  • Ibland ger ChatGPT oss svar som är helt eller delvis fel. Detta är svårt att träna bort eftersom ChatGPT helt enkelt tror att dessa svar är korrekta eftersom den inte har något facit.
  • ChatGPT är väldigt känslig gällande hur vi formulerar våra frågor. Ibland kan en fråga ge svaret att den inte vet medan om vi ändra lite i frågan så får vi det svar vi eftersökte.
  • ChatGPT är väldigt pratglad och ger oss ibland väldigt långa svar när en mening hade räckt. Anledningen till detta är delvis att människorna som klassificerade svaren i steg 2 föredrar utförliga svar eftersom de kändes mer rätt.
  • ChatGPT frågar aldrig efter förtydliganden utan gissar vad vi vill veta och svarar på det. Ibland blir det skrämmande bra men ibland hade det varit bättre om den frågade tillbaka istället.
  • ChatGPT ger oss inte förbjudna svar och det beror på att ChatGPT använder en annan tjänst ”Moderation API” för att filtrera bort dåliga svar. Denna filtrering fungerar ibland för bra och plockar bort för mycket samtidigt som den ibland släpper igenom sådant som inte borde vara med. Här kan vi också diskutera vad som är lämpligt innehåll eftersom det i sin tur är kopplat till vår personliga kultur.

Framtiden

Även om ChatGPT (GPT3.5) är väldigt kraftfull så är detta bara ett första steg och vi kommer att få se mycket bättre modeller i framtiden. Både från OpenAI och från andra aktörer. Det som dock är klart är att dessa AI-modeller kostar otroligt mycket pengar att skapa i form av både mänsklig kraft och datorbaserad kraft. GPT 3.5 är för övrigt tränad på en superdator hos Microsofts Azure-infrastruktur och Microsoft satsar väldigt hårt på just ChatGPT och AI i sina produkter som jag tidigare skrivit om här.

Generellt är AI-verktygen här för att stanna och även om vissa jämför integration av ChatGPT i office med det klassiska gemet som fanns förr i tiden så är jag övertygad om att denna gång kommer vi att ha otroligt mycket mer nytta av denna medhjälpare.

Det område som jag tror kommer att revolutioneras mest är dock lärande där dessa AI-tjänster kommer att finnas med oss hela tiden och kunna motivera, hjälpa, stötta, förklara, utveckla och skräddarsy vårt lärande oberoende av vart vi är i livet, dvs., i det livslånga och kontinuerliga lärandet från födsel till död.

Vill ni att jag utvecklar något vidare eller har direkta frågor så maila mig. Jag har också flera föreläsningar planerade om ChatGPT under de kommande månaderna (Luleå och Stockholm) men vill ni att jag kommer och föreläser hos er så hör av er.

Som jag började denna artikel så har vi nu en skarp gräns mellan före ChatGPT och efter ChatGPT. Hoppas ni har inspirerats av denna artikel och har ni fortfarande inte provat ChatGPT så gör det nu!

AI-bilder på rektor Birgitta Bergvall-Kåreborn

Med hjälp av AI kan man skapa helt nya bilder. Idag provade jag att träna en AI-hjärna (Stable Diffusion) på enbart 19 bilder av min kära rektor Birgitta Bergvall- Kåreborn. Bilder tog jag från internet och är en blandning av LTU:s officiella bilder och bilder från tidningar etc. Är det likt?

God Jul Birgitta! Hoppas du gillar bilderna 🙂

Ps. Jag har hundratals bilder till av varierande kvalitet.

Nyttja ChatGPT för lärande?!

AI-motorn ChatGPT från OpenAI släpptes 221130 och fick väldigt snabbt otroligt många användare. Enligt vissa uppgifter uppnåddes redan 1 miljoner användare efter 4 dagar.

Fusk?

En stor del av debatten om ChatGPT har kretsat runt hur den kan användas för att fuska i skolan och universitet och vissa skriver direkt att ChatGPT måste förbjudas men hur blir det då med andra verktyg som att söka på Google, forskningsassisten i Word och så enkla verktyg som rättstavning och grammatikkontroll? Ska alla dessa verktyg förbjudas också?

Egentligen har studenter på universitetsnivå kunnat fuska i många år genom att alla uppgifter och lösningar sprids online av tidigare studenter. Kanske för att hjälpa andra eller kanske bara för att få lite uppmärksamhet. I slutändan handlar det om att ha ändamålsenlig examination där vi faktiskt undersöker om eleven/studenten har lärt sig det den ska ha lärt sig i respektive kurs och vi som lärare måste fundera på vilket sorts examination vi använder.

Hur nyttja ChatGPT för lärande?

Jag vill istället diskutera hur ChatGPT kan användas till stötta elever och studenter i deras lärande och här nedan följer tio exempel. Vill dock poängtera att detta är bara toppen av ett isberg och det finns massor med fler sätt vi kan använda AI-baserade chatbottar för att stötta lärande.

1: Skrivkramp

ChatGPT kan hjälpa till att komma igång med skrivuppgifter. Jag har själv ibland svårt att komma igång med frustration som resultat och genom att be ChatGPT skriva en kort introduktion till ett visst ämne så kan det vara lättare att fortsätta skrivandet.

På samma sätta kan man mata in sin egen text och be chatbotten att fortsätta skriva för att hjälpa en vidare. Man får det en eller par paragrafer med efterföljande texter.

2: Interaktiv lärobok

ChatGPT har lärt sig massor med fakta och den kan då användas som en interaktiv lärobok där den lärande enkelt kan ställa frågor kopplade till tidigare svar. T.ex. Förklara hur de svenska fjällen skapades? följt av Hur högt är det högsta berget? där jag inte behöver skriva varken fjäll eller att det är svenska berg jag menar för det förstår chatbotten utifrån den tidigare diskussionen.

3: Analysera texter

AI-motorn kan användas för att analysera texter och är duktig på att ge förslag på hur texten bör fortsätta. T.ex. paragrafen ovan om att studenter har kunnat fuska länge ge följande förslag från ChatGPT:

”Det är därför viktigt att universitet och lärare tar initiativ för att motverka och förhindra fusk. Det kan innebära att skapa mer individuella uppgifter, använda olika examinationstekniker som förhindrar kopiering och samarbete under prov, eller att införa mer omfattande kontroller för att säkerställa att studenterna faktiskt har lärt sig det de ska ha lärt sig. Genom att vidta dessa åtgärder kan vi garantera en ändamålsenlig examination och en rättvis bedömning av studenternas kunskaper.”

4: Sammanfatta texter

Vidare kan vi be ChatGPT sammanfatta längre texter och ge oss en sammanfattning. Jag har provat på längre texter, både akademiska och skönlitteratur och fått en mycket korrekta sammanfattningar. Detta kan underlätta för personer med lässvårigheter att läsa texter och därmed lära sig. För mig som forskare och lärare underlättare det otroligt mycket att få sammanfattningar av akademiska skrivningar.

Nedan är ett exempel på där ChatGPT sammanfattar en ganska lång beskrivning av mig som ni hittar här.

Professor Peter Parnes är professor vid Luleå tekniska universitet och är aktiv inom områdena ny teknik och digitalisering i skolan. Han har grundat flera företag, inklusive Marratech som såldes till Google, där han sedan jobbade som utvecklingschef för Google Sverige. Peter är även expert åt Skolverket och engagerar sig i jämställdhet inom IT-området genom projektet #include.

5: Bättre översättningar

Vi har länge kunnat enkelt översätta via olika översättningsverktyg online men med hjälp av ChatGPT kan vi få även få förklaringar till översättningarna som hjälper oss förstå det andra språket. T.ex. Hur säger man ”Var är busshållplatsen?” på spanska och förklara. ger:

”¿Dónde está la parada de autobús?” (Uttalas: ”donde esta la parada de autobus”)

”Dónde” är en form av ”donde” som betyder ”Var”. ”Está” är den tredje personens singularisform av verbet ”estar” som betyder ”att vara”. ”La parada de autobús” betyder ”busshållplatsen”. ”¿” är tecknet för fråga, vilket visar att det är en fråga.

6: Ge förslag i diskussioner

Vi kan använda ChatGPT för att ge oss förslag på argument när vi arbetar med i princip alla olika ämnen. Den kan hjälpa oss att ta fram argument för olika skrivningar som t.ex. varför en viss affärsmodell är lämplig för att lösa ett affärsproblem, hur vi ska visualisera vindkraftsproduktion eller Ge mig 3 argument för varför det är bra att lära sig saker? ger

  1. Att lära sig nya saker utvecklar vår hjärna och hjälper oss att bli mer flexibla och kreativa.
  2. Att lära sig nya saker ger oss möjlighet att utforska och förstå vår omvärld på djupare nivå, vilket ökar vår kunskap och insikt.
  3. Att lära sig nya saker ökar vår livskvalitet och hjälper oss att möta nya utmaningar och situationer med mer självsäkerhet och förmåga att hantera dem.

7: Förklara programmeringfel

Många lär sig programmera idag och är man nybörjare så kan vissa fel vara svåra att förstå. T.ex. ChatGPT kan förklara följande felmeddelande från Python: Förklara följande fel: TypeError: ’int’ object is not iterable

8: Hitta buggar i program och rätta dem

ChatGPT kan också hitta buggar och ge förslag på hur det ska rättas.

Hitta buggen i följande program

def count_occurrence(values, to_find):
	number_of_occurrences = 0
	for v in len(values):
		if values[v] == to_find:
			number_of_occurrences += 1
	return number_of_occurrences

values = [1, 2, 3, 3]
check_for_threes = count_occurrence(values, 3)

print(check_for_threes)

ChatGPT svarar

Buggen i programmet är i första raden i funktionen count_occurrence. Koden använder len-funktionen för att iterera över values, men detta fungerar inte eftersom len-funktionen returnerar längden på values-listan, inte individuella element i listan. För att fixa buggen ska koden istället använda en for-loop för att iterera över values direkt, så här:

def count_occurrence(values, to_find):
    number_of_occurrences = 0
    for v in values:
        if v == to_find:
            number_of_occurrences += 1
    return number_of_occurrences

Med den här ändringen kommer koden att fungera som avsett och kommer att skriva ut 2 när den körs med den givna values-listan.

9: Ge sig själv positiv uppmuntran

Denna är en av mina favoriter. Be ChatGPT skriva något positivt om dig själv och njut av resultatet. Här som ett exempel för att motivera mig, Peter till att gå och träna.

Peter är en fantastisk person som alltid sätter mål för sig själv och strävar efter att bli bättre. Han har bestämt sig för att gå och träna idag, vilket är en fantastisk beslutning. Träning är en viktig del av en hälsosam livsstil och kommer att hjälpa Peter att må bra både fysiskt och mentalt. Jag är säker på att han kommer att göra ett fantastiskt jobb och känna sig stolt över sig själv efteråt. Go, Peter!

10: Skriv något positivt om någon annan

Du kan be ChatGPT skriva något positivt som en dikt för att göra någon annan glad och uppmuntra dem. Här en är en kort dikt i Karin Boye stil.

Rektor Birgitta Bergvall-Kåreborn
Med kunskap som en vägg av stål
Hon leder Luleå tekniska universitet
Med visdom och styrka, förblir hon rak

Hon är en kvinna av klokhet och stolthet
Som vägleder med mod och integritet
Ingen utmaning är för stor
När hon står i spetsen för vårt högskolor

Med kärlek för vetenskap och teknik
Hon driver vår utbildning framåt
Och med sin ständiga strävan efter förbättring
Hon är en källa till stolthet och glädje för oss alla.

Avslutande ord

Jag är övertygad om att vi bara har sett början på hur textbaserade och andra AI-verktyg kommer att revolutionera vårt lärande och påverka vårt arbetsliv i stort. ChatGPT är ett exempel på ett sådant verktyg som kan hjälpa människor att lära sig allt från grunderna i olika ämnen till avancerade färdigheter och kunskaper. Jag tror verkligen att ChatGPT har stor potential att förändra sättet vi lär oss på och jag ser fram emot att se dess utveckling i framtiden när nästa version av den underliggande AI-hjärnan släpps i version 4 under våren 2023.

Ja, jag har använt ChatGPT för att hjälpa mig skriva och förbättra delar av denna text och ge förslag på hur den kan användas i lärande.

Vad är dina tankar om hur ChatGPT kan och bör användas för lärande?

Ps. Sammanfattning

Här kommer en sammanfattning av hela texten ovan sammanfattad av ChatGPT. Notera sista meningen som jag egentligen inte har skrivit om alls men som ChatGPT lade till.

AI-motorn ChatGPT från OpenAI har snabbt fått många användare. En stor del av debatten om ChatGPT har kretsat kring hur den kan användas för att fuska i skolan och universitetet. Det har föreslagits att ChatGPT ska förbjudas, men det finns även andra verktyg som kan användas för att fuska såsom att söka på Google och forskningsassisten i Word. Istället för att förbjuda ChatGPT bör vi fundera på hur det kan användas för att stötta elever och studenter i deras lärande. Exempel på sådana användningsområden är att hjälpa till med skrivuppgifter, användas som en interaktiv lärobok, analysera texter och hjälpa till med översättningar. ChatGPT har även potential att hjälpa lärare att få en bättre inblick i hur eleverna lär sig och vilka kunskaper de behöver stöd med.

The Thelma Project

För ca 15 år sedan (2005) så skissade jag på hur videokonferensmjukvaran Marratech skulle kunna utvecklas från en monolitisk mjukvara där allt satt ihop i ett program till en mer dynamisk miljö där man plockade ihop komponenter till sitt egen videokonferensapplikation. Visionen var att alla som kunde redigera lite HTML skulle kunna bygga sitt eget gränssnitt (antingen direkt redigera HTML eller via något byggverktyg). Detta projekt kallade jag The Thelma Project och jag satte samman en webbplats för detta på http://staff.www.ltu.se/~peppar/proj/thelma/ i februari 2006.

Ca 1.5 år senare när jag jobbade på Google så pitchade jag denna idé för höga chefer på Google som tyckte detta lät mycket rätt och gav go-ahead för att jobba vidare med idéen. Detta utvecklades senare till WebRTC som blev ett öppet projekt med flera leverantörer 2011 (efter jag lämnat Google).

Idag används WebRTC i de flesta olika webbtjänster för videokonferens via Webben. Här hittar ni också ett kort dokument som beskriver idéen. http://staff.www.ltu.se/~peppar/proj/thelma/docs/thelma/thelma-latest.pdf

Game of Life – John Conway 200411

John Conway är en matematiker som var främst känd för uppfinningen cellulära automater och ni kanske känner igen Game of Life. John dog 200411 av Covid-19 efter bara 3 dagars sjukdom. Han blev 82 år gammal.

Jag satte samman en liten tribute till John i form av denna animering i Unity. Game of Life var faktiskt en av de första animeringar jag implementerade på 80-talet (John gjorde det för övrigt med papper och penna 1970).

Här hittar ni källkod och om ni will testa själva på Windows så finns här en release. Tryck ’r’ för att göra reset och ’q’ för att avsluta.