Data Talk #64: Marek Štěpán (DODO)
epizoda#64 | vyšlo | délka | 769 poslechů | permalink | mp3
Do dalšího dílu Data Talku přijal pozvání Marek Štěpán, data scientista z DODO.
V podcastu se dozvíte, jak se DODO daří zavádět data science, co všechno zajišťuje Marek z pozice úplně prvního data scientisty v organizaci, moderátoři Jirka Vicherek a Karel Šimánek proberou s Markem do hloubky také IT a data stack DODO, tři konkrétní projekty, kterými data science vykopli, i to, jak bylo těžké pro data science projekty nadchnout board. Zároveň se dozvíte, jak DODO mění stážisty v BI oddělení na zaměstnance.
Strojový přepis
Dobrý den, mé jméno je Jirka Pecherek.
Ahoj, tady Karel Šmáněk. A společně vás vítáme u nového dílu Data Talku. Dnes tady máme Marka Štěpána, prvního data scientistu v logistické společnosti Dodo. Ahoj, Marku.
Ahoj.
Než se dostaneme k tomu, jak v Dodu fungují data a jak se tam teď zavádí data science, pověz nám, jaká byla tvoje cesta, jak ses vlastně dostal ať už do Doda, nebo k datům, případně přímo k datové vědě?
Moje cesta asi začíná na Matematicko-fyzikální fakultě Univerzity Karlovy, kde jsem začal studovat matematiku. Člověk, který studuje matematiku a hledá nějakou aplikaci této matematiky, dříve nebo později skončí někde u dat. A já jsem se vydal právě touto cestou. Studoval jsem statistiku a ekonomii, a postupně jsem se dostal k machine learningu. Dělával jsem to vedle školy, protože mě to zajímalo, a navíc jsem měl možnost vyjet na Erasmus, kde jsem studoval právě machine learning a umělou inteligenci.
O jakém roce mluvíme, abychom to nějak časově zařadili? Předpokládám, že studovat machine learning a AI v jednom roce a o pět let později jsou hodně odlišné kategorie.
Bylo to v roce 2021. Spadl jsem do vlny Erasmáků, kteří zažili covid. Tudíž můj Erasmus byl hybridní – polovinu času jsem strávil v České republice, ale na druhou polovinu jsem naštěstí mohl vycestovat, takže jsem si ho užil naplno a vyzkoušel si tam spoustu praktických projektů. Byl jsem v Dánsku a tam je výuka velmi praktická, takže jsem měl možnost realizovat praktické projekty a pokračoval jsem dál směrem k datům, protože mě to bavilo.
Poté jsem si vybral studium na Vysoké škole ekonomické, Data Analytics for Business, kde se data berou v širším smyslu – od datových zdrojů přes data warehouse až k některým aspektům data science, které mě bavily nejvíc. Všechny volitelné kredity byly zaměřeny právě na tyto předměty. Přes VŠE jsem se dostal i do Doda, kde jsem nejdříve absolvoval stáž jako BI analytik a poté jsem se tam chtěl usadit na delší dobu. Bavili jsme se o mé budoucnosti a říkal jsem, co umím. Mého manažera to hodně nadchlo a vedení Doda také, takže jsme se pustili do data science.
Dodo je v českých končinách relativně známá firma, minimálně v technologické scéně. Přesto kdyby mezi námi seděl někdo, kdo o této společnosti nic neví, můžeš ji stručně představit? Co vlastně děláte?
Určitě. Jsme technologicko-logistický startup, který se soustředí na doručování poslední míle. Rozvážíme objednávky typicky ve městech – nejen v těch největších, ale i v menších. Jedná se o všechny druhy zboží. Nejčastěji jde o potraviny, jídlo, obědy, večeře, ale i další sortiment, jako například sportovní náčiní, nábytek, parfémy, prostě cokoliv, co se ve městě doručuje.
A vaši koncoví zákazníci jsou firmy, nebo jednotlivci – běžní uživatelé?
My fungujeme jako B2B firma, což znamená, že naši partneři jsou firmy, ale doručujeme konkrétním zákazníkům. Když se někdo objedná na online platformě, vybere si potraviny, spolupracujeme s touto platformou a doručujeme objednávku konkrétnímu zákazníkovi.
Proč jsi si vybral Dodo? Předpokládám, že na velkých a zajímavých projektů bylo více, přičemž logistika je datově velmi náročná a zajímavá, což se navíc během covidu ukázalo dvojnásob. Proč tedy právě Dodo?
Měl jsem na výběr stáž s dvěma kritérii. Za prvé, aby bylo dostatek zajímavých dat, a za druhé, aby byla firma zajímavá a měla velký potenciál růstu. Výběr stáží jsme dělali v době, kdy měl Dodo poměrně velkou popularitu díky nedávné investici, která pomohla firmě růst. To mě zaujalo. Zároveň je logistika oborem, kde jsou opravdu velká data, se kterými je možné pracovat.
Takže jsi byl na stáži v BI oddělení a tam ses poprvé dostal k velkým logistickým datům. Co jste tam řešili, než jste se pustili do data science? Jak vypadala tvá práce? Co tě tato zkušenost naučila?
Poprvé jsem měl možnost vyzkoušet si práci BI analytika v praxi – vytváření reportů, přípravu dat pro tyto reporty a podobně. Byla to pro mě velmi zajímavá první zkušenost, protože v startupu BI analytik dělá všechno. Setká se s business týmem, zjistí, jak zákazníci data chtějí, co z nich chtějí poznat, jaké metriky jsou důležité. Data sbírá, pracuje na jejich integraci z různých zdrojů, připravuje metriky a vytváří vizualizace.
Z této stáže jsem si odnesl kompletní zkušenost BI analytika a během čtyř měsíců jsem dokázal vybudovat jeden projekt. Konkrétně to byl tzv. scouring report – zajímavý úkol, kdy zpětně kontrolujeme kurýry. Jednou z našich hodnot je kvalitní doručení, aby zákazník byl maximálně spokojený. Kontrolujeme tedy, jestli doručení proběhlo v nejvyšší kvalitě a jak se kurýři chovali na cestě. Naše auta mají na sobě nálepku Dodo, takže je důležité, aby reprezentovali jméno firmy i během doručování.
Jak vypadá BI oddělení v Dodu? Nebo jak vypadalo, když jsi tam přišel, a jak vypadá dnes? Předpokládám, že tam proběhla nějaká dynamika.
BI oddělení v Dodu roste poměrně rychle, spolu s rostoucími nároky na data a data-driven rozhodování. Když jsem tam přišel, byli jsme čtyři stážisté na dva BI analytiky. To byl hodně rychlý růst. Čtyři stážisté zůstali a postupně jsme se dostali ze dvou na šest lidí. Dnes už je nás v týmu jedenáct a začínáme se rozdělovat na dva podtýmy.
Marku, když tě zastavím, fascinuje mě, že konverze 100 % stážistů na zaměstnance je poměrně vzácná u mnoha firem, které mají programy směřující na studenty či absolventy. Co podle tebe za tím stojí, že to takto dobře fungovalo – byl program dobře postavený, nebo jsi to jako student, který začíná svou kariéru v Dodu, vnímal jinak?
Myslím, že tam byly dva faktory. První je startupová atmosféra – všichni jsme nadšení a firma roste, což láká člověka, aby zůstal. Druhý faktor je náš manažer Lukáš Pernička, který ke každému přistupuje individuálně, sleduje, co ho baví a v čem je silný. Člověk tak několik měsíců rozvíjí své silné stránky a cítí, že dělá práci, která ho baví. Přirozeně tak vznikne touha zůstat v této firmě.
Jak jsi říkal, startupová atmosféra láká k vlastní iniciativě – něco vymyslet a prosadit až k vedení firmy. Fungovalo to tak i u vás? Nebyly tam nějaké limity, co se smí a co ne?
Určitě se to potvrdilo. Všichni stážisté nějakým způsobem něco vymysleli, co se dostalo až nahoru k vedení. To je asi důvod, proč jsme tam všichni zůstali – měli jsme nápady, jak něco vylepšit či udělat nového. Pokud měla iniciativa hlavu a patu, vedení ji podpořilo. To je přesně ta startupová kultura, kterou popisuju.
Máte nějaký zajímavý případ, nejen tvůj, ale i ostatních stážistů, kde čerstvý absolvent skutečně transformoval business?
Mám několik příkladů. Jeden kolega data engineer přišel s nápadem, že naše datové transformace nejsou optimalizované a navrhl je zrychlit. Před tím na to ale nebyl čas ani kapacita a ani nikdo nevěděl, že by to mělo smysl. On měl potřebný technický stack a pustil se do toho – a tím výrazně zrychluje dodávání dat.
Druhý příklad je projekt One Concept Reportingu, tedy vytvoření aplikace, která uživateli umožní proklikat se různými reporty, které nejsou samostatné, ale vzájemně integrované a propojené.
Mají tyto projekty už konkrétní vliv na business a výkonnost firmy, nebo se teprve plánují?
Tohle je hodně měřitelná oblast, protože my velmi řešíme efektivitu. A v logistické firmě, kde doručujeme zásilky, se efektivita hodnotí podle počtu potřebných aut a kurýrů. Pokud nějaký projekt ušetří auta nebo kurýry, dostává téměř vždy zelenou.
Zajímavé projekty pro lidi z Matematicko-fyzikální fakulty, to chápu.
Ano, ano.
Než se ale dostaneme k hlavnímu tématu, tedy jak rozjet data science ve firmě jako první data scientist, pojďme se ještě podívat na to, jak to v Dodu vypadá s daty. Co je základ, jaký je kontext, do kterého jsi vstupoval? Už jsi zmínil, že BI sestava vyrostla na jedenáct lidí. Jaký tam máte technologický stack? Jaké problémy řešíte? Předpokládal bych, že v Dodu panuje velmi datově řízená kultura vzhledem k typu businessu. Můžeš nám tedy přiblížit BI tým a poté i tvůj tým data science?
Rád. Nejsem sice úplným expertem na BI, ale vím, že máme spoustu datových zdrojů. Hlavně je to naše interní platforma Gaia, která plánuje trasy, zohledňuje směny kurýrů a optimalizuje časové sloty pro zákaznické objednávky. Dále máme zákazníky, kteří nám posílají objednávky mimo tuto platformu, takže tato data musíme integrovat. Kromě toho máme záruky, SLA, data o kurýrech a další. Celkově máme více než třicet datových zdrojů.
V současnosti spravujeme asi 20 reportů s více než stovkou stránek, což je slušné číslo pro jedenáct lidí v BI.
Jaký je technologický stack? Vím, že nejsi expert na infrastrukturu, ale pro naše posluchače by bylo zajímavé vědět, kde všechno běží, jaký máte cloud, jaké používáte ETL nástroje, databáze a reporting. Stačí stručný přehled.
Určitě. Většina běží na Azure, s podporou české firmy BizTreat, která nám poskytuje platformu BizFlow pro ETL procesy. Ta je postavena nad Apache Airflow schedulerem. Všechny transformace si píšeme sami v SQL nebo Pythonu, což platforma BizFlow umožňuje. Pro tvorbu reportů používáme Power BI.
Máte nějaké technologické plány do budoucna? Plánujete změny nebo modernizaci současného stacku?
Ano, díváme se dopředu. Uvažujeme o migraci do modernějšího data warehouse. Zvažujeme Microsoft Synapse Analytics nebo Fabric, které je nyní v betaverzi.
Zmínil jsi Python, což je pro mě zajímavé, protože většina z vás je ze studia zvyklá. Proč tíhnete spíše k SQL než například k Databricks, který je v Azure a Python má jako interní jazyk pro transformace, místo nějakého workaroundu?
Myslím, že je to trošku historické. BI tým v Dodu budovali Bystříd a Lukáš Pernička, současný manažer BI, kteří preferovali SQL. Postupně ale přecházíme na Python a refaktorujeme spoustu transformací. Databricks je možná jedna z budoucích cest, uvidíme.
Ještě než skočíme, s jakými zajímavými projekty se v BI věnujete? Už známe tým i technologie, co je u vás prioritou?
Zmíním tři projekty. Hodně se soustředíme na zónovou logistiku, což je problém sdílení zdrojů ve městě. Chceme, aby kapacity byly sdílené s určitými pravidly – například na kole nelze odvézt ledničku, k převozu masa je potřeba auto s chlazením. Pro tyto účely vytváříme nové reporty.
Máme nový pohled v near real time režimu, což je novinka.
Ještě se k tématu zónové logistiky vrátíme.
Určitě.
Musím se tě zeptat, protože když se řekne logistika, vybavím si paralelu s plánováním a optimalizací, což je velmi blízké Matematicko-fyzikální fakultě. Jak toto řešíte? Report vám pomůže se svozem, i když pár sekund opožděně, ale nevyřeší operativní plánování.
Jak v Dodu funguje plánování operativy? Pokud chcete například implementovat nějakou novou funkci, jak to dostáváte do systému?
Tímto se my v BI přímo nezabýváme. Operativní plánování probíhá v interních systémech. Máme speciální nástroj – plánovač, který zajišťuje celý proces.
(rozhovor pokračuje)
gro toho našeho byznysu. Ten vlastně schroustá všechny ty vstupy a vyplivne jednotlivé trasy pro ty jednotlivé kurýry.
No, jaké jsou ty další dvě věci teda? Řekl jsi první, než ti do toho Karel takhle skočil.
Jasně, ta další věc, kterou se teď zamýšlíme, tak je dynamický pricing, který rozvíjíme a vlastně v BI jsme ti, kteří na to připravují data. To znamená, že potřebujeme zjistit, jaký je náklad na jednotlivé auto, což v kombinaci na jednotlivé auto a dokonce na jednotlivého kurýra a na jednotlivou objednávku není vždy úplně jednoduché napočítat. Takže to je teď velký projekt, který nás zajímá, a jeho výsledkem by potom měl být nějaký pricing, který se odvíjí od poptávky po jednotlivých slotech.
Například v časy, kdy si chce nákup objednat každý, tak ten slot bude o něco dražší, ale naopak budeme moct nabídnout levnější sloty, kdy máme volné kapacity, a tím vlastně tu dopravu udělat ještě trochu efektivnější.
Takže z nějakého technického pohledu je to taková statistika, kterou potom budete aplikovat do reality.
Přesně tak, je to nějaká statistika, která v sobě zahrnuje právě různé agregace a alokace nákladů, protože některé náklady jsou na měsíční bázi, některé jsou na bázi samotné objednávky a podobně.
A teď se možná dostáváme do toho, kde se vlastně ten jeden svět, to znamená vývoj, jak jsi sám říkal, s BI někde musí propojit. Jak vlastně dáváte vstupy pro ten plánovač a pro nákup těch věcí?
Tohle se asi týká spíš našeho interního systému a my v tomhle hodně spoléháme na GAI. Máme vlastně jednu ze součástí GAI, která je takzvané delivery, což je aplikace přímo pro kurýry. Oni mají vždycky jednotlivý úkol, který když nám odkliknou, že splnili, tak my dostaneme nějaká data o tom, kde při tom byli, v kolik se to stalo, jak dlouho trval ten úkol a podobně. Takže to je vlastně ten...
Jsem měl na mysli spíš ten druhý směr – když vy něco spočítáte a váš výstup ovlivňuje vlastně tu GAI jako takovou, tak jaké dáváte vlastně ty data, ty vstupy?
Jasně, tak tam to probíhá přes most nějakého byznysu. To znamená, když my vytvoříme nějaká data, respektive připravíme nějaké vizuály nebo nějakou byznysovou informaci, tak jdeme za tím člověkem, který je za to byznysově zodpovědný. Ať už je to nákup, leasing aut, nebo nábor kurýrů. Tak jdeme za tím člověkem a on potom vlastně upravuje ty vstupy v GAI. Tím máme i tu zpětnou kontrolu, že data dávají dobrý smysl. Takže interface v tomhle případě je člověk.
Je to tak. Vlastně naším klientem je člověk. Nechrumkáme ta data zpátky do interního systému.
No a ta třetí teda?
Jasně, a ten třetí projekt, který je teď hodně zajímavý, je projekt, který se možná už někde dělá, ale pro nás bude velká novinka. Chceme být schopni napočítat PNL denně. Což je velká změna, protože normálně má člověk nějakou uzávěrku, chvíli to trvá a data dostane management později. Takže používáme tam i trochu data science, abychom dokázali odhadnout náklady v ten konkrétní den na danou objednávku a pobočku, abychom byli schopni odhadovat PNL denně a odhalovat případné chyby nebo neefektivity mnohem rychleji než třeba o měsíc a půl později.
No, to zní, že máte hodně věcí k řešení a na druhou stranu jsou to celkem komplexní úlohy. Zní to jako něco, kde data science bylo vždycky, ne? Že jsou to velké matematické úlohy, ne jen vizualizace nějakých byznysových metrik, ale zatím byly velká rozhodnutí a komplexní matematika.
Tak co je teď nového na tom, že ty máš vizitku data scientist a jak se tohle stalo a co to bude znamenat pro Dodo?
Máš velkou pravdu. Z mého pohledu, když jsem řekl, že chci v Dodu pokračovat a dělat data science, tak jsem hledal projekty, které můžeme jako data science dělat, a zpětně teď zjišťuji, že spousta data science projektů se dělá a děje, jen se takto nenazývají. Jsou to projekty vyžadující matematiku, optimalizaci. Hodně je potřeba nad tím přemýšlet.
Myslím si, že v BI děláme mnohem víc než jen surová data a grafy. Insighty poskytujeme už dlouho, jen tomu neříkáme data science. Chyběl tam trošku machine learning a AI, což teď právě přibylo, a proto se tomu začalo říkat data science. Přidal jsem se já jako data scientist a to je asi hlavní rozdíl. Ale zajímavé projekty s jednoduchým matematickým řešením se dělají pořád.
A jak se to stalo? Už jsi v minulosti říkal, že důvodem, proč jste zůstali v Dodu, byl právě Lukáš a možnost osobního růstu.
Bavili jste se, co bys chtěl dál dělat? Nebo jste se bavili, co Dodo potřebuje? Nebo jsi dostal nabídku: „Hele, potřebujeme data science, nechceš si to vzít na starost?“ Jak probíhala diskuze? A co z toho máš za lessons learned pro někoho, kdo je v podobné pozici?
Určitě. Ta diskuze probíhala tak, že jsem přišel s tím, že mě to tady baví, ale úplně se nevidím jako BI analytik, mám více zkušeností jako data scientist, studoval jsem víc předmětů a absolvoval kurzy. Lukáš řekl jasně, není problém tě tady tím směrem profilovat, ale najděme projekty, které dávají smysl. Pokud najdeme projekt, pojďme do toho.
Lesson learned: pokud tě něco zajímá, ozvi se a aktivně vyhledávej projekty. Data science projekty nepřijdou samo od sebe shůry. Spíš je potřeba podívat se na firmu, potkat s lidmi, zeptat se, jestli nemají něco, co by data science mohlo řešit.
Takže postup byl takový.
Lesson je tedy: ptej se manažera a spousty lidí ve firmě, jestli by jim data science nepomohlo, a pravděpodobně dostaneš ano, pokud ve firmě jsou data.
Super, a jak daleko tohle všechno je? Kdy to začalo?
Vlastně prosinec 2022, kdy jsme dělali průzkum projektů. Viděli jsme spoustu projektů, možná více než 20. Původně jsme mysleli, že jich bude méně, ale nakonec bylo vybrat mnohem náročnější. Další fáze byla evaluace projektů, vytřídění toho, co je data science a co ne, a odhad přínosu a náročnosti implementace.
To mě zajímá – jak se firma transformuje k data science, jak vznikl ten funnel? Jakým způsobem ti lidé předávali požadavky? Musel jsi jejich požadavky transformovat do něčeho konkrétního? Nebo jsi často přicházel s nápady ty?
Dobrá otázka. Ze začátku to šlo hodně ode mě. Vymyslel jsem několik use caseů a šel za odděleními – HR, sales, provoz – a říkal jsem, že by se dalo dělat machine learning a co by je mohlo zajímat.
Většinou jsem jim předložil jeden, dva projekty a společně jsme našli další tři, čtyři.
Pak jsem šel zpět a zjistil, jestli je to opravdu data science, nebo jen chybí data a graf.
To byla první fáze. Druhá fáze byla rozmyslet si use case, výstup a validačně to s nimi řešit zpátky.
Měli jsme pět, šest projektů, o kterých jsme se bavili – dva nebyly data science, dva vyšly, že za málo muziky s velkou snahou, a dva se zdály perspektivní.
Přistoupili jsme k tomu, zda máme vstupy a jestli výstup odpovídá.
A když se vrátím úplně na začátek, říkáš, že většinu nápadů jsi vymyslel ty.
Jsi v tom trochu speciální případ, protože nemáš tolik praktických zkušeností, spíš akademické, slabší implementační praxe.
Jak jsi k těm prvním nápadům přicházel? Dělals research, koukal po konkurenci, nebo šlo o kombinaci?
Je to kombinace. Trochu externí research – co řeší logistické firmy, pocit ze školy, kde jsme měli projekty s daty.
Pak porozumění interním datům a setkání s lidmi, co je zajímá.
Pak se z toho vykrystalizovalo propojení: co jsem dělal na škole a volně, a co by se dalo použít na use case ve firmě.
A do jaké podoby jsi to transformoval? Máte už těch cca 20 projektů popsaných?
Jaká je pipeline? Kolik z nich je hotových? Jak vypadají nehotové?
Víceméně jsme se shodli na použitelných cca osmi projektech z těch 20.
Ty jsme pak hodnotili podle přínosu a náročnosti.
Šli jsme s tím na board. Mysleli jsme, že odhlasují jednoduchý projekt, který zvládneme během jednoho kvartálu.
Ale byli trochu překvapení, protože vzhledem k velikosti a ambicím chce board hned top tři projekty.
Takže odpadly projekty, které nebyly v top 3.
Pak jsme diskutovali mezi nimi a vybrali tři do pipeline.
Konkrétně jde o prediktor objednávek, predikci nebo celkovou evaluaci kurýrů (kvůli velké fluktuaci), a optimalizaci utilizace vozidel.
Dnes máme spoustu aut, musíme být připraveni, což znamená, že někdy jich je víc než je potřeba, pokud nemáme algoritmus na optimalizaci.
Mě fascinuje ta prioritizace – je to velmi náročný trade-off.
Myslíš, že by jiná logistická firma podobné velikosti, se stejným technologickým stackem v Uruguayi, měla stejné priority a projekty?
Je to nějak generalizovatelné? Chcete predikovat objednávky, chcete optimálně využívat kurýry a auta.
Nebo je to vaše specifikum, váš business model a vize? Třeba nechcete být nejlevnější.
Ještě doplním otázku: jak jste posuzovali přínos? Protože když děláte prioritizaci, tak často nevíte, jak moc to přinese, dokud to nezkusíte.
Určitě odpovím na obě otázky.
Myslím, že obecně jsou to problémy, které logistická firma řeší.
Prioritizace závisí na firmě.
Pokud má firma pětinu kurýrů, možná pro ni nebude fluktuace takový problém.
Nebo má jiný business model, např. odebírá poptávkové predikce od externí firmy.
Takže problémy jsou podobné, ale pořadí v prioritách je unikátní podle velikosti firmy a business modelu.
A proč jste vybrali právě tyhle tři problémy?
Máte dost kurýrů, takže už se jedná o optimalizační úlohy. Vybudovali jste business a máte dost historických dat, díky čemuž se to dá řešit a učit se z dat?
Ano, přesně. Máme dost historických dat a to bylo také jedno z kritérií evaluace.
K tomu jsme hodnotili projekty tak, že jsme se dívali na současný stav a pak na potenciál algoritmu, tedy kam by se stav mohl posunout.
Tak jsme získali představu o přesnosti současného stavu vs. ideálního stavu.
Doporučil bych do výpočtu přidat koeficient, kolik se z toho skutečně podaří implementovat do byznysu.
I přestože by se přesnost nezvýšila tolik, jak plánujeme, hodnota je dostatečná pro implementaci.
Ale to se hodně liší případ od případu.
Když chceš dělat demand forecast, jak jsi to prezentoval na boardu?
Řekl jsi, o kolik to zpřesníte?
Podíval jsi se na průměrnou přesnost algoritmu?
Více méně ano.
Zohledňovali jsme dvě věci:
Jaká je přesnost současného modelu, což jsme spočítali z našich dat a z provozních vstupů.
A pak také, jaká je možná přesnost u moderních algoritmů.
Dále nám pomohl podobný projekt, který jsme měli – nazýval se Prediktor objednávek od externí firmy.
Ti měli svůj interní cíl a my jsme...
(text končí)
Stanovili jsme si o něco vyšší cíl. V minulosti jsme měli takový projekt na menší škále, který predikoval data pouze pro jednu konkrétní oblast. My jsme však chtěli vyvinout něco většího a měli jsme jasný bod, ke kterému se chceme upnout, a to je těch 8 %, kde jsme si řekli, že budeme lepší.
Mohl bys nám říct něco víc o tom, jak to plánujete dělat? Myslím, že je to projekt, který už se implementuje. Možná to byla vaše priorita číslo jedna.
Ano, je to tak, přesně tak. Vybrali jsme prediktor objednávek, kde se snažíme predikovat poptávku. Co je k tomu důležité říct, je to, že pro nás bylo jedním z nejdůležitějších kroků určit si granularitu, na které chceme data predikovat. Celkový počet objednávek, které budeme mít, jestliže známe číslo přesně, je sice hezký, ale moc nám to nepomůže. Stejně tak nám nepomůže predikce za celou zemi nebo třeba za jednotlivé partnery.
Byla potřeba jít mnohem podrobněji. Takže jsme se dostali k jednotlivým pobočkám. Mluvili jsme prakticky o stovkách časových řad a museli jsme tento problém nějak pojmout.
Pokud se dostanu ke konkrétnímu projektu, nejdříve jsme se museli podívat, které pobočky do něj vlastně zařadíme. Máme pobočky, které mají příliš málo dat na to, abychom z nich mohli statisticky něco odvodit. Dále máme pobočky, které byly aktivní v minulosti, ale dnes už nejsou. Jsou i pobočky, které měly určitou pauzu v aktivitě.
Například při čištění dat se nám často stávalo, že během covidu mnoho poboček bylo rekonstruováno. Zvláště ty, které byly uzavřené a měly tedy určitou časovou pauzu. Proto prvním krokem bylo právě čištění dat, protože ta rozhodně nebyla připravená na modelování.
Plánovali jste pro každou pobočku zvláštní model, nebo jeden model pro všechny pobočky? Setkávali jste se s klasickým problémem – jeden model na vše, nebo více individuálních modelů?
Řešili jsme přesně tuto otázku a vybrali jsme přístup vytvořit jeden model pro všechny pobočky. Argumentem bylo, že máme mnoho klientů, kteří jsou si navzájem podobní, a tím pádem se model může učit, že například poptávka v Přerově bude podobná jako v Prostějově a tak dále.
Nápad byl vytvářet jeden model pro všechny pobočky. Nyní, když už se projekt implementuje, ten prediktor už běží a jsme ve fázi jeho vylepšování. Součástí této fáze je vytvořit model pro každou pobočku a přidat jej do celkové predikce. Díky tomu získáváme větší specifičnost pro konkrétní pobočku.
Predikce je na konkrétní den?
Predikujeme nejen na jeden den dopředu, ale na 14 dní dopředu. Celkově je totiž využití prediktoru určeno pro plánování kapacit, tedy plánování směn kurýrů a přípravu počtu aut. Na jedno den dopředu to nestačí.
Jaká je tedy granularita? Nepredikujete například po hodinách?
Máme druhou část algoritmu, která využívá historická data k rozdělení denní predikce do hodinových slotů. Plánujeme totiž směny kurýrů přesně navázat na poptávku. To znamená, že potřebujeme nejen denní granularitu, ale i rozpad na jednotlivé hodiny: například zda potřebuji čtyři kurýry večer a deset dopoledne, což je velmi významný rozdíl.
Takže pro vás jsou to dva modely: jeden řeší celkový počet za den a druhý rozpad v rámci toho dne.
Přesně tak. Technicky dnes fungují dva modely. Predikujeme denní hodnoty a potom je rozdělujeme do hodin.
Když se podíváme na časový průběh projektu: líbilo se mi, že jste na začátku opravdu navštívili pobočky, mluvili s byznysovými lidmi a viděli byznysovou realitu. Současně jsi zmiňoval, že jde o váš první datově analytický projekt (data science projekt) a že to má samozřejmě jiná pravidla. Jak jste tedy projekt rámcově představovali na boardu? Řekli jste třeba: „jdeme dělat data science“ nebo „chceme implementovat AI“ nebo „rozšiřujeme BI“? Jak jste to formálně představili nahoře?
Přesně tak jsme to představovali. Museli jsme vysvětlit, co znamená data science. Použili jsme výraz AI, tím jsme si pomohli, ale víceméně jsme popsali data science jako možnost odhalit z velkých dat informace, které člověk sám nevidí. Přidávali jsme různé příklady jiných úspěšných projektů. Board si pak utvořil představu, co data science je a začalo se jim to líbit. Zjistili vlastně, že možná celou dobu podobné věci chtěli, jen neznali název.
Jaký je rozdíl v zadání nebo kontraktu tvé práce oproti práci seniorního BI analytika?
Z mého pohledu je BI spíše waterfallový styl práce, víc každodenní byznys. Data science je více výzkum a vývoj, je tam nejistota a delší iterace.
Znamenal to pro tebe zároveň nějaké „okolíkování“ prostoru, kdy jsi musel říct, že teď to není BI, ale dejte mi čas třeba na měsíc, abych se mohl věnovat modelování? Nebo jakým způsobem to proběhlo?
Ano, přesně tak. Museli jsme to vysvětlit i boardu, že data science je více R&D než každodenní byznys. Žádali jsme tedy čas, že něco vyzkoušíme a řekneme, že z 80 % se to povede, ale není to úplně jisté. Jsem vděčný, že board byl nadšený a odsouhlasil takový víceměsíční projekt, kde není garantován úspěch na 100 %. U nás to přijali velmi pozitivně, ale bylo potřeba vysvětlit, že výsledky nebudou za 14 dní, ale spíše v řádu měsíců.
Co pro tebe znamenal ten první projekt? Znamenalo to, že jsi musel být „one-man army“, tedy dělat zároveň datového inženýra a všechny úkony s přípravou dat a čištěním? Nebo už je v týmu systémová podpora data science?
Určitě úplně nevyčleňujeme data science z BI týmu. Nakonec jsem měl podporu od datového inženýra a BI analytika. Ovšem čištění dat a příprava pro modelování byla čistě moje práce. Byla to práce „one-man army“ v tom smyslu, že jsem řešil i všechny technické problémy během přípravy dat pro strojové učení. Stejně tak optimalizaci algoritmů a zpracování výstupů.
Mluvili jsme o druhém modelu, který rozděluje denní predikci do dílčích hodinových slotů a pak jste zmínil i třetí, který počítá konfidenční intervaly. Ty všechny jsi tyto části připravoval sám?
Ano. Kolegové z Data Engineering týmu mi pomáhali s napojením na systémy a úložiště. Kolegové z BI vytvořili krásný report, který slouží jako vstupní brána, když uživatelé chtějí vidět predikce objednávek.
To, že začínáte první projekt, který zatím není úplně v produkci, ale je kandidátem do produkce, a plánujete jej nasadit do budoucna. Jak ale řešíte nasazení modelu v produkci, jeho udržování, a governance modelu? Jak máte vyřešený MLOps?
To je zatím velmi punkové, vlastně vůbec nemáme nic předpřipraveného. Model v produkci běží spolu s reportem, lidé jej začali používat a dávají nám zpětnou vazbu – co nefunguje, co spadne. Občas kalkulace spadne, takže MLOps teprve objevujeme. Je to pro mě nové, učím se to v praxi.
Mám tedy správné pochopení, že máte kalkulaci, která v 95 % případů proběhne, když ne, opravíte ji a poté přes report ji prezentujete uživatelům?
Ano, přesně tak. Máme to docela pěkně ošetřeno, a když dojde k problému, řeším jej já.
Zmínil jsi prioritizaci případů (kejzů) a nový vznik datasetového oddělení. Mělo to vliv i na to, že začali více diskutovat o generativní AI? Někteří lidé, kteří se o to předtím nezajímali, začali být výrazně zvědaví nebo pod tlakem to rychle vyzkoušet?
Nevzniklo to úplně jako „fomo“, ale rozhodně to změnilo myšlení lidí, hlavně exekutivců. Změnil se pocit „Tohle znám, tohle to umí, pojďme něco podobného zkusit“. Nemyslím si, že každý by potřeboval dělat tyto projekty bez přemýšlení, ale je určitě větší ochota nové věci adaptovat.
Je ve vašem seznamu projektů „generative AI driven“ projekt?
V době, kdy jsme to připravovali, ještě ne. Ale nyní už máme několik use-casů, přemýšlíme, jak je uchopit. Například nás trápí, že jsme startup a nechceme pořád vytvářet manuální dokumentace. Takže možnost využití generativní AI na self-dokumentaci vnímáme jako zajímavý projekt.
Druhý use-case, který řešíme, je nástroj, který by z přirozené řeči generoval SQL dotazy nad naší databází. Je to hlavně Development věc.
Máte také něco zákaznicky orientovaného?
Zatím ne, zatím nemáme.
Které další dva projekty jste hledali nebo listovali?
Druhý projekt se týkal kurýrů. Chtěli jsme zjistit, jak jsou spokojení v práci, jak jejich pracovní podmínky a doba zaměstnání ovlivňují jejich výkon, a jak zvýšit jejich spokojenost a udržet je u nás déle.
Třetí projekt se týkal aut. Chtěli jsme mít správný počet aut na správném místě. Abychom byli schopni vždy poskytnout kvalitní službu a nebyli jsme předimenzovaní, protože dnes máme rezervy v počtu aut, které mohou být někde navíc. Cílem bylo optimalizovat počet i rozmístění vozidel.
Jak to souvisí s prvním projektem? Nevíme, co je pro vás pobočka. Říkal jsi, že predikujete počet objednávek na pobočce. Máte pobočku jako lokalitu? Nebo je to něco jiného?
Pobočka je místo, odkud rozvážíme, tedy místo daného partnera. Například KFC Letňany je pobočka, nebo Tesco Letňany. Jsou to konkrétní klienti, se kterými máme komunikaci.
Takže pobočka je místo, kde nejvíce nakupujete přes Dodo?
Ano, to jsou klienti, které i sám využívám.
Jak souvisí pobočka s lokalitou?
Když známe nároky a poptávku na jednotlivé pobočce, můžeme spočítat celkovou poptávku v dané lokalitě a to nejen celkově, ale i podle jednotlivých produktů.
Například u KFC je rozdíl mezi teplým kuřetem a chlazeným kuřetem, u Stezky zase jiné produkty. Toto umíme takto sjednotit.
Jedna část je tedy predikce počtu objednávek, druhá související část se týká určení počtu kurýrů potřebných k jejich rozvážení a třetí pak počet a typ aut, které jsou pro to potřeba.
Logistika tedy řeší primárně mít k dispozici člověka a prostředek dopravy, což je právě základ, který řešíme.
Když to tak říkáš, zní to strašně jednoduše. Že logistiku by možná zvládl každý, ale přitom máte velký vývojářský tým, který se stará, aby cesty byly maximálně optimalizovány.
Ano, logistiku možná zvládne každý.
Kdo tedy podle tebe má dělat data science? Jaká je podle tebe perspektiva?
U nás nadchla data science řadu kolegů, kteří přemýšlí, že by se tomu chtěli naučit nebo se zapojit do projektů. Data science je víc R&D, vyžaduje hlubší práci s daty.
(Poznámka: Text končí zřejmě nedokončený, ale zachovává význam a obsah.)
Ký čas tím vývojem, nenechat se odradit tím, že něco nejde, nebo že výsledky nejsou tak dobré, hledat nová řešení, která by mohla přinést lepší výsledky. Tohle je profil toho člověka. Naopak člověk, který je více task-based, ve smyslu, že dostane nějaké konkrétní zadání a má ho vyřešit, si myslím, že se více hodí právě na BI analytika. Pokud je to heavy coder, tak na data inženýra. Pokud je to člověk, který raději bádá a objevuje něco v datech, potom je zajímavý profil data scientista.
Nyní máte před sebou tři velké projekty, nebo jeden a půl, dva a půl, proměň. Jasně. Jaké jsou vaše plány? Budete stavět tým, abyste to zvládli, nebo to budete zvládat sám?
Momentálně je to na mně, ale určitě máme projekty a plány, že budeme data science tým rozvíjet. V týmu máme teď šikovného stážistu, který umí také data science a má za sebou nějakou zkušenost. Jeden z našich data inženýrů se tomu hodně věnuje ve vyhrazeném čase pro osobní development. Myslím si, že data science tým v BI bude růst a i když je to teď jen součást našeho back-end týmu, vyvine se vlastně ve třetí samostatnou část BI v Dodu.
Jak vnímáš data science v čase? Jeho role bude růst, každá firma bude mít své data science oddělení, tak jako dnes má každá větší firma BI oddělení. Vnímáš to tak, že tím, čím si teď procházíte v Dodu, projde v nějakém čase téměř každá technologická firma?
Myslím si, že ano. Data science obecně dává ve firmě smysl až od určitého počtu dat, protože právě na tom je potřeba stavět, aby se modely mohly učit a aby mohla probíhat optimalizace. V určité fázi tak asi každý startup, který sbírá dostatek dat, přijde k data science. Čím větší firma je, tím větší dopad to může mít, protože typicky data science projekty přinášejí úsporu nebo zlepšení o jednotky či nízké desítky procent. To má velmi vysoký vliv, pokud základ, z něhož se procenta počítají, je vysoký.
Data science tedy asi není úplně pro firmy o 20 lidech, ale jakmile má firma tříciferný počet zaměstnanců, začne dávat smysl uvažovat o data science, protože to má význam u velkých projektů.
Děkujeme moc, Marku, držíme palce, ať data science v Dodu má zářnou budoucnost a ať se zde brzy potkáme s novými projekty a lessons learned, které jste na své cestě nabrali.
Děkuji moc, já děkuji za možnost sdílet svoji zkušenost a věřím, že data science v Dodu poroste. Třeba se tu potkáme a povím o dalších zkušenostech.
Budeme se těšit. A to je všechno. Děkujeme, že jste vyslechli až sem, a děkujeme také našim partnerům: Big Hubu, Recombee, Intex, NanoEnergies, Lifesportu, Sazce, ByStreetům, Colors of Data, Revol BI a GoodData.
Pokud vás zajímá více z české datové scény a datových technologií globálně, nechte nám e-mail na datatalk.cz. Nebo přijďte na jeden z našich meet-upů DataMesch.cz.
Nechť vás provázejí data.