Category Archives: Digitalisering

Mazy – ChatGPT gör ett enkelt 3D-spel i Doom-stil

Provade att be ChatGPT4 att göra ett enklare labyrintspel i Wolfenstein / Doom-anda. Det blev ett interaktivt sampel där jag kunde gå omkring med vanliga WASD och styra kameran med musen. OBS det fungerar inte på mobiler.

Här är spelet som det ser ut just nu. Själva labyrinten är inne i kuben.

Här kan ni prova “spelet”. Ni går omkring med tangenterna WASD och styr med musen. Notera att man inte går i den riktning man tittar (som är normalt i spel) utan man rör sig alltid i samma riktning som man trycker.

Det tog några försök att få till något som fungerade men ChatGPT hjälpte mig väldigt bra på vägen och förklarade de olika ändringarna med både vad och vart de skulle in i koden.

Mazy

Jag gav den följande instruktioner först och den valde själv programmeringsspråk (finns inte så många alternativ till JavaScript för detta) och den valde biblioteket three.js (det finns många olika att välja på). Under det kan ni se delar av svaret inklusive den första delen av förklaringen.

Skapa ett 3D-spel som Wolfenstein eller Doom. Gör det i en enda HTML-fil utan förklaringar. Kameran ska vara ut första-person och jag ska kunna gå omkring. Gätt olika färger och bilder på väggarna.

ChatGPT har fortfarande inte access till omvärlden så alla länkar till texturer (bilder) på väggar och golv blev fel. Dessa har jag fixat manuellt genom att bara göra om länkarna till bilder jag hittat på nätet och som liknar 3D-spels-miljöer.

Kontrollerna i spelet är inte som ett riktigt spel men det kan säkert ChatGPT också fixa.

Fixa fel

Jag fick som sagt några fel innan jag kunde “spela” och här kan ni se några iterationer med ChatGPT.

Först fick jag ett fel med initieringen av att låsa muspekaren i fönstret.

Sedan lade den själv till lite extra kod för att göra rörelserna jämnare. Dock gjorde ChatGPT lite fel (igen) men det fixade den när jag frågade fint.

Röra sig snabbare

Sedan ville jag kunna röra mig snabbare så jag frågade om det.

Kastat om höger och vänster

Sedan upptäckte jag att den hade växlat höger och vänster i rörelsen. Ett fel som nog många programmera också gör ibland.

Börja inne i labyrinten

Slutligen ville jag börja inne i labyrinten och det fixade ChatGPT åt mig.

Inte krocka med väggarna

Slutligen bad jag den om kod för att inte krocka med väggarna. Jag fick något som ser rätt ut men det fungerar inte riktigt utan istället så går man långsammare genom väggarna. Blev lite cool effekt. Jag tar med svaret här i alla fall som exempel.

Notera kommentaren i slutet av svaret om hur jag bör gå vidare med mer avancerade bibliotek med en fysikmotor.

Slutsats

ChatGPT4 är klart bättre på att programmera och detta “spel” den skapade är helt klart imponerande. Det tog mig ca 15 minuter att komma så här långt och även om jag är en väldigt erfaren programmerare (40+ år som programmerare) så hade jag inte fixat detta på 15 minuter. Programmering tar tid även om man är erfaren.

ChatGPT blir här verkligen är hjälplärare som kan svara på mina frågor och hjälpa komma vidare och förklara så jag också lär mig något. Jag har tidigare använt GitHub CoPilot (som använder AI-hjärnan Codex från OpenAI) väldigt mycket och där får man förslag på vad som ska läggas in men man får inte möjligheten att ställa frågor och det blir inte samma möjlighet till lärande med CoPilot.

Jag är övertygad om att ChatGPT kommer att kunna hjälpa många att lära sig programmera.

Ps. ChatGPT4 släpptes bara för någon dag sedan och för att få access måste man betala för ChatGPT Plus. ChatGPT4 kan resonera mycket bättre men är samtidigt mycket långsammare. När den genererade programkoden ovan så fick jag vänta en stund. Nästan om att titta på någon som programmerar i realtid. Det är visserligen bra för jag satt och läste koden medan ChatGPT4 producerade den. Lärande igen…

ChatGPT – möjligheter och utmaningar 230207

Jag föreläser på tisdag nästa vecka hos Mobilaris Innovation Center i Luleå om möjligheterna med ChatGPT och generativ AI. Alla är välkomna och det kommer att finnas lunch till salu på plats. Vill du delta?

Tisdag 230207 1200-1300. Varmt välkomna. Passa på och diskutera hur ChatGPT kan hjälpa dig och ditt företag.

Här hittar ni presentationen.

Ps. Vill du kanske ha en egen föreläsning? Säg till.

OpenAI släpper egen detektor för AI-texter

OpenAI har precis släppt sitt verktyg för att bedöma om en text är skriven av en AI eller inte. Gjorde snabbt några test och tyvärr så återigen fungerar det inte. Provade 3 olika texter jag skrivit själv och alla tre blev klassificerade som ”Possibly AI-generated” där skalan ser ut som följande: ”very unlikely, unlikely, unclear if it is, possibly, or likely AI-generated”.

Provade också med tre texter som ChatGPT skrivit och alla tre testen gav samma betyg som för mina egna texter. Dvs., ”possibly AI-generated”.

Jag ska testa lite mer utförligt imorgon men initialt så verkar det inte fungera.

Testa gärna själv och återkom med resultat.

Uppdatering: denna och flera andra tjänster är hårt kopplade till engelska. Dvs., just nu fungerar de inte i en blandad språkmiljö. Testade lite mer idag och jag får varierande resultatet.

Testade också en ny tjänst dök upp nyligen: Checkforai.com och det var samma problem där. En intressant effekt är att om jag går via översättning i samma verktyg så minskar effekten att det är AI.

1: Engelska: High Risk

2: Översätt till svenska: Low Risk

3: Översätt tillbaka till engelska: Medium Risk

Seminarium på LTU om ChatGPT 230130

Detta inlägg är främst riktat till mina kollegor på Luleå tekniska universitet. 230130 1300-1400 i rum E632 håller jag ett seminarium om hur vi kan använda ChatGPT för lärande och forskning. Eventet kommer också att sändas via Zoom. 1400-1500 finns det möjlighet att stanna kvar och diskutera anvädning av ChatGPT.

Länk till eventet på LTU:s webb.

Här är presentationen.

Här är en inspelning av föreläsningen. Talet är på engelska och bilderna på svenska.

Hur kan vi nyttja nya AI-verktyg som ChatGPT för lärande och forskning? Professor Peter Parnes demonstrerar och besvarar era frågor gällande hur ChatGPT kan nyttjas.

AI-motorn ChatGPT från OpenAI släpptes 221130 och fick väldigt snabbt många användare och mycket stor uppmärksamhet globalt. ChatGPT är en mycket kraftfull AI-hjärna som kan besvara våra frågor, hjälpa oss förstå olika saker som att komma igång med att skriva texter, ta fram argument i diskussioner, spela spel, skapa underlag till kursplaner, skapa datorprogram och makron till Excel och mycket mycket mer.

Initialt kretsade diskussionen på Internet mycket om hur den kan nyttjas av våra studenter för att fuska men Peter Parnes vill istället lyfta möjligheterna med ChatGPT och hur den kan användas för att stötta oss på LTU som lärare, forskare och administrativ personal. Samtidigt är det viktigt att beakta hur ChatGPT påverkar vår examination på LTU eftersom ChatGPT kan hjälpa studenterna att lösa deras uppgifter. 

Under denna träff kommer Peter att presentera sina tankar om ChatGPT och demonstrera hur du kan använda tjänsten praktiskt. Du får chansen att ställa frågor och diskutera tillsammans med andra närvarande. 

Peter Parnes har också skrivit flera artiklar om möjligheterna på sin blogg som du kan ta del av här

Varmt välkomna till E632 230130 1300-1400 och via Zoom.

Inspelad introduktion till ChatGPT och lärande

Spelade in en 22 min film om ChatGPT och lärande. I denna film presenterar jag en introduktion till vad AI, maskinlärande och ChatGPT är samt hur ChatGPT fungerar och är tränad. Vidare diskuterar jag hur denna tjänst kan nyttjas för lärande, både för elever och för lärare. Slutligen diskuterar jag begränsningar med tjänsten samt hur jämlikheten ökar i skolan med hjälp av verktyg som ChatGPT.

Själva presentation hittar ni här.

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!