Data Talk #63: Petr Pleticha & Lukáš Pastorek (Sazka)
epizoda#63 | vyšlo | délka | poslechů | permalink | mp3
Do dalšího dílu přijali hned dva hosté ze Sazky – Petr Pleticha a Lukáš Pastorek. Petr je data engineering lead a Lukáš první data scientista, oba jsou v Sazce součástí oddělení BI, konkrétně Data engineering teamu. S Jirkou Vicherkem se baví, jak v Sazce spolupracuje data engineering a data science, proč žijou datoví vědci v bublince, co je super a ne tak super na najímání externích konzultantů i co všechno změnil cloud a real-time data.
Strojový přepis
Dobrý den, jmenuji se Jirka Vicherek a vítám vás u dalšího dílu Data Talku. Dnes tu mám dva skvělé hosty, oba ze Sazky – Petra Pletichu a Lukáše Pastorka. Ahoj kluci!
Ahoj!
Kluci spolupracují v jednom týmu Data Engineering v oddělení BI ve Sazce. Zatímco Petr je Data Engineer a brzy se stane Team Leaderem, Lukáš je vůbec prvním Data Scientistou v celé Sazce. Dnes se budeme bavit právě o spolupráci Data Engineeringu a Data Science na konkrétních příkladech toho, co ve Sazce vymýšlejí a dělají.
Děkuji, že jste přišli, kluci.
Díky za pozvání.
Děkujeme.
Než se pustíme do toho, jak to funguje ve Sazce, v tomto kontextu doporučuji díl vašeho šéfa, možná byste jej měli doporučit vy – Martina Košinu, který popisuje, jak data fungují ve Sazce obecně.
Pojďme si tedy dát nějaký kontext vás dvou. Petře, jak ses dostal do Sazky, jaký je tvůj background a jak ses dostal k datům?
Já jsem se do Sazky dostal trochu náhodou. Můj background je vlastně akademický. Jsem vystudovaný ekonom a doktorát obhajuji za měsíc. Původně jsem pracoval v akademické sféře na Akademii věd. Následně jsem přešel do veřejné sféry, kde jsem radil v Poslanecké sněmovně. Pak jsem však trochu vyhořel, už mě ta veřejná správa u stolu nebavila. Rozhodl jsem se posunout směrem k datům, která mi byla vždycky blízká, protože například data v ekonomii jsou nedílnou součástí výzkumu a veřejná správa by měla data využívat alespoň jako základ pro rozhodovací procesy. Proto jsem hledal nové příležitosti a Sazka mi takovou nabídla.
Ještě než půjdeme dál, s jakými tématy jsi vlastně v Poslanecké sněmovně radil?
Byla to energetika a hospodářská politika.
Zajímavé, zajímavé. Lukáši, co je tvůj příběh a cesta do Sazky?
U mě to bylo tak, že jsem do Sazky nastoupil poté, co jsem se vrátil ze zahraničí. Můj příběh začíná doktorátem na VŠE ve statistice. Pak jsem se rozhodl zkusit něco jiného a šel jsem do oblasti biologie. Tam jsem pracoval na Akademii věd asi rok, potom jsem ale cítil, že experimentování bylo moc. Vrátil jsem se tedy zpět k datové vědě a analýze a odešel jsem do Dublinu, kde jsem pracoval na business škole. Následně jsem vyměnil deštivé Irsko za horkou poušť a odešel do Spojených arabských emirátů, kde jsem pracoval ve startupu. Tam jsem strávil asi pět let a poté jsem se rozhodl vrátit zpět do Česka.
Co to byl za startup?
Šlo o technologický startup spojený s královskou rodinou, který chtěl dělat AI a strojové učení, proto do toho investovali hodně peněz. Já jsem tam byl najat jako koordinátor týmu, který měl vést vědu a vývoj.
Žil jsi a fungoval v tamním ekosystému?
Ano, byl jsem obklopen převážně lidmi z Indo-pákistánského subkontinentu, kteří byli mými kolegy, a místními lidmi na pozicích CEO a tak dále.
Čím vás oslovila Sazka? Předpokládám, že oba jste – ty Petře s veřejnou sférou a ekonomikou, a ty Lukáši s globálním startupovým zázemím – měli mnoho možností a otevřených dveří. Co vás na Sazce zaujalo?
Tuto otázku dostávám často. Odpověď je vlastně dvojí. Za prvé, v mých předchozích pozicích jsem se často nedostal k zajímavým datům. V akademii je těžké najít takovou datovou sadu, která by umožnila něco skutečně inovativního vytvořit – víš, jak to myslím, ale data prostě nejsou k dispozici. Stejně tak ve veřejné správě, kde data formálně jsou, ale úředníci je nesdílejí ani pro analytické či výzkumné účely. Ve Sazce je to jinak.
Data existují, musí člověk s nimi umět pracovat, připravit si je, ale především má s čím pracovat. To pro mě byla zásadní myšlenka – že konečně lze dělat to, co mě baví, tedy analyzovat data. Za druhé jsem hledal tým. Při pohovoru jsme si s manažerem a celým týmem sedli a atmosféra mi přišla báječná, otevřená, kde je prostor pro experimenty, nové věci a kde zároveň panuje neformální přístup – užíváme si i trochu zábavy. Proto jsem to vzal.
V mém případě šel důvod částečně přes lidi – když jste mladý, chcete experimentovat a žít dobrodružný život, ale pak vás to unaví a chcete se usadit. Když jsem vybíral firmu, bylo tam několik korporátů, které mi přišly příliš šedé, ale Sazka ne. Imidž Sasky na mě působil jako z herního průmyslu – tohle je zábava. Máme prostředí, které ještě není zcela korporátní. Samozřejmě se korporátní prvky objevují, protože jsou nutné pro fungování firmy, ale stále je to velice rodinné.
Marketingově na mě ten obraz Sazky zabral a zároveň jsem objevil ducha, kterého jsem hledal – něco trochu podobného jako ve startupu – prostor pro experimenty a zároveň jistou stabilitu. A navíc jsme vyhráli titul Zaměstnavatel desetiletí – a to není za rok, ale za celé desetiletí.
Mám nápady na další soutěže.
Luke, hrálo u tebe roli to, že jsi první datový vědec ve firmě, že tě čeká výzva implementovat a zavádět věci na „zelené louce“? Nebo to bylo jinak?
Ze začátku jsem vůbec netušil, že budu ten úplně první. Bylo mi prezentováno, že už tam máme kolegy, že to budeme dělat společně. Pak jsem zjistil, že jsem solitér.
Ještě teď je tu Petr.
Ano, Petr je můj team leader a jsem s tím spokojený. Přináší to nové výzvy, ale díky mým zkušenostem s implementací nových praktik mi to nevadí, ba naopak jsem tuto možnost vítal.
Teď pro posluchače, kteří neslyšeli díl s Martinem – můžete nám virtuálně nakreslit organizační schéma, jak to u vás vypadá? Petr jsi Lukášův trochu nadřízený, ale na druhou stranu jsi jediným datovým vědcem v týmu Data Engineering, který je součástí oddělení BI?
Jsme celý business intelligence tým, který má tři podtýmy: analytiky, tým datového skladu, který spravuje SQL servery, a tým Data Engineering. I když jsou Data Scientisté součástí týmu Data Engineering, stojí trochu mimo – jejich role je jiná než u běžného data inženýra nebo cloud developera. Současně se ale naše role hodně prolínají, protože takový ekosystém si ve Sazce teprve budujeme.
Je tu ještě jeden důležitý faktor – vedle toho, že jsme začínali v podobné době, je to cloud. Pro nás je cloud novinkou. Náš tým je postaven na používání cloudových technologií. Data Science v cloudu funguje normálně, ale tu a tam je třeba asistence od inženýrů kvůli technickým nuancím, které by vědec neměl řešit, protože by pak dělal inženýrskou práci místo datové vědy. Proto je potřebná spolupráce. Inženýři přicházejí s nápady a řešeními, zároveň mají jiný pohled na data – jak strukturovat obsah dat, jak infrastrukturu sestavit tak, aby s ní data vědci mohli pracovat. Takže je to koncept učení a společného rozvoje, který je dlouhodobě udržitelný.
Proto je ideální, aby data inženýr byl u procesu od začátku, aby pochopil tok dat a dokázal si představit celou pipeline modelu od úlohy, kterou vykonává datový vědec, až po nasazení modelu.
Bylo by to hezké, ale předpokládám, že v realitě je práce tak rozsáhlá, že je to takové nekonečné scrollování „To Do“ seznamem, a proto jsou i priority. Data Science má vlastní „track“ a předpokládám, že Lukáš má určitý data engineeringový skillset a první pokusy s novou technologií si děláš sám, je to tak?
Ano, v cloudu používáme primárně Databricks pro výpočetní část, kde lze využít Python, se kterým mám zkušenosti, takže to mi problém nedělá. Jenže když chci paralelizovat výpočty, narážím na specifické přístupy, jako jsou DataFrames, RDD a další, které ještě úplně neovládám.
Můj hlavní úkol je rozvíjet datovou analytiku ve Sazce, což je trochu odlišné od inženýringu. Inženýři jsou technologickými inovátory, evangelizátory – jak se dnes říká.
Co pro tebe znamená být prvním datovým vědcem v týmu?
Mou úlohou je vyšlapat chodníčky dalším kolegům. Pocit, když přicházíš do prostředí jako první datový vědec, je zvláštní, většina lidí totiž vůbec neví, co datová věda znamená. Když se jich zeptáte, jaký je rozdíl mezi machine learningem a datovou vědou, většinou si to dost pletou.
Někdy se stane, že se role ve firmě změní, protože dostanete projekty, o kterých se jiní domnívají, že spadají do kompetencí datového vědce, přitom se ukáže, že jde spíš o projektového manažera, nebo úlohu, která nevyžaduje žádnou statistiku či vyšší analytiku. A to už rozhodně nechcete dělat. Studovali jste, učili jste se, vyvíjeli jste se a pak se náhle role změní.
Vysvětlit, že tohle já dělat nemám, že na to potřebujeme jinou pozici, která tu práci bude vykonávat, je obtížné. Pokud budete dělat práci, kterou nechcete, skončíte zklamaně. To je příběh mnoha datových vědců, kteří přijdou do firem bez zkušeností a velmi rychle se vyhoří a odcházejí, protože jejich očekávání práce nejsou naplněna.
To je úloha i nás, datových inženýrů, Lukáše a jakéhokoliv datového vědce – tyto věci oddělit. Když přijde zakázka od interních partnerů, často víme, že jde spíše o data engineeringovou úlohu než o datovou vědu, a tu úlohu si musíme hned na začátku správně vydefinovat.
Toto je úloha pro Lukáše; tohle není chytrý algoritmus, ale je to čistě engineering, a ten řešíme my.
Jaký je tedy klasifikační kritérium, podle kterého určujete, jestli je úloha pro Lukáše, tedy čistě data science, nebo naopak?
Na to není úplně jasná odpověď. Jeden příklad – byl jsem na poradě s kolegy z jiné části Sazky a probírali jsme projekty.
Měli jsme náš návrh projektu na příští rok a někdo se ptal, jaký je rozdíl mezi týmem pro machine learning a týmem rozvoje datové kompetence. Odpověď zněla – dejme tomu, že máte vyšší tržby Sazky během tří měsíců.
Někteří lidi si představují, že to je úkol, na kterém má pracovat data vědec nebo tým datových vědců. To však není úkol, to je naprostá samovražda. Není možné, aby datový vědec přišel a vyřešil to během krátké doby, když jsme na tom pracovali desetiletí – desítky lidí. To jsou úkoly, které se míjejí s realitou.
Proto je zásadní, jak formulovat projekty tak, aby dávaly smysl, byly uskutečnitelné a neskončily fiaskem. Potřebujeme úzkou spolupráci s inženýry. Někdo vymyslí fantastický projekt, a najednou je to obrovský, neuskutečnitelný projekt. Ten musí být do začátku realistický.
Pokud jde o jednoduché úlohy, kde neběží žádný model nebo nedochází k průběžnému přetrenování modelu – třeba jen nějaká jednoduchá regrese –, pak data vědec není potřeba, tu práci zvládneme inženýři.
Data vědec je pro mě ten, kdo uchopí problematiku hned od začátku, obsáhne šíři dat i nástroje, a přinese něco nového ke stolu.
Pokud už je model na začátku jasný, je potřeba jen připravit data a vytvořit pipeline, která model používá, tam data vědec už není nezbytný a práci zvládnou inženýři.
Díky Petrovi, který má zkušenosti s modelováním, to není, že mluvím s někým bez zkušeností z oblasti. Byl to ekonometrista. Když jsme vymýšleli projekt, který sledoval závislost výšky jackpotu na dalších faktorech, Petr byl mnohem kompetentnější než já, protože jeho specializací bylo měření závislostí. Proto se rád učím od něj.
Tak k této bromance přispěji i já, je to skvělé, že máme tento překryv, protože Lukáš dělá data engineering a já mám znalosti statistiky, takže vím, co dělá a orientuji se v tom, co je problém a co je výzva. V tomto ohledu si pomáháme a spolupracujeme opravdu dobře.
To na vás skutečně cítím a chápu to.
Moje otázka je – není to tak, že se ty kompetence rozlévají a bude v budoucnu třeba čím dál méně „čistých“ datových vědců, protože se musí více přibližovat implementaci, businessu a chápání...?
At to a mít vedle sebe nějakého Petra, nebo nějaký koncept v sobě Petra, který jim pomůže říci: „Na tomhle nedělej, to je úplně čistý výzkum, ale nikomu to k ničemu nebude,“ a „tady je ten byznys, priorita.“ Takto, toto je obrovský projekt, protože architektonicky do toho zapluje hrozně moc věcí, a tohle naopak můžu velmi jednoduše komoditními dvěma modely, které dám k sobě, tak vyřešit.
Tak to je jedna věc na tebe, Lukáši, a naopak na tebe, Petře, ta komoditizace Data Science a modelování. Mám pocit, že teď zase jakýkoliv projekt je model, pozlátko, to je to R&D, to je to zlato, ale potom 90 % času zabere dostat to do produkce, dostat to do života té firmy a odmakat to. Mám pocit, že Data Science na jednu stranu je čím dál tím menší část toho celého a na druhou stranu se ta část dost automatizuje a ty potřebuješ jako inženýr vlastně to chápat.
Tak možná moje super komplikované otázky. Lukáši, myslíš, co bys poradil lidem, když bys teď dokončil doktorát na VŠE: chceš být datový vědec, datová věda je to, co tě fakt baví, co bys poradil lidem? Jsou opravdu jako jít dělat vědu a výzkum, jít do akademie, prohlubovat tu čistě vědeckou věc, anebo dneska už vlastně dává větší smysl se podívat, více se stát Petrem? Každý se chce stát Petrem. Buď jako Petr. Přesně.
Povím to asi tak trochu sadomasochisticky, že asi ano. Já ten pocit mám, že datoví vědci mají tendenci jít do bublinky, a ta představa, že bude firma mít nekonečné množství zaměstnanců a oni budou asistovat, tak realistická není. Potom je to o tom nastavení v rámci firmy, že „ok, máme pozici datového vědce,“ ono se to jmenuje datový vědec, ne ze srandy. A jako tím pádem musí mít prostor i pro to experimentování. Na druhé straně to musí být uchopené v realitě. Ne tak, že bude trvat nevím kolik let, nebo on bude strávit nevím kolik času na tom, že bude si tam nějaký model vytvářet, jaký je hezký, a ono to nikdy nedostane do produkce. Nebo to bude dělat v technologii a vlastně budou to inženýři, kteří to dají do reality, a práce toho datového vědce bude zbytečná, jelikož, jak jsi řekl, s tou automatizací už se to posouvá k tomu, že nemusí mít člověk doktorát, aby to dělal.
Mé zkušenosti v Asii, kde je obrovská konkurence a kde to valí jednoduše, jsou takové, že už ty metody jsou přístupné masám. Už to nemusí člověk studovat deset let, aby se to naučil. Už to začíná být nástrojem běžného člověka ten machine learning, ale v případě firem tam už ta produkcionalizace přináší inženýrské problémy hlavně – jak to dostat do produkce. A tam si myslím, že bohužel se musíme více posunout k inženýringu. Ale to je můj soukromý názor.
A kdybychom se teď podívali na tvoji roli a nějak rozdělili tvůj čas, jaký je poměr, kde je opravdu 100% pure data science, jako z encyklopedie a totální R&D?
S mým šéfem Martinem, teda manažerem oddělení, jsme o tom vedli diskuze, že kdyby ta pozice měla být, jak jsme si to nastavili – povím za chvíli příklad – ale je pravda, že nejsem vůbec daleko od inženýringu, zpětně fakt, že my se snažíme provozovat všechny systémy, které vyvineme v rámci našeho oddělení. Ten operations and maintenance je jenom na nás a participuji na tom rovněž. Takže i když tomu nerozumím, tak mám mít minimálně základní dovednosti o tom, jak to funguje, a i když se to pokazí, jak to nastartovat minimálně.
Asi tímto způsobem - kde je to tlačítko on a off na nějaké cloudové komponentě a jak ten proces funguje. Takže na této úrovni jsem inženýr a asi budu muset být inženýr, abychom to dokázali jako oddělení udržet.
Ale v současnosti mám projekt, který jsem si sám vymyslel, vlastně až dva projekty, které jsem prezentoval našim business klientům, oni z toho byli rádi a dali mi odsouhlasení, že na to můžu pracovat. Pak jsem narazil na to, že jsem si vymyslel hezký datový projekt a narazil jsem na datovou realitu, tedy že data nebyla připravená na to, aby byla zpracovávána prostřednictvím machine learningových algoritmů nebo prostřednictvím nějakých datovědních nástrojů.
A tak jsem větší část času strávil hrabáním se v datech, což je nudné, složité, je tam velká nejistota, a tím pádem přichází to, že vlastně datová věda jako věda, tedy to modelování, zabere menší část než to původní předzpracování dat.
Petře, když se vrátím k otázce, tak možná jak moc mění ten engineering machine learning? Data engineering býval prostě jednoduchý ETL, teď jsou všechno datové produkty, všechno je pipeline first approach, najednou je v tom data science. Jak moc ovlivňuje data engineering Lukáš, jak moc vám do toho hází vidle?
Já si myslím, že agenda a kompetence data engineeringu se vlastně těmito, jak jsi říkal, komoditními modely mění docela výrazně. Na jednu stranu to data engineering trochu emancipuje, protože jsme už schopni dělat machine learningové úlohy i bez datového vědce, protože máme nějaké modely z krabice. Na druhou stranu ale v tom musíme mít kompetence, takže už nemůžeme být čistě technickými pracovníky, kteří jen nastavují pipelines, protože i ten model z krabice má svá specifika a musíme chápat, co umí aspoň částečně „v těch střevech“ dělat.
To samozřejmě potom posouvá i agendu datového vědce, který už nebude vyvíjet samozřejmě jako NLP modely, protože ty už máme, ale bude vyvíjet něco jiného, bude vlastně vysvětlovat, evangelizovat třeba v rámci firmy, co ten model dokáže, k čemu je vhodný a k čemu ne, protože tomu prostě lidi nerozumí.
Takže myslím si, že ty dvě role jsou pořád strašně důležité, ale kompetence i agenda se malinko posouvá tím, jak se vyvíjí technologie.
Já ještě doplním, že to není tak, že by kompetence datového vědce následně vymizela nebo že se ten datový vědec stane pouze inženýrem, ale objevují se věci, které jsou hlavně ve firmách, které rychle rostou. Roste potřeba analytiků, ale ne každý analytik je datový vědec, ale i analytici mohou používat machine learningové úlohy.
A pak přichází k tomu, že máte různá oddělení a jednotlivce, kteří používají ty machine learningové úlohy, ale každý to dělá jinak – někdo běží algoritmy na notebooku, data si stahuje a někde nahazuje, někdo to dělá v různých jazycích, někdo v R, někdo v Pythonu.
A najednou firma ukazuje náznaky toho, že chce mít kompetenci na celofiremní úrovni. A to je úkol pro datového vědce, aby to celé synchronizoval, aby se to rozvíjelo společně, aby vzniklo společné mezidepartmentové kompetenční centrum a aby se pracovalo v jednom jazyce, v jednom nástroji, a aby se tam jednoduše začal ukazovat synergický efekt.
A ne aby každý dělal něco ve své „koutku“ a lidi spolu nemluvili. Takže to jsou další výzvy, které jsou spíše behaviorálního, méně technického charakteru, ale jsou tam. A to by měl být rovněž zájem datového vědce rozvíjet.
Mně to z mého velmi softového pohledu připomíná třeba UX a produkt, jak se posunul, nebo agilní týmy, že z velmi specifické specializované role v jednom týmu, který dělal jednu věc, se stalo nějaké podhoubí, nějaká funkce, agenda, kterou řeší celá firma, která se týká celé firmy. Ti původní pak nastavují celý ten proces a rámec. Tak to tam u vás slyším taky.
Možná se pojďme podívat na konkrétní věci – jak probíhá konkrétní projekt, jak se potkáváte, kdy se nepotkáváte, kdy Lukáš dává data vědci pryč, kdy volá Petře pomoc a co řešíte zevrubně. Když to vezmu z chytrých úloh, co jsou vaše problémy, co je denní chleba, kde najdeme tebe, Petře, a kde Lukáše v postkléze?
Když bychom se drželi chytrých úloh, jak už zmínil Lukáš, největší problém přijde hned na začátku, když si chceme dát dohromady datovou sadu, která bude vhodná pro další analýzu a pro trénování modelů, které mohou být různé. To je první výzva.
V SASu často používáme externisty, naše interní kapacity jsou omezené, tým je malý. A to je něco, na co často narážíme – i externista se musí nejdříve zorientovat v datech, která máme. My musíme nějak poskytnout podklady, aby byl schopný tu prvotní analýzu udělat. A tam upřímně narážíme na časovou náročnost, protože neseme zátěž z minulosti, kdy něco bylo nastaveno tak, aby to fungovalo, ale lidé, kteří to nastavovali, neměli v hlavě to, že zde bude existovat projekt datové vědy a tyto úlohy.
To je první zásadní problém a výzva. Jakmile si to dáme dohromady, myslím, že už potom to relativně jde. Pak už ta analýza, produkční analýza, tam už jsme zkušení, tam už jsme to nastavovali s vizí těchto úloh, tam už je to snazší.
Například do věcí, do kterých já nešahám, protože zatím vůbec nerozumím, patří streamová data. To je Petrova kompetence. Je to výhradně jeho hřiště. A jelikož SASKA má velké množství dodavatelů a data proudí ze všech stran v reálném čase, to jsou úlohy, na kterých inženýři u nás pracují.
To je pravda a na tom pracujeme velmi intenzivně. Intenzivně zároveň i chytré algoritmy už nasazujeme do reálného času, takže ta data, která dostáváme v reálném čase, vyhodnocujeme na základě chytrých algoritmů. Ale zase v reálném čase, což je inženýrská výzva. To funguje pár let, možná rok a půl, takže je to super, má to fakt velkou přidanou hodnotu pro byznys, je to něco nového, učíme se na tom.
Je to také technologická výzva, protože jsou to zprávačkové, obrovská kvanta dat, která přicházejí, a na to nasazovat nějaké věci, tak...
Mně se hrozně líbí, jak se chválíte a notujete si.
Když se vrátím k tobě, Lukáši, můžeme si projít nějaký projekt, kde jste oba byli součástí a jak chronologicky probíhal, kdy skutečně sedíte spolu s otevřenými notebooky vedle sebe? Jak procesně to máte spojené?
Možná zmiňme Anodet. Anodet byl systém, který jsme vyvinuli ve spolupráci s dodavatelem a je určený k detekci výpadků vkladu klientů do jejich elektronické peněženky. Ale nefunguje to tak, že by výpadek byl tak fatální, že najednou všechno padne na nulu, a tím pádem nepotřebujete žádný chytrý algoritmus. Funguje to tak, že vklady poklesnou a úkol je zjistit, jestli je to moc, jestli je to málo, jestli jde o předvídatelný pokles, nebo ne.
Na to jsme vyvinuli systém, nepovím tajemství, že funguje na principu facebookového algoritmu Prophet, který bere v úvahu určité cyklické faktory. Následně máme tým, který sleduje provoz na straně finančních transakcí a informuje o anomáliích. Oni pak prověřují, co by mohlo být zdrojem, protože faktorů může být miliarda, není jednoznačná odpověď.
Super. Když se podíváme na Anodet, běží vám to teda v cloudu?
Ano, i teď v reálném čase se to tam vyhodnocuje. Reálný čas je napojený na platební brány, různé weby. Tato úloha byla zajímavá i z data engineeringového pohledu, protože jsme vyvinuli novou infrastrukturu, kterou jsme předtím neměli.
Začali jsme používat to, že se model natrénovává, ale protože je to predikční model, vy něco předvídáte a potom to nastane, takže zjistíte, jestli jste byl přesný, jestli ne. Pak lze optimalizovat, přetrénovat, vybírat mezi modely.
Tuto logiku MLflow, produkt který používáme, jsme implementovali jako rozšíření data engineeringových kompetencí. Teď jsme schopni pracovat s tímto typem úloh. Byl to první výstřel a zároveň to běží real-time, takže to zapadá do naší nejnovější infrastruktury.
Úžasné.
Jak přišla poptávka? Vy jste to vymysleli a viděli jste hodnotu, nebo to přišlo jako fakap? Například jste zjistili, že nefungovala platební brána a nepřišlo se na to?
Já úplně nebyl původní nápadatel, ale velmi úzce jsme spolupracovali se zadavatelem z byznysu a oni je trápilo, že nedokázali reagovat dostatečně rychle, když se něco stalo. Z manažerského hlediska totiž přicházela výtka: „Jak to, že jste na to nereagovali? Nevěděli jsme o tom, nedokázali jsme to rozeznat.“
Super, super.
Takže přijde byznysový klient a řekne: „Toto potřebujeme vyřešit.“ Co se děje pak? Nebo co se dělo pak?
Obecně máme úvodní schůzku a pak se domlouváme, co to je za typ úlohy. Jak jsem mluvil na začátku, některé úlohy jsou čistě inženýrské, tahle nebyla jedna z nich. Tady už je dynamické trénování modelů na základě časových řad, což je nakonec ten Prophet. Výběr modelu ale řekne spíš Lukáš.
Takže první schůzku jsi měl se zadavatelem, s byznysem, a tam zjistíte, že je to nad vaše schopnosti a zavoláte Lukáše?
A pak máte druhou schůzku vy dva a bavíte se?
My už asi tušíme, jak ta úloha vypadá.
Takže jste na první schůzce, tohle z ní vypadne? Co pak?
Pak jede každý svůj tracking, ty začneš zkoumat možnosti. Nejprve je potřeba zjistit, jestli je úkol správně zadán a zda na to máme kapacitu. Požadavků přichází najednou mnoho, lidé si uvědomují, že už to umíme dělat, přicházejí s vlastními nápady, ale naše kapacity jsou omezené, tak hledáme priority.
Někdy kluci umí některé věci realizovat sami, nebo by to dokázal analitik v jiném oddělení. Tento proces rozhoduje, na čem budeme pracovat.
Pak hledáme největší problémy, které by mohly způsobit selhání, abychom je prodiskutovali hned na začátku s klientem – v čem vidíme rizika a jak úlohu upravit, aby byla realizovatelná.
Můžeme říct, že u Anodetu je to velký problém, ale jasný biznisový potenciál, nebo uplift, případně finanční ztráty při výpadku. To jsme museli prodiskutovat a domluvit, co je „anomálie“ – kdy je to moc, kdy málo. To je subjektivní věc, dostat se do hlavy člověka nejde.
Líbil se mi ale ten přístup, že klienti byli přitáhnuti blíž k nám, museli vystoupit ze své komfortní zóny. Měli pocit, že my máme zkušenosti, ale také se museli naladit na náš úkol.
Lem. Udělat to tak, aby to nebolelo. Nakonec jsme došli k definici té anomálie, k nějaké hranici, u které se obě skupiny dohodly, že ano, myslíme si, že toto je anomálie.
Byla to kombinace zkušeností, ale také různé simulace, které jsme prováděli, realizovali jsme různé scénáře a tak dále. Následně biznis potvrdil, že si myslíme, že toto je ten správný scénář.
Sarovinem klíčem k úspěchu tohoto projektu byly i workshopy a prezentace toho dílčího řešení, které Lukáš dělal v rámci biznisu. Prezentace byla krásně polopatická, biznis pochopil, co model dělá, protože Lukáš to skvěle vysvětlil, a tím jsme je získali na svou stranu. Oni pak s námi byli velmi ochotní spolupracovat právě na definici těch anomálií a dotáhnout to do konce.
Dílčí model byl určený jen na jednu věc, třeba jen na platební bránu a detekci těch největších anomálií. To byl první projekt většího rozměru, který byl zpracováván a vyhodnocován v reálném čase, takže jsme hledali nějaký projekt a toto byl úspěšný kandidát, na kterém jsme mohli ilustrovat sílu real-time zpracování.
Vracíme se teď vlastně k Petrovi, že se to děje v reálném čase a lidé dostávají extrémně rychle informace do svých mailových schránek, že se něco děje. A to je ten „wow“ efekt, protože vytvořit model, který vypadá hezky, je sice hezké, ale chcete něco, co bude opravdu „wow“. A myslím, že toto byl ten „wow“ efekt.
I když musím teď říct, že nebyl úplně bez protestů ze strany některých členů týmu, kteří namítali, že to není úplně tak, jak by to mělo být, protože anomálie by měly být označeny přesněji a tak dále. My jsme však realizovali trochu jinou strategii – teorie zde není splněna na 100 %, ale funguje to.
A ono to skutečně funguje, především v současnosti nemáme téměř žádné problémy a dosahujeme toho „wow“ efektu. To je začátek, jak člověka zaujmout. Rozumím.
Když se vrátím ke spolupráci vás dvou, jak jste si vlastně předávali ty věci?
To je celkem známý model. Ty jsi měl týden na to, abys vše zjistil, potom jste měli společnou schůzku, kde jste se dohodli, jestli půjdete třeba s open source řešením z Facebooku? Nebo jak si mám představit vaši koexistenci? Nebo jste speciální komando, jeden je inženýr a druhý spíše data scientist?
Tento projekt byl poněkud specifický tím, že jsme na něm spolupracovali společně s dodavatelem, který nám pomáhal vytvořit infrastrukturu pro podobné úlohy. To znamená, že jsme byli všichni zapojeni a vydefinovali jsme, jak má ta infrastruktura vypadat, jaké máme požadavky a jakým způsobem má zapadat do naší stávající infrastruktury.
Tam jsme byli všichni zapojeni, protože všichni do toho něco mají říct: Lukáš se v tom pohybuje, já se v tom pohybuji, všichni to spravujeme. V tomto byla úloha poněkud specifická tím, že jsme podle mě neměli úplně vyhraněné role.
Samozřejmě Lukáš byl zodpovědný za tvorbu a trénování modelu, to jsem dělal já. Aby měli lidé představu, byli jsme dva data scientisté, jeden z externí společnosti a já interní, a společně jsme vyvíjeli model.
Na konci vznikl nějaký prototyp, který se následně prostřednictvím pipeline dostal do produkce. Přesně tak.
Bylo tam tedy více datových inženýrů jak od nás, tak i od dodavatele, a paralelně jsme vytvářeli strukturu, kam jsme ten model nasadili. Není vždy složité mít k projektu nějakého dodavatele na pomoc, ale jak jsi říkal, s zaučováním a zapojením lidí do procesu, není to takový cirkus na kolečkách, kdy se každý ptá: „Ty jsi kdo?“ a „Já jsem tady nový data inženýr dodavatele.“
Jak to udržujete pohromadě?
Je to výzva. Je to takzvaný double-edged sword. Tím, že přidáváme nové lidi a nové dodavatele, se hodně učíme. Pokud si chceme vyzkoušet něco nového, chceme se učit od nejlepších, takže se podíváme na trhu, kdo to dělá, abychom tuto kompetenci rychle nasáli.
Na druhou stranu člověk zase nenasaje úplně všechno, protože neprojde tím úplným učícím procesem. To jsou výhody i nevýhody.
Velkou nevýhodou je, že když přicházejí noví lidé, tím spíše, pokud to jsou noví dodavatelé, nemají přehled o naší infrastruktuře, zatímco u starých dodavatelů je to lepší, protože známe jejich lidi, lidi známe nás a prostředí je známé.
Přijde-li někdo nový, je to složitější, protože je třeba ho zaučit, i když je odborník. To prostředí a specifikum našich dat je totiž jedinečné, jako v každé společnosti, a člověk potřebuje kontext.
Rozumím. Lukáši, jak ty to vnímáš? A proč se ptám? Protože jsem celý úvod vás oba zařadil do škatulky jednoho člověka, který tomu rozumí úplně sám, a skoro mě bylo líto, že jsi tam fakt sám. Teď na projekt Anodet jde poznat, že pracuješ i v datových týmech. Není to tak, že bys byl izolovaný?
Ne, na denní bázi brainstormujeme s Petrem o data scientistických problémech dohromady.
Ale spolupráce s externisty je také výzva tím, že externisté očekávají, že dostanou hezká data. A teď nastává ta zábava: kdo to bude dělat? Je to mojí úlohou, nebo ne?
To je ta otravná část, na kterou musí člověk myslet, aby to systém nějak zvládal a aby tam vznikla nějaká štábní kultura.
Vymysleli jste nějaký systém? Máte ve firmě nějakou štábní kulturu?
Právě máme projekt, kde máme obrovské množství dat, která jsou velmi těžko uchopitelná a lidé jim nerozumějí. Jak je dostat k dodavateli? To bude náš úkol: vymyslet systém, který nebude jednorázový, ale bude opakovatelný.
Není to jen úkol pro Petra?
Nepřestávám nad tím přemýšlet a nemávám rukou. Jsme jeden tým.
Částečně je to úkol pro Petra, bohužel ano. Ale musí se definovat, která data vůbec potřebujeme, co tam budeme dělat, poté „vzít lopatu“, někde data nabrat a někde vysypat.
To už je úkol pro Petra, ale upřímně řečeno je to docela jednoduché, ta „třešnička na dortu“ – data jen někam přesunout.
Jak dlouho trval projekt Anodet? Kdy je projekt dokončen?
Lukáš mluvil o end-to-end odpovědnosti: když dodáváte data, máte za ně zodpovědnost, držíte celý produkt.
Petrova odpověď?
My to držíme permanentně, máme jistou provozní zodpovědnost. Když to běží a něco se pokazí, jsme to my, kdo to má opravit.
Komu by zazvonil telefon?
Bohužel nám. Ale zároveň je to naštěstí i dobře, protože se snažíme kompetence tahat k nám. Nechceme být jen zákazníci „krabičkového řešení“, kterému nerozumíme, protože to nás nedělá lepšími inženýry ani data scientisty.
Nemáme nad tím kontrolu, ale ti, kdo to řeší, jsou ti, kteří to vyvinuli.
My chceme mít kontrolu nad těmito procesy, a pak se mohou projekty rozvíjet. Můžeme spouštět projekty vedle sebe, ale to je bezcenné, pokud se navzájem nenavazují.
Jedním otevřeme bránu dalším, tímto přístupem se motivujeme nabírat kompetence i od dodavatele.
Kdyby nám to jen předal, zapnuli jsme to a provozoval dodavatel, nemuseli bychom o tom nic vědět. Ale my chceme znát detaily, protože je potom upravujeme, rozšiřujeme a spravujeme.
Nemůžeme říct „to dělal někdo jiný, ať to opraví“ – to by nefungovalo. Rozbilo se to, a je třeba se o to starat.
Podívejme se kromě Anodetu ještě na jiné projekty, které jste za rok a něco stihli společně v SASce rozjet a uvést do provozu.
Dalším takovým projektem je projekt, který nazýváme Kakao. Jedná se o klasifikaci zákaznické komunikace v kontaktním centru.
Tento projekt je v SASce relativně dlouho. První verze řešení byla vytvořena na jednodenních datech, takže každý den se všechny komunikace klasifikovaly.
Řešení fungovalo, ale bylo technicky velmi komplikované. Když se něco pokazilo, trvalo dlouho, než jsme to spravili.
Na čem to běželo, kvůli nějakému legacy systému?
Částečně ano. Cesta dat byla komplikovaná: data se přenášela z různých serverů na různé storage, algoritmus běžel v Databricks, ale byl napsaný v jazyce R, který využíval knihovny, které občas nebyly dostupné.
Bylo to složité.
Nicméně nyní, v rámci přechodu na real-time data, jsme to vyvinuli znovu.
Cesta dat je mnohem jednodušší, běží to v reálném čase.
Využili jsme infrastrukturu vyvinutou pro Anodet – to, co jsme měli v jednom projektu, jsme jednou použili i v Kakau.
To nás posunulo nejen z hlediska kompetencí, ale i provozu, protože nás to nestojí tolik času na udržování v chodu.
Měl i Lukáš roli v tomto projektu?
V tomto projektu jsem byl spíše minoritní, spíš konzultant.
Potřeboval model mentoring?
Lukáš hlídal práci, ale model byl poměrně přímočarý – používal se XGBoost, model „z krabice“, který již fungoval v předchozím řešení.
Jakmile jsme dosáhli uspokojivé přesnosti, byli jsme spokojení.
A teď se podívejme, na čem vše běží, jaký je technologický a datový stack, čím to všechno protéká. Petře, mluvil jsi o Azure, Databricks.
Co všechno tedy máte pod kapotou?
Jsme tým s názvem Data Engineering Team, ale ve skutečnosti jsme tým, který se zabývá Azurem.
Zajišťujeme vývoj, údržbu a provoz cloudu.
Úlohy, které jsou provozovány on-premise, řeší jiný tým, i když s námi úzce spolupracují a máme integrované služby, naše primární kompetence je Azure.
Tam...
Používáme primárně real-time data, která tečou do EventHubu a pak je zpracováváme.
Dobrým příkladem je naše aplikace Saskabe soutěže, což je gamifikace kurzových sázek.
Když si založíte sázku, například že Slavia vyhraje, funguje to obdobně jako sázení na fotbal.
Pokud trefíte kurz – třeba nepravděpodobný, ale trefíte – aplikace běží nad vaším sázením a vy dostanete odměnu za to, že jste tipli právě takový kurz.
Soutěží máme celou řadu.
Pro nás je to velká výzva, protože i když to není machine learningová úloha a nemáme tam nějaké chytré algoritmy, cesta, kudy data tečou a jak se počítají, je velmi komplikovaná.
Jak jsem říkal, začíná to v EventHubech, kam tečou real-time data, a těch je obrovské množství.
Nejde jen o sázky, ale také o aktualizace kurzů, které se neustále mění v reálném čase.
Jak dlouho zůstávají sázky aktivní?
Hosté z Orange GG v našem podcastu říkali, že když to spočítáte, musí sázka chvíli „běžet“, aby se pod kurzorem sázejícího neměnily podmínky, aby měl čas se rozmyslet.
Vy tuto situaci řešíte?
Ano, řešíme to čekací dobou. Když si sázíte na příležitost v live režimu, musíte počkat 5 sekund, než se sázka zapíše a kurz zůstane stejný.
Pokud se kurz změní, informujeme vás, zda s novým kurzem souhlasíte.
Pokud kliknete ano, sázka je uskutečněna.
Celá logika běží v Databricks, což jsou prakticky Python notebooky, které jsou velmi dobře udržovatelné.
Běžíme na škálovatelných clusterech, které snesou obrovskou zátěž a jsou přizpůsobené na paralelní zpracovávání real-time dat.
Využíváme další komponenty Azure cloudu. Je skvělé, že cloud je škálovatelný a má výpočetní kapacitu, ale také dostupné služby, které spolu dobře komunikují.
Díky tomu nemusí člověk být extrémně pokročilý programátor, aby dal dohromady pipeline.
Napíšete logiku soutěží v Databricks a spojíte ji tak, aby výsledky soutěží byly uloženy ve storage, odkud si frontend volá data v reálném čase.
Když hraji soutěž a splním úkol, systém mi okamžitě ukáže leaderboard s mojí pozicí, třeba že jsem druhý a získal jsem dva tisíce, což mě motivuje hrát dál.
Jak vypadá skillset vašeho týmu? Jak jsou rozděleny role?
Jsme malý tým, čtyři lidé.
Lukáš je čistý data scientist, zbytek tvoří cloud developer a datový inženýr.
Datový inženýr řeší integrační datové toky, komplikovanější vývoj v cloudu už přebírá cloud developer.
Protože jsme malí a provozujeme vše společně, kompetence se hodně překrývají.
Každý se stará spíše o konkrétní komponentu – například soutěže spravuji já, přebíral jsem je náhodou od manažera, který byl dříve datový inženýr.
Jiní kolegové spravují aplikace, které zapisují real-time data do operační databáze.
To jsou kritické komponenty, kde už je robustnější vývoj, kód v Kotlinu a podobně.
To spravuje někdo další, je to jeho kompetence, jeho „dítko“, o které se stará.
A jak do tohoto týmu zapadáš ty, Lukáši?
Já se soustředím hlavně na technologii v Databricks pro zpracování dat.
Pohybuji se na pomezí cloudu a datového skladu.
Tím, že máme to šťastné spojení...
Týmy BI mají ještě další tým datových analytiků.
My komunikujeme neustále. Když tedy jsou data v cloudu, můžeme si je společně upravit. Automaticky tam máte někoho, kdo vám poskytne výklad k těm datům. Data přicházejí z různých zdrojů, takže stojím někde na rozmezí mezi on-premise daty a cloudovými daty.
Děkuji moc. Možná nakonec nějaká rada pro data scientisty od tebe, Petře, jak být tak dobří jako vy dva, jak budovat ten vztah a co ty jako data inženýr vlastně od svých data scientistů chceš a co ti dělá radost?
No, prostě nežít v bublině. To je pro mě to nejdůležitější – nežít v bublině data science, mít přesah jak směrem k inženýringu, tak i k byznysu, vlastně vědět, proč dělám to, co dělám. Když pracujeme například s některými externími data scientisty, tak jsou to experti ve svém oboru, jejich erudici vůbec nespochybňuji, ale často máme problém, že nemají přesah. Prostě si něco vymyslí, ale z byznysového hlediska to nedává smysl, nejsme schopni to nasadit, a to jim chybí. Myslím si, že je to důležité jak teď, tak že to bude ještě více důležité v budoucnu, právě kvůli komodizaci modelů a podobně.
Lukáši, stejná otázka na tebe.
Jo, já to zopakuju možná jen jinými slovy – jít mimo svou komfortní zónu. Celkově to platí pro oblast IT – když dělám jednu technologii a nechci jít mimo, nebo když dělám jeden druh úkolu a nechci jít mimo. Samozřejmě je pak potřeba najít správnou rovnováhu, ale je tam chuť poznávat neortodoxní přístupy, myšlení, úkoly, zkoušet je a alespoň o tom diskutovat. Je to o tom mindsetu.
My také hledáme lidi tak, že pokud bychom najali nějakého skvělého specialistu, se kterým by byla velmi obtížná komunikace, nevím, jak by náš tým fungoval. To nechceme. Jsme dost sehraní i proto, že hledáme lidi, kteří nejsou uzavření. Můžou mít úplně jiný background, ty technické věci se naučíme, ale jde o přístup – že chci objevovat věci.
Možná právě proto jsme se tady s Lukášem setkali – máme oba akademický background, rádi věci objevujeme, rádi řešíme nové a nestandardní problémy, na to jsme zvyklí a to nás baví.
Děkuji moc za tento rozhovor. Mám pocit, že se znáte méně než rok, ale jste super úderná jednotka. Držím vám palce ať už s těmi projekty, nebo s novými posluchači do Sazka, a věřím, že se tady zase někdy potkáme a povíme si, jak to pokračuje a co je další nejlepší krok.
Díky moc, kluci.
Díky moc, mějte se.
Děkujeme, ahoj.
A to je všechno. Děkujeme, že jste doposlouchali další díl Data Talku. Díky také našim partnerům – BigHubu, Deepnote, Mantě, Notinu, Ataccamě, GymBeamu, Seznamu.cz a Mews.
Pokud vás zajímá více informací ze světa datových technologií a československé datové scény, navštivte naše stránky datatalk.cz.
Nechť vás provází data.