Silberbauer & Blomseth
En samtale om systemerne, videnskaben og mønstrene bag fænomener og teknologier, der præger alt fra vores dagligdag til menneskehedens ultimative skæbne. Kommentarer eller spørgsmål?
Fang os på Bluesky: https://bsky.app/profile/silberblom.dk
Silberbauer & Blomseth
101: Software 101
Use Left/Right to seek, Home/End to jump to start or end. Hold shift to jump forward or backward.
Generativ AI med de store sprogmodeller, LLM’erne, er det største, der er sket inden for softwareudvikling i de fire årtier, hvor Thomas har skrevet instruktioner til computere for at få dem til at gøre det, som han gerne vil have dem til. Og det er altså ikke softwareudviklingen bag LLM’erne, som det handler om: Det er det, at man kan bruge LLM’erne til at lave software med. Det synspunkt står han ikke alene med inden for softwarebranchen, og Klaus er da heller ikke afvisende over for tanken.
For bedre at kunne forklare hvorfor bliver et nyligt foredrag af Andrej Karpathy (eks-OpenAI, eks-Tesla AI) om “Software 3.0” til afsættet for en tur op gennem historien fra den håndkodede og tilstræbt forudsigelige software 1.0 til den probabilistiske og fabulerende 3.0.
****
Nu også på YouTube — hvis du bedst kan lide din podcast med uden video. https://youtube.com/@silberblom
****
Hvem betaler for Silberbauer & Blomseth?
Det gør vi selv. Vores indhold er på ingen måde egnet til sponsorer eller reklamer for proteinpulver, VPN-forbindelse eller e-bøger. Så hosting, udstyr og alt det der er på egen regning.
Det eneste vi beder om til gengæld (hvis du altså kan lide det, vi laver) er at du smider stjerner, og måske oven i købet en lille anbefaling, efter os på Apple Podcast. Det betyder alverden. Vi higer jo allesammen efter anerkendelse i en eller anden form.
Husk at følge os på Bluesky (@silberblom)
Hej Klaus. Hej Thomas.
Thomas Blomseth:Så er det så min tur i dag til at vælge emnet.
Klaus Silberbauer:Jeg har været meget spændt. Det er lidt luksusposition at sidde i og vente på at få yder, vi skal tale om.
Thomas Blomseth:Jeg er som hvis jeg ser, om jeg kan få dig til at komme i en tilstand af både endnu mere spændt forventning og måske endda frustration, måske drive dig til vanvittighed med den omveje, jeg tager hen til emnet, for at trække ned. Åh Gud.
Klaus Silberbauer:Så når episoden er slut, så vil nogen i nærheden være klar over, hvad det egentlig er, vi skal tale om. Jamen det ser I frem til.
Thomas Blomseth:Jeg tror, det kommer til at gå lidt hurtigt.
Klaus Silberbauer:Okay.
Thomas Blomseth:Det skal vi ikke se. Jo, men nu fik vi jo holdt første af sidste gang med episode 100 og jubilæet.
Klaus Silberbauer:Ja.
Thomas Blomseth:Og så har vi jo så nået til episode 101 her. Og det er jo sådan lidt sjovt tal. Og da jeg så det, så tænkte jeg, ja, det er jo også —
Klaus Silberbauer:Palindrom?
Thomas Blomseth:Ja, og så er det jo, det er jo 101, og der er en særlig tradition, konvention på amerikanske universiteter, at kurser, der er nummeret 101, det er grundkurser, indførende kurser i emner.
Klaus Silberbauer:Okay.
Thomas Blomseth:Og det var noget, man startede på i starten af 1900-tallet, som vi kan se, deromkring. Og det er ganske udbredt, ikke? Så du har måske hørt om physics 101, ikke? Eller econ 101, det er også en klassiker.
Klaus Silberbauer:Og jeg har hørt, at mange danskere ligesom vride lidt til one-on-one.
Thomas Blomseth:Ah, okay, ja. Men det er sådan noget andet.
Klaus Silberbauer:Måske, fordi de kender ikke den baggrund, som du kender for det tal.
Thomas Blomseth:Ja, hvis man nok har begået sig alt for meget i store virksomheder.
Klaus Silberbauer:Ja.
Thomas Blomseth:Men det er ikke der, vi skal have det. Nej, tak. Det var med at prøve at tage den der one-on-one-idé, og så løb lidt med den. Og så er det jo det, jamen hvis vi skulle lave noget indførende, så har vi jo også dels nået frem til, at det der med at formidle ting direkte, det gider vi ikke rigtigt her på podcasten.
Klaus Silberbauer:Heller ikke har det lykkedes os.
Thomas Blomseth:Nej.
Klaus Silberbauer:Så selv hvis vi gad, så tror jeg, at vi gør et virkelig dårligt job med det.
Thomas Blomseth:Ja, så hvis det skulle være one-on-one, så skulle det jo nærmest være noget også, hvor vi nærmest har nogle formelle kompetencer, så vi egentlig kunne sige, at vi kan egentlig lave grundkurser der, hvis det skulle være. Hvis vi absolut ville lave det der kursus og den der formidling, så kunne vi lave det. Og hvad kunne så egentlig være det? Jamen det er jo så faktisk noget, hvor der er et overlap mellem, hvor der sker rigtig meget lige nu, og hvor vi har formelle kompetencer. Så det, jeg tænker i dag, det er, at vi skal nærmest lave Software 101.
Klaus Silberbauer:Okay.
Thomas Blomseth:Men ikke som en indføring i softwareen. Nej, det handler om, at siden vi havde vores førstdagsepisode, hvor vi jo talte en del om det her AI, der kom op. Trond kom op med æsken mange gange. Så var der en rigtig, rigtig fed video, et foredrag fra Y Combinators AI Startup School, som jeg ved, du også har set, for jeg delte med dig. Og det er en fyr, der hedder Andrej Karpathy, vil jeg kalde ham. Fordi han er slovakisk kanadier. Og det han talte om, det var, at software is changing again. Og han talte om det, han kalder software 3.0. Og det er der, vi er nået til. Det er Karpathy, det var ham, der var også leder af AI hos Tesla.
Klaus Silberbauer:Åh ja, så ved jeg godt, hvem han er. Og så ved jeg også godt, hvad jeg har fået et foredrag, du taler om.
Thomas Blomseth:Præcis.
Klaus Silberbauer:Så må du have tid at komme derind.
Thomas Blomseth:Ja, så nu er vi faktisk nået derhen. For jeg synes, at der er nogle ting, der ligesom ligger og rumler ligger under mange af de snakker, vi har her på det seneste. Og det er jo selvfølgelig det med, hvad AI er i gang med at gøre, især de store sprogmodeller. Men det, jeg synes Karpathy, han får gjort i sit foredrag, det er, det er at sætte det i også en lidt historisk ramme i forhold til det. Præcis.
Klaus Silberbauer:Præcis.
Thomas Blomseth:Og det der med at få lige bordet nogle pæle lidt ned, sådan at vi kan fundere den her diskussion lidt bedre. Og sige, hvad er det egentlig, der er i gang med at forandre sig? Hvad er det, vi kom fra?
Klaus Silberbauer:Ja, det tog dig fire og et halvt minut. Men det kunne være værre. Og nu er jeg med på, hvad vi skal tale om. Husker jeg rigtigt, hvis det er, altså en af de metaforer, han bruger, eller hvad man kan kalde det, det er, at han kalder AI for software 2.0. Er det ikke korrekt husket?
Thomas Blomseth:Ja, det var faktisk den slags AI, han lavede hos Tesla. Og det var noget, han faktisk skrev på Medium om i 2017. kaldte han en software 2.0.
Klaus Silberbauer:Så nu er vi op i 3.0, tænker jeg.
Thomas Blomseth:Så skulle vi tage turen fra 1.0 og så op til 3.0?
Klaus Silberbauer:Det vil jeg glæde mig til. 1.0 og 1.0. Ja.
Thomas Blomseth:En anden ting, vi lige kunne nævne der også, som passer meget godt med min egen oplevelse, det er, at der er en af skikkelserne inden for softwareudviklingen, som jo selvfølgelig er kendt i den her lille verden. En, der hedder Kent Beck, en softwareudvikler, som var med til at skrive The Agile Manifesto, og det var faktisk hans navn, der står først på det, af alfabetiseringsårsager. Han var på den anden podcast derfor ny, hvor han sagde, at det, der er sket med LLM'erne nu i forhold til softwareudviklingen, det er det sjoveste nogensinde i de 50 år, han har programmeret. Og jeg vil så sige, at de 40 år, jeg har prøvet at få computer cirka til at gøre ting, der er det her jo også, altså det er det største skridt, jeg har set, i forhold til, hvordan man kan få skrevet software overhovedet, nede på det niveau. Så selvom det nærmest, hvis det er ingen konsekvenser fik for slutbrugerne overhovedet det her, så bare det, det gør op i forhold til at lave software, er et kæmpe skridt. Så den synes jeg, at vi skal komme med, at der er andre, der har den her oplevelse derude, og sådan en som Kent Beck også, at det her, det er så vildt i forhold til, hvad det gør ved den måde, man kan lave software på.
Klaus Silberbauer:Der er jo et par skoler der, fordi jeg synes også, min LinkedIn feed er i hvert fald fyldt med folk, der skoser, latterliggør kode skrevet af AI, eller sammen med AI. Så sent som i går, tror jeg, det var, jeg så en fyr, jeg kan ikke huske, hvem det var, der var helt oppe og køre over, hvor helt vildt elendigt det var, at lave kode med Claude, og at det blev bare værre og værre, og Claude må til sidst selv indrømme, at det var også noget lortekode, der var skrevet. Det falder i genren, du ved, at se, hvor dum AI er. Det er sådan en helt genre, der kører på LinkedIn, som så kan sættes over for en anden genre, det er at se, hvor fuldstændig fantastisk generativ AI er, også komplet, du ved, ukritisk. Men det vil sige, at du ser det største gennembrud i dekader inden for software udvikling, det her. Men der så samtidig udvikler, der sidder og tænker, det her, det er horribelt at ringe. Hvordan hænger det egentlig sammen, tror du?
Thomas Blomseth:Ja, altså det er der jo noget med, når der er noget nyt, der kommer på banen, at det skal modnes som moden, vi bruger det på, det skal modnes. Men bare for at sætte i perspektivet, Kent Beck, han var manden, der fandt på det, der hedder test-driven development, som jeg disciplinerer mig selv til at tage til mig omkring årtusindskiftet, og som virkelig gør, at man kan få lavet kode af høj kvalitet, men man skal også disciplinere sig selv. Og derfor er det ikke alle, der har taget det til sig heller, men man kan sige meget mere om, hvilken kvalitet sin software er i, og især også, hvis man begynder at ændre på den, om så der kommer, at det hedder regression, altså man kommer til at indføre fejl, som man ikke havde tænkt sig. Og når han siger det også, så synes jeg, at jeg synes, at så får jeg lidt mere rygstød til min position også. Altså, det handler om at lære at finde ud af at bruge det, men også hvis man så gør det, og sætter de rigtige rammer for det, så kan det altså booste tingene på en måde, som ikke er set før. Så man skulle gå tilbage til software 1.0. til den, kan man sige, grinding, malende måde at lave software på, som det så ud for 50 år siden, som det så ud for 40 år siden, for 30 år siden, for 20 år siden nærmest også.
Klaus Silberbauer:Som det så ud, dengang jeg skulle lære at kode på humanistisk informatik.
Thomas Blomseth:Ja, og det er også derfor, at jeg tog godt tage emnet op, og synes, at selvom du nok har set dig selv mere som designer, så har du jo også kode gennem årene.
Klaus Silberbauer:Jeg har jo kodet et neuralt netværk i 1995, tror jeg, der var. I Pascal.
Thomas Blomseth:Ja.
Klaus Silberbauer:Jeg siger det bare.
Thomas Blomseth:Yes. Og der har du jo gørt noget, som ikke engang jeg har gjort. Det prøvede jeg ikke at gøre med forstand.
Klaus Silberbauer:Jeg havde heldigvis en skrivemakker på den opgave, som havde lidt mere styr på matematikken, end jeg havde.
Thomas Blomseth:Ja.
Klaus Silberbauer:Men det lærte mig faktisk rigtig meget om neuralt netværk, og hvor meget RAM det kræver.
Thomas Blomseth:Ja, og hvordan de maskiner dengang ikke helt var klar til det, vi ser.
Klaus Silberbauer:Vi opererede med en matrice på 11x11x1 bit. Det var jo klart input.
Thomas Blomseth:Ja. Og se, take note, det var de gode gamle.
Klaus Silberbauer:Det var det.
Thomas Blomseth:Men altså, software 1.0, som den gode gamle, der er jo slags, hvor må man lave dem. Altså, det ser man, kan man sige, nu også gerne som sådan en mere deterministisk måde at instruere computer i, hvad de skal gøre. Og det er, at der er nogle mennesker, der sætter sig ned, og så finder man ud af, skridt for skridt, hvordan skal en computer forholde sig til det input, den får. Og givet et input, den får, så kan den sige, hvis jeg får det her input, så gør jeg sådan her. Hvis jeg får et andet input, så gør jeg sådan her. Så kan den så lave en output, og det kan være, at det bliver vist til en bruger, som så siger, nu skal der gøres det her, og ikke det her. Og så kører den videre. Men det er jo simpelthen en forsøg på, og på en deterministisk måde, i så storhedsrængende man kan jo prøve at få modelleret det domæne, som vi kalder det gerne. Som vi gerne havde computeren til at lægge ovenpå, og så processere informationen fra, og måske lave styresignaler nærmest ovenpå os, der kommer ud og computerer andet, og siger, nu har vi fået alt det her input, og vi har gennemgået alle de her processer, algoritmerne inde i softwaren. Og så skal vi gøre det her frem for noget andet. Og det var jo en proces, hvor der skal bruges meget tid, og det kan også trække tænder ud, virkelig at få lavet de her meget specifikke instruktioner til computeren.
Klaus Silberbauer:Mildestalt. Altså det er vel det, vi kalder procedural programmering, eller hvordan?
Thomas Blomseth:Ja, og der er lidt forskellige, kan man sige, stilarter inden for det. Og det procedurale er, det er simpelthen, at man laver en opskrift, nærmest fra inden til anden, og siger, her er trin 1, så gør vi sådan, her er trin 2, så gør vi sådan, linje for linje. Det bliver også kaldt imperative programmering, og imperative det er at byde form, det vil sige, at du skal gøre sådan her, er virkelig det med at få taget i computeren. Sådan noget, nogen måske har oplevet, som man også taler om i software 1 nu, det er altså deklarativ, og det er, hvis man har kigget i en HTML-side, og siger, at der er en HTML-side, så står der jo ikke præcis, hvordan tingene skal vises, men det er mere en deklaration, og derfor er jeg klar til, hvad man gerne vil have, der skal ske.
Klaus Silberbauer:Og det vil du også have en form for programmering, fordi jeg tænker, altså hele XML-familien, det har jeg tænkt på som opmarkering. Men okay, det er jo en form for kommandor, der medfører et eller andet i visningslaget, ikke?
Thomas Blomseth:Jo, fordi det der, hvor skellet mellem det imperative og det deklarative, hvor du siger ikke præcis, hvad du havde gjort, men alligevel så er det jo, kan man sige, programmerer du det her udstyr til at gøre et eller andet. Og så er der så alle de der ting, der skulle laves især i gamle dage med, at hver enkelt browser havde sine egne små quirks og sådan noget, sådan at hvis man skulle have noget vist på en bestemt måde, så kunne man lige twiste HTML'en, fordi så ramte man en eller anden bestemt måde, det blev gjort på i den, kan man sige, imperative implementering, der så var i den browser, der skulle vise din HTML.
Klaus Silberbauer:Der er jo et sprog, der hedder prolog, som min ægteviv jo faktisk programmerer i. Det mener jeg er deklarativt.
Thomas Blomseth:Ja.
Klaus Silberbauer:Og det er jo meget svært at forstå, hvor sådan en Pascal-Delphi-type som mig, som havde lært proceduralprogrammering. Men det der med at sætte en hel masse, ja, deklarationer og statements op, den fældes ikke rigtig ind hos mig, kan jeg huske.
Thomas Blomseth:Nej, altså for at det så kan fungere, så skal du have så noget, der fortolker det, ikke? Og der har man så sådan nogle solver, det er logikprogrammering, sådan noget, prolog der, ikke? Hvor at den kigger på alle de der sætninger, der er sat op her, og så prøver den så at løse, kan man sige, alle de constraints, der er blevet sat op der, og så siger man, findes der faktisk så en løsning, givet alle de her constraints, som vi har sat op. Så der sidder noget ind midt imellem der. Og det kan man sige, det der med at sætte noget ind midt imellem, det har jo også været en del af softwareudviklingshistorie. hvor vi skal gå helt tilbage til de første computer i 1940'erne, cirka, og 50'erne, ikke? Altså nogle af dem, der var nærmest ikke et programmeringsprog som sådan, men det handlede om, at du satte nogle ledninger op på den rigtige måde, i nogle kæmpe krydsfelter. Og fik lavet forbindelser mellem transistoren på den rette måde, sådan at når du så gav et input ind i den her maskine, at så kom der nogle lamper, der blinkede den anden, eller hakket noget ud i nogle papirstrømmer, som det så kunne fortolkkes som resultat. Der har man så skudt forskellige ting ind imellem, gennem den overordning.
Klaus Silberbauer:Det blev for mange ledninger. Det blev for komplekst.
Thomas Blomseth:Ja, og det tog jo for lang tid at programmere dem også. Det var for besværligt. Sådan at man havde gjort den proces, man fjernede fra det fysiske, så fik man lavet maskinkode, assembler, sådan nogle ting. Så begyndte man så at lave højniveausprog.
Klaus Silberbauer:Som stadigvæk er relativt lavniveau, ikke?
Thomas Blomseth:Jo, det er —
Klaus Silberbauer:De mennesker, jeg er kendt som sådan op i... Altså hele Amiga-klanen der, ikke? Hele det økosystem omkring Amiga, der var de der typer, der sad og programmerede assembler. Det var vildt, hvad de kunne der, men hold kæft, det var nørdet, ikke?
Thomas Blomseth:Jamen, det var vel demoscenen, ikke? Demoscenen, ja. Hvor man så er begrænset med RAM, og så bliver der også indført nogle begrænsninger, som var en del af genren, ikke? Altså man siger, at man skulle kunne lave en fed demo, og den skal have en vis størrelse, ikke? Og så hjælper det altså ikke, at man bruger nogle af alle de her ting, der bliver skudt ind imellem af højniveaus ting. Fordi de koster for meget i forhold til RAM og andre ressourcer. Og så bliver man simpelthen til at sige, hvordan kan man koge det her ned til de engelsk tænkelige, instruktioner?
Klaus Silberbauer:Helt ned af pilleregistrene og flytte bits rundt, ja.
Thomas Blomseth:Og det vil sige, det er jo nærmest en kunstart, ikke?
Klaus Silberbauer:Det var det, det var det. En gang drømte jeg om at lave sådan en hel udstilling med gamle Commodore 16 og ikke mindst Amiga-demoer, fordi det var vanvittigt, hvad de kunne. Altså det var også et helt specielt, sådan en scene, 80'er-agtigt udtryk. Nå, det er en anden episode, som vi siger.
Thomas Blomseth:Og så det, der jo så er sket med Moore's Law, også i forhold til udvikling af processerkræfter og andre ressourcer, det er jo så, at vi har fået mere og mere computerkraft, vi har fået mere og mere hukommelse. Og det gør så, at så kan man skyde flere og flere lag ind imellem, sådan at det bliver lettere for menneskelige softwareudviklere at, kan man sige, dressere maskineren til at gøre det, vi gerne vil have. Og så er det, den trade-off, man laver, det er jo så, at det koster mere for maskinerne at køre det. Fordi det er ikke så kondenseret, det er ikke så kogt ned. Og det kan man sige, det har vi jo virkelig set de sidste 30 år. Altså i hele web-revolutionen, hvor det startede lidt med Windows også i 90'erne, hvor der er de her applikationer, der bare begyndte, altså Windows operativ-systemet selv, men så også applikationerne, de bare begyndte at vokse i størrelse. Og det var så fordi, at det simpelthen er billigere for Microsoft dengang, at lave nogle udviklingsværktøjer, der skaber en masse kode, der ikke er helt så effektive, som den i princippet kunne være, end det var at investere i menneskelige udviklere. Så man laver det trade-off og siger, det kan godt være, at softwareen kører lidt langsomme, og der skal bruge flere ressourcer, men dem ved vi også helt siden, der bliver flere og flere af, med Moores lov. Og så kan vi spare lidt på mandskab i stedet for. Men dertil sagt, at det er jo stadigvæk sindssygt komplekst at håndtere et stort software-produkt, som for eksempel Windows eller Mac OS, altså de store operativsystemer, hvor der er millioner af linjer-kode. En hel masse afhængighed. Og der er også en fyr, der hedder Fred Brooks, amerikansk software-mand, datalog, som helt tilbage i 60'erne med et stort IBM-projekt, oplevede det her med, at det er ikke altid sikkert, at hvis du har et forsinket software-projekt, at det hjælper at ansætte flere folk. Tværtimod, hvis man har været på nogen af den type projekter —
Klaus Silberbauer:vil man sige, nej, prøv måske at fyr et par stykker. Men okay, bare lige sådan, altså, vi formidler ikke. Men hvis der nu sad nogen derude, som ikke har programmeret, så det, du jo prøver at forklare nu, så glimrende, det er jo, at man sidder jo ikke og programmerer en computer direkte. Man bruger et sprog, en syntaks, som er nemmere at håndtere som menneske. Det er jo den eneste grund til, at C++ og Java og Pascal og Delphi findes, det er, og i Microsofts Visual Basic, at det findes det, fordi det skal være til at have mere at gøre for mennesker. Og så er der nogle af de her sprog, som er mere matematisk orienteret, nogen, som er mere, sådan til at forstå for humanister som mig, så er der, nu snakker vi om det deklarativ, der er objektorienteret sprog, som, hvis man forstår at programmerer på den måde, giver meget god mening. Så der kan ligge begrænsninger og muligheder i selve det sprog, man sidder og koder i. Det kan være en god syntaks, det kan være en dårlig syntaks. JavaScript er jo kendt som noget forfærdeligt rod i starten, og så er der strammet op med tiden. Og så har man en compiler, som ligesom, du indlæser din menneskekode i, og så omsætter compileren det til maskinkode, eller hvad der nu skal bruges til at styre den platform, som du nu har tænkt dig afvikler det her på. Det kan jo være alle mulige forskellige typer computer, med alle mulige forskellige typer styresystemer. Og derfor kan man i princippet også skrive en kode i et højniveau sprog, og så kompilere til forskellige maskiner, forskellige typer computer, inden for en vis grænse. Der er forskellige arkitekturer, der skal tages indsyn til. Men det findes der jo også en masse compilere, der kan oversætte de her ting. Så det er ligesom de der trin, man altid har været igennem. Og det er længe siden, man sad og trak kablerne direkte. Eller selv et hulkort er jo en form for programmeringssprog, som bliver kompileret i aflæseren. Det er vel mere eller mindre rigtigt formuleret. Du nikker, det er godt.
Thomas Blomseth:Ja, det er jo rigtig god sammen.
Klaus Silberbauer:Jeg prøver at formidle det lidt her.
Thomas Blomseth:Så hvis man skal ned i de faglige detaljer, alle mulige distinktioner for eksempel med om —
Klaus Silberbauer:Dem er jeg ikke belastet med.
Thomas Blomseth:Nej, men det var ikke fint bare at sige, at der er kompilerede sprog, og så er der også fortolkede sprog. Hvor hvis man kompilerer det, så tager du det, der er skrevet i menneskeforståelig kode, og så bærer du det ned i en fast fil, kan man sige. Så bærer du det ligesom ned i en fil. Og så er der de fortolkede sprog. Du bygger det. Ja, og de fortolkede sprog, nu nævnte JavaScript, det kan man for eksempel prøve i sin webbrowser. Man kan få noget frem, der hedder konsollen.
Klaus Silberbauer:Det er jo realtidskompilering, kan man sige.
Thomas Blomseth:Jamen, der ligger simpelthen en fortolker, som tager imod det her kode, og så på stedet der, så forholder den sig til, hvad skal der så udføres ude for det? Og det betyder så også, at du kan ændre på ting. Og man kan jo faktisk, altså hvis man tager den der konsol frem i sin webbrowser, så kan man jo sidde og ændre på ting inde i websiden, mens den er loadet ind i sin browser. Jeg bruger for eksempel til at, hvis jeg skal tage et screenshot fra YouTube eller sådan noget, nogle gange, så fjerner jeg nogle elementer fra UI og sådan noget. Fordi det kan man gøre i browser, fordi den har den her fortolk, som gør, at man kan ændre på det dynamisk.
Klaus Silberbauer:Hvis man sidder og har den der, hvad er det af kode? Det kunne jeg godt tænke mig at prøve. Så er det javascript jo den virkelig mest tilgængelige tilgang overhovedet. Altså det kræver ikke andet end notepad eller hvad man nu har og en browser. Så kan man skrive javascript og se, hvad der sker. Og det er ret stærkt efterhånden. Det er jo blevet et tændeligt stærkt sprog. Som både kan ting ved egen ret, men også manipulere med HTML og CSS, altså de opmarkeringssprog, man bruger til at lave web med. Så er det bare gået i gang. Det var bare et lille tip.
Thomas Blomseth:Ja, og det er ligesom den demokratiske side af hele web'en, og som vi også så tilbage der i 90'erne. Og jeg tror, du lavede formentlig en del vis kodeting på siden dengang, for at se, hvordan havde folk skruet ting sammen.
Klaus Silberbauer:Ja, jeg underviste jo simpelthen i webprogrammering, før jeg egentlig vidste, hvad det var på universitetet. Det var dengang barren var sat lidt lavt. for den slags. Så jeg har undervist i HTML, tidlig CSS og en vis grad i JavaScript.
Thomas Blomseth:Men jeg tror ikke, du skal ikke nedgøre dig selv alt for meget der, fordi du tænkte på, at der var i stort set ingen andre, der heller vidste, hvad det var.
Klaus Silberbauer:Nej, nej, på den måde var jeg pioner.
Thomas Blomseth:Ja.
Klaus Silberbauer:Men det handlede meget om at være et par sider foran i bogen.
Thomas Blomseth:Ja, og det var nok dengang.
Klaus Silberbauer:Ja.
Thomas Blomseth:Og det kan være, vi senere kommer til at sammenligne det med, hvor vi er henne nu.
Klaus Silberbauer:Ja.
Thomas Blomseth:Altså, det var et tider. Så vi er stadigvæk i software 1.0-verdenen, der hvor det, man skal forstå ikke, det er, at der skal være nogle sprog, som man kunne udtrykke sig i, og som nogle mennesker helst kunne forstå og udtrykke sig i. Og det er så blevet lettere gennem årene. Det ligner mere og mere sådan naturligt engelsk, især. Der er måske nogen, der har prøvet noget Myresnak i skolen. Det ved jeg, man laver længere. Men det var et forsøg, dengang vi var børn, på at lave en programmeringssprog for danskere, så man kunne fortælle de her myre, hvor de skulle bevæge sig hen.
Klaus Silberbauer:Ja, vi havde den der skildpadde, som vi kunne styre fra en Piccoline.
Thomas Blomseth:Ja. Men det var også den oprindelige amerikanske. Det var Turtle. Det var det Turtle. Så mere sig blev den til noget myre. I hvert fald for nogle i Danmark til noget myre. Så det var Software 1.0. Vi prøver på en forholdsvis deterministisk måde med nogle forbehold i forhold til, når man begynder at lave distribuerede systemer, og når der kører flere tråde, og der kan ske alt muligt, og hvordan der opfører sig, når der kommer data ind. Men vi prøver at lave deterministiske systemer, sådan at vi har ret godt hånd i hanke med at give et eller andet input, give et eller andet tilstand, som det her software system er i. Så kommer der et output, som —
Klaus Silberbauer:Exceptions var ikke noget, man brød sig om.
Thomas Blomseth:Nej. Det er der, hvor hvis man får for mange af dem, så skal man jo ikke tilbage. Så stikker det af. Ja. Og indskiller man i gang med at debugge, eller så skal man helt tilbage på tegnebrættet.
Klaus Silberbauer:Må jeg så ikke lige nævne netop i den gode gamle deterministiske verden, hvor det gav det os begge. Det var der, vi ligesom fik øjnene op for alt det her, det digitale. Og det er... Jeg havde jo den her drøm, om man kunne jo bare sætte sig ned, og så kunne man jo programmere, du ved, et system, der kunne svare på alt. Man skulle bare bruge if, then, nok. Og så finder man hurtigt ud af, at verden er mere kompleks end som så. Men det var jo faktisk det, man prøvede på med ekspertsystemer, som man kaldte det dengang. Det var deterministiske systemer med kolossale valgtræer, som kunne afdække, det vil være medicinske diagnoser osv. Og man kom sådan set også et stykke vej, og nogle af de systemer findes endnu og går gavn. Men det giver jo også sig selv, at i en kaotisk verden, hvis du prøver at sætte alt ned på regler, og dække et helt farveområde af på den anden måde, det er et stort stykke arbejde. Og et eller andet sted kan jeg huske, at jeg havde den der mavefornemmelse af, at det nok også er et for stort stykke arbejde, til at det virkelig bliver noget, man kommer til at bruge i større stil.
Thomas Blomseth:Ja, måske også, og det er det, der viser sig nu, måske lidt omsondt. Altså fordi, at verden og vores viden om den, har måske ikke helt de karakteristikker, der er. Altså, jeg kan også huske, der var fremme nok der i slutningen af 80'erne og starten af 90'erne med fuzzy logic, hvor man taler om, jamen, den der hårde hvis-så-logik, den er svær at håndtere. Vi må lave noget, hvor det er mere fuzzy i det, så det bliver sådan, lidt midt imellem, så begynder man at indføre de der gråzoner, fordi man kan også sige, der var noget, der var et clash her, der var noget friktion i forhold til den måde på, og kan man sige modellere verden på, fordi det er jo det, basalt set, som vi prøver at gøre i de her systemer, det er jo at skabe nogle eksekverbare, begrebslige modeller i virkeligheden. Og det er også derfor, at jeg synes, at software er noget andet, end bare ren matematik. Altså sådan en som Sabine Hossenfelder, fysikeren, hun siger, at software, det er jo, jo bare matematik.
Klaus Silberbauer:Jamen, hun er også så dejlig reduktionistisk.
Thomas Blomseth:Ja, det er hun ikke, fordi, ja, det kan godt være, der bliver brugt matematiske operationer i software, og boolske operationer nede i, som er implementeret faktisk i hardware, så er transistoren nede i chipsene, de kan udføre de her bestemte matematiske, boolske operationer. Men det er jo, igen da, når det mødes så med vores verden, og vores viden om verden, vores opfattelse af verden, så det at lave et stykke software og en proces, for at prøve at tage den forståelse af verden, og så lave nogle formalismer, som gør, at softwareen kan blive eksekveret, den kan køre på en måde, give input og give output, som giver mening i forhold til de formål, vi har. Og det er altså ikke rent matematik. Der sker noget andet.
Klaus Silberbauer:Nej, software, som I bruger, det opererer på et andet emergent lag, vil jeg tillade mig at sige. Hun kunne lige så godt sige, at software er ren fysik, fordi i sidste ende, så handler det om nogle elektriske felter, og nogle elektroner, fiser rundt i et eller andet medium. Men det giver jo ikke nogen forklaring af, hvad det er, software kan, når vi bruger det. Så jeg er meget enig med dig der. Det er jo software, der er, nu nævnte du Myresnak, og den der Turtle, og det bedste moderne eksempel på det, er nok det, jeg vil sige sprog, eller programmeringsmiljø, man kan kalde det, der hedder Processing, som også kan komme med en virkelig varm anbefaling herfra, fordi det er gearet til at visualisere matematik. Så hvis man har en matematisk over, så er det jo fuldstændig fantastisk til at prøve nogle ting af, og eksperimentere med matematik i et programmeringssprog, der er til at tilgå. Det er oven at købe gratis. Så ud og hente det, og så kan man starte på det, når man har lært JavaScript.
Thomas Blomseth:Og det kan man så få hjælp til i dag. Det kan man. Skulle vi så prøve at gå til Software 2 nu?
Klaus Silberbauer:Ja da.
Thomas Blomseth:Og det var så det, Karpathy han snakkede om i 2017, og det var det, han havde lært af Fei-Fei Li på Stanford, som var hende, som stod bag den store ImageNet-database også, som gjorde, at man faktisk fik hul på det med at få neural netværk til at kunne genkende ting i billeder. Så han stod lærer hos hende, og så tog han sådan lidt videre med til Tesla, hvor man jo så netop har det problem, at hvis man har nogle billeder, der skal køre rundt ud i verden, så er det jo ret gode ting, hvis de kan genkende, hvad der er ud i den verden, som de er på vej igennem. Og det var jo det gennembrud, der sådan skete der for 10-12 år siden, at lige pludselig så var der nok data til rådighed til, at man kunne lave store nok neural netværk, givet processorer og rammer osv., sådan at de faktisk kunne blive kompetente nok til at kunne se forskel på hunde og katte, og hvad vi nu så der. Og så var der så alle de der sjove, gråzonen ting med de små hunde, og så muffins og sådan noget, hvor de kunne godt blive lidt forvirrende gange imellem. Men man fik lavet nogle benchmarks, hvor man så fik lavet de neural netværk så gode, at de faktisk kunne begynde at genkende ting i billeder, men så også på andre områder, kunne begynde at klassificere ting. Fordi det var det, de blev i stand til. Det var i stand til, at man lærer de her neural netværk, at klassificere noget som med en ting frem for noget andet.
Klaus Silberbauer:Og der skete vel en, der skete skiftet, mener jeg, da man gik fra tagging, altså hvor du siger, det her netværk, det var sådan en netværk, jeg programmerede i sin tid, den kunne skelne mellem en smiley, der var glad, og en, nej, jeg tror faktisk, den kunne genkende ansigt, altså et smiley ansigt. to øjne, næse og en mund, så kunne de sige, det her er et ansigt. Alle andre mønstre vil den sige, det er ikke et ansigt. Og så har vi brugt alt rammer, hvad det var i den computer. Men næste skridt var at sige, at den har også en holdning til ting, der ikke er tagget i forvejen. Altså, du ikke skal lære den, her er en hund, her er en hund, her er en hund.
Thomas Blomseth:Ja, og det er så der, hvor vi skal, hvis vi skal holde os til det klassische software 2.0, så er det det, man skelner mellem supervised og unsupervised learning. Og det, som Fei-Fei lige fik lavet med det der store dataset med ImageNet, det var nemlig tagget dataset. Det var det, at hun indså, at med web, så er der kommet så meget data, at hvis vi går ud og scraper det, og vi så får tagget det, og en god del af det op, så ville det være så meget data til rådighed, som er tag, så vi kan begynde at få vægtende til at matche de her tags. Og det er de netværk, de gør. Det, de jo virkelig kommer ud, de kommer ud med en score, kan man sige. Man kan få det til at have en mening, så at sige, om, hvor sandsynligt det her er en hund, frem for en kat, frem for en muffin. Så det er den måde, de laver klassificering på, men man kan jo så også prøve dem til at prædikere ting, også eventuelt, som er givet via en bestemt tilstand her og nu, med nogle inputs, hvor sandsynligt er det så, at vi ender i tilstand 1, tilstand 2 eller tilstand 3. Så vi går fra det her deterministiske software 1.0, hvor vi prøver at se, om vi kan lukke alle hullerne, sådan at det opfører sig, præcis på den måde, som vi har tænkt os, til at det bliver problematisk.
Klaus Silberbauer:Det der så slår mig der, vi skal jo lige huske, at når vi snakker om software 1.0 og software 2.0 her, så det at programmere et neuralt netværk, altså boot sin C++ miljø op, og sidde og bygge et neuralt netværk, det er jo sådan set software 1.0, fordi der sidder du og helt klassisk koder det her neuralt netværk, men hvis man kan snakke om at programmere et stykke software 2.0, så handler det om at træne et neuralt netværk. Ikke sandt? Så et neuralt netværk i sig selv, altså grundlaget for det er jo software 1.0, men når du bruger det, når du træner det op til nye ting, så indgår det i software 2.0 paradigmet.
Thomas Blomseth:Præcis.
Klaus Silberbauer:Det er en vigtig skelnen, tror jeg, fordi jeg startede med at snakke om de her sugerprogrammører, der synes, at LLM'er laver dårlig kode, men det er jo også et stykke software 2.0, som du beder om at lave software 1.0.
Thomas Blomseth:Eller faktisk software 3.0.
Klaus Silberbauer:Åh gud, ja, vi tager den, når vi kommer derhen, men det skal bare ikke forveksles med det at træne et neuralt netværk.
Thomas Blomseth:Nej, og det er faktisk, det er en rigtig god point, og Karpathy, han er også inde på den, hvor han siger, at det han så, det var, at med software 2.0, så bliver det mostly about tuning the data sets. altså, det handler om, hvordan, hvad er det, du føder ind i den her lille kerne af software 1.0, som er det, der bliver kørt, når du træner den neuralt netværk, og som så afputter de her vægte, som er selve netværket. Og det, han oplevede hos Tesla også, det var præcis sådan en progression der, hvor i forhold til software 1.0, og styrte selvkørende biler, så var der egentlig ret meget software 1.0, i den til at starte med. Der var jo ret meget hvis-så-logik.
Klaus Silberbauer:Ja.
Thomas Blomseth:Og det, han så, det var, at jo mere data, de fik, træningsdata fik fra bileren, jo mere computerkraft, de fik, så kunne de faktisk erstatte meget, den her hvis-så-logik, fra software 1.0, med bare ren træning. Så software 1, og det her, han i den, det foredrag, som vi nok skal linke til, der har han også en illustration af, hvordan, som om, at det her software 2.0, æder sig ind på software 1.0. Og det var det, han så der.
Klaus Silberbauer:Ja, og til størst tidlig morgen, kan jeg huske, at allerede der, talte Elon om AI'en, og den store Dojo, der trænede AI'en. Dengang var det mest på indersiden af hans hoved, at det foregik, fordi ingeniøren, jeg ved ikke, hvad de sagde til ham, at de sad og lavede, men faktum var, at de sad og lavede prostoratkode. Og man kunne også se det på den måde, de der bil, der prøvede at køre selv på, det var noget hak, fordi der var så mange regler, der kom en konflikt med hinanden. Og der, hvor jeg mener, de virkelig brugte AI, det var på det, man kalder computer vision. Altså, det var at tage et dog digitalt, men alligevel, du ved, et billede, der skulle tolkes før, det gav mening. Og så kørte de de her neurale netværk, der taggede ting og sagde, her er der en anden bil. Her er der en lastbil. Her er der... Og så nåede de hen til, her er midterlinjen, der var ret vigtigt. Her er en streg på vejen. Og der sad jo simpelthen mennesker, taggede ind og sagde, billede efter billede, det her er en midterlinje, det her er en midterlinje, det her er en midterlinje, det her er en person. Men pointen var, ja, Tesla var grundlæggende set meget klassisk software 1.0 i starten. Og det store gennembrud kom for ikke super længe siden, hvor de skiftede, ifølge Elon skiftede hele, altså alle kodelinjerne, i full self-driving, bilkørsel og motorvejskørsel ud, med en fuld AI-stack, som de kalder det. Altså meget, meget lidt procedural kode. Der ligger og stikker stadigvæk noget, der kører aktuatorer i bilen, og du ved, sørger for, at bremserne kører og sådan noget. Men hele genkendelsen af, hvor kan jeg køre, hvor kan jeg ikke køre, hvordan skal jeg agere, på de inputs, jeg får via video. Det er sgu efter sinevære, rent AI nu.
Thomas Blomseth:Det de så dengang for nogle år siden, det var jo så visionen om, at det var da man kunne komme hen. De havde set noget, som kunne lade sig gøre, og så tager det, det tager altid længere tid, end man kunne håbe.
Klaus Silberbauer:Det tager tid at købe 200.000 GPU'er.
Thomas Blomseth:Ja. Men mindst også at lære, hvordan man gør det her. Altså, fordi den her træningsproces, og som Karpathy siger det, med at man skal tune de her datasets, det er jo også det med at lære, hvad er det, der er vigtigt her, hvad giver en forskel, og det er der, hvor en ting, det er selvfølgelig at læse forskningsartiklerne, om de her principielle metoder og algoritmer, noget andet, er alt den meget, meget proprietær specifik viden, der ligger i nogle virksomheder nu, om, hvordan man får hele den her pipeline, får noget data om virkeligheden, masseret og filtreret og partitioneret og alt muligt i sådan en helt industriel proces, ind igennem deres træningsproces. Det er jo der, hvor en meget stor del af magien, den foregår også. Fordi algoritmerne i sig selv, er jo nærmest, ikke trivielle, men de er jo så simpte, og enkelige i det nærmest, at i forhold til den kompleksitet, der bliver håndteret i det systemet nu, og det virker nærmest for mærkeligt. Det er jo det, som går imod intuitionerne for software 1.0. Som du siger, hvis det her skulle være implementeret, i hvis-så-logik, jamen det er jo helt uoverskueligt, hvor meget der skulle til sig.
Klaus Silberbauer:jo, og alle, der har arbejdet med software, ved jo godt, at antallet af kodelinjer stiger med kvadratet på, på hvad det er et stykke software, egentlig skal kunne. Altså kompleksiteten, der sker bare noget på, som minimum, med i anden der, at et lille stykke software, kan være overskueligt, men du skal ikke gøre det meget større, så er det ganske uoverskueligt. Og det vil sige, det er bare en ærgerlig kurve. man kan sige, at et stykke software 1.0, er jo så bare, det er nogle programørs forslag til, hvordan det her problem kan takles. Det er et forslag ud af, helt utrolig mange måder, at løse et problem på. Altså, hvis man sidder med Microsoft Office, det er jo så bare et, og mange vil sige, ikke særligt et godt forslag til, hvordan man kan løse nogle af de her problemer. Tænk, hvis et stykke software af den gamle skole, skulle have 100 forskellige måder, at skrive et brev på, eller sende en mail på. Det vil være helt uoverskueligt. Og det viser meget godt, hvordan vi rammer et benhårdt loft, i kompleksitet, som vi ikke længere kan overskue.
Thomas Blomseth:Ja, det bliver også et organisatorisk spørgsmål. Kan vi overhovedet være menneskelige organisationer, der kan finde ud af at håndtere den kompleksitet? Vi har jo set nogen af den slags, indenfor og udefra, men selv engang nogle af de allerstørste, men altså hvordan at holde styr på, hvad der skal gøres, hvad der er rigtigt at gøre, hvem der synes, at en bestemt proces i en virksomhed, skal gennemføres på en måde, frem for en anden måde, osv.
Klaus Silberbauer:Og hvis du så tager ovenikøbet, tager i forvejen ekstremt komplekse, menneskeskabte processer med alt, hvad der er at støje dem, og tænker, nu skriver vi bare noget deterministisk kode, der er en gang for alle for det her til at køre hurtigere. Og så cementerer du alt det lort, du har bygget op igennem generationer, ned i kode, som du ikke kan finde ud af at ændre på. Ved du, hvad du så har? Så har du Skats vurderingsplatform.
Thomas Blomseth:Så ja, og du har noget, der engang kompærer.
Klaus Silberbauer:Du bliver aldrig færdig med det, og du bliver med at poste penge i det. Og det sender flere og flere fejl ud. Og det er ikke, det er ikke fordi skatter dumme, eller de her udviklere er nødvendigvis særlig dumme, det er hele ideen, om at lave så komplekst deterministisk software, og applicere det på i forvejen komplekse problemer. Det er et kæmpe issue. Så derfor.
Thomas Blomseth:Jamen jeg synes, inden vi går til trænen, vi skal aldrig give det deterministiske software så bad at rap, fordi —
Klaus Silberbauer:Vi er kommet hertil uden det.
Thomas Blomseth:Nej, og du nævnte før det med den selvkørende bil, at der er en visse ting i den bil, hvor man kan sige, den måde vi har skabt teknologisk fremskridt på os, og det er ikke kun med software, man kan nærmest se over 100, måske over 1000, det er, at vi har taget usikre processer, og så har vi gjort dem benhårdere. Altså, om ikke støb dem i tågen, så i hvert fald drejede dem i stålen nærmest også. Det er jo også mekaniske maskiner. Altså, hvis du bare tænker i et gammelt damplokomotiv, eller et eller andet, der vil man faktisk gerne have inden for ret snæv og mavner en temmelig determinist proces, der gør, at de her stemler, de kører på den måde, de skal, og hjul bevæger sig på den måde, de skal, og når man drejer på det her håndtag, så bliver dampen taget af toghoved, og vi kan bremse og sådan noget. Og det er jo det samme i software, og så for eksempel styring af bilen. Altså, de dele af komponenter i bilens styring, som handler om, hvad sker der om at træde på speederen, hvordan bliver det signal oversat til, eller andet, der skal en styrende motor og sådan noget. der vil vi enormt gerne have noget meget, meget deterministisk software 1.0.
Klaus Silberbauer:Ja, helt sikkert. Og som sagt, at alt det her teknologi bygger jo på software 1.0 tilpas langt tilbage. Der er bare flere lag op til det lag, som så giver os værdi nu. Altså, på et tidspunkt når man bare enden for, hvor kompleks du kan lave noget maskineri. Og så bliver du nødt til, at komme en ny lag ovenpå.
Thomas Blomseth:Ja, og det er jo selvfølgelig vist, det er jo et god gammel trick inden for softwareudviklingen. Det er jo, at der er jo ikke noget problem, der ikke kan løse med nyt abstraktionslag, som man siger. Man kan altid lægge nyt lag ovenpå. Det kommer så ofte også med omkostninger, men man kan altid skyde nyt lag ovenpå. Altså, det er... Yes, men lad os komme videre til software 3.0, og det var så det, at det var jo ikke åbenlyst heller. Det krævede det her computerkraft. Det krævede... Du er inde på det, noget læring omkring forholdet mellem supervised og så unsupervised learning og de her store dataset. Og så der var jo et artikel fra nogle Google-folk, der var i 17'er, så var der vist den der attention is all you need, hvor altså Google jo i forvejen var i gang med at bruge det her software 2.0 prædiktiv klassificerende AI i stor stin i deres... i søgemaskinen. Det blev jo bygget sådan umærkeligt ind nærmest gennem årene. Men det er jo enormt brugbart der. Men det var så det næste gennembrud, som så førte til de LLM'er vi ser i dag og også multimodale modeller. Hvor man faktisk fandt ud af, at man kunne træne de her modeller uden nødvendigvis at skulle tagge alt det her op i forvejen. Men dertil så skal siges, der er jo meget af det i dag, hvor der så er, for at få modeller til at opføre, som vi gerne vil have, så er der lidt en menneskelig indgreb i deres postræning. Men grundlægges i det der med at sige, vi kan finde en måde at lave noget software 1.0, som kan æde en helt masse data fra internet både som tekst og så senere ender som billeder og video og alt muligt. Og hvis vi flyder det ind igennem den her maskine, så kommer der ud af det, kommer der en model med nogle vægte, hvor der er milliarder, billioner af vægte i den her modellen. som vi så faktisk har hardware til i dag også, vi kan sætte til at eksekvere. Og det viser sig så, det gav nogen noget nyt emergent, som ingen havde regnet ud på forhånden heller. Og det er så, Karpathy han kalder det for, at med LLM'er så får man programmerbare neural netværk. Og den måde, vi så programmerer dem på nu, det er gennem natursprog, gennem prompten, sætter du det her neural netværk til at udføre et eller andet. Sagen er så bare det, at i forhold til software 1.0, hvor at der var en ret, i de fleste tilfælde gode over enestudsmænden, når du skrev en kommando instruktion på en kodlinje, og så blev der gjort det du forventer, så er det meget mere usikkert.
Klaus Silberbauer:Eller også så fik du en fejl.
Thomas Blomseth:Ja, så fik du en fejl.
Klaus Silberbauer:Hvis du glemte simpelthen der.
Thomas Blomseth:Så er der en gang med syntaksen, ja, eller men så med software 3.0 her, så er det så meget mere usikkert alligevel, hvad der kommer ud af den der eksekvering. men det gør så også, at det kan sættes ind på nogle områder, hvor at formaliseringen af det område, eller det domæne, man er i, er nærmest ikke eksisterende. Og så bliver det sådan en emergent formalisering, der nærmest opstår, i og med, man giver den her prompt. og det vil jo så sige, det er, det at programmere i virkeligheden, det er jo så blevet tilgængeligt for mange flere, men det har også ændret sig.
Klaus Silberbauer:Ja, og det er jo fordi, der skal komme så meget mere fra, lad os nu i mange bedre ord kalde det, compileren. Hvis du skriver maskinkode, eller assembler, så kan du sige, jeg vil gerne sætte en hvid pixel, der på skærmen. Så kan du flytte den, den bit ned i det rigtige register, i dit grafikkort, hvad der skal til, og så har du en plet på skærmen. Men det er klart, for at generere, lad os sige, et stykke video, af en paljetbesat blæksprutte, der spiser en flyvemaskine, eller hvad man nu kan gøre i AI. Det kræver mange pixels. Nu kan du sige, nærmest bare det, jeg gjorde. Altså, min kommandolinje til maskinen, det er en paljetbesat blæksprutte, osv. Og så er det klart, så skal den jo gribe ned i nogle idéer om, hvad en blæksprutte er, hvordan paljetter ser ud. Der var en masse ting, jeg ikke skrev. Foregik det her i vandet, på land, under åben himmel, skinnede solen. Der skal træffes mange valg, i selve softwaren, fordi at jeg kan programmere det nemt. Så det er jo den der kæmpe trade-off. Derfor er det også lidt sjovt, når folk siger, det er jo vildt upræcist, og den finder bare på ting. Ja, fordi du har jo ikke programmeret den, særlig præcist. Hvis jeg beder dem om, at skrive en kriminalroman, så skal den finde på en del. Og det gør den også, men det er jo ikke sikkert, det er jo der, jeg vil hen.
Thomas Blomseth:Nej, det har vi også talt om før, det med, at det nogen kalder hallucination, jamen det er jo ligesom, the name of the game. Altså, hvis vi tager det alvorligt, at det er det her medie, som man nu kan udtrykke sig i, altså man kan programmere, ved at komme i de her halvbagte prompts, jamen så er der en hel del, hvis vi taler software 1.0, tager jeg mig, en hel del ubundne variabler. Og det fede her, så det er, at den her LLM'eren, så er villige til at lege med. Altså, i software 1.0-verden, hvis du har ubundne variabler, så får du din, hvis du ikke så kommer og binder dem, og giver en fast værdi, og så ofte man forventer det, så får du din exception, som jeg nævnte før, så står den. Det ved jeg ikke, hvad den skal gøre. Det kan ikke gå videre til næste skridt. Det var der, hvor LLM'eren så leger med, ikke at sige, og det kan godt være, at det var vildt upræcis, det du sagde, men så afputter jeg noget, og så må du forholde dig til det. Og det synes jeg også, Karpathy, han får taget godt fat i, altså han taler om, om partial autonomy apps, altså hvor at, at ikke at der er sådan en, delvis autonomi i softwaren, til at den selv kan finde på noget, og det man så skal, bliver nødt til at gøre, som menneske, i den proces også, og den norske design system, det er at have sådan en sløjfe, der går mellem AI'en, der genererer noget, altså vi sætter, vi sætter den til at lave et eller andet, så genererer den noget, det er et step, et trinning process, et genereringsstep, og så er der så, det andet vigtige, det er et verifikationstrin, eller et evalueringstrin, eller et redaktionelt trin, eller hvad vi skal kalde det, hvor vi tager stilling til, det der så kom ud der, var det egentlig, det jeg havde forventet, var det det, jeg kunne bruge til noget.
Klaus Silberbauer:Ja, men jeg tænker også, at LLM'er virker som en meget, meget abstrakt løsning på nogle problemer, vi godt kunne løse på en mere konkret måde. Vi kender til finansafdelinger, der sidder og prøver at finde ud af, kan vi bruge LLM'er til at gennemskue regnskaber og skrive vores rapporter, for eksempel. Der tænker jeg, at er LLM det rigtige? Hvis du også programmerer den her software via sprog, så er der bare mange usikkerhedsfaktorer. Du skal virkelig rundt mange gange og iterere, og ikke engang. Der kan du være sikker på, at den rammer det rigtige. Så der er jo andre former for AI, som nok giver mere mening at applicere på nogle af de problemer. Mere specifikke former for AI, måske lidt mere deterministiske former for AI. Det virker voldsomt at skulle, du ved, lad os nu sige, at jeg har brug for en lyskontakt til at tænde lys i min stue. Jeg tænker, at det var dumt at applicere en LLM til hver eneste gang og forholde sig til, at jeg siger, slukke lyset, og så inddrage, du ved, 100 års viden i fortolkningen af det spørgsmål, og så komme frem til at nok handle om, at han vil slukke lyset. Gør det, du mener?
Thomas Blomseth:Og Karpathy tager også fat, hvor han siger, at den måde, LLM'erne, de kommer ud på, det er lidt anderledes, end da de første computer, de kom på banen, altså hvor man brugte dem til faktisk simulationer af atombombesprængninger, man brugte dem til ballistisk computer til at regne baner ud på positioner og sådan noget under anden verdenskrig. Men nu er der sådan noget, LLM'erne, der bruger man til sådan nogle frivole formål, nærmest som man spørger, hvordan koger jeg det ikke? Trivielle spørgsmål, men jeg tror, det er der, vi bliver nødt til at starte, nærmest for at lære, hvad den her teknologi kan, og det er sjovt at nævne det med finansafdelingen, jeg sidder faktisk i gang med at bygge min egen lille bogføring til min lille virksomhed, hvor jeg bruger Claude Code sammen med filer med mine transaktioner, så jeg kan chatte med mine transaktioner, og så kan jeg instruere, Claude, jeg kan simpelthen, og det er sådan en formende proces, hvor vi sammen får indsamlet viden om, hvordan jeg gerne vil have bogført ting, og når vi så finder ud af noget sammen der, så fortæller den, tag den her måde at bogføre det her bilag på, og skriv ind i dine instruktioner, sådan at du ved det næste gang.
Klaus Silberbauer:Ja, fordi der bruger du, men der, det er det, jeg mente med at bruge, Software 2.0 til at skrive Software 1.0, at det du, slutproduktet bliver jo sådan set Python-kode, eller hvad det er, du sidder og skriver, og du bruger så, LLM'en i den proces med at programmere, og det er bare det, jeg gerne vil holde udefra, ideen med, decideret at bruge LLM'en som, computeren, der hele tiden fortolker, for at gå ud og gøre et eller andet, via agenter, eller hvad der nu er koblet på den. Men det, at en LLM kan skrive kode, er en lidt anden ting. Altså, hvis du vidste præcis, hvordan du gerne ville have dine bilag bogført, og du var super god i Python, så kunne du bare skrive koden.
Thomas Blomseth:Det, jeg synes er vildt interessant i projektet, som siger, at der er så mulighed for, at man sammen med LLM, udvikler en forståelse, så man så kan få genereret noget software 1.0, hårdt bagt deterministisk kode, som siger, lige det her del af processen, der skal vi vide præcis, hvordan den blev udført hvert eneste gang. Og så kan man så brække den del. og det er jo så igen det her, den sløjfe kan bare tage en tale om. Altså, så får man genereret noget, og så verificerer jeg, jamen det er faktisk lige, den her lille ekstra funktion, eller værktøj, som jeg gerne vil have. Den kan jeg jo så bage ned som noget, som er helt specifikt til min bogføring.
Klaus Silberbauer:Ja, ja.
Thomas Blomseth:Hvis vi bliver ved den. Og så kan jeg så fortælle Claude også, der er det her værktøj, så når vi når i den her situation, så skal du bruge det her værktøj.
Klaus Silberbauer:Og så har den A-agents. så har du jo lavet en software-agents, som den kan trigger, og smide nogle parametre efter. Det der, det er jeg kom til at tænke på med de der, når en, også når de i sådan en tidligere version af chat, giver til kode, når de stiller på et logisk problem, ikke kunne løses, men et matisk problem, som ikke kan løses, det slås LLM'er jo stadigvæk ved, kvad deres natur, tænker jeg. Jamen så griber de til kode. Men det er jo også lidt som om, at så slap den problem der, det er jo som om, at den havde ikke indsigt i, hvad den her kode kunne. det var i hvert fald en meget abstrakt forestilling om, at den lavede. Og jeg kunne ikke løbe med at sammenligne det med, hvis du havde, du ved, et klassisk website, og så begynder du at iframe ting ind, du ved, du har ikke et blik i det, der er bare noget her, og brugeren kan se det, du får output for den der Python-kode. Men det er ikke ligesom, det er ikke i LLM'ens kontekst, af hvad der sker. Og det kan godt være, at vi når derhen, hvor den har dybt forståelse af, hvad den her software-agent gør for den. Men det er som om, at der er vi ikke endnu. jeg ved ikke, om det er hovedet gemengeligt her, det er mere en mavefornemmelse af, hvordan de der, at det at generere kode med en LLM, er super praktisk værktøj. Men jeg opfatter ikke, at den genererede kode indgår i LLM'ens, hvad kan vi sige, det den kan. Jeg vil ikke tilskrive LLM'en, dens kodes kompetencer.
Thomas Blomseth:Jeg tror, at det ikke er meget ekvendeligt til, når vi laver værktøjer.
Klaus Silberbauer:Jo, det er det. Det er det bestemt.
Thomas Blomseth:En save, altså vi går ikke rundt, vi har ikke sådan nogle tænder, der kan skære igennem træ, nej, eller metal med en næstrø. Så vi bygger et værktøj, der kan det, og så det vi så ved, det er, når jeg står med et bestemt type problem, som er, at jeg skal save igennem et stykke træ, jamen så tager jeg den save som egen træ. Og det er jo så det, man kan gøre med LLM'er også. Altså der er en protokoll, der betager en del om noget, der hedder MCP, som er en måde at stille sådan nogle værktøjer eller kontekst til rådhed for sprogmodellerne, så de kan eksekvere noget mere specifikt. Og også der med at sige, der er vist type problemer, hvor at hvis de er tilstrækkelig veldefinet, at de er klaresmærsoftware 1.0, så er der ingen grunde til at bruge en masse tokens på, for det eksekverer. Fordi det er en lidt dyre måde at gøre det på. Så er det bedre bare at gøre det på en gammel måde. Men det man kan se i den her proces, hvor vi kan bruge software 3.0 til at generere software 1.0, med det som vi snakker om i første episode også, med at det kan føre til, at software bare kommer til at udbrede sig til endnu flere år. Fordi vi kan bruge software 3.0 til at bootstrap endnu mere software 1.0. Og nu nævnte du det plagede ejendomsvurderingssystem. jeg kunne enormt godt tænke mig at få den kodebase og så bare få lov til at kaste den ind i måske gemmerlig i pros kontekstvindue og så sætte lidt LLM'er til at analysere det der og finde ud af, hvad foregår der i den her kodebase og så simpelthen begynde at brække den i støtter.
Klaus Silberbauer:Jo, det handler ikke om kode længere, det handler om politik. Det handler ikke om problemløsning via software 1.0. Det handler om tværtimod, vil jeg sige. Og det er en helt anden snak, som kunne være superspændende at tage på et tidspunkt. Men når man søger at løse politiske problemer og politisk-administrative problemer med software, så er man ude i noget helt andet og meget, meget farligt. Noget værre rod. Hvor man ikke søger den nemmeste, mest logiske, rationelle, billigste vej til løsningen. Man søger at emulere en masse politiske software. Og hvis jeg nu siger Virk eller Rejsekortet er et rigtig, rigtig godt eksempel på det. Det er ikke svært. Det er ikke svært at lave et rejsekort. Men det er svært at lave et rejsekort, der overholder alle de undtagelser, alle de politiske, mere eller mindre tossede idéer, som man har fået igennem historien om offentlig transport i Danmark siden den første sporvogn kom på gaden. Altså, det er der, det går galt. Så man kunne garanteret lave en kildekode, en kodebase på, altså der fyldte en promille af det, den fylder nu. Men det er vel ikke noget nødvendigvis løs, det problem bliver defineret, fordi det er politisk. Men lad os lade den ligge til en anden gang.
Thomas Blomseth:Ja, men faktisk, Karpathy havde en anden pointe om, at han ser som om, det er en slags people spirits, han kalder han. det er som om, at det er stokastiske simulationer af mennesker. Og det er jo, det er måske derfor, der er nogen, der bliver lidt snydt af os, og tror, at der er både bevidsthed og alt muligt bagved. Men det er jo det, at det, de trænede på, er jo en masse eksempler på menneskelig adfærd. Og det er jo så også der, at det gør, at du kan så aktivere forskellige kondenseringer af roller, ikke? Altså, bare i mit bogføringssystem, ikke? Jamen, så kan jeg jo ligesom påkalde mig, hvordan vil, hvad er almindeligt, hvad er det, der reviser, hvordan reviser i Danmark, se på det her? Okay, der er forskellige måder at se på det. Hvordan en politiker opfører sig, det kunne man også simulere, for dem her, som er noget, som er helt, altså, umuligt at forestille sig, at skulle simulere i software 1.0, ikke? altså, hvordan skulle man kombinere her med det? Men det ligger jo ligesom gennem derinde, i hvert fald noget, der er sådan ofte 80% godt nok, det ligger ligesom gennem derinde.
Klaus Silberbauer:Det er godt nok til, at vores abbejerner ligesom tolker det og lægger resten til.
Thomas Blomseth:Ja.
Klaus Silberbauer:Altså, hvis du kigger på den, vi var inde på det for ganske få episoder siden, med ham der Google-manden, som mente, at en meget, meget tidlig version af Gemini måtte have været, var intelligent, var en entity, havde bevidsthed, hedder det på dansk. Det var jo i høj grad hans egen storytelling oven på den ret klodset simulation af en rolle, som du siger. Og de er kun blevet bedre nu, så det er jo klart, at vores hjerne ved ikke, hvordan vi skal opføre os anderledes, end du ved, okay, da nogen har talt til os, som om det var et menneske, så må vi heller opføre os, som om det var et menneske. Det er jo nok den sikreste valg.
Thomas Blomseth:Ja, et trick, som jeg jo ofte bruger, for at undgå den her reinforcement, eller en human feedback ting, som er RLHF, som den også bliver kaldt, som bliver lavet på chatmodellerne, sådan de opfører sig som en, der gerne vil hjælpe dig for eksempel. Det er, at hvis jeg har problemstillinger, jeg arbejder med, som i virkeligheden vedrører mig selv, eller det, jeg arbejder med, så fremstiller jeg mig, som om det er et tredje person. Som om jeg får til at sige, at der er nogle opfindere, der har gjort et eller andet, eller de står i den her situation, for ikke at få det der, også nærmest set sykofantisk, som er så i en nylig chat-diviske udgave. Altså simpelthen for at få dem trukket væk fra, og ville please mig.
Klaus Silberbauer:Bliver det køligere udtrykket, når det handler om en tredje person?
Thomas Blomseth:Det bilder jeg mig selv ind. Altså at jeg får et mere udfra kommende blik på det, og som at sige, rent psykologisk er det sindssygt interessant, det er med at prøve at formulere sin egen udfordring. De situationer, man står i, som om det er et tredje person. Allerede der lærer man jo selv noget, men det viser sig også, at det har en, i hvert fald sådan, i min egen opfælds, en positiv effekt i forhold til, de vurderinger, der kommer ud af det, og hvor hårdt, altså man kan sige, hvor meget de er vilde til at gå til stålet, i forhold til at vurdere, hvad der er desværre i de her situationer.
Klaus Silberbauer:Det var et godt lille prompt engineering trick, du gav videre der.
Thomas Blomseth:Ja, det hedder det for øvrigt, så ikke længere.
Klaus Silberbauer:Nej, guds tak og lov. Det var verdens korteste karriere, det var prompt engineering.
Thomas Blomseth:For det hedder context engineering.
Klaus Silberbauer:Nå, okay.
Thomas Blomseth:Ja, det har det faktisk kommet nærmest til at hedde, siden vores førstags episode. Så det går jo hurtigt i den verden.
Klaus Silberbauer:Ja, men det heldigvis, kan man sige. Jeg kan lige så tænke på, det her vi snakker om, men hvornår skal man applicere tunge el-elever AI, og hvornår de journalistisk kod er bedst, og så slog der mig. Jeg tror, den ligger præsent, fordi man i sci-fi snak, jo læste Douglas Adams her for nylig, at da Arthur Dent gerne ville have en kop te fra en automat i det her rumskib, læsebogen for kontekst, den ved ikke, hvad te er, men den har en suverænstærk AI. Så han skal bare beskrive te for den, og det gør han, han beskriver, du ved, helt tilbage fra Indien, Ceylon og tørret tebladet, og en kop te i aftenstunden, med solen går ned, og en dråbe mælk i, og sådan noget der, ikke? Og for at bruge en kop te, så suger den jo simpelthen så meget computerkraft af hele det her rumskib, det går i stå. For til sidst at vente glad tilbage, og servere ham, og det er den bedste formulering i modern science fiction. It produced something almost, but not quite entirely unlike tea. Og så tænker man, et stykke færdig bakt kode, der kunne lave en kop te, havde sgu nok været bedre.
Thomas Blomseth:med de tilstrækkelige fysiske ressourcer også tåret.
Klaus Silberbauer:Det er rigtigt, det er rigtigt.
Thomas Blomseth:Men jeg synes faktisk, at det er jo en ret god karakterisering også af noget af det, der kommer ud af LLM generelt, ikke? Det er med, at det er sådan lige nærmest ved at være der, ikke? Men så skal det lige have det der human touch, for at det faktisk bliver til noget. Og det er så også, det er sådan som Karpathy også siger, han siger det virkelig så meget om, at vi er helt i begyndelse af det her. Altså derfor, I Software 2.0 er han med de selvkørende biler, ikke? Han prøvede også at være ude med at køre med en tidlig Waymo, ikke? Der troede han, nu er den der. Nu er den der. Og det var i 2016 eller sådan noget, tror jeg, han siger. Og så er der så alligevel gået 10 år, ikke? Og han siger det samme her. Altså, der er der folk, der går og tror, at nu er den der med LLM'eren, og det bliver agentisk, og de kommer til at kunne gøre tingene selv og sådan noget. Han siger, det her bliver ikke agentåret, det bliver agentårtiet. Så vi står kun på tærsklen til noget her. Det er ikke på nogen måde færdigt. Den kop te er altså ikke brygget endnu.
Klaus Silberbauer:Nej, men altså, lad det være en trøst. Det kan også gå for stærkt, ikke? Silberbauer & Blomseth er en samtale om systemerne, videnskaben og mønstrene bag de fænomener og teknologier, der præger alt for vores dagligdag til menneskehedens ultimative skæbne. Efter episoden her poster vi kilder og opfølgende materiale på Bluesky, hvor vi også er meget nysgerrige efter dine kommentarer, spørgsmål eller kritik. Find os på@silberblom.dk Vi laver podcast i vores egen tid og for vores egne penge. Vi generer dig ikke med reklamer for VPN-forbindelser, pulvermad eller lydbøger. Men hvis du kan lide, hvad du hører, så abonner på os i din yndlingspodcast tjeneste og giv os meget gerne en bedømmelse på Apple Podcast. Det betyder meget, og vi higer vel alle sammen efter anerkendelse. Del også gerne Silberbauer & Blomseth med venner, familie eller kolleger, specielt hvis de har, ligesom dig, en inclination mod videnskab og erkendelse. Sidst, men ikke mindst, tak for, at du lytter med.
Podcasts we love
Check out these other fine podcasts recommended by us, not an algorithm.
RumSnak
Tina Ibsen + Anders Høeg Nissen
SCIFI SNAK
Jens Poder og Anders Høeg NIssen
Radiolab
WNYC StudiosKrigskunst Podcast
Krigskunst Podcast
Prompt
DR
The Jim Rutt Show
The Jim Rutt Show
The Economics of Everyday Things
Freakonomics Network & Zachary Crockett
Varbergs Danmarkshistorier
Vores Tid - Nationalmuseets mediehus
De Lovløse
DR