Connect with us

Verkenning van OpenAI’s ChatGPT Code Interpreter: Een diepe duik in zijn mogelijkheden

Prompt engineering

Verkenning van OpenAI’s ChatGPT Code Interpreter: Een diepe duik in zijn mogelijkheden

mm

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-assistent GitHub Copilot en de Bing-zoekmachine. Deze modellen hebben, dankzij hun unieke vermogen om informatie te onthouden en te combineren, ongekende benchmarks gesteld 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 groot aantal programmeertalen. Deze functie transformeert 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.

Training GPT voor coding: De Codex-aanpak

Beide GitHub Copilot en ChatGPT’s Code Interpreter maken gebruik van de Codex-model dat is ontwikkeld door OpenAI.

Codex, een gespecialiseerd GPT-taalmodel, is ontworpen om een hoge mate van Python-code-schrijfvaardigheid te hebben. 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 maximaal 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 evalueren, 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 gemeten met behulp van eenheidstests. In een dataset van 164 oorspronkelijke programmeerproblemen, die taalbegrip, algoritmen en basiswiskundetests omvatten, loste Codex met 12B parameters 28,8% van de problemen op in één poging.

Trainingsgegevens voor Codex-model - chatgpt code interpreter

Trainingsgegevens voor Codex-model: https://arxiv.org/abs/2107.03374

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 in 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.

Chatgpt gefine-tune architectuur

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 gelijkmakingsmaatstaf zoals de BLEU-score gebruiken. Echter, deze match-gebaseerde metrics falen vaak om de nuances van coding te vatten.

In plaats van alleen te vertrouwen op matching, is een meer relevante maatstaf voorgesteld: functionele correctheid. Dit betekent dat de door het model gegenereerde code een gegeven set eenheidstests moet doorstaan. Het idee is in overeenstemming met standaard coderingspraktijken, aangezien ontwikkelaars vaak eenheidstests gebruiken om de effectiviteit en nauwkeurigheid van hun code te meten.

Deze maatstaf evalueert 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 eenheidstests doorstaat, het probleem als opgelost wordt beschouwd. Echter, in plaats van deze maatstaf alleen in zijn directe vorm 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 eenheidstests.

Chatgpt open ai trainingsdataset voorbeeld

https://github.com/openai/code-align-evals-data/blob/main/human_eval

Vanwege de risico’s die verbonden zijn 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 zelfs als het model kwaadwillige code produceert, deze beperkt en kan het geen schade toebrengen aan het host-systeem of het netwerk.

Gebruik van ChatGPT Code Interpreter

OpenAI’s ChatGPT heeft verschillende evoluties ondergaan, waarbij de Code Interpreter opvalt als een revolutionaire functie in het GPT-4-model. In tegenstelling tot traditionele chat-interfaces, laat de Code Interpreter gebruikers toe om dieper in te gaan op computationele taken, waardoor de grenzen tussen menselijke AI-conversaties en computationele processen soepel worden gemengd.

In zijn kern is de Code Interpreter vergelijkbaar met een computer die in de chatbot is ingebed. Deze dynamische functie biedt gebruikers tijdelijke schijfruimte om een groot aantal bestandsformaten te uploaden, variërend van algemene typen zoals TXT, PDF en JPEG tot meer gespecialiseerde typen zoals CPP, PY en SQLite. Deze breedte van ondersteuning verhoogt de veelzijdigheid over verschillende taken, of het nu gaat om documentverwerking of beeldmanipulatie.

Door te opereren binnen een robuust en beveiligd kader, is de Code Interpreter uitgerust met meer dan 300 vooraf geïnstalleerde bibliotheken. Deze sandbox-omgeving waarborgt beveiliging en biedt tegelijkertijd aanzienlijke computationele kracht. Interessant is dat wanneer het wordt gevraagd, het een Python-script in real-time creëert om het verzoek van de gebruiker uit te voeren. Neem bijvoorbeeld het omzetten van een op afbeeldingen gebaseerde PDF naar een doorzoekbaar formaat met OCR; alles wat de gebruiker hoeft te doen is het document uploaden, en ChatGPT zal de rest afhandelen.

Een punt van intrige is de bestandsgroottebeperking voor uploads. Hoewel definitieve specificaties nog niet zijn aangekondigd, suggereren gebruikersexperimenten dat het systeem effectief bestanden kan verwerken die aanzienlijk groter zijn dan 100MB. Ongeacht de grootte, is het cruciaal om op te merken dat deze bestanden tijdelijk zijn en worden verwijderd na afloop van de chatsessie.

Het geniale van de Code Interpreter ligt niet alleen in zijn technische kundigheid, maar ook in zijn toegankelijkheid. OpenAI biedt deze functie aan aan abonnees van ChatGPT Plus, die toegang geeft tot het GPT-4-model. Zo wordt dit transformatieve instrument niet alleen voorbehouden aan de tech-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 het laatste code uit, waardoor directe resultaten worden aangeboden. Dit maakt het niet alleen een waardevol actief voor tech-professionals, maar ook een instrument dat mensen zonder programmeerkennis in staat stelt om complexe computationele taken uit te voeren.

De mogelijkheden van de ChatGPT Code Interpreter kunnen verschillende aspecten van software-ontwikkeling 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 software-codebases. Bovendien kunnen dergelijke tools in het domein van datawetenschap instrumenteel zijn bij het controleren en valideren van data-verwerking en transformatie-scripts, 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 basistatistische tests, waardoor de data-analyse-workflow wordt vergemakkelijkt.

Als u geïnteresseerd bent in meer informatie over de nuances van ChatGPT en prompt-engineering, biedt Unite.AI een uitgebreide analyse in ‘ChatGPT: Advanced Prompt Engineering‘.

Instellen van ChatGPT Code Interpreter

De integratie van de Code Interpreter 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 doorzoeken en de Code Interpreter activeren.

Wat het onderscheidt, is zijn transparante mechanisme. Terwijl gebruikers een taak aanvragen, onthult het platform elk 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 de traditionele grafieken, waarbij zowel conventionele als innovatieve grafische voorstellingen worden aangeboden. Dit zorgt ervoor dat gebruikers hun gegevens kunnen bekijken in formaten die de meest betekenisvolle inzichten bieden.

Hoewel het niet alleen gaat om het visualiseren van ruwe gegevens, is het ChatGPT-model ook bedreven in het verwerken en raffineren van gegevens. Hoewel krachtig, moeten gebruikers voorzichtig zijn.

Financiële analisten zullen de mogelijkheid van de Code Interpreter om aandelenkoersen te analyseren en visualiseren, bijzonder nuttig vinden. Door middel van naadloze integratie kunnen gebruikers gegevenssets uploaden en visualiseren in verschillende formaten. De significantie 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.

Belangrijkste punten:

  • Tesla’s aandelen hebben te maken gehad met volatiliteit, maar hebben ook weerstand getoond met perioden van groei.
  • Hoge handelsvolumes op specifieke dagen geven aan dat er significante marktinterest of reacties op belangrijke gebeurtenissen zijn.
  • 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.

De onderstaande afbeelding toont het gebruik van de klassieke Haar Cascade classifier.

Het proces van tekst extraheren uit afbeeldingen, bekend als optische tekenherkenning (OCR), werd naadloos bereikt met behulp van 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 certificaatafbeelding extrahiert.

De Code Interpreter excelleert 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 uw bestand, voer uw gewenste wijzigingen 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 data-visualisatie met Seaborn tot geavanceerd machine learning via Torch. Maar het is meer dan een statisch gereedschapskist.

Geïnspireerd door deze Chatgpt-pagina van Korakot Chaovavanich.

Beginnend met de laatste nltk-release, uploaden we een .whl-bestand naar de Interpreter. Vervolgens instrueerden we ChatGPT om de geschikte site-packages-directory te lokaliseren door de locatie van een bestaand pakket te analyseren. De volgende stap omvatte 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 vast.

Op zoek naar een omweg, 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 in staat was om modules te identificeren en op te halen 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 mengeling van vernuft en aanpasbaarheid. De ChatGPT Code Interpreter, ondanks de initiële uitdagingen, manifesteerde zijn veelzijdigheid en toewijding om aan de behoeften van programmeurs te voldoen, waardoor zowel beginners als veteranen een verfijnde programmeerervaring kunnen genieten.

installeren van aangepaste bibliotheken in chatgpt code interpreter

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 te genereren over Parijse arrondissementen, en het model leverde een 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. De 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 – is een getuigenis van het onbeperkte potentieel van AI in het verbeteren van onze digitale ervaringen. Hier is een gecondenseerde essentie van onze diepe duik:

Ken uw instrument: Net zoals u een collega zou leren kennen, maak kennis met de Code Interpreter. Het is ontworpen op basis van Codex, dat is gefine-tuned van GPT-4. De vaardigheid ervan omvat meerdere programmeertalen, waardoor het een ideale metgezel is 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 bug-identificatie, codegeneratie en zelfs code-reviews worden versneld.

Verder dan alleen code: De inbreng van de Interpreter is niet beperkt tot tekst of code. De mogelijkheid om met meerdere bestandsformaten om te gaan, van eenvoudige TXT-bestanden tot complexe PY-scripts, onderstreept de bruikbaarheid over verschillende domeinen.

Stop nooit met experimenteren: Onze verkenning met de installatie van de NLTK-bibliotheek reflecteert het belang van volharding en aanpasbaarheid, waarden die de Code Interpreter belichaamt. Als er een hindernis is, is er vaak een manier om eromheen te komen.

Sluit u aan bij het AI-gesprek: Real-world toepassingen, zoals getoond door de Parijse arrondissementenquiz, onderstrepen de immense real-world bruikbaarheid van het instrument. Omarm het, verken 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 instrument; het verandert de manier waarop we met technologie omgaan. Voor zowel innovators als enthousiastelingen belooft het een wereld vol programmeermogelijkheden.

Ik heb de afgelopen vijf jaar mezelf ondergedompeld in de fascinerende wereld van Machine Learning en Deep Learning. Mijn passie en expertise hebben me geleid om bij te dragen aan meer dan 50 uiteenlopende software-engineeringprojecten, met een bijzondere focus op AI/ML. Mijn voortdurende nieuwsgierigheid heeft me ook aangetrokken tot Natural Language Processing, een vakgebied dat ik graag verder wil verkennen.