{"version":"1.0.0","segments":[{"startTime":0.0,"endTime":9.88,"body":"Je luistert naar deel 2 van de 3-delige serie over Trends in MLOps."},{"startTime":9.88,"endTime":13.48,"body":"Mijn naam is Joop Sneijder, CTO bij ETC."},{"startTime":13.48,"endTime":18.16,"body":"Voordat we beginnen wil ik opmerken dat deze aflevering wat technischer is dan je voor"},{"startTime":18.16,"endTime":23.72,"body":"ons gewend bent, maar blijf vooral luisteren en laat weten of je vaker een technische"},{"startTime":23.72,"endTime":24.72,"body":"aflevering wilt luisteren."},{"startTime":24.72,"endTime":25.72,"body":"Veel plezier."},{"startTime":25.72,"endTime":36.92,"body":"Hey welkom Willem. We zitten in het mooie San Francisco op conferentie Q-con San Francisco."},{"startTime":36.92,"endTime":43.8,"body":"Nou best aardig wat gesproken wordt over machine learning, specifiek MLOps. Dat was een hele track"},{"startTime":43.8,"endTime":50.04,"body":"over MLOps. MLOps is een manier om over een aanpak waarbij je een set van tools en best"},{"startTime":50.04,"endTime":57.16,"body":"practices hebt om machine learning modellen te ontwerpen maken en uiteindelijk in productie"},{"startTime":57.16,"endTime":62.48,"body":"te brengen. In het eerste deel hebben we het ML gehad van hoe zet je de modellen op. Nu"},{"startTime":62.48,"endTime":68.2,"body":"daadwerkelijk de implementatie van de modellen, dus het dev deel en straks in deel drie komt de"},{"startTime":68.2,"endTime":74.08,"body":"operations dus hoe hou je uiteindelijk je model in productie. Maar Willem voordat we beginnen misschien"},{"startTime":74.08,"endTime":78.32,"body":"is het even handig dat je je voorstelt aan de luisteraar zou je dat even willen doen? Nou hoor,"},{"startTime":78.32,"endTime":84.68,"body":"Ik ben Willem Wijns, ik werk als Chief AI Architect voor Agency, een onderdeel van Infosupport."},{"startTime":84.68,"endTime":90.6,"body":"Daarnaast werk ik veel als Chapter Lead op het gebied van Data \u0026 AI voor de WSDIS Unified Finance bij Infosupport."},{"startTime":90.6,"endTime":91.6,"body":"Ja, dankjewel."},{"startTime":91.6,"endTime":99.88,"body":"Willem, zou je eens kunnen beginnen? Wat op het gebied van modelontwikkeling heb je gezien voor het maken van modellen?"},{"startTime":99.88,"endTime":103.8,"body":"Wat vond je cool bijvoorbeeld?"},{"startTime":103.8,"endTime":105.8,"body":"Ik heb echt een pareltje, denk ik."},{"startTime":105.8,"endTime":110.94,"body":"Want de vorige aflevering hadden we het over declaratieve machine learning pipelines."},{"startTime":110.94,"endTime":113.04,"body":"En dat vond ik al helemaal fantastisch."},{"startTime":113.04,"endTime":121.54,"body":"Maar de man van DoorDash had ook een hele mooie sessie over Fabricator."},{"startTime":121.54,"endTime":125.98,"body":"DoorDash is thuisbezorgd, maar dan Amerikaans variant, hè?"},{"startTime":125.98,"endTime":131.58,"body":"Ja, die bezorgen voor heel veel restaurants in Amerika, hebben heel veel data,"},{"startTime":131.58,"endTime":133.48,"body":"hebben ook heel veel real-time machine learning."},{"startTime":133.58,"endTime":139.28,"body":"En omdat ze zoveel data hebben, hebben zij een tool bedacht, Fabricator,"},{"startTime":139.28,"endTime":144.78,"body":"die hun in staat stelt om declaratief feature engineering pipelines samen te stellen."},{"startTime":144.78,"endTime":147.58,"body":"Een van de dingen die je moet doen voor machine learning is dat je,"},{"startTime":147.58,"endTime":155.08,"body":"ja, rieuwe data uit productie moet je eerst omzetten naar iets wat het machine learning model begrijpt."},{"startTime":155.08,"endTime":160.98,"body":"We werken met wiskundige formules, dus we kunnen niet gewoon teksten erin stoppen en gewoon plaatjes erin stoppen."},{"startTime":161.08,"endTime":167.18,"body":"dan moet je toch wel wiskundige zaken op loslaten om daar getallen van te maken,"},{"startTime":167.18,"endTime":169.86,"body":"wat dan de originele data representeert."},{"startTime":169.86,"endTime":178.18,"body":"En Fabricator stelt hun dus in staat om dat middels configuratie op te stellen en te hercombineren."},{"startTime":178.18,"endTime":181.68,"body":"Dat vind ik echt mooi om te zien, hoe ze dat hebben gedaan."},{"startTime":181.68,"endTime":185.18,"body":"Zou je kunnen uitleggen hoe dat declaratief werkt?"},{"startTime":185.18,"endTime":189.48,"body":"Ik weet niet meer helemaal in detail hoe ze dat gedaan hebben."},{"startTime":189.48,"endTime":194.48,"body":"Ja, het komt erop neer dat zij, ze kunnen databronnen definiëren"},{"startTime":194.48,"endTime":200.08,"body":"en ze kunnen dan in Fabricate aangeven, ik wil graag uit deze bron"},{"startTime":200.08,"endTime":206.28,"body":"deze colom extraheren en processen op een bepaalde manier."},{"startTime":206.28,"endTime":210.98,"body":"Dus ze kunnen meerdere processing stappen aangeven, bijvoorbeeld het terugschalen van de getallen tussen 0 en 1."},{"startTime":210.98,"endTime":214.28,"body":"Ze kunnen aangeven, nou, ik wil alle 0-value's graag weg."},{"startTime":214.28,"endTime":221.08,"body":"Ik wil graag, als het gaat over tijdlopende zaken, wil ik graag running averages berekenen."},{"startTime":221.08,"endTime":225.08,"body":"En dat kunnen ze allemaal achter elkaar chainen als een soort pipeline."},{"startTime":225.08,"endTime":232.48,"body":"Waarbij je iedere keer zegt van dit wil ik, dubbele punt, en dan bijvoorbeeld inderdaad null values removen ofzo."},{"startTime":232.48,"endTime":236.88,"body":"Ja, het is ook weer dat, de vorige aflevering hadden we het daar ook over,"},{"startTime":236.88,"endTime":243.18,"body":"daar hadden we, met die declinatieve pipelines kon je met YAML, kon je dan training aangeven"},{"startTime":243.18,"endTime":245.18,"body":"en hoe je de features wilt verwerken in je model."},{"startTime":245.18,"endTime":248.02,"body":"In het geval van Fabricator geef je met YAML aan"},{"startTime":248.02,"endTime":250.26,"body":"ik wil graag deze data source hebben"},{"startTime":250.26,"endTime":253.3,"body":"en ik wil graag deze kolommen eruit hebben"},{"startTime":253.3,"endTime":256.22,"body":"en daarna welke operaties je daarop los wilt laten."},{"startTime":256.22,"endTime":261.46,"body":"En Fabricator zorgt er dan voor dat het netjes wordt omgezet in code en uitgevoerd."},{"startTime":261.46,"endTime":267.26,"body":"En ze lieten ook zien wat daarachter zat, van wat zij gebruikten. Kun je daar iets over vertellen?"},{"startTime":267.26,"endTime":269.26,"body":"Ja, zij gebruiken een heel mooie platform."},{"startTime":269.26,"endTime":271.98,"body":"Ray gebruiken zij."},{"startTime":271.98,"endTime":278.94,"body":"En dat is een systeem wat je in staat stelt om je code op je laptop te draaien,"},{"startTime":278.94,"endTime":280.98,"body":"maar tegelijkertijd in grote clusters."},{"startTime":280.98,"endTime":283.22,"body":"Doordash doet het allemaal in hele grote clusters natuurlijk."},{"startTime":283.22,"endTime":287.22,"body":"Ze hebben heel veel data, maar ja, die tool kan dus ook op je laptop draaien."},{"startTime":287.22,"endTime":292.06,"body":"En eigenlijk is het een distributed runtime in Python."},{"startTime":292.06,"endTime":296.06,"body":"En distributed betekent in dit geval, ik kan een stuk code op de ene computer draaien,"},{"startTime":296.06,"endTime":297.06,"body":"of op de andere."},{"startTime":297.06,"endTime":300.66,"body":"En Ray zorgt er dan voor dat dat automatisch gebeurt eigenlijk."},{"startTime":300.66,"endTime":301.9,"body":"Dat je dat helemaal kunt aangeven."},{"startTime":301.9,"endTime":304.42,"body":"Met één declaratie verander je je dat, hè?"},{"startTime":304.42,"endTime":306.1,"body":"Ja, dat vond ik helemaal krachtig."},{"startTime":306.1,"endTime":308.74,"body":"Je begint met een gewoon Python-programma."},{"startTime":308.74,"endTime":312.62,"body":"Dan zeg je, lees deze data, pak deze kolom eruit,"},{"startTime":312.62,"endTime":316.7,"body":"map deze kolom naar een ander formaat."},{"startTime":316.7,"endTime":320.86,"body":"Wat allemaal Python-functies zijn, die regulier bestaan."},{"startTime":320.86,"endTime":324.34,"body":"In bijvoorbeeld een library als Pandas of NumPy."},{"startTime":324.34,"endTime":329.46,"body":"En daarna zeg je, boven de functie die dat doet, die die data leest bijvoorbeeld,"},{"startTime":329.58,"endTime":336.86,"body":"je \"appen start je ray.remote\". Maak er maar een remote functie van en dan zodra ik dan zeg \"Ray,"},{"startTime":336.86,"endTime":342.1,"body":"draai dit programma maar\", dan gaat hij zelf zeggen van \"oh ja maar die functie die wil ik dan hier"},{"startTime":342.1,"endTime":347.34,"body":"hebben op deze node, oh die is vol, ik heb niet meer genoeg CPU beschikbaar, nou dan pak ik een"},{"startTime":347.34,"endTime":353.7,"body":"tweede node en ga ik daar de tweede functie op draaien. Ja dus dat is het, dus Ray kan je dan"},{"startTime":353.7,"endTime":359.42,"body":"gebruiken, maar eigenlijk hadden ze heel wat open source producten aan elkaar geknoopt,"},{"startTime":359.42,"endTime":367.38,"body":"waardoor ze bijvoorbeeld dashboarding hadden van, lopen de features nog goed, is er geen"},{"startTime":367.38,"endTime":371.9,"body":"degradatie in het gebruik van de features. Kan je daar nog wat over vertellen? Ja,"},{"startTime":371.9,"endTime":377.5,"body":"dus zij hebben best wel een aardige stek in elkaar gezet. Een van de dingen die best wel"},{"startTime":377.5,"endTime":385.38,"body":"belangrijk is, is dat je je features ook even netjes opslaat. En vaak zie je dat mensen dat"},{"startTime":385.38,"endTime":391.54,"body":"nu nog in een data lake achteromgeving doen. Zij gebruiken daar Feast voor, feature store heet dat."},{"startTime":391.54,"endTime":398.54,"body":"Het idee daarachter is dat, ja, een feature store stelt je in staat om heel eenvoudig alle machine"},{"startTime":398.54,"endTime":404.54,"body":"learning features, lees kolommen, netjes op te slaan en te indexeren over tijd, maar ook per"},{"startTime":404.54,"endTime":411.54,"body":"entiteit. Dus wat zij dus kunnen doen in hun omgeving is zeggen van nou ik record gewoon het"},{"startTime":411.54,"endTime":417.62,"body":"hele jaar door leg ik steeds alle machine learning features vast of ik ze nou gebruiken of niet,"},{"startTime":417.62,"endTime":422.3,"body":"maar ze liggen vast en dan kan ik er als ik wil trainer kan ik zeggen tegen Feast ik wil graag"},{"startTime":422.3,"endTime":430.9,"body":"de data van deze set klanten over het afgelopen jaar hebben en dan zoekt Feast dat op in de"},{"startTime":430.9,"endTime":436.46,"body":"storage en die levert dat jou aan via een universele API. Gewoon op een normale, ja,"},{"startTime":436.46,"endTime":439.9,"body":"eigenlijk met één statement kun je dat al doen. Je hoeft daar niks meer te weten"},{"startTime":439.9,"endTime":444.78,"body":"over tooling zoals pandas of bestandsformaten zoals parquet, dingen"},{"startTime":444.78,"endTime":447.3,"body":"waar mensen allemaal wel van gehoord hebben. Hoef je niet meer over na te denken."},{"startTime":447.3,"endTime":451.38,"body":"Dat regelen zij voor je. En dat maakt het voor data scientist en machine learning"},{"startTime":451.38,"endTime":456.3,"body":"engineers heel erg eenvoudig om diezelfde features die zijn vastgelegd voor het ene"},{"startTime":456.3,"endTime":459.86,"body":"model misschien ook wel te gebruiken voor het andere model. En dat is wat DoorDash"},{"startTime":459.96,"endTime":464.18,"body":"heel erg veel doet. Zij gebruiken al die features over die omgeving heen."},{"startTime":464.18,"endTime":468.36,"body":"Een ander deel wat je ook ziet wat belangrijk is,"},{"startTime":468.36,"endTime":472.62,"body":"het is mooi dat je de features hebt vastgelegd en dat je kan trainen,"},{"startTime":472.62,"endTime":475.98,"body":"maar ja, wat heb je dan eigenlijk? Dan weet je nog niet precies waar je naar zit"},{"startTime":475.98,"endTime":480.9,"body":"te kijken. Dan heb je toch ook wel weer een monitoring oplossing nodig."},{"startTime":480.9,"endTime":488.1,"body":"Zij gebruiken dan Grafana er bovenop met een aantal tools zoals Prometheus en dat"},{"startTime":488.1,"endTime":492.42,"body":"soort tools om dan de boel in de gaten te houden terwijl die aan het trainen is."},{"startTime":492.42,"endTime":497.62,"body":"En dat is, ik denk voor heel veel data scientist best wel nieuw, dat je een development tool"},{"startTime":497.62,"endTime":502.3,"body":"die door mensen die microservices doen en die al helemaal gewend zijn aan applicaties"},{"startTime":502.3,"endTime":505.82,"body":"in productie bouwen, te gebruiken voor machine learning juist."},{"startTime":505.82,"endTime":509.9,"body":"Want ja, uiteindelijk uit een machine learning model als je aan het trainen bent, zie je"},{"startTime":509.9,"endTime":514.7,"body":"je performance metric, bijvoorbeeld je precision en je recall, zie je oplopen over de tijd."},{"startTime":514.7,"endTime":517.7,"body":"Je kan dus iedere ronde die je aan het trainen bent, keurig vastleggen."},{"startTime":517.7,"endTime":522.1,"body":"En dat maakt het dan achteraf weer heel eenvoudig om terug te halen."},{"startTime":522.1,"endTime":524.3,"body":"Ging er nou goed met trainen of ging er nou niet goed?"},{"startTime":524.3,"endTime":529.5,"body":"En die crossover, development, machine learning, zien we steeds meer."},{"startTime":529.5,"endTime":533.5,"body":"Ja, uiteindelijk is het allemaal, het is een soort software wat we bouwen."},{"startTime":533.5,"endTime":539.7,"body":"Alleen het bijzondere aan het stuk software is dat we de if statements,"},{"startTime":539.7,"endTime":541.9,"body":"zo je wilt, dat we die aan het leren zijn."},{"startTime":541.9,"endTime":543.9,"body":"Dat is heel bijzonder eruit."},{"startTime":543.9,"endTime":550.26,"body":"Maar dat vrijwaartje totaal niet van goede monitoring, goede continuous delivery,"},{"startTime":550.26,"endTime":556.86,"body":"continuous integration dingen te doen. En dat zie je dus bij DoorDash, dat ze een aantal bijzondere"},{"startTime":556.86,"endTime":560.82,"body":"tools gebruiken die ofwel uit de dev komen en die bijzonder zijn in de context van data science,"},{"startTime":560.82,"endTime":566.94,"body":"ofwel tools gebruiken die specifiek zijn gemaakt voor data science is, omdat dat al helemaal anders"},{"startTime":566.94,"endTime":572.1,"body":"is. Maar het integreert wel heel erg mooi met elkaar wat zij hebben gedaan. Ja, en zij noemden"},{"startTime":572.1,"endTime":579.18,"body":"dat product fabricator zelf intern. Ik zal in ieder geval ook een link opnemen in de beschrijving"},{"startTime":579.18,"endTime":585.54,"body":"van de podcast ernaartoe. Het jammer was, ik vroeg nog van is het open source? Zo nee,"},{"startTime":585.54,"endTime":590.82,"body":"want wij konden het tijdens de sessie niet vinden. Wel een hele goede blog erover,"},{"startTime":590.82,"endTime":597.74,"body":"daar zullen we even naar linken. En dan zo nee, gaan jullie dat doen? En daar kwam toch eigenlijk"},{"startTime":597.74,"endTime":603.1,"body":"eigenlijk een beetje het antwoord van nee we gaan het niet doen. Het was ja we denken erover na,"},{"startTime":603.1,"endTime":607.98,"body":"moeilijk moeilijk moeilijk. Ik had het namelijk de spreker nog eventjes gevraagd van ja wat houdt"},{"startTime":607.98,"endTime":614.7,"body":"jullie nou tegen en eigenlijk vonden ze het te hoop gedoe. Er zat wat spul, wat spul klinkt zo"},{"startTime":614.7,"endTime":619.98,"body":"een beetje raar, maar er zaten delen in die ze niet naar buiten wilden brengen wat echt proprietary"},{"startTime":619.98,"endTime":625.9,"body":"was en dus ik proefde eruit van dat dat niet, op korte termijn gaat het in ieder geval niet"},{"startTime":625.9,"endTime":630.9,"body":"gebeuren. Nee, dat is wel heel jammer, maar tegelijkertijd ik denk dat als je de blogpost"},{"startTime":630.9,"endTime":635.46,"body":"gaat lezen en je bent op dit moment op zoek naar een omgeving, dan zou je het zelf kunnen doen."},{"startTime":635.46,"endTime":640.9,"body":"Ik weet wel dat wij gebruiken ook een aantal van die tools die zij al gebruiken. Dus ja,"},{"startTime":640.9,"endTime":647.06,"body":"onze klanten hebben in ieder geval wel een omgeving die dat al ondersteunt. Maar toch,"},{"startTime":647.06,"endTime":651.62,"body":"toen we dat zagen, het was zo mooi aan elkaar gemaakt. Ja, absoluut. Want wat we nog niet"},{"startTime":651.62,"endTime":655.3,"body":"behandeld hebben was Amundsen, die ze er ook onder hebben. Ja, daar heb ik het nog niet over"},{"startTime":655.3,"endTime":663.7,"body":"over gehad. Kijk, een van de dingen waar ik zelf ook tegenaan loop in mijn dagelijks werk is dat"},{"startTime":663.7,"endTime":669.9,"body":"we maken een machine learning dataset en halen we allemaal bewerkingen uit, maar als je dan"},{"startTime":669.9,"endTime":674.7,"body":"naar de ruwe data kijkt daarna, dan denk je, ja wat hebben ze nou precies gedaan dan? En kan ik"},{"startTime":674.7,"endTime":681.18,"body":"dit wel gebruiken? Dat is natuurlijk best wel lastig. En in de data ops wereld zijn we helemaal"},{"startTime":681.18,"endTime":685.42,"body":"gewend om een datacatalogus vast te leggen. En die beschrijft keurig, ik heb deze tabellen in"},{"startTime":685.42,"endTime":689.7,"body":"deze database met deze columnen en dat betekent dit en die persoon is de eigenaar en die kun je"},{"startTime":689.7,"endTime":694.7,"body":"vragen. Bij machine learning hebben we dat eigenlijk nog niet helemaal. Doordash heeft"},{"startTime":694.7,"endTime":700.14,"body":"daarvoor bedacht, wat als we nou een tool uit de data ops omgeving, Amundsen in dit geval,"},{"startTime":700.14,"endTime":704.5,"body":"kunnen gebruiken om die datacatalogus op te bouwen. Dan is het eigenlijk niet meer een"},{"startTime":704.5,"endTime":709.5,"body":"datacatalogus, maar een featurecatalogus, maar ja dat bestaat niet op deze planeet. Dus ja,"},{"startTime":709.5,"endTime":713.06,"body":"De Amundsen biedt eigenlijk die optie om die features goed te beschrijven,"},{"startTime":713.06,"endTime":715.94,"body":"zodat je ook naar een website toe kan gaan en kan zoeken."},{"startTime":715.94,"endTime":718.66,"body":"Ik ben op zoek naar de historie over de afgelopen 60 dagen."},{"startTime":718.66,"endTime":720.26,"body":"En die krijg je dan keurig terug."},{"startTime":720.26,"endTime":722.06,"body":"Dat maakt het leven wel heel veel makkelijker."},{"startTime":722.06,"endTime":728.38,"body":"En voor de luisteraar, wat is dan het verschil tussen die Feature Store en die Data Catalog?"},{"startTime":728.38,"endTime":730.58,"body":"Oh ja, dat is wel een goeie."},{"startTime":730.58,"endTime":732.5,"body":"Je moet het zo zien."},{"startTime":732.5,"endTime":736.42,"body":"De Feature Store is eigenlijk de database en het transportmechanisme."},{"startTime":736.42,"endTime":740.7,"body":"Dus die bewaart de features en die transporteert ze naar de trainingscode,"},{"startTime":740.7,"endTime":744.14,"body":"of naar productie als je dat nodig hebt om voorspellingen te doen."},{"startTime":744.14,"endTime":749.34,"body":"En de datacatalogist beschrijft wat die data betekent."},{"startTime":749.34,"endTime":754.46,"body":"Dus in de feature store staat gewoon column 0 tot en met 9 als je 10 kolommen hebt,"},{"startTime":754.46,"endTime":757.94,"body":"maar die 0 tot en met 9 staan in eenmiddelszin keurig vertaald naar van ja,"},{"startTime":757.94,"endTime":764.74,"body":"column 0 is het klantnummer, column 1 is hoeveel hij betaalt, column 2 enzovoort."},{"startTime":764.74,"endTime":771.06,"body":"Ja en zou je het ook zo kunnen zeggen dat in de datakataloger staat de ruwe data beschreven"},{"startTime":771.06,"endTime":778.54,"body":"en in de feature store staan de features want daar zitten natuurlijk bewerkingen over."},{"startTime":778.54,"endTime":783.5,"body":"We hebben het net over bij de declaratieven dat je geen nul values eruit dat het zaken."},{"startTime":783.5,"endTime":787.82,"body":"Dat staat eigenlijk veel meer beschreven in je feature store hoe je feature eruit ziet"},{"startTime":787.82,"endTime":790.74,"body":"wat je ermee kan."},{"startTime":790.74,"endTime":794.74,"body":"Dat is best wel verschillend. Kijk, als je kijkt naar..."},{"startTime":794.74,"endTime":797.74,"body":"Er zijn verschillende feature stores te krijgen in de markt op dit moment."},{"startTime":797.74,"endTime":801.74,"body":"Er zijn feature stores die eigenlijk het beschrijvende gedeelte erbij in hebben zitten."},{"startTime":801.74,"endTime":806.74,"body":"En ik zeg dat is een soort hybride tussen een data-catalogus en een feature store."},{"startTime":806.74,"endTime":810.74,"body":"Als je kijkt naar bijvoorbeeld een tool als Feast, die wordt gebruikt door Dash."},{"startTime":810.74,"endTime":814.74,"body":"Dat is puur het opslagmechanisme en het transport."},{"startTime":814.74,"endTime":818.74,"body":"En die heeft geen user interface namelijk. Dat zit er gewoon niet in."},{"startTime":818.74,"endTime":822.02,"body":"Dan heb je zoiets als Amundsen echt wel nodig om die beschrijving erbij te krijgen."},{"startTime":822.02,"endTime":824.34,"body":"Dus dat is wel een heel belangrijk verschil."},{"startTime":824.34,"endTime":827.98,"body":"Dat is denk ik ook wel goed voor mensen die willen beginnen met het gebruik van een feature store."},{"startTime":827.98,"endTime":831.9,"body":"Van let op, er is heel veel te kiezen op dit moment, omdat het erg in beweging is."},{"startTime":831.9,"endTime":835.82,"body":"En wat het beste is, ja, dat moet de tijd uitwijzen."},{"startTime":835.82,"endTime":838.62,"body":"Tijd zal het leren. Dat is inderdaad wel een lastige."},{"startTime":838.62,"endTime":845.22,"body":"En ja, wij hebben allebei, hebben wij het boek van Chip Uwen gelezen."},{"startTime":845.42,"endTime":848.82,"body":"Dat zij is de auteur van Designing Machine Learning Systems."},{"startTime":848.82,"endTime":854.02,"body":"Nou ja, ik heb daar een beetje als een fan zeg maar in de zaal gezeten."},{"startTime":854.02,"endTime":858.52,"body":"Want dat boek, ook die nemen we op in de link van deze podcast."},{"startTime":858.52,"endTime":865.32,"body":"Wat mij betreft is dat het boek waar de meeste kennis, informatie per pagina in staat."},{"startTime":865.32,"endTime":867.12,"body":"Zo compact, flink boek."},{"startTime":867.12,"endTime":872.12,"body":"Ik heb het in een paar dagen uitgelezen en toen tolde echt mijn hoofd van"},{"startTime":872.32,"endTime":875.96,"body":"\"Dit moet ik onthouden, dat moet ik onthouden, alles aangestreept.\""},{"startTime":875.96,"endTime":883.68,"body":"Dus wat mij betreft is dit even het boek op het gebied van Machine Learning Systems."},{"startTime":883.68,"endTime":885.52,"body":"Het heet Designing Machine Learning Systems."},{"startTime":885.52,"endTime":887.88,"body":"Het gaat eigenlijk over envelops van voor tot achter."},{"startTime":887.88,"endTime":892.84,"body":"Zij had een presentatie over real-time streaming."},{"startTime":892.84,"endTime":896.8,"body":"En zij had het over muffige data."},{"startTime":896.8,"endTime":899.08,"body":"Dat was echt een mooie term."},{"startTime":899.08,"endTime":909.08,"body":"Stil data in het Engels. Kan jij uitleggen wat was die muffige data, waar zo'n muffige lucht van af komt?"},{"startTime":909.08,"endTime":914.08,"body":"Ja, kijk, zij had een heel mooi voorbeeld erbij ook."},{"startTime":914.08,"endTime":922.08,"body":"Credit card fraude vertelde zij over en het belang van niet-muffige, van verse data eigenlijk."},{"startTime":922.08,"endTime":924.08,"body":"Want hoe muffiger, hoe lastiger."},{"startTime":924.08,"endTime":928.98,"body":"En dit idee is eigenlijk van, kijk als iemand jouw creditcard steelt, die zal zo snel mogelijk"},{"startTime":928.98,"endTime":934.56,"body":"proberen dat ding te plunderen, want hoe langer die wacht, hoe sneller gaat het gebeuren dat"},{"startTime":934.56,"endTime":935.56,"body":"die wordt gepakt."},{"startTime":935.56,"endTime":942.96,"body":"Als je dat nou wilt detecteren, dat je creditcard misbruikt wordt, om wat voor reden dan ook,"},{"startTime":942.96,"endTime":947.0,"body":"dan heb je de geschiedenis nodig over wat is er nou in de afgelopen periode gebeurd"},{"startTime":947.0,"endTime":948.0,"body":"met de creditcard."},{"startTime":948.0,"endTime":950.96,"body":"Is dat normaal gedrag of is dat wat plunderig gedrag?"},{"startTime":950.96,"endTime":957.28,"body":"Nou kun je natuurlijk heel ver terugkijken en daar krijg je een heel stabiel plaatje van wat er met"},{"startTime":957.28,"endTime":963.68,"body":"die geschiedenis gebeurt. Alleen dat is best muffig, want je loopt achter op de werkelijkheid. Hoe"},{"startTime":963.68,"endTime":968.52,"body":"verder je terugkijkt in de geschiedenis van de creditcard, hoe ouder die data wordt en hoe"},{"startTime":968.52,"endTime":977.12,"body":"minder handig dat wordt. Ja en want het ging om real time, dus het kan zijn dat het stellen van"},{"startTime":977.12,"endTime":984.28,"body":"de vraag van doen wij zeg maar de de transacties van de afgelopen 10 minuten dat je daardoor de"},{"startTime":984.28,"endTime":992.0,"body":"de laatste transacties mist omdat dat niet gelijk loopt. Ja. Dus je mist eigenlijk de de allerlaatste"},{"startTime":992.0,"endTime":997.48,"body":"dingen dus zit je eigenlijk naar muffige data te kijken want de meest verse data heb je niet"},{"startTime":997.48,"endTime":1004.16,"body":"omdat er een latency probleem zit. Dus je bent niet snel genoeg in het ophalen van de gegevens"},{"startTime":1004.16,"endTime":1009.2,"body":"ten opzichte van de transacties die plaatsvinden. Ja want dat is goed om dat erbij te vertellen."},{"startTime":1009.2,"endTime":1016.2,"body":"Kijk stale data gaat ook inderdaad over oudere gegevens dus in dit geval. Je kijkt verder terug."},{"startTime":1016.2,"endTime":1020.92,"body":"En latency speelt hier ook zeker een rol mee. Als het 10 minuten duurt om de laatste transactie in"},{"startTime":1020.92,"endTime":1025.8,"body":"jouw machine learning model door te voeren, dan ben je ja dan heeft die persoon al 10 minuten"},{"startTime":1025.8,"endTime":1030.8,"body":"lang iets met die creditcard kunnen doen wat niet de bedoeling was. Dus je wilt de latency"},{"startTime":1030.8,"endTime":1037.6,"body":"zo kort mogelijk hebben en je stilnes van je data, daar wil je wel mee spelen. Want als je"},{"startTime":1037.6,"endTime":1043.28,"body":"dat heel kort maakt, dus als je ook maar van de laatste 10 minuten data gebruikt om te kijken"},{"startTime":1043.28,"endTime":1048.76,"body":"van wat is het patroon, dan wordt het ook heel volatiel. Dan gaat het alle kanten op. Maar ga"},{"startTime":1048.76,"endTime":1054.04,"body":"je te lang, dan krijg je dus echt te maken met muffige oude spullen. Het is net als een brood"},{"startTime":1054.04,"endTime":1057.64,"body":"bakken. Als je een brood net uit de oven haalt, dan zeggen ze altijd van dan moet je niet direct"},{"startTime":1057.64,"endTime":1062.04,"body":"aansnijden, want dan deuk je hem helemaal in en dan is dat heel vervelend."},{"startTime":1062.04,"endTime":1066.44,"body":"Laat hem heel even afkoelen en ga hem dan lekker eten, dan is hij vers."},{"startTime":1066.44,"endTime":1069.56,"body":"En als je hem drie dagen laat liggen, dan kun je hem beter niet meer opeten helemaal."},{"startTime":1069.56,"endTime":1072.76,"body":"En dat is ook zo met data in dit geval, zeker met dit soort scenario's."},{"startTime":1072.76,"endTime":1078.56,"body":"En kan je je nog herinneren wat de oplossing hiervoor was? De hoe dan?"},{"startTime":1078.56,"endTime":1080.36,"body":"Ja, daar moet ik even heel hard in nadenken."},{"startTime":1080.36,"endTime":1085.56,"body":"Er zat zo'n key value store tussen, dus eigenlijk op het moment dat je data binnenkrijgt,"},{"startTime":1085.56,"endTime":1092.28,"body":"Probeer je die zo snel mogelijk al te processen, dat je hem klaar hebt staan in een key value store."},{"startTime":1092.28,"endTime":1097.8,"body":"Dat je latency eigenlijk zo kort mogelijk wordt dat als je die data nodig hebt, dat die klaar staat."},{"startTime":1097.8,"endTime":1102.04,"body":"Dat je er eigenlijk niks meer mee hoeft te doen, alleen nog maar op te halen."},{"startTime":1102.04,"endTime":1107.64,"body":"Dat is een soort van preprocessing, zo gauw je data binnenkrijgt."},{"startTime":1107.64,"endTime":1113.72,"body":"Realtime, zo snel mogelijk preprocessen in de staat waarin je hem later gaat opvragen."},{"startTime":1113.72,"endTime":1118.6,"body":"Ja, ik heb zoveel content gezien dat ik niet meer helemaal precies weet hoe die tool heet."},{"startTime":1118.6,"endTime":1121.16,"body":"Ik heb na die tijd nog..."},{"startTime":1121.16,"endTime":1122.68,"body":"Ja, dat was Claypot.ai."},{"startTime":1122.68,"endTime":1124.16,"body":"Claypot.ai."},{"startTime":1124.16,"endTime":1127.48,"body":"O ja, dat is wel goed dat je dat zegt."},{"startTime":1127.48,"endTime":1128.6,"body":"Zij bouwt dat ook zelf."},{"startTime":1128.6,"endTime":1134.84,"body":"En het idee achter die store is dat het dus een soort streaming store is."},{"startTime":1134.84,"endTime":1137.16,"body":"Die je kan aansluiten op tools als Kafka."},{"startTime":1137.16,"endTime":1141.56,"body":"Wat je in staat stelt om data te streamen door je systeem."},{"startTime":1141.56,"endTime":1150.72,"body":"En Claypod kan dan op een ingesteld time frame eigenlijk dat bewaren en preproces heel snel voor je."},{"startTime":1150.72,"endTime":1156.92,"body":"Zodat je met zo'n laag mogelijke latency en de juiste versheid je machine en het model kan voeden."},{"startTime":1156.92,"endTime":1163.6,"body":"Ja, dat was heel indrukwekkend. Dus check de link, dan lees je daar meer over."},{"startTime":1163.6,"endTime":1171.6,"body":"Het laatste, ik denk dat we dat kort kunnen aanstippen, is dat we van Amazon Retail hebben we een presentatie gevolgd."},{"startTime":1171.6,"endTime":1181.4,"body":"En wat ze gedaan hebben bij Amazon Retail is dat jij kleding kan laten passen op een avatar van jezelf."},{"startTime":1181.4,"endTime":1183.4,"body":"Dus je krijgt een..."},{"startTime":1183.4,"endTime":1185.4,"body":"Nou ja..."},{"startTime":1185.4,"endTime":1192.9,"body":"Wat ze doen is dat je met twee foto's een soort van body shape scan maken."},{"startTime":1192.9,"endTime":1199.4,"body":"Dan gaan ze belangrijke punten van je lichaam bepalen aan de hand van een algoritme."},{"startTime":1199.4,"endTime":1201.9,"body":"Waardoor ze uiteindelijk daar kleding op kunnen passen."},{"startTime":1201.9,"endTime":1205.9,"body":"Dat je kan zien hoe een t-shirt, hoe een jas op jou staat, hoe een broek op je staat."},{"startTime":1205.9,"endTime":1208.9,"body":"Nou, zag er al best wel cool uit."},{"startTime":1208.9,"endTime":1215.9,"body":"Dat was niet misschien de beste presentatie, maar daar zaten een paar elementen in waar wij wel warm van werden."},{"startTime":1215.9,"endTime":1221.2,"body":"En één daarvan was hoe zij het grote probleem van..."},{"startTime":1221.2,"endTime":1224.7,"body":"En een body scan, want je moest eerst maar eens kijken van..."},{"startTime":1224.7,"endTime":1230.1,"body":"Staat iemand niet te ver af van de camera of te dichtbij?"},{"startTime":1230.1,"endTime":1232.4,"body":"Kan je alle punten scannen?"},{"startTime":1232.4,"endTime":1235.4,"body":"Passen de foto's bij elkaar?"},{"startTime":1235.4,"endTime":1241.8,"body":"In plaats van dat ze daar één groot deep learning model van hadden gemaakt, wat je toch in de praktijk best wel wat vaker ziet,"},{"startTime":1241.8,"endTime":1246.12,"body":"hadden ze dat in allerlei kleine problemen opgesplitst."},{"startTime":1246.12,"endTime":1252.4,"body":"Nou, dat staan we er ook vaak voor, hè. Zo kijken wij ook naar de problemen. Dat zagen we terug, hè, hoe ze dat gedaan hadden."},{"startTime":1252.4,"endTime":1259.2,"body":"Ja, ik vond dat wel heel speciaal. Het was eigenlijk... Nou, ik heb het niet vaker gehoord dat mensen het zo oplossen."},{"startTime":1259.2,"endTime":1261.88,"body":"En ik vond dat zij deden dat met als reden."},{"startTime":1261.88,"endTime":1264.6,"body":"Het paste allemaal niet op de mobiel tegelijkertijd."},{"startTime":1264.6,"endTime":1266.04,"body":"Dus ze hadden... - Oh, dat was een goeie, hè?"},{"startTime":1266.04,"endTime":1267.88,"body":"Want het moest allemaal om de edge draaien."},{"startTime":1267.88,"endTime":1273.2,"body":"In ieder geval het bepalen van of iemand wel of niet goed voor de camera stond."},{"startTime":1273.2,"endTime":1275.84,"body":"Ja. - Of die in de juiste houding stond."},{"startTime":1275.84,"endTime":1278.32,"body":"Want je moest een beetje met je armen zo wijd staan."},{"startTime":1278.32,"endTime":1283.68,"body":"Net als dat je zo'n body scan krijgt op het vliegveld als je door die poortjes moet."},{"startTime":1283.68,"endTime":1286.28,"body":"En het bepalen van de..."},{"startTime":1286.28,"endTime":1289.68,"body":"Of ja, die shapes deden ze ook..."},{"startTime":1289.68,"endTime":1291.56,"body":"Nee, die deden ze in de cloud."},{"startTime":1291.56,"endTime":1293.92,"body":"Van de punten op je lijf."},{"startTime":1293.92,"endTime":1297.8,"body":"Ja, dus ze hadden een deel van hun spullen in de cloud draaien."},{"startTime":1297.8,"endTime":1301.16,"body":"Vooral de modellen die extra zwaar zijn, die draaien ze dan in de cloud."},{"startTime":1301.16,"endTime":1306.36,"body":"Maar de begeleiding voor het correct positioneren voor de camera, dat draaien ze op de mobiel."},{"startTime":1306.36,"endTime":1310.96,"body":"En zij hadden nog een trucje wat denk ik ook nog wel goed is om erbij te halen."},{"startTime":1310.96,"endTime":1317.2,"body":"dat ze zeggen van ja je start de app op en dan wordt het model gedownload naar je telefoon zodat"},{"startTime":1317.2,"endTime":1322.0,"body":"ze ten alle tijden ook een nieuwe versie kunnen deployen mochten ze een fout ontdekken of mocht"},{"startTime":1322.0,"endTime":1326.2,"body":"die minder accuraat worden en dat vind ik ook wel mooi dat ze dus aan de ene kant zeggen van"},{"startTime":1326.2,"endTime":1331.4,"body":"we knippen het op in kleine stukjes en we zorgen er dan voor dat het model ook nog dynamisch opgebouwd"},{"startTime":1331.4,"endTime":1336.36,"body":"kan worden. Dat zijn wel goede trucs. En door die modellen in kleine stukjes op te delen konden ze"},{"startTime":1336.36,"endTime":1341.46,"body":"de modellen ook heel klein houden, want ze wilden niet te veel toevoegen aan de grootte van de app."},{"startTime":1341.46,"endTime":1345.6,"body":"Want ja, bij Amazon heb je niet allerlei verschillende apps, maar je hebt één app."},{"startTime":1345.6,"endTime":1350.76,"body":"En er zijn natuurlijk andere afdelingen die ook van alles willen in zo'n app. Dus,"},{"startTime":1350.76,"endTime":1355.56,"body":"nou ja, door het in kleine stukjes in te delen. Eerst van, sta je goed voor de camera? Daarna"},{"startTime":1355.56,"endTime":1360.32,"body":"heb je goede houding? En daarna konden ze het verder opsturen. Vond ik echt een hele mooie..."},{"startTime":1360.32,"endTime":1363.12,"body":"Ja, dat is echt een mooi gemaakt oplossing."},{"startTime":1363.12,"endTime":1367.72,"body":"Nou, ik denk dat we zo helemaal rond zijn qua het dev gedeelte."},{"startTime":1367.72,"endTime":1369.92,"body":"Dus we hebben ML gehad in deel 1."},{"startTime":1369.92,"endTime":1372.52,"body":"Dit was deel 2, het dev deel."},{"startTime":1372.52,"endTime":1375.12,"body":"Wil je weten hoe het verhaal verder gaat over de ops?"},{"startTime":1375.12,"endTime":1377.12,"body":"Hoe hou je het in productie?"},{"startTime":1377.12,"endTime":1378.72,"body":"Blijf van luisteren."},{"startTime":1378.72,"endTime":1382.12,"body":"Zorg dat je Spotify ons volgt."},{"startTime":1382.12,"endTime":1385.32,"body":"Dan krijg je een seintje wanneer de volgende klaar staat."},{"startTime":1385.32,"endTime":1386.32,"body":"Wordt heel snel."},{"startTime":1386.32,"endTime":1388.32,"body":"En weer bedankt voor het luisteren."},{"startTime":1388.32,"endTime":1390.32,"body":"TV Gelderland 2021"},{"startTime":1390.32,"endTime":1392.32,"body":"TV Gelderland 2021"}]}