
Približne pred jeden a pol rokom som začal zúčastňovať hackathonov. Počas tohto obdobia som sa zúčastnil na viac ako 20 podujatiach rôzneho rozsahu a tém v Moskve, Helsinkách, Berlíne, Mníchove, Amsterdame, Zürichu a Paríži. Na všetkých týchto podujatiach som sa zaoberal analýzou dát v rôznej forme. Rád prichádzam do nových miest, nadväzujem nové kontakty, prichádzam s inovatívnymi nápadmi, realizujem staré plány v krátkom čase a zažívam adrenalín počas prezentácie a vyhlásenia výsledkov.
Tento príspevok je prvý z troch príspevkov na tému hackathonov, v ktorom sa budem zaoberať tým, čo hackathony sú a prečo by ste sa mali začať zúčastňovať. Druhý príspevok bude o temnej strane týchto podujatí – o tom, ako organizátori robili chyby pri organizovaní a k čomu to viedlo. Tretí príspevok bude venovaný odpovediam na otázky týkajúce sa hackathonovej témy.
Čo je to hackathon?
Hackathon je podujatie, ktoré sa koná počas niekoľkých dní, jeho cieľom je riešiť nejaký problém. Zvyčajne je na hackathone niekoľko problémov, pričom každý je prezentovaný ako samostatný track. Spoločnosť-sponzor poskytuje opis úlohy, metriky úspešnosti (metriky môžu byť subjektívne ako "novosť a kreativita", ale môžu byť aj objektívne – presnosť klasifikácie na oddelenom datasete) a zdroje pre dosiahnutie úspechu (API spoločnosti, datasety, "hardvér"). Účastníci majú počas prideleného času formulovať problém, navrhnúť riešenie a predstaviť prototyp svojho produktu. Najlepšie riešenia získavajú ceny od spoločnosti a možnosť ďalšej spolupráce.
Fázy hackathonu
Po vyhlásení úloh sa účastníci hackathonu zoskupujú do tímov: každý "jednotlivec" dostane mikrofón a rozpráva o vybranej úlohe, svojej skúsenosti, myšlienke a odborníkoch, ktorých potrebuje na realizáciu. Niekedy môže tím pozostávať z jedného človeka, ktorý je schopný dokončiť celú prácu na projekte na dostatočne vysokej úrovni. To je relevantné pre hackathony zamerané na analýzu dát, ale často je to zakázané alebo neželané pre produktové podujatia — organizátori sú zameraní na pokračovanie práce na projekte, ale už v spoločnosti; vytvorený tím má niekoľko výhod pred účastníkmi, ktorí sa rozhodli vytvoriť produkt sami. Optimálny tím sa zvyčajne skladá zo 4 ľudí a zahŕňa: frontend, backend, data scientista a biznisového človeka. Mimochodom, rozdelenie dátovej vedy a produktových hackathonov je dosť jednoduché — ak existuje dátový súbor s jasnou metrikou a leaderboardom, alebo je možné vyhrať s kódom v jupyter notebooku — ide o hackathon v oblasti dátovej vedy; všetko ostatné — kde je potrebné vytvoriť aplikáciu, webovú stránku alebo niečo pútavé — je produktové.
Zvyčajne začiatok práce na projekte začína o 9 večer v piatok, a termín je do 10 ráno v nedeľu. Časť tohto času je potrebné venovať spánku (nespať a kódovať — to je istá cesta k neúspechu, vyskúšal som to), a to znamená, že účastníci nemajú príliš veľa času na to, aby vytvorili niečo kvalitné. Aby sa účastníkom pomohlo, na mieste sú prítomní zástupcovia firmy a mentori.
Práca na projekte začína komunikáciou s predstaviteľmi firmy, pretože oni najlepšie rozumejú špecifike úlohy, metrikám a pravdepodobne budú posudzovať vaše práce na konci. Cieľom tejto komunikácie je pochopiť, ktoré oblasti sú najrelevantnejšie, a na čo sa oplatí sústrediť svoju pozornosť a čas.
Na jednom hackathone bola stanovená úloha regresie na datasete s tabuľkovými údajmi a obrázkami a s jasnou metrikou — RMSE. Po rozhovore s datovým vedcom spoločnosti som pochopil, že potrebujú nie regresiu, ale klasifikáciu, ale niekto z manažmentu sa rozhodol, že úlohu je najlepšie riešiť práve takto. A klasifikáciu potrebujú nie na to, aby dosiahli nárast finančných metrík, ale aby pochopili, ktoré parametre sú najdôležitejšie pri rozhodovaní, a potom ich manuálne spracovali. To znamená, že pôvodná úloha (regresia s RMSE) sa mení na klasifikáciu; priorita hodnotenia sa mení z dosiahnutej presnosti na schopnosť vysvetliť výsledok. To na druhej strane vylučuje možnosť použitia stacking a black box algoritmov. Takýto dialóg mi ušetril množstvo času a zvýšil moje šance na víťazstvo.
Po tom, čo ste pochopili, čo potrebujete robiť, začína priamy prístup k projektu. Musíte ustanoviť kontrolné body — čas, do ktorého je potrebné splniť stanovené úlohy; zároveň je dobré pokračovať v komunikácii s mentormi — zástupcami spoločnosti a technickými odborníkmi — to je užitočné na prispôsobenie smeru vášho projektu. Čerstvý pohľad na problém môže naznačiť zaujímavé riešenie.
Keďže sa na hackathone zúčastňuje veľké množstvo začiatočníkov, je z pohľadu organizátorov dobrým zvykom usporiadať prednášky a workshopy. Zvyčajne sú tri prednášky — o tom, ako predstaviť svoju myšlienku vo forme produktu, prednáška s technickou témou (napríklad o využívaní otvorených API v strojovom učení, aby ste nemuseli písať svoj speech2text za dva dni, ale mohli využiť hotové), prednáška o pitchingu (ako predstaviť svoj produkt, ako správne mávať rukami na scéne, aby to poslucháčom nebolo nudné). Sú rôzne aktivity, ktoré oživia účastníkov — joga, stolný futbal a tenis alebo hranie hier na konzole.
V nedeľu ráno musíte predložiť výsledky svojej práce porote. Na dobrých hackathonoch všetko začína technickou expertízou – skutočne to, čo tvrdíte, funguje? Cieľom tejto kontroly je oddeliť tímy s peknou prezentáciou a buzzwordmi od tých, ktorí skutočne niečo urobili. Bohužiaľ, technická expertíza nie je prítomná na všetkých hackathonoch a sú prípady, keď tím s 12 slidmi a myslením „... blockchain, kvantová výpočtová technika, a tu AI to dokončí...“ vyhrá prvé miesto. Takéto precedensy nie sú bežné, ale pretože sa pamätajú najlepšie, mnohí si myslia, že dobrá prezentácia je 99% víťazstva na hackathone. Prezentácia je, mimochodom, skutočne dôležitá, ale jej príspevok nepresahuje 30%.
Po vystúpení účastníkov porota rozhoduje o ocenení víťazov. Na tomto sa oficiálna časť hackathonu končí.
Motivácia k účasti na hackathonoch
Skúsenosť
Z hľadiska získanej skúsenosti je hackathon jedinečná udalosť. V prírode existuje len málo miest, kde môžete realizovať nápad z ničoho za 2 dni a získať okamžitú spätnú väzbu o svojej práci. Počas hackathonu sa rozvíja kritické myslenie, zručnosti tímovej práce, time management, schopnosť pracovať v stresových situáciách, schopnosť prezentovať výsledky svojej práce zrozumiteľne, zručnosti v prezentovaní a mnohé ďalšie. Presne preto sú hackatony skvelým miestom pre ľudí s teoretickými znalosťami, ktorí chcú získať reálnu skúsenosť.
Ceny
Zvyčajne výška cenového fondu hackathonu činí približne 1.5k – 10k eur za prvé miesto (v Rusku – 100-300 tisíc rubľov). Očakávaný prínos (expected value, EV) z účasti sa dá vypočítať pomocou jednoduchého vzorca:
EV = Prize * WinRate + Future_Value - Costs kde Cena — výška ceny (pre jednoduchosť predpokladajme, že je len jedna);
WinRate — pravdepodobnosť víťazstva (pre začínajúci tím bude táto hodnota obmedzená na maximálne 10%, pre skúsenejších – 50% a viac; stretol som ľudí, ktorí si z každého hackathonu odnášali cenu, ale to je skôr výnimka ako pravidlo a na dlhšej trati ich winrate bude nižší ako 100%);
Future_Value — hodnota, ktorá ukazuje očakávaný zisk z účasti na hackathone: môže to byť zisk z nadobudnutých skúseností, nadviazaných kontaktov, získaných informácií a podobne. Túto hodnotu je takmer nemožné presne určiť, ale je dôležité si na ňu pamätať;
Náklady — výdavky na transport, ubytovanie a iné.
Rozhodnutie o účasti sa prijíma na základe porovnania EV hackathonu s EV aktivitou, ktorou by ste sa zaoberali, keby hackathon nebol: ak ste chceli ležať cez víkend na pohovke a škrabať sa v nose, tak pravdepodobne stojí za to sa zúčastniť hackathonu; ak tráviť čas s rodičmi alebo priateľkou — vezmite ich do tímu na hackathon (žartujem, rozhodnite sa sami), ak si chcete privyrobiť — porovnávajte dolár-hodinu.
Na základe svojich výpočtov môžem povedať, že v Rusku pre priemerného dátového vedca na úrovni junior — mid je účasť na hackathonoch porovnateľná s finančným ziskom z bežného pracovného dňa, ale sú aj nuansy (veľkosť tímu, typ hackathonu, prize pool a podobne). V súčasnosti hackathony nie sú zlatou baňou, ale môžu poskytnúť príjemný príspevok do osobného rozpočtu.
Nábor do firmy a networking
Pre spoločnosť je hackathon jedným zo spôsobov náboru nových zamestnancov. Bude oveľa jednoduchšie ukázať, že ste rozumný človek a dokážete pracovať na hackathone, ako na pohovore, keď budete na tabuli vykresľovať binárny strom (čo, mimochodom, nie vždy zodpovedá tomu, čo budete robiť v skutočnej práci dátového vedca, ale tradície treba dodržiavať). Takáto kontrola v "bojových" podmienkach môže nahradiť testovací deň.
Svoju prvú prácu som získal vďaka hackathonu. Na hackathone som ukázal, že z dát je možné vyťažiť viac peňazí, a povedal, ako to plánujem urobiť. Na hackathone som začal projekt, vyhral ho a potom som projekt pokračoval už v spoločnosti-sponzorovi. Bol to štvrtý hackathon v mojom živote.
Možnosť získať unikátny dátový súbor
Toto je veľmi aktuálny bod pre hackatony v oblasti dátovej vedy, ktorého význam si nie každý uvedomuje. Zvyčajne spoločnosti-sponzori poskytujú skutočné dátové súbory počas konania akcie. Tieto údaje sú súkromné, nachádzajú sa pod NDA, čo nebráni ukázať vám proof of concept na reálnych dátach, a nie na nejakom fiktívnom titanicu. V budúcnosti vám takéto výsledky výrazne pomôžu pri zamestnávaní v danej spoločnosti alebo v konkurenčnej spoločnosti, alebo pri odôvodňovaní podobných projektov. Súhlasíte, že za rovných podmienok je mať realizované projekty, ktoré boli pozitívne ohodnotené, lepšie ako nemať žiadne? Vo všeobecnosti podobné realizované projekty hrajú podobnú úlohu ako medaily a statusy na Kaggle, ale pre priemysel je ich hodnota viac evidentná.
Rady
Celkovo práca na hackatone je dosť rôznorodý zážitok a ťažko formulovať nejaký zoznam pravidiel. Avšak tu by som chcel uviesť zoznam pozorovaní, ktoré môžu pomôcť začiatočníkovi:
- Nebojte sa zúčastniť hackatonov, aj keď nemáte skúsenosti alebo tím. Zamyslite sa nad tým, čím by ste mohli byť užitoční. Napríklad môžete mať zaujímavú myšlienku alebo sa dobre vyznáte v nejakej oblasti? Môžete využiť svoje doménové znalosti pri formulovaní problému a nájsť netriviálne spôsoby riešenia. Alebo ste možno najlepší v googlovaní? Vaša schopnosť vám ušetrí kopec času, ak dokážete nájsť hotové realizácie na GitHub-e. Alebo sa veľmi dobre vyznáte v ladení parametrov lightgbm? V takom prípade nechoďte na hackathon, ale dokážete to v súťažiach Kaggle.
- Taktika je dôležitejšia ako manévre. Vašou úlohou na hackatone je vyriešiť problém. Niekedy, aby ste problém vyriešili, ho musíte najprv identifikovať. Overte, či je váš identifikovaný problém skutočne aktuálny pre spoločnosť. Kontrolujte, či vaše riešenie zodpovedá problému, a položte si otázku o optimalite vášho riešenia. Pri hodnotení vášho riešenia sa najprv budú zameriavať na relevantnosť problému a primeranosť navrhnutého riešenia. Architektúra vašej neurónovej siete alebo počet hands-on aukcií, ktoré ste získali, zaujíma len málokoho.
- Navštívte čo najviac hackatonov, ale nebojte sa odísť z zle organizovaných akcií.
- Pridajte výsledky svojej práce z hackathonu do životopisu a nebojte sa o ňom verejne písať.

Podstata hackathonov. Stručne
Zdroj: habr.com
