Programmeurs zijn te spreken over ChatGPT; het scheelt immers productietijd. Maar omdat de tool ook onzin kan genereren, heb je weer tijd nodig om de voorgestelde code te controleren. Computable vraagt drie developers naar hun ervaringen.
Emil Wesselink is automation-specialist bij Sogeti. Zoals bij de meeste aspecten van het automatiseren van bedrijfsprocessen, valt er winst te halen door het programmeerwerk mogelijk te automatiseren. ‘Robotic process automation’, vertelt Wesselink, ‘is goed voor onze klanten, omdat het de productietijd verkort. Voor ons als ontwikkelaars wordt het werk leuker, omdat wij sneller aan klanten kunnen leveren.’
Het is zinvol om het saaie, repetitieve werk (waarbij door verveling fouten op de loer liggen) door een bot te laten uitvoeren. Sogeti heeft met ChatGPT gewerkt voor hi- en low-code met een hoog niveau. ‘We zien het als een super-Google, een uitstekende zoekmachine. Het brengt gegevens bij elkaar die je nodig hebt, maar je moet zelf nog wel de context schetsen waarbinnen je die gegevens kunt gebruiken. De tool geeft een voorzet en soms ook een andere kijk op hoe je iets kunt coderen. Het mooie is dat je op basis van een gegeven antwoord kunt doorvragen om naar een dieper niveau te gaan. Het is een lerend model. Daarbij gebruikt ChatGPT niet alleen data die algemeen beschikbaar zijn, maar doet OpenAI, het bedrijf achter ChatGPT, ook het nodige; bijvoorbeeld op modelniveau.’
Wesselink ziet de huidige versie als een goed begin, maar het schaalt bijvoorbeeld nog niet goed. ‘Zestig procent van de tijd dat ik het platform wilde gebruiken, was het niet beschikbaar.’ Hij meent dat tools als ChatGPT in de (nabije) toekomst zeker een belangrijke rol spelen voor ontwikkelaars. ‘Tenslotte is programmeren al jaren google-voor-gevorderden.’
Steuntje in de rug
Robbin Habermehl, co-founder van Humanoids, een bedrijf dat complexe digitale producten ontwikkelt en academici in tech traint: ‘De engine van ChatGPT wordt tevens gebruikt voor GitHub CoPilot, een tool die al wat langer wordt ingezet om met behulp van artificiële intelligentie code te genereren. Een aantal van onze mensen, onder wie ikzelf, heeft het een jaar lang getest, met wisselende ervaringen. Soms was het helemaal top, soms sloot het niet goed aan of was de kwaliteit zelfs ronduit slecht. Deze tools maken gebruik van publieke bronnen en als die niet in orde of verouderd zijn, dan schiet het resultaat ook tekort.’
Toch ziet Habermehl een toekomst voor dergelijke tools. ‘We hebben onlangs besproken om het opnieuw evalueren. Als je zeer ervaren bent, heb je er wellicht minder behoefte aan, maar voor de mensen die bij ons een traineeship volgen kan het een welkom steuntje in de rug zijn. Ik verwacht dat op de lange termijn iedere developer van dit soort tools gebruik gaat maken, het is een kwestie van geduld tot deze goed genoeg zijn om je proactief te ondersteunen in je werk.’
Vrij scherp
Albert Brand, senior developer bij Xebia, heeft ChatGPT uitgeprobeerd om te zien of het in staat is om bugs te ontdekken in applicatiecode waaraan hij (mee)schrijft. Met gemengd resultaat: soms weet ChatGPT vrij scherp aan te wijzen waar een performance issue of memory leak aanwezig is, en kan dan ook nog een oplossing in code genereren. Soms slaat de tool de plank compleet mis en wijst iets aan dat geen probleem bevat; en soms kan hij niks aanwijzen terwijl bekend is dat er een probleem is.
‘Een probleem dat ik daarbij ervaar, is dat ChatGPT zo getraind is dat de resultaten erg overtuigend klinken, en dat je niet aan het antwoord kan aflezen hoe ‘zeker’ ChatGPT is van de correctheid van zijn antwoord. Dit is ook een valkuil bij vragen buiten het code-domein. En de vraag is of dit op te lossen is, gezien de manier waarop de tool getraind is. ChatGPT lijkt dus behulpzaam over te komen, maar het controleren van de antwoorden kost uiteraard ook tijd, tijd die je ook aan andere zaken kan besteden. Uiteindelijk draait het erom: kan je met ChatGPT sneller een (categorie van) problemen vinden die je op andere wijze (statische code-analyse, unit tests, mutation tests) niet boven water krijgt? Daar kan ik nog geen goed antwoord op geven.’
Het generen van code, stelt Brand vast, werkt daarentegen vaak boven verwachting goed. ‘Het is een kick als je zonder zelf te coderen een stuk werkende code kan laten (her)schrijven, maar soms missen er essentiële programmaregels, worden begrippen of gevraagde logica niet goed gecodeerd en is er weinig architectuur te ontdekken in de code. Mijn ervaring is dat het het beste werkt met imperatieve code, waarbij er een een-op-eenvertaling is tussen de gevraagde functionaliteit en de programmacode. De tijd die je moet investeren om ChatGPT te controleren en de code aan te (laten) passen, maakt het voor mij voor dagelijks gebruik minder interessant.’
Kennis nodig
Alle drie zijn het erover eens dat je minstens kennis moet hebben van één of meerdere programmeertalen om met ChatGPT overweg te kunnen. Vergelijk het met een rekenmachine; je moet wel kunnen rekenen om te kunnen inschatten of de digitale uitkomst kán kloppen. Waarbij aangetekend dat er een groot verschil is tussen een rekenmachine en ChatGPT. ‘De uitkomsten van een calculator zijn deterministisch, die van de chatbot probabilistisch; het draait om waarschijnlijkheden. Elke keer dat je de rekensom twee plus twee op de rekenmachine invult, zal het eindresultaat hetzelfde zijn, namelijk vier. In het geval van ChatGPT hoeft dit niet zo te zijn. Op basis van de verkregen context genereert de kunstmatige intelligentie de meest waarschijnlijke uitkomst en deze kan dus per keer verschillen’, schrijven Sander Duivestein en Thijs Pepping in een opiniestuk in NRC. De twee werken voor het VerkenningsInstituut Nieuwe Technologie van Sogeti.
‘ChatGPT is een stochastische papegaai (een papegaai die toevalligheden produceert). Het apparaat kraamt maar wat uit. Het beredeneert en begrijpt niets. Het hallucineert feiten’, aldus Duivestein en Pepping. Je moet dus – net als bij het werken met kunstmatige intelligentie – weten wat je doet.
Vastlopen
Brand zegt dit als volgt: ‘Als je nog helemaal geen programmeerervaring hebt, dan lijkt het al heel wat dat een systeem werkende code voor je produceert op commando. Maar ik denk dat je vrij snel vastloopt, omdat je nog niet echt begrijpt wat ChatGPT voorstelt. Het is dan wel weer fijn dat je ChatGPT ook kan vragen om te beschrijven wat code doet. Toch zou ik minimaal beginnen met een cursus programmeren.’
Hij ziet wel een toekomst, mits de scherpe randjes van het ‘probabilistische’ eraf gaan. ‘Als dat kan worden opgelost met nieuwe modellen, die bijvoorbeeld gekoppeld zijn met systemen als Wolfram Alpha, dan verwacht ik dat developers voortaan een chatsessie starten in plaats van hun integrated development environment.’
In seconden
Ook Mark van Holsteijn, cto van Xebia Cloud, heeft ‘geoefend’ met Chatgpt. Hij meent dat het een productiviteitsboost geeft. ‘Ter illustratie: de code bij mijn blog over een container image was in luttele seconden te reproduceren na een simpele vraag met daarin de essentie van de blog. Nu was het niet helemaal perfect, maar zelf had ik er een paar uur overgedaan om de hele configuratie te maken, beschrijven en te testen.’ Volgens Van Holsteijn lijkt het programmeren met ChatGPT zelf als eerste te worden geautomatiseerd. ‘Ik denk dat het over vijf jaar dat nog veel beter kan dan dat nu het geval is. We zullen dus onze creativiteit als software-engineers naar een hoger niveau gaan brengen en meer nadenken over waardecreatie door middel van software, in plaats van de creatie van software zelf.’ Verder lijkt het hem ‘super-interessant’ wanneer meerdere van dergelijke systemen aan elkaar gekoppeld worden. ‘De bot kan dan spreken, tekenen en schrijven. De bot wordt dan een kunstenaar.’
Meerdere tools
De mediahype draait rond ChatGPT, maar er zijn al langer meerdere tools die op eenzelfde manier werken: bijvoorbeeld Dall E2, Lensa en Runway ML. Zij zijn alle in staat om in korte tijd hyperrealistische filmpjes, afbeeldingen en portretten te genereren die nauwelijks van echt te onderscheiden zijn.
Dall-E en Dall-E 2 zijn deep learning-modellen ontwikkeld door OpenAI om digitale beelden te genereren uit beschrijvingen in natuurlijke taal. Dall-E werd onthuld door OpenAI in een blogpost in januari 2021, en gebruikt een versie van GPT-3, aangepast om beelden te genereren. In april 2022 kondigde OpenAI Dall-E 2 aan, een opvolger ontworpen om meer realistische beelden te genereren bij hogere resoluties die ‘concepten, attributen en stijlen kunnen combineren’.
Lensa heeft de sociale media veroverd. Het is een product van Prisma, dat in 2016 populair werd met een functie waarmee gebruikers hun selfies konden omtoveren tot afbeeldingen in de stijl van beroemde artiesten.
‘Runway ML is een innovatief stuk online-software dat gebruik maakt van machine learning en ai om veel van de eentonigheid verbonden aan traditionele videobewerking te elimineren en in plaats daarvan een verfrissende manier van produceren geeft. Het bereikt ook waar het naar streeft, namelijk het bieden van een eersteklas, probleemloze bewerkingservaring online’, aldus TopTen AI in een bespreking van het product.