Fiks all legacykode med Kunstig Intelligens

Torstein Frogner Knutson
Fremtind
Published in
6 min readJun 13, 2023
RPG programmering på IBM-mainframe i forsikringsselskapet Fremtind.

Her er en app som automatisk forklarer kode ved hjelp av Kunstig Intelligens (KI). Du kan laste ned appen her.

Jeg startet som backendutvikler i Fremtind i oktober 2022. Mitt daglige virke går ut på å sende informasjon fra databasen til dokumenter slik at kundene våre får korrekte opplysninger om sine forsikringer.

Koden som ligger i bunn for håndteringen av noen hundre tusen forsikringsavtaler er IBMs old school utviklingsspråk: RPG/RPGLE.

De fleste utviklere har ikke hørt om RPG, og selv om det fungerer bra til formålet, kan det være tidkrevende å lese seg opp på alle dialektene innad i kodespråket, som også i seg selv har endret seg mye i løpet av de siste tre tiårene.

RPG/RPGLE er IBMs as400 mainframe-språk og ble laget før DOS. Det gir den lykkelige følelsen av å være i The Matrix.

Eget, skydrevet KI

Kunstig Intelligens (KI) forstår alt av kode og dialekter og klarer å oppsummere det essensielle slik at mennesker forstår det, om du instruerer den riktig. Dette kalles prompt engineering og er fortsatt en slags kunst. Det er sannsynlig at bedrifter vil opprette egne stillinger for prompt engineering når KI blir mer integrert i alle systemer.

Når man jobber med kode, så leser man ofte små programmer skrevet av andre. Av ulike årsaker så er noe kode godt dokumentert og har kommentarer som forklarer hva som skjer i logikken, og annen kode ikke. Det krever mye ressurser å kontinuerlig sette seg inn i og forstå kode som andre har skrevet for over 20 år siden, i da et nesten helt annet type kodespråk (legacykode).

For å imøtekomme denne utfordringen er det nye verktøyet; KI, meget effektivt. Om man vil så kan man slippe appen i denne artikkelen løs på hele systemet til selskapet i en loop. Samtlige RPG-filer ville da blitt oppdatert med samme kode som tidligere, i tillegg til kommentarer fra KI på hva som skjer i logikken (demonstreres under i artikkelen). Den kunstige intelligensen skjønner mer eller mindre alt. Jeg vil ikke anbefale å gjøre det enda.

De fleste store selskaper ønsker ikke å sende kritisk kildekode eller forretningslogikk til en tredjepart. Det er også, forståelig, motvilje mot å røre legacykode, som er kode skrevet for lenge siden, som fungerer og som store penger og transaksjoner er avhengig av.

For å være litt fremme i skoa burde selskaper se på mulighetene rundt et eget skydrevet kunstig intelligens.

OpenAIs “Large Language Models” (LLMs) er “Generative Pre-trained Transformers (GPT)”, og det vil si at modellene er ferdig opplært. De kan ikke ta til seg ny informasjon.
Den siste modellen til OpenAI er trent på 175 milliarder parametere, som er et så stort tall at mennesker vanskelig kan forestille seg det. Den neste modellen som kommer blir trent på en trillion parametere, som krever mye datakraft og flere hundre millioner dollar i infrastruktur for å kjøre. Dette gjør at modellene også kan svare på spørsmål om for eksempel kodespråket RPG. Det er enda ikke mulig for allmenheten å kunne trene modellene på nye systemer, som all kildekoden og forretningslogikken til selskapet. Når det blir mulig, vil en helt ny verden åpne seg.

Appen gir en demonstrasjon av hvordan dette vil fungere i praksis. Du kan kjøre programmet selv, med din egen gratis API-key fra ChatGPT. Dersom du bruker gratisversjonen er det begrensninger på hvor mye tekst (kode) du kan sende inn og få tilbake fra APIet. Ettersom generell kodelogikk (som i dette eksempelet) ikke berører personvern, er det ikke store hensyn man trenger å ta i forbindelse med EUs planlagte lover vedrørende KI.

Kom i gang

Ved hjelp av et enkelt API kan du integrere den største teknologiske revolusjonen siden www og google med et backendsystem.

STEG 1: Lag en gratis konto på OpenAI og opprett din egne API-key.

STEG 2: Last ned filene til appen fra GitHub her.

STEG 3: Følg stegene i readme.md filen.

STEG 4: Start appen i terminalen og se den i browseren din.

STEG 5: Kopier inn RPG-kode og send til KI.

STEG 6: Få tilbake kode med kommentarer fra KI.

Appen sender instrukser til KI om hvordan den ønsker at den skal behandle input, og hva slags format output skal ha. GPT-modellen som svarer er en “transformer” som predikerer neste ord i en setning den selv lager. Dette gjør at output fra KI ser menneskelig ut.

Bildet under viser appen, som er instruert til å kommentere på RPG-kode (du kan endre på appen til å svare på hva du vil). Å finjustere en slik instruks, eller “prompt”, slik at du får tilbake det du ønsker er ikke rett frem. Den kunstige intelligensen er så ekstremt mye “smartere” enn oss at det ikke alltid er så lett å vite hvorfor den svarer som den gjør, eller hvilke egenskaper ved spørsmålet ditt som gir de ulike svarene. Ofte må man bare prøve og feile litt.

Men når du spør riktig, blir svaret skummelt bra.

Appen heter SQLRPGLEAI og under ser du hvordan den ser ut i action:

STEG 5: Kopier inn kode og send til KI (screencapture av appen). Her med instrukser “prompt engineering” i bakgrunnen som ber om å kommentere koden på norsk, og slik at kommentarene er enkle å forstå for andre utviklere.
STEG 6: Få tilbake kode med kommentarer fra KI. (screencapture av output i appen). Appen summerer opp hva som er hovedtema for logikken, inkluderer koden og kommenterer over sentrale deler av den.

En KI lik denne kan bli trent på selskapets private kode og dokumenter. Utviklerne og forretningen i selskapet kan jobbe med å trene opp KIen til å utføre oppgaver, og få KIen til å foreslå forbedringer. Samspillet mellom menneske og maskin er fremdeles kritisk viktig, men etter hvert som KIen blir bedre vil den også i økende grad kunne forutse hva vi ønsker av den.

Under er et bilde av “prompts” fra koden til appen som viser hva som sendes i bakgrunnen som en instruks sammen med koden som skal kommenteres på.

“Prompt Engineering” (screencapture av ‘prompts’ fra koden til appen) .

Kunsten å kommunisere med en KI

Det er alltid et definerbart korrekt svar på når noe går galt i backend. Svaret ligger i logikken og er uten meninger eller politikk. En type KI tilpasset dette kan derfor trenes opp til å finne presise svar, foreslå løsninger og eventuelt implementere disse løsningene i systemet dersom den har tilgang og er instruert riktig.

GPT-modellene introduserer litt kunst i måten man kommuniserer med modellen på. Det er allerede nær umulig å forklare hvorfor en KI svarer som den gjør. Men, dersom man instruerer den riktig og svarene (output) blir mulig å repetere gitt ny input, slik at man kan stole på dem, da blir det en fest for de som bruker modellene.

Å lage en god KI på egenhånd er vanskelig. I nær fremtid kan det være at man kan lisensiere tilgang med oppdateringer til OpenAIs modeller (som Photoshop eller Office-pakken), ha den kjørende på en privat Microsoft Azure server, for så å kunne la den bli trent på privat data. Dette vil fylle gapet vi står ovenfor akkurat nå; vi ser det enorme potensialet i teknologien, men trenger noen broer for å realisere forretningsverdiene. Disse broene kommer til å bygges og åpnes, straks.

Se fremover — ved å ha sin egen KI beskytter man kildekode og forretningslogikk og får ny verdifull innsikt i egne data, systemer og måter å jobbe med KI på som åpner nye forretningskanaler.

--

--