ChatGPT som hjälp och bollplank vid kodning

Squeeds Julkalender | 2023-12-12 | Fredrik Corneliusson
Under 2023 har jag utforskat och integrerat ChatGPT 4 i mina privata projekt, från att skapa webbsidor till att analysera aktiemarknaden. Denna resa har inte bara ökat effektiviteten i mitt arbete, utan också förändrat hur jag närmar mig problem och utmaningar inom mjukvaruutveckling. I detta inlägg delar jag med mig av mina erfarenheter och insikter om hur ChatGPT kan användas som ett kraftfullt verktyg för att förbättra arbetsflöden, generera kod och till och med agera som en digital kollega i ensamma projektstunder.
lucka_12_chatgpt_tips.jpg

Redan som barn var jag fascinerad av artificiell intelligens, så när ChatGPT lanserades tillbringade jag många sena kvällar med att utforska teknikens gränser och användningsområden. Jag har även en del hobbyprojekt så det föll sig naturligt att använda ChatGPT fullt ut som hjälp för utveckling av dessa. Användningen av ChatGPT har gjort utvecklingsprocessen effektivare, roligare och mer givande. Dessutom känns det mindre ensamt att arbeta på dessa projekt.

ChatGPT Plus (betalversionen) har använts i alla delar av utvecklingsprocessen, för att inhämta information, diskutera idéer och lösningar, ta fram designförslag, generera källkod (javascript, css, html, Python) och sätta upp infrastruktur i AWS.

Nedan följer några reflektioner och tips baserade på mina erfarenheter under det gångna året, för att få ut det bästa av denna revolutionerande teknologi.

Ha rimliga förväntningar

ChatGPT är kraftfull men har sina begränsningar. Du kan inte förvänta dig att bara kasta in ett helt projekt och be den jobba vidare. Fråga dig själv: Är min frågeställning tillräckligt tydlig även för någon utan förkunskap om mitt projekt?

Skaffa grundläggande förståelse för tekniken

Chattgränssnittet är utmärkt för att snabbt utforska och förfina det man efterfrågar. Men det är viktigt att ha en grundläggande förståelse för hur själva chattkonversationen används och interagerar med AI-tekniken bakom (GPT).

  • GPT - Generative Pre-trained Transformer - “AI”-motorn som genererar svar från indata.
  • ChatGPT - Ett lager ovanför GPT som simulerar en chatt.

GPT-modellen är "statisk" och den ändras inte av din konversation.

En GPT-modell i sig har inget koncept om 'chatt', utan är en statisk konstruktion som skapats när den tränades på en enorm mängd text, allt från litteratur till källkod. Man kan se det som att den på ett mycket effektivt sätt har komprimerat ner kunskap om det den tränats på och förstått hur saker relaterar och hänger ihop. 

För att få information från GPT-modellen ger man den en text som indata. Maximalstorleken för denna text, känd som 'token-fönstret', är begränsad till några tusen ord. När modellen processat indatan och genererat svaret har den underliggande GPT-modellen inte ändrats eller uppdaterats och kommer därför inte ihåg tidigare indata eller dess egna svar. All ny kunskap och historik utanför modellen måste därför förmedlas i indatan.

Hur skapas illusionen av en interaktiv diskussion?

En chattkonversation växer snabbt över storleksgränsen för indata, speciellt när man tar ChatGPT:s egna svar med i beräkningen och du inkluderar en hel del källkod. 

För att få plats med chatten i det begränsade indata-fönster skapas en summering av chattkonversationen och ditt nya meddelande. Därför kan det i längre chattkonversationer verka som om ChatGPT glömmer bort och inte följer tidigare instruktioner. Det uppstår alltså för mycket 'brus' och 'bortfall' i texten som skickas, vilket gör att det blir oklart exakt vad GPT-modellen svarar på.

Använd chatten till en gräns - tveka inte att starta en ny

En chatt är idealisk för att snabbt dyka djupt in i ett ämne, förfina din förståelse, och utveckla en grundläggande lösning.

När du fått en klarare bild av vad du efterfrågar tveka inte att skapa en helt ny chatt där du ger en instruktion som är mer precis och utförlig med förtydliganden och rätt vokabulär. Då får GPT-modellen mindre brus och motstridiga instruktioner att jobba med. Där kan du fortsätta ge den vidare feedback och instruktioner, om konversationen också blir för lång och spretig gör om processen.

En bra fingervisning om att konversationen börjar spåra ur är när du upplever en viss frustration över svaren du får och du märker att den inte riktigt har koll på var konversationen är. 

I mitt fall var det ofta när jag genererat större mängd kod som gått igenom flera revisioner i en chat (html/css/javascript) jag märkte att resultatet blev bättre av att separera ut valda delar av senaste koden som genereras till ny konversation om det krävdes vidare förfiningar.

Om korrekt svar är viktigt, be den bara svara om den är säker

AI-verktyget försöker ge svar och vara till lags, och den är bra på att ge övertygande men helt fabulerade svar (kallas hallucinerade). Min erfarenhet är att om du ber den enbart svara om den är säker så minskar risken för felaktigheter.

Jag använder till exempel det i mitt projekt vid generering av bolags summeringar för att undvika rena felaktigheter:

  • “... You are provided the following text and metadata about a company, but feel free to use your knowledge of the company that you are certain is correct as well.”

Ge öppna frågor

När du ska utforska ett ämne eller lösning, ge den öppna frågor innan du vet vad du vill ha. En språkmodell är lättpåverkad, ger du den vinklade frågor kommer den antagligen försöka svara utifrån din intention. Så vill du ha objektiva svar, ställ objektiva frågor.

Exempel:
Öppen fråga (bra):

  • "Vilka är några potentiella fördelar och nackdelar med artificiell intelligens i utbildningssektorn?"

Vinklad fråga (mindre bra):

  • "Hur kan vi hantera de många problem som artificiell intelligens orsakar i utbildningssektorn?"

Var kritisk och ställ följdfrågor

ChatGPT har slumpmässighet som standard för att bli mer kreativ och mindre repetitiv. Har du otur kan det resultera i att en chattkonversation kommer in på fel spår. Så ta inte alltid första svaret för givet. Om ett svar verkar oklart eller fel, be ChatGPT att förklara eller överväga alternativa lösningar.

Fråga GPT först - innan Google och Stack Overflow 

Det sitter i ryggmärgen att leta på webben efter svar. Man faller lätt in i gamla vanor och glömmer den otroliga kraft som det ger att kunna fråga AI-verktyget först, inte bara som sista utväg när man kört fast. Det sparar tid, ger tips på vad du kan söka vidare på och kan även korrigera dig om du är på fel spår. Och sedan uppdateringen som släpptes i november söker ChatGPT Plus även på webben och returnerar ett skräddarsytt svar.

Be ChatGPT bedöma olika lösningar

Använd den som bollplank, ofta kan den hjälpa till att ge en objektiv bedömning av olika vägval och lösningar. Jag finner det väldigt användbart när man sitter i ett privat projekt utan någon kollega att diskutera med. Be den även bedöma sina egna svar och lösningar, ibland kan den likt oss behöva tänka till och en extra gång.

Slutligen - experimentera, var nyfiken och öppen

Exakt vad som fungerar bäst är svårt att förmedla. Testa och experimentera själv, var nyfiken och frågvis. Efter ett tags användning får man en intuitiv känsla för svarens relevans, många gånger räcker det med att ge lite feedback för att få in den på rätt väg. Döm inte ut den för att den inte är felfri, utan lär dig hantera det.

Tänk på att AI-tekniken utvecklas snabbt. Det som är sant idag kanske behöver omvärderas imorgon.

Jag hoppas att mina erfarenheter och insikter kan inspirera dig till att upptäcka och dra nytta av artificiell intelligens för dina egna projekt. Det skulle vara intressant att höra om andras upplevelser och råd, så tveka inte att dela med dig av dina frågor eller synpunkter i kommentarerna. Observera att mina observationer och råd är baserade på användning och erfarenheter fram till december 2023.

Länkar:

  • https://finance.bitflip.guru/ - Ett av mina hobbyprojekt där Python koden som genererar grafer samt html/css/javascript tagits fram med hjälp av ChatGPT