Modely a platformy AI
Erik Gfesser, Principal Architect pro datovou praxi společnosti SPR – Interview Series

Erik se připojil k datové praxi společnosti SPR jako Principal Architect v roce 2018.
Erik se specializuje na data, open source vývoj pomocí Javy a praktickou podnikovou architekturu, včetně budování PoC, prototypů a MVP.
Co vás最初 přitáhlo k strojovému učení?
Jeho schopnost umožnit aplikacím neustále se učit. Začal jsem svou kariéru jako senior datový analytik pomocí SPSS v globální marketingské firmě a později jsem začlenil použití business rules engine nazvaného Drools do aplikací, které jsem postavil pro klienty, ale výstup z této práce byl esenciálně statický.
Později jsem prošel školením na zlepšení procesů, během kterého instruktoři demonstrovali detailně, jak byli schopni zlepšit statistiku a další metody business procesů používaných jejich klienty, ale i zde byl výstup většinou zaměřen na body v čase. Má zkušenost s zlepšováním zdravotnického produktu, který můj kolegové a já postavili během stejného období, ukázala, proč je neustálé učení nezbytné pro takové úsilí, ale zdroje, které jsou nyní k dispozici, neexistovaly v té době.
Zajímavě, moje přitažlivost ke strojovému učení se vrátila, protože můj absolventský poradce mě varoval před specializací na to, co se tehdy nazývalo umělou inteligencí, kvůli AI zimě v té době. Rozhodl jsem se místo toho použít termíny, jako je ML, protože tyto mají méně konotací a protože i AWS uznává, že jeho AI služby jsou ve skutečnosti pouze vyšší úroveň abstrakce postavená na jeho ML službách. Zatímco některé z ML hype je nereálné, poskytuje powerful funkce z pohledu vývojářů, pokud tito praktici uznávají fakt, že hodnota, kterou ML poskytuje, je pouze tak dobrá, jako data zpracovaná jím.
Jste velkým zastáncem open source, můžete diskutovat, proč je open source tak důležitý?
Jedním aspektem open source, který jsem musel vysvětlit výkonným ředitelům v posledních letech, je, že primární výhodou open source není to, že použití takového software je k dispozici bez finančních nákladů, ale že zdrojový kód je k dispozici zdarma.
Dále mohou vývojáři, kteří používají tento zdrojový kód, modifikovat jej pro své vlastní použití a pokud jsou navrhované změny schváleny, mohou tyto změny zpřístupnit ostatním vývojářům, kteří jej používají. Ve skutečnosti se hnutí za open source software začalo, protože vývojáři čekali dlouho, než komerční firmy provedly změny produktů, které licencovaly, takže vývojáři sami napsali software se stejnou funkcionalitou a otevřeli jej ostatním vývojářům, aby jej mohli vylepšit.
Komerční open source využívá těchto výhod, skutečnost být, že mnoho moderních produktů využívá open source pod pokličkou, i když komerční varianty takového software obvykle poskytují další komponenty, které nejsou k dispozici jako součást dané open source verze, poskytují diferenciátory a podporu, pokud je tato potřeba.
Mé první zkušenosti s open source se udál během budování zdravotnického produktu, o kterém jsem zmínil dříve, a to pomocí nástrojů, jako je Apache Ant, používaný pro sestavení software, a raný DevOps produkt zvaný Hudson, jehož kódová základna se později stala Jenkins. Hlavním důvodem našeho rozhodnutí použít tyto open source produkty byla skutečnost, že tyto buď poskytly lepší řešení než komerční alternativy, nebo byly inovativní řešení, která nebyla nabízena komerčními subjekty, aniž by bylo zapotřebí komerční licencování některých produktů, které jsme používali, bylo příliš restriktivní, vedoucí k nadměrnému byrokratickému procesu, když bylo zapotřebí více licencí, kvůli nákladům.
V průběhu času jsem viděl, jak open source nabídky pokračují v evoluci, poskytují tolik potřebnou inovaci. Například mnoho problémů, se kterými moji kolegové a já bojovali při budování tohoto zdravotnického produktu, byly později vyřešeny inovativním open source Java produktem, který jsme začali používat, zvaným Spring Framework, který je stále silný i po více než desetiletí, jeho ekosystém se nyní rozšiřuje daleko za hranice některých inovací, které původně poskytoval, nyní považovaných za samozřejmé, jako je dependency injection.
Můžete sdílet svou cestu za některými z těchto produktů?
Jako vysvětleno v jednom z řídících principů, které jsem přednesl nedávnému klientovi, build-outy pro datovou platformu, kterou jsme pro ně postavili, by měly být prováděny iterativně podle potřeby v průběhu času. Komponenty postavené pro tuto platformu by neměly být považovány za statické, protože potřeby se mění a nové komponenty a funkce budou zpřístupněny v průběhu času.
Při budování funkcionality platformy vždy začínejte s tím, co je minimálně životaschopné, než přidáte zbytečné zvony a píšťalky, které v některých případech zahrnují i konfiguraci. Začněte s tím, co je funkční, ujistěte se, že rozumíte tomu, a poté to vyviněte. Neztrácejte čas a peníze budováním toho, co má nízkou pravděpodobnost použití, ale snažte se být před potenciálními potřebami.
MVP, který jsme postavili pro tento produkt, musel být postaven tak, aby na něj mohly být postaveny další use cases, i když byl dodán s implementací jediného use case, pro detekci anomálií výdajů. Na rozdíl od tohoto klienta měl jeden z mých dřívějších produktů určitou historii předtím, než jsem k němu přišel. V tomto případě diskutovali stakeholdeři tři roky (!), jak by se měli 접nout k produktu, který chtěli postavit. Jeden z klientů mi vysvětlil, že jedna z důvodů, proč mě přivedl, byla pomoc firmě překonat některé z těchto interních debat, zejména proto, že produkt, který chtěl postavit, musel uspokojit hierarchii organizací zapojených.
Došel jsem k závěru, že tyto územní boje byly většinou spojeny s daty vlastněnými klientem, jeho dceřinými společnostmi a externími zákazníky, takže v tomto případě celý produktový backlog se týkal toho, jak tato data budou ingestována, uložena, zabezpečena a spotřebována pro jeden use case generující na vyžádání sítě zdravotnických poskytovatelů pro analýzu nákladů.
V rané fázi své kariéry jsem pochopil, že architektonická kvalita zvaná “uživatelská přívětivost” není omezena pouze na koncové uživatele, ale i na vývojáře softwaru. Důvodem je, že kód, který je napsán, musí být stejně použitelný jako uživatelské rozhraní pro koncové uživatele. Aby produkt stal použitelným, je třeba postavit důkazy o konceptu, aby se prokázalo, že vývojáři budou moci dělat to, co chtějí, zejména pokud se týká konkrétních technologických voleb, které dělají. Ale důkazy o konceptu jsou pouze začátkem, protože produkty jsou nejlepší, když se vyvíjejí v průběhu času. Podle mého názoru by základ pro MVP měl být ideálně postaven na prototypu, který vykazuje určitou stabilitu, aby vývojáři mohli pokračovat v jeho vývoji.
Zatímco jste recenzoval knihu ‘Machine Learning at Enterprise Scale’, uvedl jste, že ‘použití open source produktů, rámců a jazyků spolu s agilní architekturou složenou z mixu open source a komerčních komponent poskytuje pružnost, kterou mnoho firem potřebuje, ale ne hned uvědomí na začátku’. Můžete se podívat na některé detaily, proč věříte, že firmy, které používají open source, jsou pružnější?
Mnohé komerční datové produkty používají klíčové open source komponenty pod pokličkou a umožňují vývojářům používat populární programovací jazyky, jako je Python. Firmy, které staví tyto produkty, vědí, že open source komponenty, které si zvolily, jim dávají výhodu, protože jsou již široce používány komunitou.
Open source komponenty se silnými komunitami jsou snazší prodávat, díky familiaritě, kterou přinášejí. Komerčně dostupné produkty, které se skládají hlavně z uzavřeného zdrojového kódu nebo open source, který je používán pouze konkrétními komerčními produkty, často vyžadují buď školení od těchto dodavatelů, nebo licence pro použití softwaru.
Dále je dokumentace pro takové komponenty většinou nepřístupná, což nutí vývojáře být závislé na těchto firmách. Když jsou široce akceptované open source komponenty, jako je Apache Spark, centrem pozornosti, jako u produktů, jako je Databricks Unified Analytics Platform, mnoho z těchto položek je již k dispozici v komunitě, minimalizuje části, na kterých vývojářské týmy potřebují záviset na komerčních subjektech, aby mohli dělat svou práci.
Dále, protože komponenty, jako je Apache Spark, jsou široce akceptovány jako de facto průmyslový standardní nástroj, lze kód snadno migrovat napříč komerčními implementacemi takových produktů. Firmy budou vždy nakloněny k začlenění toho, co považují za konkurenční diferenciátory, ale mnoho vývojářů nechce používat produkty, které jsou zcela nové, protože to je obtížné přesunout se mezi firmami a tenduje k odříznutí od silných komunit, na které jsou zvyklí.
Z osobní zkušenosti jsem pracoval s takovými produkty v minulosti a může být obtížné získat kompetentní podporu. A to je ironické, protože tyto firmy prodávají své produkty s očekáváním, že podpora bude poskytnuta včas. Měl jsem zkušenost s odesláním pull requestu do open source projektu, se kterým byl fix začleněn do buildu téhož dne, ale nemůžu říci totéž o žádném komerčním projektu, se kterým jsem pracoval.
Ještě něco, co věříte o open source, je to, že vede k ‘přístupu k silným vývojářským komunitám’. Jak velké jsou některé z těchto komunit a co je činí tak efektivními?
Developer komunity kolem konkrétního open source produktu mohou dosahovat stovek tisíc. Adopční rychlost neukazuje nutně na sílu komunity, ale je to dobrý ukazatel toho, že je to pravda, protože tendují k produkci ctnostných cyklů. Považuji komunity za silné, když produkují zdravé diskuze a efektivní dokumentaci a kde je aktivní vývoj probíhající.
Když architekt nebo senior vývojář prochází procesem výběru, které produkty začlenit do toho, co staví, mnoho faktorů obvykle vstupuje do hry, nejen o produktu samotném a o komunitě, ale o vývojářských týmech, kteří je budou adoptovat, zda jsou tyto dobré pro ekosystém, který se vyvíjí, co vypadá roadmapa a v některých případech, zda lze najít komerční podporu, pokud je tato potřeba. Avšak mnoho z těchto aspektů odpadá v nepřítomnosti silných vývojářských komunit.
Můžete doporučit tři knihy, které byste mohli doporučit našim čtenářům?
Dneska čtu velmi málo programovacích knih, a zatímco existují výjimky, realita je, že tyto knihy jsou obvykle zastaralé velmi rychle a vývojářská komunita obvykle poskytuje lepší alternativy prostřednictvím diskuzních fór a dokumentace. Mnohé z knih, které teď čtu, jsou mi k dispozici zdarma, buď prostřednictvím technologických newsletterů, na které se přihlásil, autorů a publicistů, kteří se na mě obrátí, nebo těch, které mi Amazon (AMZN ) pošle. Například Amazon mi poslal předtisk “The Lean Startup” pro mou recenzi v roce 2011, který mi představil koncept MVP, a nedávno mi poslal kopii “Julia for Beginners”.
(1) Jedna kniha z O’Reilly, kterou jsem doporučil, je “In Search of Database Nirvana”. Autor podrobně popisuje výzvy pro dotazovací stroj databáze, aby podporoval zátěže sahající od OLTP na jedné straně až po analytické na straně druhé, s provozními a business inteligentními zátěžemi uprostřed. Tato kniha může být použita jako průvodce pro hodnocení databázového stroje nebo kombinace dotazovacího a úložného stroje, zaměřeného na splnění požadavků zátěže, zda jsou tyto transakční, analytické nebo kombinace obou. Kromě toho autorova diskuse o “kyvadlovém databázovém kyvadle” v posledních letech je zvláště dobře provedena.
(2) Přestože se mnoho věcí změnilo v oblasti dat v posledních letech, “Disruptive Analytics” představuje přístupný, krátký přehled posledních 50 let inovací v analytice, který jsem neviděl jinde, a diskutuje o dvou typech narušení: narušení inovací v analytickém řetězci a narušení odvětví inovacemi v analytice. Z pohledu startupů a analytiků je úspěch umožněn narušením jejich odvětví, protože použití analytiky pro diferenciaci produktu je způsobem, jak vytvořit narušující obchodní model nebo vytvořit nové trhy. Z pohledu investic do analytické technologie pro své organizace může mít smysl čekat, protože technologie ohrožené narušením jsou rizikové investice kvůli zkrácené užitečné životnosti.
(3) Jedna z nejlepších technologických obchodních textů, které jsem četl, je “The Limits of Strategy”, od spoluzakladatele Research Board (získané Gartnerem), mezinárodní think tank, který zkoumá vývoj v počítačovém světě a jak by se korporace měly přizpůsobit. Autor představuje velmi podrobné poznámky z mnoha svých rozhovorů s obchodními lídry, poskytujícími hlubokou analýzu po celý text o svých zkušenostech s budováním (se svou manželkou) skupiny klientů, významných firem, které potřebovaly sladit své strategie s explodujícím světem počítačů. Jako jsem komentoval v mé recenzi, co odlišuje tuto knihu od ostatních souvisejících snah jsou dvě zdánlivě protichůdné charakteristiky: průmyslová šíře a intimita, která je dostupná pouze prostřednictvím face-to-face interakce.
Jste Principal Architect pro datovou praxi společnosti SPR. Můžete popsat, co SPR dělá?
SPR je digitální technologická konzultace se sídlem v Chicagu, která dodává technologické projekty pro širokou škálu klientů, od firem Fortune 1000 po lokální startupy. Budujeme komplexní digitální zkušenosti pomocí široké škály technologických schopností, od vlastního softwarového vývoje, uživatelského rozhraní, dat, cloudové infrastruktury, DevOps koučování, softwarového testování a projektového managementu.
Jaké jsou některé z vašich odpovědností ve SPR?
Jako Principal Architect je mojí hlavní odpovědností řídit dodávku řešení pro klienty, vedení architektury a vývoje projektů, a to často znamená nosit další klobouky, jako je produktový vlastník, protože být schopen vztahovat se k tomu, jak produkty jsou postaveny z praktického pohledu, váží hodně v ohledu na to, jak by měla být práce prioritizována, zejména při budování od začátku. Jsem také zapojen do diskusí s potenciálními klienty, když je moje odbornost potřebná, a společnost nedávno požádala, abych zahájil pokračující sérii sezení s fellow architekty v datové praxi, abychom diskutovali o klientech, projektech, side projektech a o tom, co moji kolegové dělají, aby zůstali v obraze technologicky, podobně jako to, co jsem dělal pro předchozí konzultaci, ačkoli vnitřní setkání pro tuto firmu zahrnovala celou technologickou praxi, ne specificky pro data.
Na většinu své kariéry jsem se specializoval na open source vývoj pomocí Javy, prováděje stále více datové práce na cestě. Kromě těchto dvou specializací dělám také to, co moji kolegové a já nazýváme “praktickou” nebo “pragmatickou” podnikovou architekturu, což znamená provádět architektonické úkoly v kontextu toho, co se má postavit, a skutečně to stavět, spíše než pouze mluvit o tom nebo kreslit diagramy o tom, uvědomuje si samozřejmě, že tyto ostatní úkoly jsou také důležité.
Podle mého názoru se tyto tři specializace překrývají navzájem a nejsou vzájemně se vylučující. Vysvětlil jsem výkonným ředitelům v posledních letech, že linie, která byla tradičně tažena technologickým průmyslem mezi softwarovým vývojem a datovou prací, již není dobře definována, částečně protože nástroje mezi těmito dvěma prostory se sloučily, a částečně protože, jako výsledek této konvergence, datová práce sama se stala softwarovým vývojovým úsilím. Avšak tradiční datoví praktici obvykle nemají softwarové vývojářské pozadí, a naopak, pomáhám naplnit tuto mezeru.
Je něco jiného, co byste chtěli sdílet o open source, SPR nebo jiném projektu, na kterém pracujete?
Jiný projekt (čtěte o něm zde a zde), který jsem nedávno vedl, zahrnoval úspěšnou implementaci Databricks Unified Analytics Platform a migraci spouštění strojových učících modelů na něj z Azure HDInsight, Hadoop distribuce, pro ředitele datové inženýrství velké pojišťovny.
Všechny tyto migrované modely byly určeny k předpovědi úrovně spotřebitelské adopce, která může být očekávána pro různé pojistné produkty, některé z nich byly migrovány z SAS před několika lety, kdy společnost přešla na použití HDInsight. Největší výzvou byla špatná kvalita dat, ale další výzvou byla absence komplexního verzování, kmenová znalost a neúplná dokumentace, a nezralá dokumentace a podpora Databricks týkající se použití R v době, kdy projekt proběhl (Azure implementace Databricks byla teprve nedávno obecně dostupná).
Abyste řešili tyto klíčové výzvy, jako součást naší implementační práce jsem učinil doporučení týkající se automatizace, konfigurace a verzování, oddělení datových problémů, dokumentace a potřebné úpravy napříč jejich daty, platformou a modelovacími týmy. Naše práce přesvědčila původně velmi skeptického Chief Data Scientist, že Databricks je správnou cestou, s cílem migrace zbývajících modelů na Databricks co nejdříve.
Toto je fascinující rozhovor, který se dotkl mnoha témat, cítím, že jsem se mnoho naučil o open source. Čtenáři, kteří by chtěli se dozvědět více, mohou navštívit webové stránky SPR nebo webové stránky Erika Gfessera.












