Derfor kan du ikke stole blindt på ChatGPT: - Det er som en muntlig eksamen

- ChatGPT er den verste mansplaineren, skriver Mikael Brevik, som avslører feil i Brodwalls Rust-prat.

- Problemet er at mye av det som blir sagt er korrekt, og desto verre blir det å skille ut de delene som ikke er det, skriver Mikael Brevik. 📸: Privat
- Problemet er at mye av det som blir sagt er korrekt, og desto verre blir det å skille ut de delene som ikke er det, skriver Mikael Brevik. 📸: Privat Vis mer

Åpne dører vil ikke bli oversett de heller, så noen ganger må det åpenbare påpekes: ChatGPT, DALL-E (og tilsvarende), Copilot (og tilsvarende) er imponerende. Virkelig imponerende.

Jeg kan til og med urettmessig skryte på meg en mastergrad innen naturlig språkprosessering (NLP), og publisering av en artikkel til en NLP-konferanse i USA for å prøve å kjøpe meg kredibilitet. Men uansett blir jeg slått i bakken over hvor bra det fungerer.

Siste uken har jeg brukt timesvis på å spørre ChatGPT om Power Rangers, hvorfor vi ikke burde ha arkitekter, tips til videotutorials i OCaml, eller til å hjelpe meg skrive søknad til å bli statsminister. Og det fungerer skremmende bra.

Uncanney valley

Skremmende bra er kanskje nøkkelordet her. For problemet er ikke at det er dårlig, men at det nesten er for bra. Det er så bra at du tidvis tror du kan stole på det. Litt som i CGI og grafikk hvor vi har Uncanny Valley.

Konseptet hvor desto nærmere vi har ting til det menneskelige, desto mer tilknyttet blir vi det, men så finnes det et punkt nærme der som gjør det ekkelt.

Vi ser eksempler på det i filmer eller spill hvor det ligner veldig på realistiske mennesker, men så er det noe med øynene som river deg bort fra realismen og gjør at du ikke greier å føle for protagonisten, men derimot distanserer deg fra dem.

Jeg tenker det er litt tilsvarende med AI-generert respons.

Må selvsagt til med et DALL-E bilde her. “Uncanny Valley”, DALL-E, openai.com
Må selvsagt til med et DALL-E bilde her. “Uncanny Valley”, DALL-E, openai.com Vis mer

Source code og Copilot

Med løsninger som Githubs Copilot eller Amazons tilsvarende, vil du få "code completion". Men basert på modeller som er trent på mye annen kode. Vi har sjeldent unike problemer, så de klarer å finne omstendelige løsninger på spesifikke problemer vi har.

Jeg har brukt Copilot i en periode og ble regelmessig overrasket over hvor omstendelig og hvor komplett generert kode kan være. Men jeg merket og at det ofte kom små feil introdusert i funksjonskropper som jeg hadde liten eierskap til.

Tidvis også ble det generert ganske avanserte algoritmedeler, som var enkelt å akseptere som at “ja, det funker det der”.

// Noe kunstig eksempel, men illustrerer forenkling av feil som er opplevd
function decodeEntity (obj: any) : Optional<MyEntity> {
  if (!('name' in obj)) return 'none';

  return {
    name: obj['name'],
    fullName: obj['full_name'],
    //              ^ hvordan vite casing her?
    age: obj['age'],
  };
}

Det skjedde flere ganger under utvikling at det var små nyanser som var feil, for eksempel i dekoding av data, negerte verdier eller feil "comparators" som skapte vanskelige feil. Noen av de var enkle å finne ut av med testing, andre ikke så enkelt.

Problemet oppstår når det som regel er korrekt, med noen ganger er det ørsmå feil med store konsekvenser. I koding har vi nok problemer med "clever code" om vi ikke også skal arve andre kodebasers "cleverness", uten noe eierskap til det.

No-bullshit bullshit generator, ChatGPT
No-bullshit bullshit generator, ChatGPT Vis mer

ChatGPT og læring

ChatGPT er som den personen på muntlig eksamen som får et spørsmål de ikke er helt trygge på. Taktikken blir fort å si så mange generelle ord og betraktninger at du håper sensoren blir lurt til å tro du vet hva du snakker om. Men i motsetning til sensor, er ikke vi som mottakere i en modus eller situasjon der det er like enkelt å gjennomskue.

ChatGPT er som den verste mansplaineren som finnes. Stappa full av Dunning Kruger. Den har lest intro-teksten på Wikipedia, og tenker den kan resonere seg frem til svaret og jukse seg frem til ethos med brask og bravur.

Problemet er at mye av det som blir sagt er korrekt, og desto verre blir det å skille ut de delene som ikke er det. Sånn sett er det kanskje poetisk rettferdighet av vi utviklere nå blir fascinert og sjarmert av dette, vi som ofte er skyldige i å påføre det på andre.

ChatGPT lokker deg inn med enkle fakta for å etablere seg som en kredibel kilde, men sniker inn små feil underveis. I et banalt eksempel kan vi se da jeg spurte om Deadpools evne til å teleportere:

image: Derfor kan du ikke stole blindt på ChatGPT: - Det er som en muntlig eksamen

Her svarer ChatGPT at ja, Deadpool kan teleportere i enkelte instanser. Den sier også videre at det er blitt vist i filmen Deadpool fra 2016. For de som har lest Deadpool, vet kanskje at Deadpool kunne teleportere som en konsekvens av “lånte” krefter av sin venn Cable. De kjenner sikkert også til Deadpool-filmen fra 2016 som var ganske populær i sin tid.

Problemet er derimot at den filmen hvor alle gjorde narr av Deadpool for umotiverte krefter som teleportering ikke er filmen fra 2016, men X-Men Origins: Wolverine fra 2009.

Nå kan det virke som jeg prøver å “well, actually”-e en robot for nerdcreds, men dersom du da bruker ChatGPT til å lære om et emne vil det være ganske vanskelig å fange opp dette.

«Sånn sett er det kanskje poetisk rettferdighet av vi utviklere nå blir fascinert og sjarmert av dette, vi som ofte er skyldige i å påføre det på andre.»

Problematiske svar

Dette skjer også i programmering. Johannes Brodwall hadde et eksempel om bruk av ChatGPT til å få mer info om Rust tidligere. Mange gode svar og interessant for å lære seg nye ting!

Men kan det være problematisk også?

Brodwalls spørsmål.
Brodwalls spørsmål. Vis mer

Et spørsmål Johannes spurte ChatGPT, var om memory model til Rust. Og her kan vi se hvordan muntlig eksamen til ChatGPT fungerer.

Den får et spørsmål om noe som den tror den skal kunne svare på, men som egentlig kanskje det korrekte svaret er at det er ikke tydelig definert memory model i Rust. I alle fall ikke skal en spørre de som skriver Rust:

Ingen nåværende memory model i Rust.
Ingen nåværende memory model i Rust. Vis mer

Svaret ChatGPT gir inneholder mye rett i seg og det blir sagt mye generelt om Rust som er korrekt, men noe av premisset er feil. Spørsmål projiserer en retning og ChatGPT svarer ut i fra beste evne.

Problemet er ikke at responsen nødvendigvis er unøyaktig, men at den er akkurat nøyaktig nok til å gi en tillit, men samtidig ikke til å være korrekt. Dette er små nyanser som er vanskelig å fange opp av de som ikke er domene-eksperter.

Ikke pessimist eller futurist

Hva skjer om vi bruker dette aktivt som læringsverktøy? Hvor enkelt er det å bruke kildekritikk på alle detaljer og leddsetninger som skytes inn i ellers veldig korrekt svar? Jeg kan skjønne at Stack Overflow forbyr ChatGPT-svar, og at det finnes skepsis til å dra teknologien inn i skolen.

Det er ofte vanskelig å skille fakta og fiksjon fra før, og når noe er så likt sannheten, kan det være skummelt.

Jeg er på ingen måte framtidspessimist, men ei heller futurist. Jeg sier ikke at enten må ChatGPT være 100 prosent korrekt eller ikke eksistere. Åpenbart må vi også huske at AI har problemer som AI har, det er biases og forferdelige holdninger.

Også for læring må vi være varsomme på hvordan det brukes og hvordan vi kommuniserer rundt det. Vi må huske at ChatGPT er en trent språkmodell for samhandling, ikke en faktamaskin.

Eller som ChatGPT sier: Ikke ta info for en god fisk.

image: Derfor kan du ikke stole blindt på ChatGPT: - Det er som en muntlig eksamen