Ga naar hoofdinhoud

Bard vs ChatGPT voor data science

Bard is de nieuwste AI voor tekstopwekking met LLM, gemaakt door Google. In dit artikel ontdek je hoe Bard zich verhoudt tot de huidige heersende oplossing voor data science: ChatGPT.
Richie Cotton
Richie Cotton

Maak je gratis account aan

Oefen en volg je voortgang.

Ga verder met GoogleDoor verder te gaan, accepteer je ons Gebruiksvoorwaarden, onze Privacybeleid en dat je gegevens in de VS worden opgeslagen.

Google's grote taalmodel Bard is sinds de lancering in 2023 verbeterd en heeft onlangs "real-time" reacties toegevoegd, vergelijkbaar met andere modellen. 

De huidige koploper op dit gebied is ChatGPT van OpenAI, en ik was benieuwd hoe Bard zich zou meten. Google heeft de transformer-modellen uitgevonden die deze generatieve AI's aandrijven en beschikt over enorme middelen om de koppositie terug te winnen. Aan de andere kant heeft OpenAI het voordeel van meerdere jaren aan gebruikersfeedback op de GPT-2-, GPT-3-, GPT-3.5- en GPT-4-modellen.

Onlangs bracht DataCamp een ChatGPT-cheatsheet voor data science uit met meer dan 60 voorbeelden van real-life toepassingen van ChatGPT voor data science. In de cheatsheet presteert ChatGPT goed op alle taken.

Hoewel Google expliciet vermeldt dat Bard nog niet is geoptimaliseerd voor codetaken, testen we in dit artikel een selectie data science-taken om te laten zien waar Bard goed presteert—en waar niet—om te zien of de kroon van eigenaar is gewisseld. Een algemenere vergelijking van ChatGPT vs Google Bard vind je in een apart artikel. 

Programmeerworkflows

Waar presteert Bard goed?

Codeoptimalisatie is een veelvoorkomende maar lastige taak. Er zijn vaak veel manieren om code efficiënter te maken of sneller te laten draaien, en er is zelden één juist antwoord. Een goed antwoord op een optimalisatieverzoek biedt meerdere oplossingen. De taak vraagt Bard om wat SQL-code te optimaliseren.

image19.jpg

Bard geeft hier 10 opties. Ze zijn allemaal logisch, al zijn sommige variaties op hetzelfde thema (vijf soorten indexen aanmaken), en ze zijn allemaal gericht op databasebeheer in plaats van het verbeteren van de querycode.

Unit-tests schrijven is een belangrijke taak waar weinig mensen plezier aan beleven, dus het is potentieel een zegen als AI dit voor je kan doen. Natuurlijk moeten het dan wel goede tests zijn! In dit voorbeeld wordt Bard gevraagd tests te schrijven voor een functie die faculteiten berekent.

image24.jpg

De code is goed gestructureerd en de meeste tests zijn logisch. Eén punt van zorg is dat de test voor string-inputs de functie vraagt numerieke waarden terug te geven. Een menselijke programmeur zou waarschijnlijk tests schrijven die een fout genereren wanneer een string wordt ingevoerd, omdat de faculteit van tekst zinloos is. De prompt specificeerde niet welk gedrag gewenst was bij string-input, dus dit probleem is waarschijnlijk te verhelpen met een meer gedetailleerde prompt. Ik zou dit antwoord echter als goed maar niet perfect bestempelen.

Waar presteert Bard slecht?

Misschien wel de meest gebruikte data science-toepassing voor ChatGPT is het uitleggen van fouten in code. Daarom verwachtte ik dat Bard zou uitblinken in een taak waarin het een eenvoudige syntaxfout in wat R-code moest uitleggen.

image15.jpg

Helaas weigerde Bard de vraag te beantwoorden (en gaf een vergelijkbaar antwoord bij het uitleggen van Python- en SQL-fouten). Dat is teleurstellend. De positieve kant is echter dat weigeren te antwoorden de best mogelijke manier van falen is. Een groot probleem met AI-modellen is wanneer ze zelfverzekerd foute antwoorden geven die je kunnen misleiden. Goed gedaan van Google om Bard voorzichtigheid mee te geven.

Bard gaf een soortgelijk antwoord toen werd gevraagd wat Python-code uit te leggen.

image21.jpg

Oordeel: ChatGPT wint

Hoewel sommige antwoorden van Bard op programmeervragen aardig waren, zijn er zeer duidelijke hiaten rond code- en foutuitleg, waardoor het ongeschikt is om je te helpen je code te begrijpen.

Data-analyseworkflows

Waar presteert Bard goed?

Natuurlijke taal (dus menselijke zinnen) gebruiken om SQL-queries te schrijven is een enorm belangrijke use case, omdat het minder technisch onderlegde zakelijke gebruikers toegang geeft tot data in databases. Hier wordt Bard gevraagd een eenvoudige query te schrijven die klantgegevens aggregeert.

image22.jpg

De code en uitleg zijn correct, en het gaat een stap verder door de rijen te sorteren van meest naar minst voorkomende e-mailtype, wat handig is voor degene die de resultaten bekijkt.

Common table expressions (CTE's) zijn in SQL het equivalent van variabelen in Python of R: ze laten je langere queries in stappen opbouwen. Complexe queries met geneste subqueries herschrijven is een handige truc om je code leesbaarder te maken. In het onderstaande voorbeeld wilde ik dat Bard de subquery (de binnenste code die begint met SELECT) naar een common table expression verplaatste.

image6.jpg

Hier begreep Bard het probleem volledig verkeerd en verplaatste alles naar een CTE. Maar Bard heeft een troef achter de hand. Elke keer dat je Bard om een antwoord vraagt, genereert het eigenlijk drie antwoorden en laat het je er één kiezen. Hier is het derde antwoord correct. 

image27.jpg

Een andere interessante use case voor data-analyse is het opschonen van data. Het is geen leuke taak voor mensen, dus het is handig als AI dit voor je kan doen. Er zijn echter vaak meerdere manieren om data op te schonen in plaats van één enkele oplossing. 

image17.jpg

In dit geval is de code correct, maar met twee opvallende eigenaardigheden. Ten eerste gaat het ervan uit dat customer_id in de DataFrame-index staat. Hoewel sommige pandas-gebruikers dit de beste manier vinden om data op te slaan, stond in de prompt dat customer_id een kolom is. Ten tweede is de combinatie .replace()/.isnull() omslachtiger dan .fillna() gebruiken. Opnieuw schiet Bard's aanpak met "drie oplossingen" te hulp; de tweede oplossing pakt beide punten aan.

image3.jpg

Waar presteert Bard slecht?

Als onderwijsbedrijf hebben we bij DataCamp een vrijwel onbeperkte behoefte aan nieuwe datasets waarop gebruikers analyses kunnen uitvoeren. Dat betekent dat AI die direct datasets kan genereren een gamechanger is. Voor iedereen is het bovendien een groot voordeel om snel datasets te kunnen genereren om hun analysecodes op te testen. ChatGPT doet dit erg goed, maar laten we kijken hoe Bard presteert.

image5.jpg

Opnieuw weigert het de vraag te beantwoorden. Net als bij de programmeervoorbeelden ben ik onder de indruk van de terughoudendheid van de AI, maar ook een beetje teleurgesteld dat het de taak niet kan volbrengen.

Omdat een groot deel van data-analyse draait om datamanipulatie, zou het geweldig zijn als AI je code hiervoor kon schrijven. Het volgende voorbeeld is net wat lastiger omdat de AI moet begrijpen dat het jaar uit de startdatum moet worden berekend.

image10.jpg

Helaas werd deze subtiliteit niet opgepikt en is de code fout. Sterker nog, alle drie de gegenereerde oplossingen zijn fout. Dit is ook nog eens een slecht soort fout: de AI is zelfverzekerd in zijn onjuiste antwoord.

Oordeel: ChatGPT wint

Ik vind het geweldig dat Bard drie oplossingen geeft, zodat je meer kans hebt op iets geschikts. Maar het onvermogen om datasets te genereren en (net iets tricky) datamanipulaties uit te voeren is een blokkade.

Datavisualisatieworkflows

Waar presteert Bard goed?

Ik probeerde een simpele taak "maak een scatterplot" met een twist: het kleurthema van de plot aanpassen. De nieuwssite FiveThirtyEight publiceert een eigen kleurthema, dat beschikbaar is in het populaire Matplotlib-pakket.

image4.jpg

De code is correct, al zit er een eigenaardigheid in dat mcolors wordt geïmporteerd maar nooit gebruikt.

Waar presteert Bard slecht?

Een andere vrij eenvoudige plottaak is een lijndiagram tekenen met meerdere lijnen. De gebruikte dataset heet gapminder en wordt vaak voor demo's gebruikt. 

image14.jpg

Hier is de code bijna correct, maar met een soortgelijk probleem als eerder: Bard twijfelt of country een kolom of een index moet zijn (ook al staat het in de prompt). De rijsubset in de plt.plot()-regel gaat ervan uit dat country in de index staat, wat niet consistent is met de vorige regel.

Ik vroeg Bard om dezelfde taak uit te voeren met R's ggplot2-pakket. 

image12.jpg

Bard weigert hier beleefd. Dat verrast me enigszins, aangezien ggplot2 al meer dan tien jaar het populairste plotpakket in R is en er veel codevoorbeelden beschikbaar zijn.

Oordeel: ChatGPT wint

Ik zou Bard's verwarring rond het gebruik van pandas-indexen misschien nog vergeven, maar het onvermogen om een eenvoudige ggplot2-plot te tekenen maakt het ongeschikt voor R-gebruikers.

Machine learning-workflows

Waar presteert Bard goed?

Ik probeerde een paar taken, en helaas waren ze allemaal problematisch. Dit is een groot waarschuwingssignaal voor Bard, aangezien machine learning in Python enorm populair is.

Waar presteert Bard slecht?

Misschien het meest voor de hand liggende startpunt voor machine learning is een model trainen en voorspellingen doen in Python. 

image7.jpg

De code is grotendeels goed, maar er is een probleem met hoe de trainings- en testsets worden gemaakt. Het is goede praktijk om rijen willekeurig in de ene of de andere set te selecteren, maar Bard pakt gewoon de laatste duizend rijen voor de testset (en stopt de rest in training). Dat is alleen oké als de films in de dataset willekeurig geordend zijn.

Een ander groot interessegebied is modeluitlegbaarheid. Beslisbomen zijn vrij eenvoudig uit te leggen met Shap-waarden, en daar is een vrij standaard workflow voor. 

image26.jpg

Helaas bevat de code een aanroep van shap.explain(), een functie die niet bestaat. Dit soort probleem is vrij eenvoudig te spotten omdat je de code kunt proberen uit te voeren en deze dan zal falen. Niet-werkende code genereren is echter zonde van je tijd.

Ik wilde ook een meer conceptuele machine learning-taak proberen. Veel van de kunst van machine learning zit in het gebruiken van domeinkennis om betekenisvolle features te maken voor je modellen. Ideeën bedenken voor features kan lastig zijn, dus dit is een gebied waar AI erg behulpzaam kan zijn. 

image11.jpg

Het antwoord is hier niet slecht, want het komt met twee nuttige feature-ideeën (genre en budget). De andere twee ideeën waren echter precies die uit de prompt, en de tweede lijst was niet gevraagd. Ook verwijst het naar "data-engineeringtechnieken" in plaats van "machine learning-technieken", wat onjuist is.

Oordeel: ChatGPT wint

Bard presteerde hier erg slecht; dit is geen wedstrijd.

Tijdreeksanalyse-workflows

Waar presteert Bard goed?

Helaas kon ik Bard niet overtuigen om tijdreeks-taken uit te voeren.

Waar presteert Bard slecht?

Ik probeerde datamanipulatietaken voor tijdreeksen, waarbij dagelijkse data naar wekelijkse en maandelijkse data moest worden omgezet. 

image25.jpg

Bard weigerde.

Vervolgens probeerde ik het een test voor stationariteit te laten uitvoeren. 

image8.jpg

Opnieuw weigerde Bard. Zoals eerder ben ik blij met de ingebouwde terughoudendheid om het aantal foute antwoorden te beperken.

Oordeel: ChatGPT wint

Het lijkt erop dat tijdreeksanalyse iets is wat Bard nog niet kan.

Natural language processing-workflows

Waar presteert Bard goed?

Je zou verwachten dat grote taalmodellen goed met taal omgaan. Sentimentanalyse (bepalen of tekst een positieve of negatieve vibe heeft) is belangrijk om productreviews op shopping sites te kwantificeren en geldt als basisvaardigheid voor tekstanalyse. Deze taak werd net wat lastiger gemaakt door een emoji en een slanguitdrukking op te nemen. 

image1.jpg

Bard's eerste antwoord is oké, maar miste het idee dat elke regel in de prompt apart moest worden beschouwd. (Eerlijk is eerlijk: dit was niet expliciet vermeld, al zou een mens dit intuïtief kunnen aannemen.) Bard's derde antwoord pikte dit detail wel op. 

image20.jpg

In beide gevallen werden de emoji en de slang correct geïnterpreteerd.

Waar presteert Bard slecht?

Tekst van de ene menselijke taal naar de andere vertalen is de oorspronkelijke use case voor transformer-modellen. Ik vroeg Bard om een antwoord in het Frans te geven. 

image9.jpg

Helaas gaf Bard een Engelse uitleg van machine learning en de vertaling van de uitdrukking "machine learning" naar het Frans in plaats van de hele output in het Frans te geven.

Oordeel: ChatGPT wint

De vertaalmisser was voor mij een grote verrassing.

Conceptuele en carrièregerichte taken

Waar presteert Bard goed?

Technische ideeën uit je analyse uitleggen aan mensen zonder databackground is een van de lastigere onderdelen van data science. Ik vroeg Bard om A/B-testen aan een executive uit te leggen. 

image2.jpg

De uitleg is best goed. Er zit een wat twijfelachtige aanname in dat het nieuwe lettertype tot een hogere conversieratio leidde (dat hangt af van hoe de test was opgezet; het kan ook gewoon anders zijn). De andere twee antwoorden pakten deze subtiliteit wel op, dus ik trek hier geen punten voor af.

Een andere nuttige AI-taak is het samenvatten van langere werken. Hier vroeg ik Bard om het oorspronkelijke journalartikel over transformer-modellen (geschreven door Google-medewerkers) samen te vatten. 

image18.jpg

Het is een goede, prettig leesbare samenvatting. Een eigenaardigheid is dat er enkele links naar blogartikelen over het paper zijn opgenomen in plaats van naar het originele paper zelf.

Voor wie een carrière in data wil, zijn ideeën over hoe je die droombaan krijgt essentiële loopbaanadviezen. Ik vroeg Bard om projectideeën te bedenken. Dit is opnieuw een creatieve taak zonder één juist antwoord. 

image13.jpg

Tot slot is het schrijven van inleidingen voor langere stukken werk zo'n licht irritante taak die ik liever aan AI uitbesteed. 

image23.jpg

Wederom levert de AI met minimale context een goed geschreven stuk.

Waar presteert Bard slecht?

In dit geval presteerde Bard goed op alle taken die ik voorlegde.

Oordeel: Gelijkspel

Hoewel het lastig is om te kwantificeren of ChatGPT of Bard beter is voor deze creatieve taken, ben ik blij dat ik een gebied heb gevonden waar Bard consequent output van hoge kwaliteit levert.

Samenvatting

Er zijn enkele opvallende gaten in Bard's kennis van data science-workflows: het niet kunnen uitleggen van codefouten en slecht presteren bij Python machine learning-taken zijn grote issues.

Ik vind het top dat je drie antwoorden krijgt om de beste te kiezen, en ik waardeer de terughoudendheid om de eigen grenzen te erkennen. Een vraag weigeren te beantwoorden is veel beter dan een fout antwoord geven.

Uiteindelijk heerst ChatGPT voorlopig, maar ik kijk ernaar uit om Bard te zien verbeteren. Concurrentie op het gebied van generatieve AI kan de wereld alleen maar ten goede komen.

Til het naar het volgende niveau

Wil je meer leren over het gebruik van generatieve AI voor data science? Bekijk dan de volgende resources: 

Richie Cotton

Auteur

Richie Cotton

Richie helpt individuen en organisaties om beter met data en AI te werken. Hij is al data scientist sinds voordat het zo heette, en heeft twee boeken geschreven en veel DataCamp-cursussen over dit onderwerp gemaakt. Hij is host van de DataFramed-podcast en leidt het webinarprogramma van DataCamp.

Chat met AI Richie over elke aflevering van DataFramed - alle datahelden zijn welkom!

Onderwerpen

Gerelateerd