Prompt engineering
OpenAI’s ChatGPT Code Interpreter ontdekken: een diepe duik in zijn mogelijkheden

OpenAI’s vooruitgang in Natural Language Processing (NLP) wordt gemarkeerd door de opkomst van Large Language Models (LLM’s), die ten grondslag liggen aan producten die door miljoenen mensen worden gebruikt, waaronder de coding assistant GitHub Copilot en de zoekmachine Bing. Deze modellen hebben, dankzij hun unieke vermogen om informatie te memoriseren en te combineren, ongekende benchmarks gezet in taken zoals code- en tekstgeneratie.
ChatGPT’s Code Interpreter begrijpen
Om de betekenis van de ChatGPT Code Interpreter te begrijpen, is het essentieel om eerst te begrijpen wat het is en hoe het is gebouwd.
In wezen maakt de ChatGPT Code Interpreter gebruik van de mogelijkheden van ChatGPT, maar introduceert het een verbeterde vaardigheid in het begrijpen, interpreteren en zelfs genereren van code in een grote verscheidenheid aan programmeertalen. Deze functie verandert ChatGPT van een tekstgenerator in een onmisbaar hulpmiddel voor ontwikkelaars, waardoor het gemakkelijker wordt om code te begrijpen, fouten op te sporen en zelfs code te genereren.
GPT trainen voor coding: de Codex-aanpak
Zowel GitHub Copilot als ChatGPT’s Code Interpreter maken gebruik van de Codex-model dat is ontwikkeld door OpenAI.
Codex, een gespecialiseerd GPT-taalmodel, is ontworpen om over uitstekende Python-code-schrijfmogelijkheden te beschikken. Getraind op openbaar beschikbare code van GitHub, toont Codex zijn potentieel door functies in GitHub Copilot te ondersteunen. Wanneer het wordt beoordeeld op zijn vermogen om programma’s te synthetiseren uit docstrings, een maatstaf voor functionele correctheid, overtreft Codex zowel GPT-3 als GPT-J.
Een opvallende observatie is dat herhaalde sampling de vaardigheid van Codex verhoogt. Wanneer tot 100 samples per probleem worden gebruikt, neemt het succespercentage van het model toe tot 70,2%. Een dergelijke efficiëntie suggereert de mogelijkheid om heuristische ranking te gebruiken om accurate code-samples te selecteren, zonder dat een volledige evaluatie voor elk nodig is.
Om zijn mogelijkheden te beoordelen, kreeg het model de taak om zelfstandige Python-functies te creëren op basis van alleen docstrings. De nauwkeurigheid van de gegenereerde code werd vervolgens beoordeeld met behulp van unit tests. In een dataset van 164 oorspronkelijke programmeerproblemen, die taalbegrip, algoritmen en basiswiskundige tests omvat, loste Codex met 12B parameters 28,8% van de problemen op in één poging.
Door het model verder te verfijnen door middel van fine-tuning van correct geïmplementeerde zelfstandige functies, werd de efficiëntie verhoogd, waardoor Codex-S 37,7% van de uitdagingen op de eerste poging oploste. Echter, in de praktische wereld van programmeren is een trial-and-error-aanpak gebruikelijk. Door deze real-world scenario na te bootsen, loste het Codex-S-model, toen het 100 kansen kreeg, 77,5% van de uitdagingen succesvol op.
Generatieve modellen zoals ChatGPT die code produceren, worden meestal beoordeeld door gegenereerde samples te vergelijken met een referentieoplossing. Deze vergelijking kan exact zijn of een gelijkheidsmaatstaf zoals de BLEU-score gebruiken. Echter, deze match-gebaseerde metrics missen vaak de nuances van codering. Een belangrijke kritiek op BLEU is zijn ondoeltreffendheid in het vastleggen van de semantische kenmerken van code.
In plaats van alleen te vertrouwen op matching, is een meer relevante maatstaf voorgesteld: functionele correctheid. Dit betekent dat de code die door het model wordt gegenereerd, een gegeven set unit tests moet doorstaan. Het idee is in overeenstemming met standaard coderingspraktijken, aangezien ontwikkelaars vaak unit tests gebruiken om de effectiviteit en nauwkeurigheid van hun code te beoordelen.
Deze maatstaf beoordeelt niet alleen de nauwkeurigheid, maar ook de functionele bruikbaarheid van de gegenereerde code.
De pass@k-maatstaf wordt geïntroduceerd als een maatstaf voor functionele correctheid. Het houdt in dat als een van de “k” gegenereerde code-samples de unit tests doorstaat, het probleem als opgelost wordt beschouwd. Echter, in plaats van deze maatstaf rechtstreeks te gebruiken, wordt een onbevooroordeelde schatter gebruikt om pass@k te berekenen om hoge variantie te vermijden.
Om de code-mogelijkheden van ChatGPT te beoordelen, werd het onderzoek uitgevoerd met de HumanEval-dataset. Deze dataset bestaat uit handgeschreven Python-problemen, elk vergezeld van unit tests.
Gezien de risico’s die zijn verbonden aan het uitvoeren van onbekende of onbetrouwbare code, werd een sandbox-omgeving ontworpen om de gegenereerde code veilig te testen. Deze omgeving maakte gebruik van gVisor om resources te emuleren en een barrière te creëren tussen het host-systeem en de uitgevoerde code. Zo blijft de code, zelfs als het model kwaadwillige code produceert, beperkt en kan het het host-systeem of netwerk niet schaden.
ChatGPT Code Interpreter gebruiken
OpenAI’s ChatGPT heeft talloze evoluties ondergaan, met de Code Interpreter als een revolutionaire functie in het GPT-4-model. In tegenstelling tot traditionele chat-interfaces, biedt de Code Interpreter gebruikers de mogelijkheid om dieper in te gaan op computationele taken, waardoor de grenzen tussen menselijke conversaties en computationele processen vervaagd worden.
De Code Interpreter is in wezen een computer die in de chatbot is ingebed. Deze dynamische functie biedt gebruikers tijdelijke schijfruimte om een grote verscheidenheid aan bestandsformaten te uploaden, van algemene typen zoals TXT, PDF en JPEG tot meer gespecialiseerde typen zoals CPP, PY en SQLite. Deze breedte van ondersteuning verhoogt de veelzijdigheid ervan voor verschillende taken, of het nu gaat om documentverwerking of beeldmanipulatie.
De Code Interpreter werkt binnen een robuust en beveiligd kader en is uitgerust met meer dan 300 vooraf geïnstalleerde bibliotheken. Deze sandbox-omgeving zorgt voor beveiliging en biedt tegelijkertijd aanzienlijke computationele kracht. Wanneer het wordt gevraagd, creëert het een Python-script in real-time om de aanvraag van de gebruiker uit te voeren. Neem bijvoorbeeld het omzetten van een beeld-gebaseerde PDF naar een doorzoekbaar formaat met OCR; de gebruiker hoeft alleen het document te uploaden en ChatGPT doet de rest.
Een punt van intrige is de bestandsgrootte-limiet voor uploads. Hoewel definitieve specificaties nog niet zijn aangekondigd, suggereren gebruikersexperimenten dat het systeem effectief bestanden kan verwerken die aanzienlijk groter zijn dan 100 MB. Ongeacht de grootte is het cruciaal om op te merken dat deze bestanden tijdelijk zijn en worden verwijderd na afloop van de chat-sessie.
De genialiteit van de Code Interpreter ligt niet alleen in zijn technische vaardigheid, maar ook in zijn toegankelijkheid. OpenAI biedt deze functie aan aan abonnees van ChatGPT Plus, die het GPT-4-model omvat. Zo wordt dit transformatieve hulpmiddel niet alleen beschikbaar gesteld voor de technische elite, maar wordt het langzaam toegankelijker voor een breder publiek.
Het onderscheid tussen het standaard ChatGPT-model en de Code Interpreter ligt in hun interactieparadigma’s. Terwijl het eerste primair tekstuele antwoorden genereert, begrijpt en voert de laatste code uit, waardoor directe resultaten worden geboden. Dit maakt het niet alleen een waardevol actief voor technische professionals, maar ook een krachtig hulpmiddel voor mensen zonder programmeerkennis om complexe computationele taken uit te voeren.
De mogelijkheden van de ChatGPT Code Interpreter kunnen verschillende aspecten van softwareontwikkeling en datawetenschap revolutioneren:
- Automatische codegeneratie: Voor zowel softwaretoepassingen als data-analyse-scripts kan het systeem, gegeven een hoogwaardige beschrijving, boilerplate-structuren of ingewikkelde code-snippets produceren, waardoor de ontwikkelings- en data-analyseprocessen worden versneld.
- Code-reviews en data-validatie: AI-gestuurde tools zoals ChatGPT kunnen helpen bij het verbeteren van de kwaliteit en beveiliging van softwarecodebases. Bovendien kunnen dergelijke tools in de domein van datawetenschap instrumenteel zijn bij het controleren en valideren van data-verwerking- en transformatiescripts, waardoor nauwkeurigheid en efficiëntie worden gewaarborgd.
- Data-analyseondersteuning: Voor datawetenschappers kan de ChatGPT Code Interpreter helpen bij het genereren van code voor voorlopige data-exploratie, visualisatie en zelfs basisstatistische tests, waardoor de data-analyseworkflow wordt vereenvoudigd.
Als u geïnteresseerd bent in het ontdekken van de nuances van ChatGPT en prompt-engineering, biedt Unite AI een uitgebreide analyse in ‘ChatGPT: Advanced Prompt Engineering‘.
Instellen van ChatGPT Code Interpreter
Code Interpreter-integratie stelt het platform in staat om gebruikersaanvragen te interpreteren, deze uit te voeren als Python-code en de resultaten weer te geven in een interactieve chat-formaat. Om toegang te krijgen tot deze functie, kunnen gebruikers navigeren naar de ChatGPT-instellingen, het gedeelte Beta-functies verkennen en de Code Interpreter activeren.
Wat het onderscheidt, is zijn transparante mechanisme. Terwijl gebruikers een taak aangeven, onthult het platform elke stap van het verwerkingsproces, waardoor duidelijkheid wordt geboden over hoe opdrachten worden geïnterpreteerd en uitgevoerd. Belangrijk is dat, omwille van privacy- en beveiligingsredenen, de Code Interpreter werkt zonder enige internetverbinding.
De voordelen van de ChatGPT Code Interpreter verkennen
Data Visualisatie & Analyse
ChatGPT gaat verder dan traditionele grafieken, door zowel conventionele als innovatieve grafische voorstellingen te bieden. Dit zorgt ervoor dat gebruikers hun data kunnen bekijken in formaten die de meest betekenisvolle inzichten bieden.
Maar het gaat niet alleen om het visualiseren van ruwe data. Het ChatGPT-model is ook in staat om data te verwerken en te verfijnen. Hoewel krachtig, moeten gebruikers voorzichtig zijn.
Financiële analisten zullen de mogelijkheid van de Code Interpreter om aandelenkoersen te analyseren en te visualiseren, bijzonder nuttig vinden. Door middel van naadloze integratie kunnen gebruikers gegevenssets uploaden en visualiseren in verschillende formaten. De betekenis van deze functie is duidelijk wanneer individuen complexe data-analyses kunnen uitvoeren.
De onderstaande video toont hoe ChatGPT’s code interpreter een uitgebreide TSLA-aandelenanalyse heeft gemaakt.
Belangrijke punten:
- Tesla’s aandelen hebben te maken gehad met volatiliteit, maar hebben ook een groeiperiode doorgemaakt.
- Hoge handelsvolumes op specifieke dagen geven aan dat er een significante marktinterest of reactie op belangrijke gebeurtenissen is.
- De neerwaartse Year-to-Date (YTD)-rendement suggereert dat beleggers zowel interne bedrijfsfactoren als externe marktomstandigheden moeten analyseren bij het overwegen van toekomstige investeringen.
Implementatie van Computer Vision en OCR
Gezichtsdetectie, een essentiële functie in computer vision, werd benaderd met een klassieke techniek: de Haar Cascade classifier van OpenCV.
Het onderstaande beeld toont het gebruik van de klassieke Haar Cascade classifier.
Het proces van tekstextractie uit beelden, bekend als optische tekenherkenning (OCR), werd naadloos bereikt met Tesseract, waarbij de tekst vervolgens werd gestructureerd door GPT-4, waardoor de leesbaarheid werd verbeterd.
In de onderstaande video ziet u hoe Tesseract (OCR) tekst uit een certificaatbeeld extracteert.
De Code Interpreter blinkt uit in het domein van video-, audio- en beeldmanipulatie. Met eenvoudige opdrachten kunnen gebruikers gedetailleerde bewerkingen uitvoeren, zoals het omzetten van GIF’s naar MP4’s met specifieke verbeteringen. Upload gewoon uw bestand, voer uw gewenste aanpassingen in en zie de magie gebeuren.
Python-externe bibliotheek in uw ChatGPT Code Interpreter
De ChatGPT Code Interpreter is een dynamisch programmeerplatform dat is uitgerust met een uitgebreide set Python-bibliotheken. Deze omvatten alles, van datavisualisatie met Seaborn tot geavanceerd machine learning via Torch. Maar het is meer dan een statisch gereedschap.
Geïnspireerd door deze Chatgpt-pagina van Korakot Chaovavanich.
Beginnend met de laatste nltk-release, uploaden we een .whl-bestand naar de Interpreter. We instrueren vervolgens ChatGPT om de geschikte site-packages-directory te vinden door de locatie van een bestaand pakket te analyseren. De volgende stap omvat het uitpakken van het wheel-bestand naar een tijdelijke locatie en het verplaatsen van de bestanden naar de geïdentificeerde site-packages-directory. Echter, dit liep tegen een probleem aan.
Op zoek naar een oplossing, vroegen we: “Zorg ervoor dat NLTK wordt geïnstalleerd in de Python-omgeving en toegankelijk is na installatie.”
ChatGPT reageerde met een oplossing. Het stelde voor om de tijdelijke directory toe te voegen aan sys.path, waardoor Python de modules kan identificeren en ophalen uit het uitgepakte nltk-pakket op die locatie. Deze tactiek werkte wonders, leidend tot de succesvolle installatie van NLTK.
Door het gebruik van .whl-bestanden toonde de installatie een combinatie van vernuft en aanpasbaarheid. De ChatGPT Code Interpreter, ondanks de initiële uitdagingen, toonde zijn veelzijdigheid en zijn toewijding om aan de behoeften van programmeurs te voldoen, waardoor zowel beginners als ervaren programmeurs een verfijnde programmeerervaring krijgen.
In een fascinerende demonstratie van de mogelijkheden van de interpreter, benadrukte een recente tweet van @DominikPeters een unieke demonstratie. Peters vroeg GPT-4 om een quiz over Parijse arrondissementen te genereren, en het model leverde een goed functionerende website. De werkende quiz is beschikbaar voor een hands-on ervaring op dominik-peters.de/gpt-arrondissement-quiz/.
https://twitter.com/DominikPeters/status/1652630445639467008?s=20
Samenvatting
OpenAI’s doorbraak met de ChatGPT Code Interpreter is niets minder dan transformatief voor zowel programmeurs als niet-programmeurs. Zijn veelzijdigheid in het afhandelen van een breed scala aan taken – van het helpen van ontwikkelaars bij het opsporen van fouten tot het moeiteloos produceren van Parijse quizzes – getuigt van het onbeperkte potentieel van AI in het verbeteren van onze digitale ervaringen. Hieronder volgt een samenvatting van onze diepe duik:
Ken uw hulpmiddel: Net zoals u een collega zou leren kennen, maak kennis met de Code Interpreter. Het is ontworpen op basis van Codex, dat op zijn beurt is aangepast van GPT-4. Zijn vaardigheid omvat meerdere programmeertalen, waardoor het een ideale metgezel wordt voor al uw programmeeravonturen.
Omarm de AI-revolutie: Traditionele programmeerpraktijken staan op het punt om een seismische verschuiving te ondergaan. Met AI-gestuurde tools zoals de ChatGPT Code Interpreter kunnen taken zoals foutopsporing, codegeneratie en zelfs code-reviews worden versneld.
Verder dan alleen code: De inspanningen van de Interpreter zijn niet beperkt tot tekst of code. Zijn vermogen om met meerdere bestandsformaten om te gaan, van eenvoudige TXT-bestanden tot complexe PY-scripts, onderstreept zijn nut voor verschillende domeinen.
Stop nooit met experimenteren: Onze ervaring met de installatie van de NLTK-bibliotheek weerspiegelt de belangrijkheid van volharding en aanpasbaarheid, waarden die de Code Interpreter belichaamt. Als er een obstakel is, is er vaak een manier om het te overwinnen.
Sluit u aan bij het AI-gesprek: Real-world toepassingen, zoals getoond door de quiz over Parijse arrondissementen, onderstrepen de immense real-world bruikbaarheid van het hulpmiddel. Omarm het, verkennen het en laat het uw projecten versterken.
De bovenstaande video is gemaakt met Gen-2 en Midjourney.
Om samen te vatten, de ChatGPT Code Interpreter is meer dan alleen een hulpmiddel; het verandert de manier waarop we met technologie omgaan. Voor zowel innovators als enthousiastelingen belooft het een wereld vol met coderingsmogelijkheden.






















