De nieuwe beta-feature “code interpreter” van ChatGPT wordt op social media geprezen als baanbrekend. De mogelijkheid om Python te runnen binnen de ChatGPT applicatie zou van ChatGPT eindelijk een wiskundewonder maken en van iedereen een data scientist [1, 2, 3, 4, 5]. Zo simpel is het niet. In deze blog lees je wat een code interpreter is en hoe je deze verantwoord gebruikt.
Python
Python is een programmeertaal en een stukje Nederlandse trots [6]. De taal werd rond 1990 ontwikkeld door de Nederlander Guido van Rossum. Nu wordt Python wereldwijd veel gebruikt in de academische wereld en door data scientists.
In Python kan je relatief snel een programma schrijven en het is daarom bij veel mensen geliefd, en zo ook bij mij. Daarbij zijn er veel libraries die je in Python kan gebruiken die helpen bij data-analyse, data-visualisatie, wiskunde, etc. Deze maken het nog makkelijker om snel een handig programma te schrijven. Om een Python programma te draaien heb je een (Python) code interpreter nodig.
Code interpreter
Een code interpreter vertaalt een voor mensen begrijpelijke programmeertaal, zoals Python, in machinetaal [7] die de processor begrijpt. Hierdoor hoeven programmeurs zich geen zorgen te maken over de specifieke instructieset van een processor en de 1’en en 0’en waar de computer mee werkt.
OpenAI is zeker niet de eerste die een code interpreter online heeft (zie bijvoorbeeld [8] of [9]) en een code interpreter voor Python is makkelijk zelf te installeren (bijvoorbeeld d.m.v. Anaconda [10] of via Python [11]). Als je echt met Python aan de slag wil is aan te raden om het te installeren op je computer, zodat je makkelijk en veiliger met jouw bestanden en grotere programma’s kan werken.
Het effect van de code interpreter op taalmodel ChatGPT
Het zal sommige mensen verbazen, maar de code interpreter verandert niks aan het taalmodel van ChatGPT. Het taalmodel voorspelt nog steeds een volgend woord op basis van de eerdere reeks woorden. Hoe ChatGPT werkt en waarom je de output niet kan vertrouwen beschreef ik eerder in een blog (Nederlands / Engels). De interne werking van het taalmodel is met de code interpreter niet veranderd!
Het is ook niet nieuw dat de output van ChatGPT een programmeertaal kan bevatten. Naast Python kan je ChatGPT ook prompten om te schrijven in andere programmeertalen zoals C++ [VB1], Java [VB2] of Haskell [VB3]. Het kan zelfs een deel van een programma omzetten naar een andere programmeertaal [VB4]. Er zijn ook taalmodellen, zoals Copilot [12], die specifiek getraind zijn op programmeertalen. Handig als je snel een suggestie wil voor een programmeerprobleem of wil prototypen.
Dit betekent niet dat programmeurs nu zonder baan zitten. Ook deze output van ChatGPT heeft de gebruikelijke beperking dat de output fouten en non-informatie (`hallucinaties’ [13]) kan bevatten. Daarnaast zijn taalmodellen beperkt in hoeveel informatie ze mee kunnen nemen. Een applicatie heeft al snel meer regels code dan ChatGPT aankan. Een programmeur blijft dus nodig om de applicatie (technisch) te ontwerpen en de output van ChatGPT te controleren.
Wat is dan wel nieuw?
Als je de code interpreter aanzet, kan ChatGPT gegenereerde Python code gelijk uitvoeren. Zo is het nu mogelijk voor ChatGPT om een som zoals 5+5 echt uit te rekenen [VB5]. Zonder het uitvoeren van Python berekent ChatGPT niet het antwoord, maar voorspelt het dat meestal het getal “10” volgt op 5+5 [14]. En dat is een groot verschil!
Pas wel op: ChatGPT gebruikt Python niet altijd automatisch [VB6] en zelfs bij gebruik van Python kan ChatGPT de output verkeerd interpreteren [VB6] en/of fouten maken in de Python code [VB7]! We moeten dus nog steeds de output van ChatGPT controleren, maar we kunnen er nu voor kiezen om de Python code te controleren in plaats van het eindresultaat. Dat is bij veel wiskundige toepassingen makkelijker [VB8].
Hoe gebruik je de code interpreter verantwoord?
Zoals bij elk gebruik van ChatGPT is het belangrijk dat je de output controleert. Dit kan door de output van de Python code te controleren, zoals bijvoorbeeld bij datavisualisatie. Doe dit nauwkeurig en bij elke output. Je kan er niet vanuit gaan dat als ChatGPT het een keer goed doet, het de volgende keer geen fouten maakt. De fouten zitten vaak in de details.
Bij zaken waarbij de output niet makkelijk direct te controleren is, zoals bij data-analyse, kan je er niet omheen om de code te controleren. Dit vraagt wel kennis van Python en de vele libraries, maar gelukkig is Python een leuke en relatief makkelijke taal om te leren. Gebruik ChatGPT niet om de output van ChatGPT of Python te controleren of te duiden. ChatGPT kan ook hierin fouten maken [VB6].
Verder is het af te raden om je eigen data mee te geven aan de prompts. Je deelt dan je data met OpenAI en je bent dan alle rechten kwijt. Zeker met privacy gevoelige data moet je dit niet doen. De code interpreter is prima om te gebruiken om een data-analyse programma te prototypen met fictieve testdata. Draai de analyse met de echte data altijd op je eigen computer! Fictieve testdata voor je prototype kan je wel door ChatGPT laten genereren.
Samenvattend
De toevoeging van de code interpreter verandert niets aan het basistaalmodel van ChatGPT, maar stelt het in staat om direct Python-code uit te voeren. ChatGPT behoudt de gebruikelijke beperking dat de output fouten en non-informatie kan bevatten. Deze fouten kunnen zitten in de genereerde Python-code en in de interpretatie van de output, waardoor het belangrijk blijft om de output en de code te controleren. De code interpreter is handig om snel prototypes te ontwikkelen, maar gebruik ervan vraagt nog wel kennis van Python. Tot slot, gebruik alleen fictieve data in ChatGPT en deel geen echte data met OpenAI vanwege privacy en (auteurs)rechten op je dataset.
Deze blog is oorspronkelijk gepost op: https://blog3.han.nl/hanicto/chatgpt-en-code-interpreter .
Bronnen:
[1] https://www.linkedin.com/posts/edwardniemeijer_nieuw-in-chatgpt-code-interpreter-simpel-activity-7084475249102053376-dQjh
[2] https://www.linkedin.com/posts/barendlast_chatgpt-codeinterpreter-ai-activity-7082971831061606400-Bj9W/
[3] https://www.linkedin.com/posts/sonjaloth_code-interpreter-comes-to-all-chatgpt-plus-activity-7083773754249506816-1EmC/
[4] https://www.linkedin.com/posts/olaf-lemmens_ai-chatgpt-codeinterpreter-activity-7060516037984673792-fKRS
[5] https://www.linkedin.com/posts/adityamalhotra6_business-ai-growth-activity-7084018083723378688-kW7o
[6] https://nl.wikipedia.org/wiki/Python_(programmeertaal)
[7] https://nl.wikipedia.org/wiki/Machinetaal
[8] https://www.online-python.com/
[9] https://www.programiz.com/python-programming/online-compiler/
[10] https://docs.anaconda.com/free/anaconda/install/windows/
[11] https://www.python.org/
[12] https://github.com/features/copilot
[13] https://arstechnica.com/information-technology/2023/04/why-ai-chatbots-are-the-ultimate-bs-machines-and-how-people-hope-to-fix-them/
[14] https://blog3.han.nl/hanicto/de-chatgpt-hype/
[VB1] https://chat.openai.com/share/09d860e0-ac83-4ae7-bf3b-0c597dcccd92
[VB2] https://chat.openai.com/share/bbbb0af4-ce90-4135-80b7-69426856bfc8
[VB3] https://chat.openai.com/share/bf2afb0a-42de-48c5-93e8-0dc647b080c1
[VB4] https://chat.openai.com/share/318664c3-33b3-4ca0-8495-b6a78b546c9a
[VB5] https://chat.openai.com/share/8d53b413-6f50-4901-b4a9-11a314030246
[VB6] https://chat.openai.com/share/cff8a883-dd1b-4c22-a5b1-d24d5eace337
[VB7] https://chat.openai.com/share/11d14302-cbcf-4048-9c54-2ba130b5472f
[VB8] https://chat.openai.com/share/78619eef-9589-443c-a8e2-099a5dfddf39
0 Praat mee