Machine learning v praxi? Po viac ako roku spolupráce má zákazník vybudované oddelenie, ktoré spracováva obchodné dáta z celého sveta.
Po pár rokoch na rôznych IT projektoch som si všimol, že okrem určitých nemenných pravidiel sa stále objavuje kúzlo v podobe zázračného pomenovania niečoho síce starého, ale dobre oprášeného, čo získava pozornosť dodávateľov aj zákazníkov. Nosná vlna týchto trendov vychádza z marketingových oddelení veľkých firiem, alebo ju spúšťajú ambiciózni akademici. V prípade aktuálne horúceho buzzwordu Machine learning (ML) a Umelá inteligencia (UI) je to asi veľmi podobné. Je tu príležitosť. Je tu výkon aký tu nebol, konečne sú dostupné ľahko realizovateľné a „lacné“ datacentrá a je tu hlavne veľa dát.
Pri povrchnom pohľade pod ML a UI chápeme implementácie niektorých algoritmov, ktoré sú známe už niekoľko desaťročí. Na univerzitách sa študenti roky stretávajú s ich implementáciami v prostrediach ako R, Mathlab atď. a mnohé aplikácie ako neurónové siete a fuzzy matching aplikácie sú už roky súčasťou zariadení, programov a appiek, ktoré denne používame. Niečo ale dnešný raketový boom ML a UI spustilo a veľké firmy v tomto prípade naháňajú chvost trendu.
Na jednej strane vznikajú skutočné Big Data z množstva dátových zdrojov a na druhej strane sa stáva stále dostupnejší vysoký výkon. Datacentrá nám prinášajú doslova do domáceho notebooku obrovský procesorový potenciál a v princípe neobmedzené úložné kapacity. Samo o sebe by to ale nestačilo, keby nedošlo k radikálnemu posunu v samotnej implementácii známych algoritmov a v oblasti obslužných platforiem, ktoré nové implementácie algoritmov dokážu spúšťať v paralelizovanom prostredí. Historicky sa v tejto oblasti pohybuje niekoľko veľkých dodávateľov technológií, ale skutočný gamechanger je niekde inde.
Kľúčovú rolu v tejto oblasti podľa mňa zohrala Open-source komunita a veľkí hráči, ktorí naskočili na túto, z korporátneho pohľadu novú, vlnu. Pri podrobnejšom pohľade na mnohé komerčné platformy a rokmi overené produkty, ktoré začali v posledných mesiacoch ponúkať zázračné možnosti matematiky a štatistiky, narazíte na tie isté open-soruce knižnice algoritmov a rovnaké výpočtové prostredia. Existujú síce hráči na trhu, ktorí roky vyvíjajú vlastné implementácie ML a UI algoritmov, ale dominancia projektov z rodiny Apache je očividná.
Tento blog má za cieľ ísť hlbšie pod povrch témy a priblížiť reálnu skúsenosť implementácie zákazníckej potreby v oblasti korporátnych big data. Tento príbeh začal sucho. Nákup veľkej svetovej korporácie našiel na webe EEA informáciu o našej kompetencii v oblasti opensource platforiem a zaslal nám dopyt ohľadom potenciálnej implementácie štatistických algoritmov pomocou opensource platforiem.
Po prvej výmene názorov a vysvetlení očakávaní zákazníka nastala situácia, pred ktorou sa často nachádza obchodník a konzultant dodávateľa. Klient niečo chce, ale vy viete, že chce niečo iné.
Klient chce „len“ vyskúšať konkrétnu rodinu štatistických algoritmov a zistiť na malej vzorke dát, či mu výsledky otvárajú priestor pre rozvoj a investície v oblasti predikcie nových obchodných príležitostí, alebo je to slepá cesta. Zároveň výpočty môžu trvať aj dni, podstatný je výsledok. Naprogramovaný výsledok musí byť open-source, alebo v prípade hotových komponentov je možné použiť len open-source.
Skúsenosti z mnohých projektov hovoria, že „len“ je v skutočnosti požiadavka zákazníka, že to nemá byť drahé a má to trvať krátko. Pre dodávateľa to znamená, že z pohľadu výskumu a know-how musí do projektu dať minimálne 90% toho, čo by investoval do veľkého (tisíce dní práce) projektu.
Druhá požiadavka, že čas spracovania nehrá rolu, znamenala, že zákazník nemá žiadnu robustnú infraštruktúru a jeho predstava je, že riešenie bude fungovať na bežných počítačoch. Pre dodávateľa to znamená, že v projekte nie je žiaden rozpočet na infraštruktúru.
Požiadavka na open-soruce je v súčasnosti štandard. Firmy sa už naučili, že open-soruce neznamená zadarmo, ale znamená to hlavne minimalizáciu rizika vendor lock-in https://en.wikipedia.org/wiki/Vendor_lock-in – závislosti na jednom dodávateľovi. Open-source zároveň minimalizuje právne riziká vychádzajúce z rôznych temných zákutí autorského práva a patentov.
Späť ale k dileme obchodníka. Dalo by sa túto situáciu čítať rôzne. V mojom prípade som si možnosti vyhodnotil nasledovne.
Asi by som nepísal tento príbeh, keby sme daný tender nevyhrali. Takže v skratke. Zákazník dostal v rámci predstavenia riešenia demo v podobe Docker virtuálneho servera, kam sa dali namapovať zdrojové datasety a z príkazového riadku bolo možné spustiť algoritmus, ktorý vygeneroval výsledky do výsledného datasetu. Veľmi zaujímavé výsledky… Výpočet netrval dni, trval rádovo jednotky minút. Zákazník dostal od nás ponuku, že v rámci riešenia dostane virtualizované výpočtové prostredie, ktoré bude obsahovať okrem existujúcich implementovaných algoritmov niekoľko rozhraní pre implementáciu vlastných algoritmov, hlavne pre spracovanie vstupných datasetov a namapovanie výstupov výpočtov na zdrojové dáta = aplikovanie poznania zo štatistiky na skutočnosť zákazníka (o tom ale budú blogy v budúcnosti).
Zároveň ponuka obsahovala webové grafické prostredie Zeppelin https://zeppelin.apache.org/, ktoré umožní prístup k platforme cez web prehliadač a sprístupní riešenie množstvu dátových analytikov súčasne. Zeppelin umožní zjednotiť na úrovni jednej obrazovky množstvo platforiem a ide o veľmi perspektívny nástroj na zabezpečenie frontend integrácie systémov aj mimo Spark výpočtovú platformu.
Po viac ako roku spolupráce má zákazník vybudované oddelenie, ktoré spracováva obchodné dáta z celého sveta. Má k dispozícii informácie o miliónoch transakcií z rôznych trhov a rôznych segmentov až po informácie o samotných transakciách produktov smerom na zákazníkov.
Využitie ML algoritmov pomáha obchodu spoločnosti identifikovať nových zákazníkov. V súčasnosti systém poskytuje informácie o tom, ktorému zákazníkovi sa oplatí ponúknuť daný produkt a s akou pravdepodobnosťou si ho kúpi. Odhady na začiatku boli, že dosiahneme úspešnosť takýchto obchodných odporúčaní pod 50% a cieľ bol dosiahnuť aspoň 40%. Dnes sa výsledky pohybujú v pásme medzi 80-98% úspešnosti, čo prekonalo akékoľvek očakávania. ML ale nie je nový mozog, čo nahradí existujúcich obchodníkov. ML sa len vie učiť a opakovať.
Pre to, aby bolo možné algoritmy používať viac-menej v reálnom čase, je podstatné zvoliť vhodné vstupné parametre. Ak sú parametre nastavené „nízko“, algoritmus nedáva žiadne výsledky. Ak sa nastavia „vysoko“, množstvo výstupov a kombinácii výsledkov môže byť blízko k nekonečnu a výpočtový aparát sa zasekne, zahltí, alebo minimálne nedá odpovede, ktoré by bolo možné rozumne interpretovat. Tu je obrovský priestor pre UI. Niekedy aj tisícina v hodnote parametra rozhoduje o tom, či algoritmus „funguje“. V tejto oblasti má EEA niekoľko unikátnych konceptov a riešení. Vieme bežne dostupné algoritmy „ochrániť“ umelou inteligenciou, ktorá sa priebežne učí ako prebiehajú výpočty na daných zákazníckych dátach. Efektivita takto optimalizovaného a zabezpečeného výpočtového aparátu môže byť hlavný argument, či je dané algoritmy vôbec možné s danými dátami a požiadavkami použiť. V tomto je portfólio EEA originálne a v súčasnosti nás odlišuje od konkurencie.
ML je honosný buzzword ako naznačujem na začiatku blogu. Ide o obyčajnú štatistiku zapojenú do vhodne implementovaných algoritmov. Bez rozumnej požiadavky a vhodných dát však nemá pre používateľov žiadnu hodnotu. Na druhej strane, ak existuje rozumná požiadavka u zákazníka, dáta, ktorými disponuje, majú potenciál zlatej rudy. ML môže byť tou zlatou baňou, ktorá dokáže business zákazníka posunúť na novú úroveň. To, či sa zákazník nachádza v situácii, v ktorej mu ML môže pomôcť v dosahovaní jeho cieľov, je otázka pre skúsených expertov v tejto oblasti, alebo je to o pochopení štatistiky ako takej a jej potenciálu v danej doméne, v ktorej sa zákazník pohybuje.
Ak by som to mal zhrnúť, ML a UI nie je nič nové.
Ak majú byť efektívne nasadené, ide o klasickú poctivú prácu v oblasti konzultingu, informatiky a matematiky. Bez schopnosti používať sedliacky rozum a danej doménovej znalosti sú to prázdne pojmy. Za určitých podmienok je to ale obrovská príležitosť a dnes je možné odlíšiť sa od konkurencie len v málo odtieňoch. Nasadenie ML a UI môže byť ten odtieň, ktorý Vás môže posunúť vpred.
Ak máte pocit, že by ste vedeli v tejto oblasti uvažovať o vybudovaní Vašej zlatej bane, pokojne sa na nás obráťte. Niekoľko ich už prevádzkujeme a budujeme.
Gabriel Lachmann