(Bilden ovan ska symbolisera ett framtida Norden där vi anammat artificiell intelligens på rätt sätt. Bilden är konstruerad med hjälp av en bild av mig samt AI-verktygen Adobe Firefly samt DreamStudio.AI. Jag satte sen ihop det i bildbehandlingsprogrammet Pixelmator Pro, som också nyttjar olika AI-modeller för att automatisera arbetsflödet. Se bilden i sin helhet här.)

This article is also available in English: I replaced myself with an AI.

Artikel
6 APR 2023

Jag ersatte mig själv med en AI

Nu programmerar den åt mig

Om någon ger dig en hammare, är din första instinkt att slå den i din panna? Tydligen är det min. Med tillgång till en av världens mest avancerade LLM (Large Language Model, en modell för artificiell intelligens) och några timmars initial arbetskraft, hade jag ett Frankenstein-moment. Jag hade skapat ett monster som ersatte mig själv. Den gick autonomt igenom och programmerade om min kod.

Som alla idiotiska (och förhoppningsvis några genialiska) uppfinningar började det med ren och skär frustration. Jag hade jobbat med en ny funktion i ett ramverk jag inte är van vid och som var ganska avancerat. Man kan tveklöst säga att jag hade tagit vatten över huvudet. Till min hjälp hade jag den briljanta assistenten från OpenAI, ChatGPT. Att vara en assistent är precis det ChatGPT är bra på. I början kände jag mig ytterst fånig. Det kändes nästan som att jag fuskade varje gång jag skickade in en bit kod tillsammans med ett felmeddelande och bad den hjälpa mig att reda ut vad som gått snett. 

Är jag inte bättre än så här?
Måste jag verkligen utnyttja AI för att lyckas med basala uppgifter? Det kändes som att jag bara kastade saker på väggen för att se vad som fastnar. Till slut svalde jag stoltheten. Det viktiga är inte hur jag levererar utan att jag gör det. Om man ska vara helt ärlig - är det verkligen så mycket värre att chatta med en AI för att lösa ett problem än att googla saker, kopiera konstiga kommandon från StackOverflow och klistra in i sin terminal? Tills man lyckats ta sig ut ur VIM (ni som vet, ni vet).

Efter några långa nätter och en helg bestående av en intensiv iterativ process att kasta problem på ChatGPT och få potentiella lösningar tillbaka lyckades jag äntligen få det att fungera. Trodde jag. Tio minuter innan morgonmötet där jag tänkte presentera min fantastiska uppfinning havererade allt. I sista minuten fick jag med svansen mellan benen återgå till min skamvrå bestående av mig, ChatGPT och den kodbas jag nu hatade.

Den här gången tittade jag dock extra noggrant på datan som min kod hade spottat ut och noterade att mina värden, som skulle vara en procentsats över tid, inte enbart bestod av nollor. I slutet av serien av nollor fann jag i stället ett gäng 100 % siffror. Varför det? Varför bara nollor fram till dess och varför sedan 100%? En utvecklare som inte spenderat hela helgen i ren och skär frustration lokaliserar snabbt problemet: uträkningen av procentsatsen sker (antagligen) i datatypen Integer, som inte har decimaler, resultatet blir således antingen 1 eller 0 och aldrig någonting mellan (sedan multiplicerat med 100, givetvis). Med denna nya information plockade jag fram min interaktiva RubberDuck och förklarade kortfattat min teori.

”Ja, det kan stämma. PostgreSQL (databasen, red. anm.) utför beräkningar i Integer i stället för Float om du inte explicit castar dem till Floats. Här är en uppdaterad version av din kod: […]” samt en komplett, fungerande kodsnutt som löste problemet. Som en blixt från klar himmel satt jag och stirrade in i skärmen. Häftigt, tänker du, men inte revolutionerande, det där kan du googla fram.

Saken är att jag aldrig någonsin berättade för ChatGPT att jag jobbade med just databastypen PostgreSQL. Den lyckades alltså, av sig själv, göra den kopplingen utifrån problemet jag hade, utan att jag hade berättat det för den. Fortfarande inte så revolutionerande, tänker du kanske. Det var ungefär där jag kom till insikten om samtliga mina återvändsgränder i min interaktion med ChatGPT under hela helgen. Jag kunnat lösa dem direkt om jag hade ställt frågorna på rätt sätt och gett den mer information.

Men vad har det här att göra med din autonoma utvecklare? Jo, skillnaden mellan GPT-3.5 och GPT-4 är på ytan inte särskilt stor. Ställer du enklare frågor eller ber den göra enklare saker ger båda modellerna ungefär samma resultat. Men GPT-4 har en förmåga som GPT-3.5 inte klarar: efter dina instruktioner kan den lära sig att använda verktyg. Det ger GPT-4 en extrem styrka, vilket i sig självt ger en exponentiell ökning av den egna produktiviteten.

Carl frågade mig nyligen hur jag kände inför alla AI-nyheter som kommer ut på daglig basis. Jag svarade, utan att tänka, att jag blir alldeles svettig. Och det stämmer verkligen, det händer så otroligt mycket på kort tid att jag inte hinner med att ens ta in och behandla informationen. Man vaknar en morgon och helt plötsligt finns det AI-modeller, verktyg och funktioner som jag, för ett år sedan, inte trodde skulle finnas under min livstid.

När jag sedan skulle visualisera de fina datapunkterna jag knåpat ihop, kunde jag inte släppa tanken på kombinationen att ge GPT-4 egna verktyg och att den faktiskt löste alla mina problem åt mig, förutsatt att jag gav den nödvändig information.

Är det möjligt, då, undrar ni?
Jo, absolut är det det. De senaste veckorna har det dykt upp projekt på nätet med AI-modeller baserade på GPT som själva kan göra enklare planering och utföra uppgifter i flera steg. Microsoft JARVIS är nog ett av de mest imponerade exemplena, baserat på forskningen kring HuggingGPT. Den kan kombinera olika AI-modeller utifrån ett önskat resultat. Så du kan berätta för den vad den ska göra, sen använder den olika AI-modeller som verktyg för att ge dig resultatet du önskar. Den kan dessutom använda sig av mer än bara text, du kan exempelvis ge den en bild och be den göra en ny bild som liknar den och sedan förklara i text vad bilden innehåller. Deras egna exempel nedan:

Exempel från Microsoft JARVIS

Jag rotade runt i min mejlinkorg och hittade till min förvåning en inbjudan till GPT-4’s API. Det betyder att jag kan programmatiskt prata med GPT-4. Varför i hela världen jag har fått den? Jag kan utan tvekan nämna minst tio andra utvecklare som vore mer välförtjänta av något sådant. Hur som helst hade jag några timmar senare skrivit en instruktion till den och gett den verktyg för att läsa och skriva till ett filsystem, samt bett den själv definiera sina egna uppgifter.

Autonoma HannesAI läser och skriver kod


Måndag kväll, förlåt, nej, tisdag kl. 00.27
Modellen körs för första gången felfritt tills den får slut på minne. Innan den sackade ihop lyckades den refaktorera (det vill säga skriva om koden) åtta olika filer från ramverket Vue till React. På några timmar har jag lyckats knappa ihop en autonom refaktoriseringsrobot som läser ett sorts ramverk och spottar ur sig exekverbar och korrekt kod, inklusive i rätt lint-format (bara det är helt galet) i ett annat ramverk. Den valde dessutom sin helt egna strategi, vilket också är helt galet. Resultatet var ungefär likvärdigt vad en junior utvecklare kanske hade åstadkommit på motsvarande en till två timmars arbetstid. Kostnaden? I runda slängar 60 kr för API-anropen.

Lite av koden producerad av HannesAI

Tisdagen spenderades i existentiell ångest.
Jag kände mig som en galen vetenskapsman som skapat ett monster, eller som sprängt upp sitt eget laboratorium. Det krävdes på riktigt en hel dag för att smälta upplevelsen.

Är domedagen här för oss utvecklare?
Inte än. Inte alls! GPT-4 besitter ingen självständighet, har inget eget driv och tänker inte kritiskt. Åtminstone inte om du inte ber den. Rent krasst kan man säga att det är en väldigt bra assistent men som är aningen naiv. Om du berättar för GPT-4 att PostgreSQL banne mig visst räknar i Floats så kommer den tro på dig blint. Sedan börjar den hallucinera och gissa sig till en annan lösning, som kanske inte ens existerar, men som fortfarande låter sannolikt om man inte är insatt. Antagligen leder det er båda på villovägar, kanske i flera timmar.

En utvecklare som har mer erfarenhet än jag i de specifika ramverken och databasen jag jobbade i hade kunnat ställa kritiska motfrågor om jag bett om hjälp, vilket är en vital skillnad. Ens kollegor brukar dock inte bli så glada om man ringer dem en fredagskväll kl. 23.11 och ställer frågor kring hur man räknar ut procent. Jobbar man med GPT-4 får man dock behandla den som en intelligentare RubberDuck. Du får stå för det kritiska tänkandet själv, sen spottar den magiskt ut sig analyser och fungerande kod. Om du inte har otur.

Oavsett vad känns det som att språkbarriärerna mellan olika sorters programmeringsspråk och ramverk har sänkts rejält. I framtiden kanske man inte titulerar sig som ”Java-utvecklare”. Jag tror att rollerna successivt kommer att smälta samman. I stället för att programmera i ett programmeringsspråk kanske du skriver instruktioner på ren och skär engelska eller svenska? I stället för AI vill vi prata om människa + maskin, IA eller intelligence augmentation. Det kommer antagligen läggas mer vikt kring utvecklarnas kunskaper i breda termer såsom teknisk förståelse, logik och arkitektur snarare än i smala termer. Kanske kommer de flesta rent av bli ”teknikarkiteter”?

Att automatisera bort repetitiva och ”tråkiga” uppgifter är något jag tror de flesta inte har något emot och mitt lilla experiment kan bevisa att det är möjligt. Autonoma robotar som hanterar föråldrad kod automatiskt, gör ”peer reviews”, ger feedback på kod, refaktorerar om och förbättrar kod, med mera, kommer nog att explodera inom kort. Och för oss utvecklare kommer det kännas helt normalt, precis som att ha en robotdammsugare hemma. Visst har det funnits enklare versioner av dessa tidigare men om jag kan göra en autonom programmeringsrobot på några timmar finns det garanterat någon där ute som kan göra betydligt mer avancerade saker med de nya verktygen.

En sak är dock säker; AI-modellerna kommer aldrig någonsin vara sämre än de är just nu.

Hannes Wideteg (eller?)

Dela

Riskinformation
Historisk avkastning är inte någon garanti för framtida avkastning. De pengar du investerar i fonder kan både öka och minska i värde och det är inte säkert att du får tillbaka hela det insatta kapitalet. Faktablad, informationsbroschyrer och fondbestämmelser för våra fonder finns att hämta på vår hemsida eller hos någon av våra återförsäljare.
Edit cookie settings