Inleiding:
Naast talloze andere toepassingen is programmeringssoftware ook een belangrijk aandachtsgebied voor GPT-modellen. Programmeertalen zijn, zoals de naam al aangeeft, in wezen talen op zich. Omdat GPT-modellen de Engelse taal kunnen interpreteren en erop kunnen reageren, kunnen ze vergelijkbare functies uitvoeren in programmeertalen.
Er zijn verschillende hoofdrolspelers op dit gebied die opmerkelijke vooruitgang hebben geboekt in het verbeteren van de interface tussen programmeurs en computers. Deze omvatten, maar zijn niet beperkt tot, GPT-4, GitHub Co-Pilot (Codex), AWS (Amazon Web Services) Code Whisperer, en een experimentele applicatie genaamd AutoGPT.
Elk van deze tools stelt ontwikkelaars in staat om hun programmeringssoftware uit te breiden. De vraag rijst echter hoe deze tools het programmeerproces specifiek verbeteren en wat de unieke mogelijkheden van elk tool zijn.
GPT-4
GPT-4 is het meest geavanceerde model voor natuurlijke taalverwerking (NLP) dat OpenAI tot nu toe heeft uitgebracht. Het bouwt voort op de successen van zijn voorganger, het ChatGPT-model, en markeert de volgende evolutie in de GPT-modellenlijn. GPT-4 valt op door zijn indrukwekkende vermogen om werkende code te genereren in verschillende talen, waaronder Python, Java, C++ en SQL. Het is de moeite waard om op te merken dat de ontwikkelaars erkennen dat het optimaal presteert bij het genereren van Python-code.
Dit geavanceerde model kan menselijke taalprompts effectief verwerken en overeenkomstige code produceren. GPT-4 kan codefragmenten vanaf nul maken, foutieve code corrigeren, bestaande code refactoren en debuggen. Ter illustratie het volgende voorbeeld van GPT-4 dat een AI (Artificial Intelligence) Cluster learning algoritme ontwikkelt.
Code genereren
In het volgende voorbeeld werd GPT-4 gevraagd om de code te genereren om een clustermodel te trainen op een dataset over irissen. GPT-4 moest 10 waarnemingen afsplitsen om het werkende clustermodel aan het eind te laten zien, terwijl de belangrijkste factor voor het clusteren van die waarneming met een cluster werd aangegeven. Toen de code werd uitgevoerd, was er een fout, die werd opgelost met GPT-4. De uiteindelijke output wordt weergegeven in een tabel.
Code debuggen:
GPT-4 kan ook laten zien hoe je fouten in code herstelt, of zelfs oplossingen geven. In dit voorbeeld werkte een clusteralgoritme gegenereerd door GPT-4 niet omdat er een pakket ontbrak in de omgeving. De foutmelding en -code werden dus aan GPT-4 doorgegeven zodat deze een oplossing kon voorstellen. Uiteindelijk werkte de oplossing prima en werkte de code zoals bedoeld.
Processen documenteren:
Na het genereren van code is het belangrijk voor een ontwikkelaar om het hele proces te documenteren, zodat elke regel verklaarbaar is en een doel heeft. GPT-4 kan deze taak ook uitvoeren. Als een deel van de code wordt doorgegeven aan GPT-4, kan GPT-4 belangrijke functies en acties in de code identificeren en markeren, waarbij bij elke stap beschrijvingen worden gegeven. Dit kan derden of collega’s helpen om te begrijpen wat er in de code gebeurt.
Wat zijn enkele van de beperkingen van deze technologie, ondanks de voordelen?
Op het eerste gezicht lijkt GPT-4 programmeurs of technologiespecialisten overbodig te maken. Er zijn echter een aantal overwegingen waar je rekening mee moet houden als je deze techniek gebruikt om software te ontwikkelen.
- Niet-menselijke aard: Als niet-menselijke entiteit kan de output van GPT-4 niet worden aangevochten zoals die van een menselijke programmeur. Hoewel het model kennis heeft van modeleertalen, “kent” het deze niet echt. Hierdoor kan functionele code worden gegenereerd die niet werkt zoals bedoeld.
- Beperkte trustworthiness: Gebruikers moeten een basiskennis van codering hebben om GPT-4 de juiste begeleiding te kunnen geven. Iemand zonder coderingskennis vragen om GPT-4 te gebruiken is hetzelfde als een loodgieter vragen om een automotor te repareren; de vaardigheden zijn niet één op één te vertalen.
- Impact van slechte prompts: In veel gevallen kan een slechte prompt leiden tot onjuiste antwoorden. Voor codering is dit een belangrijk punt van zorg, omdat het identificeren van problemen met code zonder een volledig begrip van de werking ervan kan leiden tot verborgen problemen.
- Beperkt contextvenster: Momenteel kan GPT-4 slechts 25.000 tokens tekst verwerken om antwoorden te genereren. Als gevolg hiervan kan GPT-4 voor complexe en uitgebreide codescripts niet altijd volledig nauwkeurige antwoorden geven. Over het algemeen geldt: hoe langer de gegenereerde code, hoe groter de kans op fouten.
Kan ChatGPT code genereren op hetzelfde niveau als GPT-4?
Het eenvoudige antwoord is dat dit niet kan, omdat deze twee modellen verschillende doelen dienen. ChatGPT is specifiek ontworpen als dialoog-engine, waarbij het onderliggende model is geoptimaliseerd om mensachtige reacties op prompts te genereren. Hoewel het in staat is om antwoorden te geven, is het niet bedoeld om uitgebreide en nauwkeurige output te produceren. Het GPT-4 model is daarentegen ontwikkeld om uitgebreidere, preciezere en ingewikkelder resultaten te genereren, waaronder coderingstaken.
Daarnaast is het verschil in capaciteit tussen de twee modellen duidelijk te zien in het aantal tokens dat ze aankunnen. GPT-4 (of GPT-4-32k) kan 8192-32768 (afhankelijk van de versie) tokens verwerken, terwijl ChatGPT beperkt is tot 4096 tokens.
Om het verschil in prestaties met betrekking tot programmeertaken te illustreren, publiceerde OpenAI voltooiingspercentages van GPT-4 en ChatGPT op een codeeruitdaging Website LeetCode (voor het volledige technische rapport klik hier, of navigeer naar het tabblad materialen). Leetcode is een van ‘s werelds bekendste websites voor codeeruitdagingen, waar ontwikkelaars naartoe gaan om hun vaardigheden bij te schaven en zich voor te bereiden op sollicitatiegesprekken. Toen OpenAI ChatGPT en GPT-4 testte, waren de resultaten heel anders
In de bovenstaande afbeelding staat GPT-4 in de eerste kolom, GPT-4 (geen zicht)* in de tweede en ChatGPT in de derde kolom. Zoals te zien is, presteert GPT-4 beter dan ChatGPT op alle moeilijkheidsniveaus in programmeeruitdagingen, waardoor beginnende programmeurs een belangrijke uitdager hebben.
Toch is het belangrijk op te merken dat deze vergelijking niet impliceert dat het ene model superieur is aan het andere. Zowel ChatGPT als GPT-4 zijn opmerkelijke AI-toepassingen, elk het meest geschikt voor specifieke situaties.
*GPT-4 (No Vision) is een versie van GPT-4 die geen visuele gegevens kan opnemen. Bij bepaalde taken kan een visuele optie helpen bij het interpreteren van grafen, visuals en video, maar voor codering zijn geen visuele gegevens nodig.
GitHub Co-Pilot en AWS CodeWhisperer
Deze twee toepassingen verschillen fundamenteel van GPT-4 omdat ze voornamelijk dienen als assistenten voor menselijke programmeurs, in plaats van software volledig te genereren. In plaats van complete codescripts te genereren, bieden deze toepassingen ondersteuning aan programmeurs tijdens hun codeontwikkelingsproces.
Hieronder zie je een korte showcase (2min) van AWS CodeWhisperer die helpt bij het maken van een functie.
In essentie fungeren deze toepassingen als een auto-complete functie binnen een geïntegreerde ontwikkelomgeving (IDE). CodeWhisperer kan bijvoorbeeld meerdere aanbevelingen doen aan programmeurs tijdens het coderingsproces, zoals wordt gedemonstreerd in een korte video over het maken van een functie om CSV te converteren naar JSON en vice versa met behulp van de PyCharm CE IDE. CodeWhisperer is zich bewust van bepaalde best practices, zoals het maken van een functie in één richting voordat je een andere functie maakt die de andere kant op gaat.
GitHub Co-pilot werkt op een vergelijkbare manier, met verschillen in hun bron van trainingsgegevens en toegankelijkheid. CodeWhisperer is momenteel gratis en open source, terwijl GitHub Co-pilot een betaald abonnement vereist.
Net als GPT-4 hebben deze toepassingen beperkingen die de betrokkenheid van menselijke experts nodig maken om resultaten te verifiëren en ervoor te zorgen dat het script werkt zoals bedoeld. Deze toepassingen bieden echter het extra voordeel dat ze dienen als copiloot, waarbij de programmeur een cruciale en actieve deelnemer blijft in het codeerproces. Het is vermeldenswaard dat uitgebreide programmeerkennis nodig is om effectief samen te werken met de AI tijdens het programmeertraject.
AutoGPT
AutoGPT is een baanbrekende, experimentele open-source Python-toepassing die wordt aangedreven door GPT-4. Binnen de AI-gemeenschap wordt AutoGPT beschouwd als een vroege glimp van Artificial General Intelligence.
Wat onderscheidt AutoGPT? In tegenstelling tot ChatGPT en GPT-4, waarvoor menselijke input nodig is om de AI tijdens het proces te begeleiden, is AutoGPT uitgerust met AI-agenten die zelfstandig beslissingen nemen en acties ondernemen om GPT-4 aan te zetten. Dit wordt bereikt door het implementeren van specifieke regels en richtlijnen die ervoor zorgen dat er geen buitensporige autonomie wordt verleend. Als gevolg hiervan kan AutoGPT, wanneer hij een initiële taak krijgt, alle noodzakelijke stappen bepalen om deze taak te voltooien en deze uitvoeren zonder menselijke tussenkomst. Hier zijn enkele voorbeelden van de mogelijkheden:
- Afspraken voor u inplannen
- Namens jou e-mails versturen
- Apps downloaden die essentieel zijn voor het voltooien van taken
- In realtime informatie zoeken op internet
- Namens u aankopen doen, als u toegang heeft tot een geldbron
Gelukkig wordt de mate van autonomie beperkt door de permissies die een ontwikkelaar aan de applicatie toekent. AutoGPT kan geen API-beperkingen opheffen of acties ondernemen zonder voorafgaande goedkeuring. De doeltreffendheid van de toepassing hangt dus af van de toelagen van de ontwikkelaars. Desondanks is het vermogen om taken uit te voeren niets minder dan revolutionair.
Hieronder staan twee voorbeelden van AutoGPT in actie. In het ene voorbeeld tonen de ontwikkelaars de mogelijkheden en in het andere deelt een gebruiker zijn ervaring.
In dit voorbeeld hebben de ontwikkelaars van AutoGPT de toepassingen, het ontwikkelen, debuggen en verbeteren van code, terwijl ze een tekst-naar-spraak AI gebruiken om het volgende uit te leggen hardop wat er gebeurt aan de gebruiker.
Massive Update for Auto-GPT: Code Execution! 🤖💻
Auto-GPT is now able to write it's own code using #gpt4 and execute python scripts!
This allows it to recursively debug, develop and self-improve… 🤯 👇 pic.twitter.com/GEkMb1LyxV
— Toran (@SigGravitas) April 1, 2023
In dit voorbeeld vroeg een gebruiker AutoGPT om een taak te voltooien, maar AutoGPT ontdekte dat er een applicatie ontbrak op de computer, dus ging hij online en vond een stackoverflow-link en downloadde de benodigde apps om de taak te voltooien.
autogpt was trying to create an app for me, recognized I don't have Node, googled how to install Node, found a stackoverflow article with link, downloaded it, extracted it, and then spawned the server for me.
My contribution? I watched. pic.twitter.com/2QthbTzTGP
— Varun Mayya (@waitin4agi_) April 6, 2023
Belangrijkste leerpunten:
- GPT-modellen werken niet alleen met menselijke taal, maar ook met
Programmeertalen
. - GPT-4 is de toonaangevende tool voor het genereren van code en kan ook codescripts debuggen en documenteren.
- GitHub Co-Pilot en AWS CodeWhisperer zijn handige hulpmiddelen om programmeurs te helpen tijdens het coderingsproces.
- AutoGPT is een experimentele toepassing die toekomstige ontwikkelingen van deze toepassingen laat zien.
- AutoGPT is een van de meest autonome GPT-toepassingen tot nu toe, met een toenemend vermogen om taken alleen op te lossen.
- Voor de meeste AI-ondersteunde programmeertaken,
is nog steeds een menselijke expert nodig.
Aan de slag (optioneel)
Nu je een basiskennis hebt van de beschikbare tools, kun je het zelf uitproberen! Hieronder vind je de links naar de genoemde tools, en als je technisch aangelegd bent, kun je zelf gratis aan de slag met AWS Code Whisperer!
De stappen om zelf toegang te krijgen zijn goed gedocumenteerd op Amazons website hier. Voor algemene stappen die je moet nemen om te beginnen:
- Kies een geïntegreerde ontwikkelomgeving (PyCharm, Visual Studio, AWS Cloud9 en AWS Lambda)
- De AWS-toolkit downloaden en installeren
- Selecteer in de toolkit CodeWhisperer als gratis plugin
- Authenticeer uw gebruik met een AWS-account of IAM-referenties
- Begin met programmeren!
Als je al toegang hebt tot OpenAI Plus kun je proberen daar code te genereren om zelf beperkingen te testen. Kies op de ChatGPT-interface onder “Model” het GPT-4-model. Om gegenereerde code uit te voeren, moet je al een Geïntegreerde Ontwikkelingsomgeving geïnstalleerd hebben.
GPT-4:
Om het GPT-4-model te gebruiken, moet je je op dit moment abonneren op OpenAI met een Plus-account, wat kosten met zich meebrengt. Na inschrijving zijn gebruikers verantwoordelijk voor het opzetten van hun eigen ontwikkelomgeving om code uit te voeren.
Voor meer informatie
GitHub Co-Pilot:
Deze service werkt volgens een betaald abonnementsmodel, met prijzen gebaseerd op gebruik. Er is echter een gratis proefversie beschikbaar voor personen die het platform willen evalueren voordat ze een abonnement nemen.
Voor meer informatie
CodeWhisperer:
Op dit moment is AWS CodeWhisperer de enige volledig gratis co-pilot-oplossing voor codering. Het kan worden verkregen via het AWS-platform of als een plugin-extensie binnen je Integrated Development Environment (IDE).
Voor meer informatie
AutoGPT:
AutoGPT bevindt zich momenteel nog in een experimentele fase, dus om deze applicatie te kunnen gebruiken en ervaren is een volledige lokale installatie nodig, evenals API-sleutels voor Open API, Pincone API en Python 3.8 of hoger. Verder zal deze applicatie credits gebruiken van Open API en pinecone, dus dit valt momenteel onder persoonlijke kosten voor gebruik.
Voor meer informatie
Toevoegingen:
- GPT-4 technical report