AIToday Live

S02E07 - Explainable AI in de praktijk (met Willem Meints)

Season 2 Episode 7

We sluiten seizoen 2 af met Willem Meints, Microsoft MVP AI, auteur van een Deep Learning boek. Maar belangrijker Willem is de maker van de Open Source tool PlsExplain. Met PlsExplain wordt Explainable AI veel eenvoudiger. In deze aflevering vertelt hij daar alles over.

In deze aflevering onder andere:

2:43 AI in het nieuws 

  • Hertrainen van GPT-3
  • Robots in een virtuele wereld
  • Over het boek ‘Grezielig slim’

16:17 AI in de Enterprise 

26:27 AI in de praktijk

PlsExplain is te vinden op GitHub: https://github.com/wmeints/plsexplain

Stuur ons een bericht

Info Support
Info Support is de specialist in maatwerk software en leidend in kunstmatige intelligentie (AI).

Disclaimer: This post contains affiliate links. If you make a purchase, I may receive a commission at no extra cost to you.

Schrijf je in voor onze nieuwsbrief en ontvang exclusieve toegang tot nieuws, blik achter de schermen en meer!

Maar dat betekent dus dat je door middel van een nieuw algoritme, artificial intelligence, ervoor zorgt dat die zoveel kunnen rekenen, dat ze uiteindelijk bij een antwoord komen waar wij mensen waarschijnlijk veel langer over hadden gedaan als ze het al überhaupt hadden gevonden. Dat gaat ons helpen om nog grotere problemen te gaan oplossen. Denk maar aan een computer die zelf kan leren. Waar ik aan denk bij kunstmatige intelligentie is dat het door de mens gecreëerd is, dus het is door de mens bedacht. Bij kunstmatige intelligentie denk ik aan data. Zo, kunstmatige intelligentie. Eerlijk gezegd weet ik niet wat dat is. Hi, je luistert naar de podcast AIToday Live van Imageaboard. Iedere aflevering kijken we naar wat is er in het nieuws over AI, AI in the enterprise en AI in de praktijk. Zo, welkom bij de zevende en laatste aflevering van dit seizoen. We hebben natuurlijk veel gehad over explainable AI en het leuke is, we hebben Willem Meints in onze uitzending. Willem die weet daar ontzettend veel van, zal hij zo direct denk ik zelf wel wat kunnen vertellen. En ik denk dat het ook echt een hele mooie afsluiter is van al die sessies die we hebben gehad over explainable AI. Dus Willem, welkom. Dank je wel. Willem, zou je jezelf even willen introduceren? Ja, ik ben Willem Mijns. Ik werk bijna 15 jaar voor Info Support inmiddels. Dat is ook mijn eerste werkgever, dus dat is ook wel een beetje bijzonder in die zin. Ja, in mijn dagelijks leven werk ik als software architect en ik ben heel erg druk met artificial intelligence. Ik ben even de eerste mensen die binnen Info Support ermee begonnen is. Mijn droom was altijd om computers net even een tandje slimmer te maken. En dat is aardig gelukt denk ik met het hele AI verhaal. Ik praat er regelmatig over op conferenties. Ik bouw ook projecten mee, begeleid ook heel veel collega's die net beginnen. Als je bij ons roept AI, dan wordt eigenlijk Willem er achteraan geroepen. Dat is wel heel bijzonder om mee te maken dat mensen me meer kennen dan dat ik de mensen ken eigenlijk. Boek geschreven over deep learning. Ja, ook nog. Ja, ik had een keer een gekke bui en ik dacht van hey, een boek schrijven over deep learning lijkt me gewoon heel cool. Het is een hele ervaring. Als je denkt van nou, dat we het een keer gedaan hebben, dan moet je me zeker maar een keer vragen. En je hebt wat over te vertellen geloof ik. Ja. Ja, we gaan het vandaag hebben over explainable AI. Ook over de open source tooling die jij daarop gemaakt hebt. Maar we beginnen zoals altijd met onze onderwerp AI in het nieuws. Artificial intelligence in the news. Willem, is jou wat opgevallen in het nieuws? Nou, ik ben niet echt iemand die stad en land afstruint op zoek naar AI nieuws. Maar van de week viel me wel iets bijzonders op. De laatste tijd hebben we het steeds over hele grote deep learning modellen voor taalverwerking, NLP modellen. Mensen die een beetje bekend zijn in de wereld. GT3 is echt heel hip. Open AI codecs. Dat is ook een taalmodel die voor programmeren wordt gebruikt. Maar die dingen die zijn zo groot, dat als er een foutje in zit, dat kun je niet zomaar mee fixen. Je kan niet even dat model opnieuw trainen. Dat duurt maanden, jaren. Nou hebben ze iets cools bedacht. En dat heet fast model editing at scale. Ze kunnen kleine stukjes uit een heel groot model kunnen ze knippen. Die kunnen ze bijtrainen en dan weer terugbreken in dat model. Het is alsof je, iemand krijgt een sneetje aan zijn vinger en je hecht even die vinger. Dat is eigenlijk wat je aan het doen bent daarmee. En dat vond ik wel heel cool. Dat geeft ook wel een beetje hoop. Want ja, die grote modellen, daar zit ook nog wel eens een keer wat fout in. Dit zou wel echt heel veel kunnen betekenen voor, nou ja, als je zelf daarmee aan de slag wilt. Wat gaaf. Ik had er nog geen kennis van genomen. Jij wel Niels? Nee, ik had hem nog niet gehoord. Dat triggerde mij ook wel. De vraag die bij mij dan gelijk naar boven komt. Kan je ook nieuwe, of zaken die nog niet de fouten corrigeren, maar nieuwe zaken introduceren in het model? Nou ja, dat heb ik opgezocht. Dat kan helaas niet. Je kan de structuur niet aanpassen. Dat is wel een voorwaarde om echt helemaal nieuwe dingen te kunnen leren. Wat is nieuw in dit geval? Als jij een label hebt wat je niet herkent, omdat er echt iets helemaal fout zit. Ja, dat kun je fixen. En dan is het alsof dat nieuw is voor de gebruiker. Daar moet je dan vooral aan denken. Wel een luxe aankoop. Ja, zeker. Ja, dus dat is wel vet. Ja, jij Niels? Ja, ik ben wel iemand die het hele wet weer af gaat struinen om te kijken van wat voor dingen wil ik gaan noemen. En er kwam er eentje voorbij. Ik weet niet of het wel of niet eng is, maar een artikel over Stanford University. Die wil robots zelf laten evolueren met behulp van AI. En dat was een artikel. En eigenlijk hebben ze daar een soort van virtuele wereld gemaakt waarin ze wezentjes hebben geïntroduceerd. En die wezentjes hadden een bepaalde opdracht. En vervolgens, iedere keer de winnaar, die mocht eigenlijk zichzelf één stapje beter laten evolueren. En zo continu zichzelf laten leren en groeien om bepaalde taken. Dus eigenlijk de evolutie zelf plaats laten vinden in en met behulp van AI in de virtuele wereld. Oké, spannend. Ja, ik kon er helaas nog voor de rest niet heel veel over vinden. Maar ik vond het wel een interessant artikel van wat zou hier in de toekomst mee kunnen. Het is eigenlijk een andere vorm van reinforcement learning. Dat hebben ze al gedaan met Starcraft en zo. Dat ze de computer tegen zichzelf laten spelen. Ja, en met Go natuurlijk ook. Maar dit is wel echt een extreme vorm daarvan, volgens mij. Ja, en als ik door de regels heen lees, ik weet niet of dat ook een bedoeling is, volgens mij wel, is dat ze dus eigenlijk willen gaan kijken hoe de robots zelf anders gebouwd moeten worden om bepaalde taken te kunnen gaan uitvoeren. Dus van virtueel daarnaar fysieke robots. En hoe moet die er dan uit gaan zien om een bepaalde taak goed te kunnen invullen. Ja, uiteindelijk denk ik dat het helemaal niet zo extreem anders is als de reinforcement learning. Het is natuurlijk nog steeds in een gekaderd geheel met een vaste set van regels en beloningen. Alleen is misschien de verschijningsvorm, omdat het dan in een virtuele wereld wordt geplaatst, krijgt het een soort van meer echtheid of zo. Wat natuurlijk niet veel anders is dan ieder andere reinforcement learning systeem. Nee, het maakt het alleen misschien wat meer inzichtelijk en misschien voor het gevoel tastbaarder. Ja, precies. Ja, tastbaar is het niet. Ze gaan niet in een keer een andere taak doen ofzo. Het is echt die ene taak die ze steeds opnieuw trainen met deze techniek. Ze spreken nog niet veel over of ze variaties hebben in hun taken. Dat stond niet in het artikel inderdaad. Maar zeker iets waar ik wel even blijf volgen van wat voor ontwikkelingen zijn erbij inderdaad. Of ze ook andere taken daarbij gaan introduceren. En hoe dan de verschillende evoluties het gaan doen natuurlijk. Ja. Oh, wat cool. En jou Joop, wat is jou de afgelopen tijd opgevallen? Misschien is het ook wel een klein beetje hierop aansluitend. Maar ik heb twee dingetjes. En ik ga even bedenken in welke volgorde ik, want die twee hebben wel wat met elkaar te maken, ga vertellen. Dat is naar aanleiding van een artikel die ik toegestuurd heb gekregen van een luisteraar. En dat is een artikel in het FD. En dat gaat over een ex-Google medewerker. Die heeft nu een boek geschreven en dat heet 'Griezelig slim'. En ik moet wel zeggen dat ik het boek zelf niet gelezen heb. Maar wel het uitgebreide interview met deze auteur Mo Gaudat, als ik het goed uitspreek. Ik geef het een A. Dat griezelig slim, hij is ex-Google medewerker, had ik dat gezegd. Die heeft het boek uitgebracht. En daarmee wil hij waarschuwen voor dat AI uiteindelijk slimmer wordt dan de mens. Nou, daar hebben we natuurlijk vaker over gehad. Ik heb zo daar mijn bedenkingen over. Het is sowieso altijd wel heel makkelijk om voorspellingen te doen, want je hebt toch geen idee waar het naartoe gaat. Maar hij stelt bijvoorbeeld in 2049 is de AI duizend keer slimmer dan de mens. Oh, wauw. Ja, dat hè. Duizend keer. Plus ook, wat is slim? En wat is duizend keer? Wat houdt dat in eigenlijk? Ja, en wat is slimmer dan de mens? Weet je, als je kijkt naar de hele evolutie, zijn wij volgens mij nog nooit de krachtigste, de snelste, misschien zelfs niet eens de slimste geweest. Maar op de een of andere manier hebben we ons tot de top van de voedselketen weten te krijgen. En dat heeft vooral blijkbaar met het gebruik van technologie te maken. Maar hij draait het blijkbaar om dat de technologie boven ons kan gaan staan. Maar misschien is dat zo, misschien is dat niet zo. Maar een van de voorbeelden, want dat is dan dat tweede item, daar kom ik zo direct hier verder op terug, is het leuke van wat is dan slim? Hoe definieer je slim? Nou, ik weet wel wat dom is in ieder geval. Dat kunnen we heel vaak aanwijzen. En dat was in Engeland, had een man, die had namelijk een bekeuring gekregen, omdat ergens anders in het land een vrouw geflitst was op de busbaan, lopend. How does that work? How does that work? Nou, dat had namelijk mee te maken dat zij heel groot op de trui een knitter had staan, breier. En daar zat ook nog, zeg maar, een band van een tas ofzo, die zat daar schuin overheen. En daar had hij het kennis van, ja, dat het een knitter was, dat het een knitter was. En daar had hij het kenteken van die man van gemaakt. Dus hij kreeg een boete, omdat de vrouw over een busbaan gelopen had. Het is wat, weet je, wat is dan slim? Wat is dan duizend keer slimmer? Maar het mooie is dat hij met allerlei voorbeelden kwam. Daar zat ook reinforcement learning in. Dat hij had, zeg maar, zijn epiphany. Hoe zeg je dat in het Nederlands? Openbaring. Dat er met reinforcement learning een robotarm in zes weken in één keer een balletje op kon tillen. Dus in het begin kon hij natuurlijk niks. Nou, met reinforcement learning, prompt, de robotarm had het geleerd. En negen andere robotarmen die konden dat in één keer ook. Ik denk, ja, dank je de koekoek. Copy-paste. Zou raar zijn. Ja, toch? Zou raar zijn als dat niet zo zou zijn. En hij kwam ook op het spelletje Go uit. Want hij is ook met zes weken trainen, was in één keer Go op een bepaald bord met reinforcement learning ook weer getraind. Er was ook zo'n openbaring voor hem. En dat vond hij dan de olifant in de kamer waar niet over gesproken werd. Dus dat je op deze manier met die reinforcement learning een machine slim kan maken. En daarmee werd het griezelig. En daarmee zou technologie ons over kunnen nemen. En weet ik wat allemaal. Terwijl ik dan denk van ja, volgens mij wat de... Oh ja, en hij zei, want dat was het allergriezeligste. Er wordt geleerd van de data op internet. Mensen spuien nu natuurlijk allerlei vuiligheid op internet. Dus als je de modellen hebt, waar Willem het net over had, de GPT-3's die worden getraind door internet, zitten dus ook al die discriminatie, al die vuiligheid, van alles en nog wat zitten in. En wat was nou zijn oplossing? Wat denk je? Data kwaliteit, opschoning, transparantie. Wij moesten als mensen liever zijn op internet. Dus dat wij ook alle positieve dingen, want er wordt niet geschreven op internet dat je je vrouw iedere dag ook netjes gedag kust. En dat zou er dan allemaal op moeten. Terwijl volgens mij, dat is de olifant in de kamer, is onder andere, zeg maar zijn ex-werknemer, is namelijk dat er een onverzadigbare hebzucht en zucht naar macht is van bedrijven, individuen, die deze techniek gebruiken om daar vervulling in te vinden. Het gaat niet om dat we meer lieve data moeten delen op internet, maar dat we eens na moeten denken van, wat willen we hier nou mee? Ja, precies. Toch? Ethiek, noem het allemaal op. Eigenlijk alle zaken die we geraakt hebben de afgelopen podcast komen hier eigenlijk wel in naar voren natuurlijk. En Willem gaf ook aan van het trainen van die modellen is hartstikke duur, energieverredend, rekenkracht. Dus het kost honderden miljoenen euro's of dollars om zo'n GPT-3 te trainen. Leuk dat ze dan zeg maar die hertraining nu kunnen doen. Maar dat betekent wel dat die macht van het kunnen trainen ligt dus bij dit soort type bedrijven, bij die big tech bedrijven, de Facebooks, de Googles van deze wereld, die kunnen dit trainen en zij krijgen nu de verantwoordelijkheid om daar netjes mee om te gaan. Terwijl we hebben volgens mij ook de klokkenluider gehad van Facebook, die heeft alles verteld en al wisten dat polarisatie en vuiligheid op die social media helpt om meer geld te verdienen. Dus de olifant in de kamer. Het is gewoon raar. Je moet het bedrijfsmodel van dat soort bedrijven die draaien op algoritmes zoals dat, die moet je gewoon kapotmaken eigenlijk. Dat is vreemd, zeker voor die bedrijven om dat zo te doen. Ik vraag me wel een beetje of dat snel gaat gebeuren. Dat denk ik niet. Maar het is toch ook wel ernstig dat ze weten bij Facebook dat polarisatie, dus het opzetten van mensen tegen elkaar, zorgt voor meer winst. En dat ook gezegd werd dat ze zagen dat ze negatieve invloed hebben op de psychie van jongeren en dat ze dat verder uitbreiden, ook weer vanwege de winst. Ze zien de schade die ze veroorzaken en daar wensen ze gewoon geen verandering in aan te brengen. Dus het probleem is niet dat je in zes weken Go kan trainen en dat je wereldkampioen Go wordt, lekker belangrijk. Volgens mij gaat het om dit soort zaken. Ja, laten we wel wezen. Dit soort modellen die nu voor één taak worden getraind, dat model om Go te spelen, dat kan niet schaken. En dat ligt nog zelfs in de buurt van Go. Het kan ook niet een nieuw medicijn ontwikkelen. Dat zijn union taskers. En dat is waar AI heel erg goed in is. En als je mij nou persoonlijk vraagt van waar zou AI duizend keer slimmer in kunnen en moeten worden, dan zijn het die taken die wij gewoon irritant vinden, maar die te lastig zijn om met if/else statements te automatiseren. Dat zou voor mij toch wel echt het meest ideale zijn. Ja, en het feit van slimmer. Kijk, een rekenmachine die kan al beter en sneller en akeuriger rekenen dan wij. Ja, dan gaan we toch ook niet denken dat die de wereld over gaat nemen. Ik bedoel, hou op, schijt uit. Ja, en die is gek genoeg. Kijk, voor ons, voor mensen die thuis even snel moeten uitrekenen, is een rekenmachine slimmer dan wat wij zijn. Als je dan die wiskundigen bezig ziet, die gebruiken ook wel eens een rekenmachine voor dit of dat. Maar die bouwen zulke complexe dingen, daar kan een rekenmachine ook niet. Dus ja, wat is hier nou eigenlijk een beetje slimmer? Wat is dat dan precies? Ja, en weet je, ik denk dat uiteindelijk de term kunstmatige intelligentie, artificial intelligence, weer de fantasie laat lopen. Had deze technologie Big Skill Math geheten of zo, toegepaste wiskunde op grote schaal, nou, daar had niemand zich de druk om gemaakt. Had die hem geen boek geschreven, was hij niet in het FD gekomen. Nee, maar dan komen de films weer om de hoek natuurlijk, met The Terminators en alle andere films van de laatste tijd, waar allemaal robots los gaan. Ja, precies. Ik zeg, dat zijn allemaal zaken over de praktijk. Misschien een mooi brugje om te gaan naar het hoofdthema van vandaag? Artificial intelligence in the enterprise. Explainability in de praktijk, dat is het hoofdthema van vandaag. Daar is hoop over te vertellen. Hoop over te vertellen, zeg je. Zou je in ieder geval even alvast kunnen vertellen van wat je doet op dit vlak? Ja, waar ik mij specifiek mee bezighoud is eigenlijk, ik noem dat altijd desk research, want echt een wetenschapper ben ik dan ook weer niet, maar ik maak gebruik van wetenschappelijk onderzoek om klanten te helpen om beter te begrijpen hoe hun machine en hun model werkt. Daar hou ik me dan vooral mee bezig. Dus ik ben niet zelf iemand die in de dagelijkse praktijk modellen bouwt. Ik bouw vaak de gereedschappen die anderen kunnen gebruiken om die modellen te bouwen en te onderhouden, te testen en te repareren waar nodig. Wat moet je dan aan denken? Als je machine en model traint, dat is gewoon een black box, je stopt de data in, in het algoritme. Die traint het model en dat model is eigenlijk niet meer dan een verzameling gewichten en een voorgedefiniëerde manier waarop die de rekensom moet maken. Ja, doet die dan het goede? Ja, dat weet je eigenlijk helemaal niet, want het is gewoon zwart. Het zijn getallen. En de kunst is om dat model binnenstebuiten te keren en te gaan vragen aan dat model van"Ja, oké, kun je uitleggen wat je dan het belangrijkste vindt bijvoorbeeld?""Welke input vond je het meest belangrijke om mee te wegen in het antwoord dat je gegeven hebt?" Maar dat is slechts maar één manier. Er zijn heel veel manieren waarop ik dat open kan breken, maar dat is waar ik mij dus mee bezig hou, om dat helemaal binnenstebuiten te keren en uit te zoeken van "Wat is de beste manier om dat te doen?" Ja, en je hebt ook daar een open source tool voor, he, 'Please Explain' heet die. Die is te vinden op GitHub. Ja, die staat op GitHub, op mijn GitHub-account. Ik denk dat we die ergens wel in de linkjes even erbij kunnen zetten. Zeker. Dat is een helemaal open source tool. Ik ben er nog mee bezig om hem steeds verder te verbeteren, maar de basisversie is er nu. Wat wel heel leuk is aan 'Please Explain' is dat je kan zeggen tegen de tool"Please Explain", dat typ je ook letterlijk zo in, op zijn hipst, "PLS explain", zeg je dan, zoals de hackers dat doen, en dan stop je er een model en een dataset in. En wat hij dan doet, is hij gaat dan voor jou aan het rekenen, en dan gaat hij op een aantal verschillende manieren dat model uit elkaar trekken en jou vertellen van "Hé, dit is hoe jouw model van binnen werkt. Dit is de reden waarom je een bepaald antwoordformaat van hem krijgt." Oké. Zijn er nog limitaties aan wat voor data en wat voor modellen erin kunnen? Of is het one size fits all? Nou, bijna. En bijna niet. Dat is wel heel grappig, want mijn droom is dat het straks alle soorten modellen aankan, maar dat is wel heel ingewikkeld. Als je kijkt naar de machine learning, dan zijn er heel veel verschillende taken waarvoor je verschillende inputdata nodig hebt. Waar richt ik mij op? Ik richt mij op tabular data, dus tabellen, met concrete features. Dus bijvoorbeeld de leeftijdsnieuwe belengte, hoeveel geld hij heeft geleend, dat soort dingen moet je dan allemaal aan denken. En verder maakt het me eigenlijk niet zo heel veel uit wat voor model het is. Dus ik kan klassificatie- en regressiemodellen aan, en dan ook nog allemaal verschillende soorten daarvan. Er zijn natuurlijk heel veel verschillende implementaties van dat type model. Die kan ik allemaal uit elkaar trekken en je vertellen hoe het werkt. En in de toekomst hoop ik ook nog een keer recommendation systems en andere wat minder strak gedefinieerde modellen te kunnen analyseren. En je stopt het erin, wat krijg je eruit? Neem ons eens mee, wat zien we dan? Verschillende dingen krijg je eruit. De eerste vraag die je zelf bijvoorbeeld zou kunnen stellen, wat zijn de performancemetrieken van mijn model? Hoeveel procent van de gevallen voorspelt hij eigenlijk goed? Dat geeft hij als eerste weer. Dus in het geval van bijvoorbeeld een klassificatie-model zegt hij, nou, ik heb 80% van de gevallen goed voorspeld. Positief of negatief, als we het even simpel houden met die twee klasses. Maar heb je meerdere klasses, dan kan ik je precies per verschillende uitkomst vertellen hoeveel procent van die gevallen die je dan goed had. Dus je krijgt een veel beter inzicht in wat nou eigenlijk de performance is. Maar ja, dat is maar een getalletje, daar kun je nog niet heel veel mee. De volgende stap is dat ik dan laat zien, deze inputs die je gegeven hebt in het model, die vond ik het allerbelangrijkste. Die sorteer ik van hoog naar laag. En die feature importance noemen ze dat dan. Dat geeft je inzicht aan, als je een van die features, van die belangrijkste features gaat veranderen, als je een andere waarde erin stopt, dan heb je kans dat die best wel heel veel invloed heeft op de uitkomst van het model. Nou, dat geeft in ieder geval een soort van denkrichting. Wat kun je daar nou mee? Dan kun je bijvoorbeeld kijken van, als ik een kredietbeoordeling doe, doe ik dat dan op basis van iemand zijn inkomsten en betalingsgeschiedenis? Of loop ik gewoon te kijken naar geslacht en huwelijks bestaat? Want dan weet je direct, als dat laatste gevallen is, dan werkt je model niet. Tenminste, dan mag ik hopen dat het zo is voor je. Een stukje ethiek is wel belangrijk in deze. En dan kun je nog inzoomen. Dan kun je nog zeggen, ik klik een van die features aan, stel de belangrijkste was, heb ik een betalingsachterstand. Die klik ik aan, dan kan ik zien van, oké, en welke waarde zorgt er dan voor dat ik wel of niet een krediet krijg? En dan krijg je een soort van grafiek, dat is een profiel. Voor elke waarde heb ik dan uitgerekend van wat zou dan de mogelijke uitkomst zijn van het model, als je dat erin stopt. Nou, dat is echt op modelniveau dan hetgeen wat ik nu kan laten zien. Nou, daarmee kun je al heel goed bepalen of je model het goed doet of niet. Wil je nog verder? Dat kan. Want dit geef je in het algemeen het antwoord. Je kan natuurlijk ook nog kijken voor een specifieke voorspelling. En de toepassing daar is eigenlijk meer dat je zegt van, nou, stel, ik kom als klant bij een kredietverstrekker, ik heb een kredietbeoordeling laten doen en ik krijg nee te horen. Waarom is dat dan? Waarom krijg ik nou niet die lening? En belangrijker nog, wat kan ik doen om wel die lening te krijgen? Dat zou heel interessant zijn natuurlijk. Nou, dan kun je aan dat model gaan vragen, geef mij de feature importance voor deze voorspelling. En dan krijg je voor die ene klant te horen, hé, beste klant, we zien dat je gewoon een heel laag inkomen hebt. Verder heb je een goede betalingsgeschiedenis, maar je inkomen is te laag. Dus als je dan zo'n model inzet op productie, dan kun je de klant ook echt gericht aan feedback voorzien. Van hé, wij hebben dit besluit genomen, omdat we dit en dit hebben gezien. Daar kun je ook nog weer verder op inzoomen. Dan kun je naar die ene feature kijken waarvan je weet van, oh, dit was voor grote invloed op het besluit. Dan kun je zeggen tegen die klant van, ja, beste klant, als je nou 100 euro meer had verdiend in de maand, dan had het wel gekund. Kijk, en daar zie je dat Explainable AI heel veel waarde toevoegt. De eerste kant, een modelniveau uitleg, dat is meer voor de machine learning engineer en de data scientist, om dat te gebruiken. Want die kunnen niet individuele gevallen beoordelen, want ze hebben veel te veel data. Maar voor klanten is het tweede deel heel interessant. Want zoals jullie wellicht weten, als je het hebt over machine learning modellen in productie inzetten, is het gewoon belangrijk dat als je een besluit neemt met een machine learning model, dat je hem kan uitleggen. En Please Explain is één van de tools die je daarvoor kan gebruiken, waarvan je kan zeggen van, nou, ja, dit kun je op deze manier in productie gebruiken. Please Explain werkt nu nog niet in productie, in de zin van, hij kan het niet real-time voor je vertellen, maar daar ben ik wel mee bezig om daarnaar te kijken van hoe moet dat dan. Dus hopelijk in de komende maanden ergens wel de mogelijkheid om dat ook echt te gaan doen. Ja, want Willem, je zegt, er zijn verschillende tools. We kennen iets als Lime en Shap, Shap Values. Wat is er nou anders bij Please Explain ten opzichte van die tooling? Nou, Please Explain maakt daar gebruik van, van die Shap Values en de Lime Explainer. De Lime Explainer toevallig niet. Die bleek in mijn geval toch minder waarde toe te voegen. Misschien dat die later nog komt, dat die alsnog in beeld komt. Maar Shaply Values kun je heel goed gebruiken voor feature importance berekenen. Dan krijg je een soort relatieve waarde van wat een feature waard is. Dat is allemaal heel relatief en heel wiskundig. Eigenlijk in de praktijk kijk je niet zozeer naar die getallen, maar kijk je meer naar welke staan bovenaan. Maar ja, ik maak gebruik van de bestaande spullen. Ja, je zegt je maakt er gebruik van. Wat heb ik er dan aan om jouw tooling te gebruiken en niet Shap? Nou, de huidige stand van de techniek is eigenlijk dat, als je kijkt naar explainability tools, die zijn allemaal bedoeld voor data scientists en programmeurs. Dus je moet Python kunnen programmeren. En je moet heel goed Python kunnen programmeren, want die tools zijn bepaald niet gebruiksvriendelijk. Je moet ook vrij exact weten wat je erin moet stoppen en wat niet. En grappig genoeg, 80, 90 procent, misschien wel 100 procent van die input van die tools, die kun je van tevoren berekenen met nog een ander algoritme er weer voor te plakken. Dat is wat ik eigenlijk gedaan heb. Ik heb gewoon een slimmigheidje uitgehaald. Jij geeft mij een hele grote dataset en ik zeg dan van, gezien de spreiding in die datasets, moet ik eigenlijk maar zoveel procent van de samples eruit pakken. En daarmee ga ik dan die verklaring genereren voor je. En ik weet al dat als ik een model zie waarbij veel interacties zijn tussen features, welk algoritme ik moet gebruiken om de uitleg te genereren. Gebruik je mijn tool niet, dan moet je dat allemaal met de hand bedenken. Moet je zelf gaan nadenken en moet je zelf gaan analyseren nog om dat te doen. Want dat is het... En vandaar dat je eigenlijk begon met van, eigenlijk is het één regelcode, namelijk please explain en dan data plus je model. Ja, dat is mijn beeld ook altijd geweest. Ik vind het super irritant om die andere klus te moeten doen. Ik moet hem nu natuurlijk gewoon doen omdat ik een tool bouw, maar... Het is voor een data scientist die heeft wat beters te doen. Ik heb dan zoiets van, ja, ik neem dat uit handen en ik geef dat dan op de goede manier aan. En daar zit dan denk ik de knepoek in in dit soort tools, want je kan het allemaal uitbesteden aan de computer. Ja, mooi. Hé, zullen we eens kijken van hoe dit dan in de praktijk werkt?[muziek] Ja, dus wat voor dingen haal je? Dus als je deze tooling nou, dit soort tooling, laten we het daarop houden, in de praktijk inzet, wat komt daar nou typisch uit? Heb je daar voorbeelden van? Oh, soms echt hele erge verrassingen komen eruit. Ik noemde net al even die kredietbeoordeling. We hebben wel eens modellen gehad die dachten wij dat die het goed deden. En dan gingen we daadwerkelijk kijken naar wat die nou aan het beoordelen was. En we dachten van, hè? Dat was toevallig een computer vision model, wat wij gebruikt hebben om een aantal voorwerpen te herkennen. Kapotte boodschappen. Dat zijn boodschappen die worden teruggestuurd en die zijn gewoon volledig gesloopt. Daar is iets klem komen te zitten in de vrachtwagen van de boodschappenbezorgdienst. Daar is iets gebeurd met het uitpakken of de sinaasappel is verrot of zo. En daar hadden wij een model op getraind om te kunnen klassificeren van, wat is dat dan allemaal nog? Is het een pak vla, is het een sinaasappel? Gewoon objectherkenning. Alleen, wij dachten dat hij het deed. 96% accuracy. Hoera, hoera, iedereen was door het dol heen. Alleen toen gingen wij eens even uit elkaar plukken waarom hij dat dan deed. En dat bleek echt op de meest waanzinnige dingen te gaan. Soms, sinaasappels worden altijd op tafel gelegd. Dus als hij een tafel herkende, dan zei hij 'ja, het is een sinaasappel'. Ja, is dat dan een sinaasappel? Nee, natuurlijk niet. Helemaal niet. Hoezo? Pakken melk, dat zag hij ook omdat hij de streepjescode zag. Dat zijn hele bizarre dingen. Maar als een pak melk maar kapot genoeg is, dan herkent hij dat niet meer. Dus daar hebben wij onder andere met andere technieken dan 'please explain' in dit geval. Maar daar hebben we wel heel erg baat gehad van explainable AI om erachter te komen van doet hij het nou wel om de goede redenen. En 'please explain' zelf heb ik nu op een aantal plekken ook wel weer ingesubt dat ik denk van ik ga toch eens even kijken in een customer churn model of hij nou om de goede reden die churn voorspelt. Dat blijkt ook niet altijd even goed te kloppen. Ja, we hadden de afgelopen weken van een collega die inderdaad een customer churn model weer gemaakt had. Waarbij de uitkomsten, dat vond ik ook wel een mooie. Dus het werd heel duidelijk uitgelegd waardoor de meeste mensen eigenlijk churnen. Waarbij ze uiteindelijk in de organisatie zeiden 'dat is raar'. Dus dan ga je namelijk een stap verder. Dat je niet meer kijkt naar, want ze waren er overeens dat het model was goed en betrouwbaar. Maar nu was de reden waarom mensen dan weggingen, dat was heel onverwacht. Het model had andere redenen gevonden waarvan hij zelf in een onderbuik dacht van het moet wel dit of dit zijn. En nu wordt er meer nagekeken van 'hé, maar als dit dan de redenen zijn, wat gebeurt er dan? Wat gebeurt er dan met die klanten?' Dus ze gaan die klanten opzoeken, ze gaan over praten, ze gaan intern over praten. Dus dat betekent dat zo'n uitleg het startpunt is van een hele nieuwe manier van kijken naar je klanten, naar je processen en wat het dan inhoudt. En dat vond ik eigenlijk ook wel een hele mooie. Dat vind ik eigenlijk de grootste waarde van Explainable. Het is mooi dat zo'n tool werkt en dat je die grafieken eruit krijgt, maar eigenlijk gaat het over de discussie die je daarna gaat voeren. Het kan best wel zijn dat het klopt dat klanten om een andere reden gaan churnen dan wat jij oorspronkelijk had bedacht. Maar ga het maar eens controleren. En dat vind ik eigenlijk wel veel mooier, want de opmerking die ik kreeg was'ja, het model is dan niet goed'. Ik zei 'nee, dat is niet waar, dat kan niet zo zijn'. Het model, gegeven de data, kan heel goed zijn. Wiskunde ligt niet, maar nu is de vraag 'had jij de goede data te pakken? Heb je begrepen hoe de wereld werkt eigenlijk?' Ga ook eens bij jezelf te raden. Van 'hebben we echt het probleemdomein begrepen? Zitten we naar de goede dingen te zoeken?' Dat vind ik zo mooi aan Explainable AI. Ja, cool. Een vraag die bij mij toch wel echt naar boven komt, en Willem je noemde het net al even kort. Realtime, dit soort zaken. Als eindgebruiker, ik neem graag het pet van het eindseizoen voor me en dan kijk ik van 'hé, hoe gaat dit nou mij als consument of als gebruiker?' en dan ben ik echt wel op zoek naar die realtime, of in ieder geval voor mijn specifieke casus, gewoon gelijk terugzien van 'maar waarom dan niet? Waarom bijvoorbeeld niet die lening gekregen?' Wat is daar dan specifiek voor nodig om die stap te maken? Als je kijkt naar Please Explain, die is op dit moment niet heel snel. Het duurt ongeveer een seconde of dertig om een uitleg te genereren. Dat is niet heel realtime natuurlijk. Maar moet het altijd realtime? Dat is even de vraag. Kijk, als je het hebt over een hypotheek beoordelen of een lening beoordelen, ja, dat proces, dat duurt altijd wel eventjes. Als jij binnen een kwartiertje antwoord krijgt met goede uitleg, is dat volgens mij wel wat waard. Dan ben je best wel vlot. Een aansproken hypotheek afvragen, dat duurt echt wel een aantal weken. Maar als jij dan al heel snel, laten we zeggen binnen een dag of zo, antwoord krijgt met goede uitleg, dat is best interessant. Voor realtime, nou ja, daar heb ik wel een oplossing voor, voor Please Explain dan. Dat is meer compute power. Dat is gewoon meer CPU's en GPU's tegenaan gooien. Is dat haalbaar? Dat vraagt mij een beetje af. Want ik heb zelf hier thuis onder mijn bureau een machine staan met twee videokaarten. Twee hele dikke videokaarten ook. Die zou dat heel realtime kunnen. Want die is ook echt wel heel snel met dit soort dingen. Maar als je dat op je laptopje doet, dan gaat het niet echt vliegen. Ik denk dat realtime dat niet echt goed wordt. Maar productie draai je natuurlijk ook niet op je laptop. En niet onder je bureau ook niet. Dat is wel wat meer. Is het echt performance dan? Of is het meer compute en dan gaat het gewoon sneller? Kijk, ik ben het me eens, voor zo'n hypotheek, als ik een kwartiertje een formulier heb ingevuld en ik druk op een knop en het gaat even een wieltje draaien, dan ben ik gerust even wachten als ik daardoor een goede uitleg krijg. Maar ik ben één consument. Als het goed is zijn er met mij nog heel veel andere consumenten voor de partij die ook een hypotheek, een aanvraag wil doen. Dus hoe zorg je dat dat aan kan? En dat is puur compute? Ja, het is CPU intensive allemaal. Net als alles met machine learning is dit ook zo. Dus daar zit gewoon echt wel een fikse uitdaging. En jullie merken allebei ook van, ja, je gaat geen productie draaien op je laptop. Nee, maar wat er wel gebeurt, en wat ik zie bij heel veel bedrijven, die stappen tegenwoordig over containerization. Draai alles in containers. En dat moet ook nog kosteneffectief gebeuren. Dus die hebben geen 16 CPU's per model beschikbaar. Die hebben een tiende van een CPU beschikbaar. Want ja, dat is nog helemaal kosteneffectief. En als ik dan aankom met mijn explainable AI en ik zeg tegen ze, ah, ik heb 16 CPU's per klant nodig, en sommige klanten waar ik voor werk, die hebben een miljoen gebruikers op hun platform, moi, moi, dat wordt wel een dingetje. Dus daar zit het probleem ook een beetje. En het schaalt nog niet heel erg best naar de grote massa. Maar ik denk, met nog een beetje slimmigheid, gaan we er wel dicht in de buurt komen dat het wel gaat lukken. Ja, aardig als ik het zo hoor. Wat is dan de oorzaak dat het dan nu nog niet lukt? De zoekruimte is heel groot in die algoritmes. Hij gaat eigenlijk op zoek naar verschillende vormen. Eigenlijk, als je mij vraagt wat doet een explainable AI algoritme, dat is eigenlijk gewoon een ander machine learning algoritme. Bij jouw model gooit hij allemaal verschillende samples in. En wat hij dan ook nog eens gaat doen met die samples, hij gaat waardes in die sample lopen verhaspelen. Je gaat die lopen wisselen en op z'n kop zetten en negatief maken en weet ik veel wat hij allemaal uithaalt. En bij iedere sample gaat hij dan meten, wat is het verschil in uitkomst? Het is behoorlijk brute force. Ja, het is echt heel erg brute force wat hij doet. Er is helaas nog niet, er is bijna geen oplossing voor, maar misschien komt hij nog. Dus daar zit hem de sleutel een beetje in. De zoekruimte is te groot voor de computer om dit snel op te lossen. En ik denk, ik heb laatst een paper gelezen, ik weet zo even de titel niet meer uit mijn hoofd, maar er zijn wetenschappers bezig om slimmere manieren te vinden om die zoekruimte te verkleinen. Bijvoorbeeld, als je feature importance wilt berekenen, kun je dat tegenwoordig op twee manieren doen. Je kan zeggen, ik ga één feature in mijn dataset, die ga ik helemaal husselen en dan ga ik opnieuw dat model valideren. Dus eerst valideren je met de originele data, daar krijg je een performance figuur uit, daar krijg je bijvoorbeeld 82% accuracy uit. Daarna ga je één feature, laten we zeggen, heb je je betalingsachterstand, die ga je helemaal husselen. En daarna reken je weer opnieuw die accuracy uit. En dan is die in ieder geval 70%. Dan weet je dat er een 10% verschil is in performance voor die ene feature. En dat herhaal je voor iedere feature, en dan weet je, degene met de grootste verschillende performance, dat is de meest belangrijke. Dat is eigenlijk hoe dat werkt. Dat is natuurlijk super brute force. Wat je ook kunt doen, en wat veel sneller is, je pakt de bovenste 50% en de onderste 50%, die verwissel je, dat doe je één keer, en dan heb je vergelijkbare resultaten. Ik zeg vergelijkbaar, omdat het niet helemaal 100% hetzelfde is, maar je zou kunnen redeneren dat als je dat doet, en je krijgt dezelfde uitkomst uit het algoritme, met een procentverschil in getallen, is dat dan acceptabel? Volgens mij wel, is dat acceptabel. Dus daar moet je dan aan denken, dat we steeds slimmer gaan, en accepteren dat het resultaat ietsje grover is, maar nog steeds bereikbaar. Ik kijk het naar, dit vind ik een heel mooie ontwikkeling, waar je mee bezig bent. Wordt het al veel gebruik in de MLOps, processen die worden gehanteerd bij klanten? Ja, bij ons wel. Want wat wij hebben gedaan vanaf dag één, is wij hebben ook de filosofie van de AI, moet de mens versterken, en daar hebben we ons hele ontwikkelproces ook omheen opgebouwd. Dus wat wij doen, is op gezette momenten, in het ontwikkelproces, passen wij explainable AI toe. Dus je moet denken aan, als je een model gaat trainen, dan gaan wij er ook vanuit, dat onze machine learning engineers een uitleg erbij maken, en dat goed neerzetten. Tijdens het testen komt dat weer terug. En wat we ook nog doen, helemaal, en aan het begin is ook met de klant, wel heel duidelijk bespreken van, wat is die hypothese eigenlijk, die we gaan proberen te bekrachtigen, en dan wat te ontkrachten. En waar we ook wel naar vragen is, ja, wat zijn nou typische samples, uit jullie praktijkwereld, die zou het model goed moeten voorspellen? Dat noem ik prototypical samples, die gebruiken we ook in combinatie met explainable AI, om echt zeker te weten, dat het model doet wat het moet doen. Dus dat zit helemaal verweven in ons proces. Ja. Mooi. Nou super interessant Willem. Ik denk dat we weer heel veel wijzer zijn geworden, op het gebied van explainable AI. Zeker, zeg maar, diep in dit soort tooling, en wat dat inhoudt, en waar je tegenaan loopt. Nou, dat hebben we nog niet eerder gehoord, in de afleveringen, dus dank daarvoor. Graag gedaan. Het is wel gaaf, dat je onze gasten wilde zijn. Nou ja, ter afsluiting wat we al zeiden, het is het laatste van dit seizoen, tweede seizoen, maar niet getruurd, Niels toch? Of niet? We komen zeker terug. Zeker terug. Januari 2022, wordt er een nieuwe. Gaan we kijken voor weer nieuwe leuke gasten, nieuwe leuke onderwerpen. En dan hopen we jullie graag weer terug te verwelkomen. Ja, dus heb je al ideeën van,'Goh, kunnen jullie het volgend jaar daar eens over hebben?' Stuur een berichtje, je vindt ons overal op social, bij de video's, laat wat achter, en geef dan ons mee, en hopelijk spreken we misschien jullie ook wel gewoon, in de volgende podcast van volgend seizoen. Willem, nogmaals bedankt. Ja, graag gedaan. En bedankt voor het leuke gesprek.[muziek] Leuk dat je luisterde naar de AIToday Live Podcast. Abonneer je nu op Spotify, of andere streamingdiensten om ons te volgen. En kijk voor meer interessante informatie over kunstmatig intelligentie, op AIToday.ai. Dank je wel voor het luisteren. Tot de volgende keer.[muziek]

People on this episode