fbpx

ChatGPT, Bard en andere prominente Large Language Models (LLM’s) hebben het afgelopen jaar onze nieuwsfeeds gedomineerd. En terecht. Deze spannende technologieën bieden ons een blik in de toekomst, de kracht en de mogelijkheden van AI.

Hoewel veel van de publieke opwinding zich heeft toegespitst op het maken van tekst, afbeeldingen en video, kunnen deze tools worden gebruikt voor veel andere disciplines, zoals softwareautomatisering.

In dit artikel gaan we dieper in op hoe prompt engineering ons kan helpen met softwareautomatisering. We moeten echter eerst de prompt engineering zelf onderzoeken.

 

Wat is prompt engineering?

 

Grote taalmodellen zoals ChatGPT produceren outputs op basis van de prompts of zinnen die we ze geven. De resultaten variëren echter sterk afhankelijk van de woorden of instructies die we gebruiken. Als we vage en onnauwkeurige instructies invoeren, kan het zijn dat de uitvoer niet goed is.

Prompt engineering verwijst naar het weloverwogen ontwerp van inputs die helpen om preciezere, nauwkeurigere en uiteindelijk bruikbaardere inhoud te ontlokken aan deze spannende AI-systemen.

Large Language Model (LLM)-systemen gebruiken natuurlijke taalverwerking (NLP) om de uitspraken die we ze geven te interpreteren. De machines zetten deze vragen of instructies (d.w.z. prompts) om in code en voeren ze door hun enorme databestanden om inhoud te produceren in elk formaat dat we specificeren (d.w.z. tekst, afbeeldingen, code).

ChatGPT is getraind op meer dan
570 GB aan gegevens
. Het trainingsmateriaal bestaat uit boeken, artikelen, webteksten, enzovoort. Met andere woorden, deze datasets bevatten een onvoorstelbare hoeveelheid kennis.

Hoewel we het proces kunnen begrijpen, gebeurt veel van wat er onder de motorkap van deze systemen gebeurt buiten ons gezichtsveld. Natuurlijk controleren we de inputs en outputs en trainen we het systeem, maar hoe deze algoritmen precies werken en de beslissingen nemen is nog steeds een mysterie. In de woorden van Sam Bowman, een AI-professor aan de New York University, “We hebben het gebouwd, we hebben het getraind, maar we weten niet wat het doet.”

Prompt engineering helpt ons die chaos te beheersen door outputs te gebruiken die voorspelbare en bruikbare resultaten opleveren. Ze bieden ons een manier om de enorme hoeveelheden kennis in deze toepassingen te ontsluiten.
Deze discipline is in opkomst als een nieuwe carrière
en overal duiken cursussen op naarmate bedrijven ontdekken hoe ze deze krachtige technologie kunnen inzetten.

Hoe kan prompt engineering helpen

met softwareautomatisering?

chatcpg gebruiken voor verschillende softwareautomatiserings- en rpa-taken

Softwareautomatisering en LLM’s hebben veel gemeen. Ze bieden allebei een glimp van een toekomst waarin machines menselijke creativiteit zullen vergroten om snellere, productievere werkplekken te creëren.

Er zijn verschillende spannende gebieden waar beide technologieën kunnen samenkomen. Hier zijn drie manieren waarop we prompt engineering kunnen gebruiken in softwareautomatisering.

 

#1. Code genereren

code genereren met prompt engineering in testautomatisering

Het schrijven van code is een van de meest veelbelovende toepassingen van Grote Taalmodellen. AI LLM’s staan nog in de kinderschoenen. De komende jaren zou deze technologie moeten verbeteren naarmate er meer middelen worden toegevoegd aan zowel computers als training.

Op de lange termijn kan deze vooruitgang ervoor zorgen dat AI hele programma’s kan schrijven met weinig of geen menselijke tussenkomst. Voorlopig hebben LLM’s echter enkele beperkingen. De kwaliteit van de uitvoer van LLM-codering hangt voornamelijk af van de kwaliteit van de invoer. Afval erin, afval eruit, zoals ze zeggen.

IS YOUR COMPANY IN NEED OF

ENTERPRISE LEVEL

TASK-AGNOSTIC SOFTWARE AUTOMATION?

Natuurlijk is het niet alleen effectieve prompt engineering die als een wegversperring werkt. Zoals gesuggereerd in ChatGPT en grote taalmodellen in de academische wereld: Kansen en uitdagingen (Meyer, 2023), “Op dit moment is ChatGPT eerder succesvol in het nauwkeurig schrijven van kleinere blokken code, terwijl de betrouwbaarheid bij het schrijven van grotere/complexere programma’s (bijv. een softwarepakket) twijfelachtig is.”

Bovendien waarschuwden enkele computerwetenschappers in een recent artikel in het tijdschrift Nature dat we het genereren van code met LLM’s met enige voorzichtigheid moeten benaderen. Nog een eigentijds document,
Grote taalmodellen en eenvoudige, domme bugs
(Jesse, 2023), liet zien hoe een populaire LLM, Codex, die wordt gebruikt door de leverancier Copilot, “bekende, woordelijke SStuBs produceert met een 2x zo grote waarschijnlijkheid dan bekende, woordelijke correcte code”.

Hoewel deze problemen niet genegeerd kunnen worden, is er nog steeds veel terechte opwinding over hoe deze programma’s kunnen helpen om softwareontwikkeling te democratiseren door zowel technische als niet-technische teams te ondersteunen.

Het meest indrukwekkende is misschien wel dat tools als ChatGPT zeer snel functionele code kunnen produceren. Met de juiste prompt kunnen engineers de tijd die nodig is om bepaalde soorten code te programmeren verkorten, waardoor de levenscyclus van softwareontwikkeling sneller verloopt.

Eind 2022 verbood de populaire programmeerhub
Stack Overflow AI-gegenereerde
antwoorden op zijn forum. Ze noemden het hoge foutenpercentage en de onnauwkeurigheden in verband met de applicatie. De technologie bevindt zich echter nog in een beginstadium; bovendien is de ontevredenheid over door AI gegenereerde output evenzeer te wijten aan gebrekkige prompt engineering als aan de technologie zelf.

Ondanks de twijfels over de technologie, een
recent stuk van McKinsey
benadrukt de impact die prompt engineering al heeft in de programmeerwereld. Het adviesbureau De staat van AI in 2023: Generatieve AI’s doorbraakjaar deelde twee interessante trends. Ten eerste neemt 7% van de organisaties die in AI hebben geïnvesteerd prompt ingenieurs aan. Ten tweede hebben bedrijven die AI gebruiken het aantal AI-gerelateerde software engineering-functies teruggebracht van 38% naar 28%.

Een manier om deze trends te interpreteren is dat bedrijven zich comfortabel voelen met deze opstelling en klaar zijn om softwareautomatisering over te dragen aan hun machines. Hoewel bestaande ingenieurs misschien schrikken van deze cijfers, suggereert het McKinsey-onderzoek dat “slechts 8 procent zegt dat de omvang van hun personeelsbestand met meer dan een vijfde zal afnemen”. In het algemeen zullen ingenieurs zich waarschijnlijk moeten bijscholen om te kunnen profiteren van de trend naar door AI gegenereerde softwareautomatisering.

Een voor de hand liggende toepassing voor door AI gegenereerde softwareautomatisering is het maken van automatiseringsbots. Maar hoewel prompt engineering een ogenschijnlijk gebruiksvriendelijke interface is dankzij de focus op conversatie, valt nog te bezien of het bestaande oplossingen kan verdringen.

In veel opzichten heeft software als ZAPTEST de softwareautomatiseringsmarkt al gedemocratiseerd. Er zijn nu no-code tools waarmee niet-technische teams RPA-bots van hoge kwaliteit kunnen bouwen. Hoewel software zoals ChatGPT bots kan bouwen, kunnen implementatie en onderhoud lastig zijn voor iedereen die geen software engineer is en zelfs voor degenen die dat wel zijn.

Het opnemen van interacties tussen mens en computer vanuit je GUI en het omzetten van deze bewegingen in code is veel gebruiksvriendelijker dan het gebruik van prompts. In combinatie met het potentieel van LLM om onstabiele en met fouten bezaaide code te produceren, is het eerlijk om te zeggen dat RPA-software in de nabije toekomst nergens heen zal gaan.

 

#2. Ongestructureerde gegevens converteren

checklist uat, tools voor het testen van webtoepassingen, automatisering en meer

Ongestructureerde gegevens zijn niet de sterkste kant van Robotic Process Automation. De technologie is niet gemaakt om dingen als e-mails, foto’s, audio en meer te verwerken. RPA tools hebben voorgedefinieerde datamodellen nodig met georganiseerde structuren.

Een groot deel van de ongestructureerde gegevens bestaat uit tekst in natuurlijke taal. Er worden grote taalmodellen gebouwd om deze informatie te “begrijpen” en er semantische betekenis uit te halen. Dit creëert dus een aanzienlijke kans voor teams die deze teksten willen interpreteren en omzetten in een formaat dat geschikt is voor RPA-tools.

Veel teams maken al jaren gebruik van natuurlijke taalverwerking (NLP) om hen te helpen met sentimentanalyse. Dit proces, ook wel bekend als ‘opinion mining’, helpt organisaties om op de hoogte te blijven van de gevoelens en attitudes van consumenten ten opzichte van merken. In de meeste gevallen worden deze tools gebruikt om positieve, negatieve en neutrale sentimenten in tekst te detecteren. De technologie is echter ook in staat om emoties veel gedetailleerder te detecteren.

Hoewel er verschillende tools op de markt zijn die deze functionaliteit bieden, biedt LLM een pad naar veelzijdiger gebruik dat verder gaat dan begrijpen wat mensen van een product of service vinden. Gegevensanalyse is de afgelopen jaren bijvoorbeeld explosief gestegen in populariteit. Big Data geven bedrijven een voorsprong doordat ze inzichten en inzichten kunnen afleiden die helpen bij datagestuurde besluitvorming.

Robotic Process Automation tools kunnen helpen bij het verzamelen van gegevens. Zoals we hierboven al zeiden, hebben ze echter moeite met specifieke soorten informatie. Wanneer RPA echter wordt gecombineerd met AI-tools die gebruikmaken van Large Language Models, kan het grote hoeveelheden gegevens verzamelen en gebruiken om de informatie te genereren die nodig is voor Business Intelligence (BI)-tools.

IS YOUR COMPANY IN NEED OF

ENTERPRISE LEVEL

TASK-AGNOSTIC SOFTWARE AUTOMATION?

Een van de meest opwindende aspecten van Generative AI is het vermogen om gegevensinvoer te begrijpen. Met de juiste prompt engineering kunnen teams deze gegevens omzetten in een formaat dat werkt voor hun RPA-tools.

RPA kan helpen om Big Data workflows efficiënter te maken. Om te beginnen kun je het gebruiken om te helpen bij het invoeren en extraheren van gegevens. Maar misschien wel de meest waardevolle en intrigerende gebruikssituaties zijn het gebruik van RPA-tools voor het transformeren, opschonen en laden van gegevens of om ervoor te zorgen dat gegevensmigratie snel, efficiënt en nauwkeurig verloopt.

Een ander belangrijk punt is data governance. Het automatiseren van gegevensverzoeken helpt organisaties om zich aan de regels te houden en houdt gegevens uit het zicht van handmatige medewerkers.

 

#3. Test Automatisering

Testautomatisering heeft een grote vlucht genomen in softwareontwikkelingskringen omdat het een snellere manier is om software te verifiëren. Testen en kwaliteitsborging zijn van oudsher dure en tijdrovende processen; testautomatisering biedt een oplossing voor beide uitdagingen.

Een van de eerste dingen die prompt engineering kan doen, is de kwaliteit van testgevallen verbeteren. Met de juiste aanwijzingen kunnen deze machines testgevallen analyseren en problemen en oplossingen identificeren. Dit proces kan de reikwijdte van testgevallen vergroten en leiden tot uitgebreidere tests.

Je kunt een groot taalmodel bijvoorbeeld op dezelfde manier van code voorzien als een menselijke reviewer. Deze machines kunnen snel de code doorlopen en fouten, bugs en zelfs prestatieproblemen opsporen. Wat misschien nog intrigerender is, is dat LLM’s ook de mogelijkheid bieden om testcasecode te completeren vanuit slechts fragmenten, waardoor het maken van testcases wordt versneld.

Prompt engineering is erop gericht om veel van de problemen aan te pakken die de opkomst van de Agile/DevOps-benadering van softwareontwikkeling hebben gestimuleerd. Engineers willen efficiënte, eenvoudig herhaalbare tests die problemen kunnen opsporen voordat applicaties worden ingezet. Het idee hierachter is dat door tijd vrij te maken, softwareontwikkelaars zich kunnen concentreren op creatievere en waardegedreven taken.

Zoals beschreven in een klassiek artikel,
Technische schuld bij testautomatisering
(K. Wiklund, 2012) kunnen softwareontwikkelingsteams in de problemen komen als ze te veel tijd besteden aan het handmatig testen en verifiëren van hun software. De initiële kosten van testautomatiseringsoplossingen, een gebrek aan automatiseringservaring en zelfs een voorkeur voor oudere methoden kunnen bijdragen aan deze vertragingen.

Een van de meest interessante aspecten van Agile softwareontwikkeling is
Gedragsgestuurde ontwikkeling (BDD).
Het concept verwijst naar het ontwikkelen van software met verwacht gebruikersgedrag. Hoewel het implementeren van deze aanpak duidelijk tijd kan besparen, hebben veel teams moeite om deze automatisering tot leven te brengen. LLM’s kunnen echter een oplossing bieden.

Enkele van de meest voorkomende symptomen van technische schuld zijn slechte documentatie en een gebrek aan robuuste tests. Dit zijn problemen die de huidige LLM’s kunnen helpen oplossen. Andere opmerkelijke symptomen, zoals refactoring, zijn echter te complex voor de huidige Generative AI en resulteren mogelijk niet in tijdsbesparing.

 

Laatste gedachten

alpha testing vs beta testing

Generatieve AI-toepassingen hebben een enorm potentieel. De gebruiksvriendelijke, conversationele interface kan echter misleidend zijn. Veel mensen denken dat het eenvoudig is om kwaliteitsoutput te genereren met deze machines. Uitstekende prompt engineering is echter ingewikkelder dan je zou verwachten.

Effectieve prompt engineering vereist veel vallen en opstaan. De ingenieur moet ook goed nadenken om ervoor te zorgen dat de antwoorden bruikbaar zijn. Tot slot is het controleren en hercontroleren van het werk belangrijk omdat de kans op fouten bekend is.

Banen in de prompte engineering mogen dan wel in de lift zitten, maar niet iedereen is daarvan overtuigd. In de Harvard Business Review beargumenteert Oguz A. Acar op fascinerende wijze dat “Toekomstige generaties AI-systemen zullen intuïtiever worden en beter natuurlijke taal begrijpen, waardoor er minder behoefte is aan zorgvuldig ontworpen aanwijzingen.”

Wat de toekomst ook brengt, Generative AI zal er deel van uitmaken. Hoewel prompt engineering veelbelovend is, is het moeilijk om met zekerheid te zeggen welke rol het precies zal spelen.

Interessant is dat software voor testautomatisering al vol zit met use cases en succesverhalen die aantonen dat het geschikt is om de ontwikkeling van software te versnellen zonder afbreuk te doen aan de nauwkeurigheid of uitgebreide verificatie van applicaties.

Tools zoals ZAPTEST stellen ontwikkelaars al in staat om problemen aan te pakken zoals onvoldoende tijd en middelen, technische schuld, documentatie en uitgebreid testen en RPA. Bovendien zijn deze tools gebruiksvriendelijker dan prompt engineering, waardoor ze veel geschikter zijn voor niet-technische teams. Zoals altijd ligt het echte potentieel op het kruispunt van deze opwindende automatiseringstechnologieën.

Download post as PDF

Alex Zap Chernyak

Alex Zap Chernyak

Founder and CEO of ZAPTEST, with 20 years of experience in Software Automation for Testing + RPA processes, and application development. Read Alex Zap Chernyak's full executive profile on Forbes.

Get PDF-file of this post

Virtual Expert

ZAPTEST

ZAPTEST Logo