
Přibližně před jeden a půl rokem jsem začal účastnit hackathonů. Během této doby jsem se zúčastnil více než 20 akcí různých velikostí a témat v Moskvě, Helsinkách, Berlíně, Mnichově, Amsterdamu, Curychu a Paříži. Ve všech těchto akcích jsem se věnoval analýze dat v různých podobách. Líbí se mi navštěvovat nová města, navazovat nové kontakty, přicházet s novými nápady, realizovat staré záměry za krátký čas a také adrenalin během prezentace a vyhlašování výsledků.
Tento příspěvek je prvním ze tří příspěvků na téma hackathonů, ve kterém vysvětlím, co jsou hackathony a proč byste měli začít účastnit těchto akcí. Druhý příspěvek se bude zabývat temnou stránkou těchto akcí – o tom, jak organizátoři dělali chyby během realizace, a k čemu to vedlo. Třetí příspěvek bude věnován odpovědím na otázky týkající se hackathonů.
Co je hackathon?
Hackathon je akce, která se koná během několika dní a jejím cílem je vyřešení určitého problému. Obvykle je na hackathonu několik problémů, z nichž každý je prezentován jako samostatná dráha. Společnost-sponzor poskytuje popis úkolu, metriky úspěšnosti (metriky mohou být subjektivní, jako „novost a kreativita“, nebo objektivní — přesnost klasifikace na odděleném datovém souboru) a zdroje k dosažení úspěchu (API společnosti, datové sady, „hardware“). Účastníci mají během stanoveného času formulovat problém, navrhnout řešení a představit prototyp svého produktu. Nejlepší řešení získávají ceny od společnosti a možnost další spolupráce.
Etapy hackathonu
Po vyhlášení úkolů se účastníci hackathonu spojují do týmů: každý "osamělý hráč" dostane mikrofon a poví o zvoleném úkolu, svých zkušenostech, nápadu a o tom, jaké odborníky potřebuje k realizaci. Někdy může tým sestávat z jedné osoby, která je schopna vykonat veškerou práci na projektu samostatně na dostatečně vysoké úrovni. To je relevantní pro hackathony zaměřené na analýzu dat, ale často je to zakázáno nebo nežádoucí pro produktové akce – organizátoři mají zájem o další pokračování práce na projektu, ale již ve firmě; vytvořený tým má řadu výhod před účastníky, kteří se rozhodli vytvořit produkt sami. Optimální tým obvykle tvoří 4 osoby a zahrnuje: frontendového vývojáře, backendového vývojáře, datového vědce a obchodníka. Mimochodem, rozdělení hackathonů zaměřených na datovou vědu a produktové hackathony je poměrně jednoduché – pokud existuje datový soubor s jasnou metrikou a žebříčkem, nebo pokud můžete vyhrát s kódem v jupyter notebooku – je to hackathon zaměřený na datovou vědu; vše ostatní – kde je potřeba vytvořit aplikaci, web nebo něco přitažlivého – je produktový hackathon.
Obvykle práce na projektu začíná v 9 večer v pátek a termín odevzdání je v 10 ráno v neděli. Část tohoto času je třeba věnovat spánku (nevyspat a kódovat – to je jistý způsob, jak selhat, to jsem ověřil), což znamená, že účastníci nemají příliš mnoho času na to, aby udělali něco kvalitního. Aby se účastníkům pomohlo, na místě jsou zástupci společnosti a mentoři.
Práce na projektu začíná komunikací se zástupci společnosti, protože ti lépe chápou specifiku úkolu, metriky a pravděpodobně budou hodnotit vaše práce na konci. Cílem této komunikace je pochopit, které směry jsou nejvíce relevantní, a na co se zaměřit a věnovat svůj čas.
Na jednom hackathonu bylo zadáno úkol regrese na datasetu s tabulkovými daty a obrázky a jasně definovanou metrikou – RMSE. Po rozhovoru s datovým vědcem společnosti jsem pochopil, že potřebují spíše klasifikaci, ale někdo z managementu se rozhodl, že nejlepší způsob, jak úkol vyřešit, je právě takto. A klasifikaci potřebují ne proto, aby získali nárůst peněžních metrik, ale proto, aby pochopili, které parametry jsou při rozhodování nejdůležitější, a potom je zpracovali ručně. To znamená, že počáteční úkol (regrese s RMSE) se mění na klasifikaci; priorita hodnocení se mění z dosažené přesnosti na možnost vysvětlit výsledek. To na druhou stranu vylučuje možnost použití stacking a black box algoritmů. Takový dialog mi ušetřil spoustu času a zvýšil moje šance na vítězství.
Jakmile jste pochopili, co je potřeba udělat, začíná vlastní práce na projektu. Musíte stanovit kontrolní body – čas, do kterého je nutné splnit určené úkoly; zároveň je dobré pokračovat v komunikaci s mentory – zástupci společnosti a technickými specialisty – to je užitečné pro korekci směru vašeho projektu. Čerstvý pohled na problém může naznačit zajímavé řešení.
Jelikož se na hackathonech účastní velké množství nováčků, je ze strany organizátorů dobrým zvykem pořádat přednášky a workshopy. Obvykle bývají tři přednášky – o tom, jak představit svou myšlenku ve formě produktu, přednáška na technické téma (například o využití otevřených API v strojovém učení, abyste nemuseli psát svůj speech2text za dva dny, ale mohli využít hotový), přednáška o pitchingu (jak představit svůj produkt, jak správně mávat rukama na scéně, aby posluchačům nebylo nudno). Nacházejí se různé aktivity, aby povzbudily účastníky – jógová seance, stolní fotbal a tenis nebo hra na konzoli.
V neděli ráno musíte poskytnout výsledky své práce porotě. Na dobrých hackathonech vše začíná technickou expertízou - opravdu to, co tvrdíte, funguje? Cílem této kontroly je oddělit týmy s hezkou prezentací a buzzwordy, ale bez produktu, od těch, kteří skutečně něco vytvořili. Bohužel, technická expertíza není na všech hackathonech přítomná, a občas se stává, že tým s 12 slajdy a mindsetem „... blockchain, kvantové počítače, a tady AI to dotáhne...“ vyhraje první místo. Tyto případy nejsou tak časté, ale protože se lépe zapamatují, mnozí si myslí, že dobrá prezentace je 99% vítězství na hackathonu. Prezentace, mimochodem, je opravdu důležitá, ale její přínos je maximálně 30%.
Po vystoupení účastníků porota rozhodne o udělení cen vítězům. Tímto oficiální část hackathonu končí.
Motivace k účasti na hackathonech
Zkušenosti
Z pohledu získaných zkušeností je hackathon jedinečná událost. V přírodě existuje jen málo míst, kde můžete zrealizovat nápad zcela od nuly za 2 dny a získat okamžitou zpětnou vazbu na svou práci. Během hackathonu se rozvíjí kritické myšlení, schopnost pracovat v týmu, time management, schopnost pracovat ve stresové situaci, umění prezentovat výsledky své práce srozumitelně, dovednosti v prezentacích a mnoho dalšího. Právě proto jsou hackathony skvělým místem pro lidi s teoretickými znalostmi, kteří chtějí získat skutečné zkušenosti.
Ceny
Obvykle se výše prize poolu hackathonu pohybuje mezi 1.5k a 10k eurem za první místo (v Rusku - 100-300 tisíc rublů). Očekávanou hodnotu (expected value, EV) z účasti lze spočítat podle jednoduchého vzorce:
EV = Prize * WinRate + Future_Value - Costs kde Prize — výše ceny (pro zjednodušení budeme předpokládat, že cena je jedna);
WinRate — pravděpodobnost vítězství (pro začínající tým bude tato hodnota omezena shora na 10%, pro zkušenější - 50% a více; vídal jsem lidi, kteří z každého hackathonu odcházeli s cenou, ale to je spíše výjimka z pravidla a na delší vzdálenost bude jejich winrate nižší než 100%);
Future_Value — hodnota, která ukazuje budoucí zisk z účasti na hackathonu: může to být zisk z nabytých zkušeností, navázaných kontaktů, získaných informací atd. Tento údaj je téměř nemožné přesně určit, ale je dobré na něj pamatovat;
Náklady — výdaje na dopravu, ubytování a další.
Rozhodnutí o účasti se přijímá na základě srovnání EV hackathonu s EV aktivity, které byste se chtěli věnovat, kdyby hackathon nebyl: pokud byste chtěli o víkendu ležet na gauči a hrabat se v nose, možná stojí za to se zúčastnit hackathonu; pokud byste chtěli trávit čas s rodiči nebo přítelkyní — vezměte je do týmu na hackathon (žertuju, rozhodněte se sami), pokud byste raději freelancovali — porovnávejte dolar-hodina.
Podle mých výpočtů mohu říci, že v Rusku pro průměrného datového vědce na úrovni junior — mid účast na hackathonech odpovídá peněžnímu zisku z běžného pracovního dne, ale jsou zde i nuance (velikost týmu, typ hackathonu, výše vítězné ceny atd.). Celkově hackathony v současnosti — to není zlaté dno, ale mohou přinést příjemné navýšení osobního rozpočtu.
Nábor do firmy a networking
Pro firmu je hackathon jedním ze způsobů, jak najmout nové zaměstnance. Bude mnohem snazší ukázat, že jste rozumný člověk a umíte pracovat na hackathonu, než na pohovoru, když budete na tabuli rozkreslovat binární strom (což mimochodem ne vždy odpovídá tomu, co budete dělat v reálné práci datového vědce, ale tradice se musí ctít). Takové prověřování v "bojových" podmínkách může nahradit testovací den.
Svou první práci jsem získal díky hackathonu. Na hackathonu jsem ukázal, že z dat lze vyždímat více peněz, a vysvětlil, jak to hodlám udělat. Zahájil jsem projekt na hackathonu, vyhrál ho, a pak jsem pokračoval s projektem již ve firmě-sponzorovi. To byl čtvrtý hackathon v mém životě.
Možnost získat jedinečný datový soubor
Toto je velmi aktuální bod pro hackathony v oblasti data science, jehož důležitost si ne každý uvědomuje. Obvykle firmy sponzoři poskytují reálné datové sady během konání akce. Tato data jsou soukromá a pod NDA, což nebrání tomu, abychom vám ukázali proof of concept na reálné datové sadě, a ne na nějakém hračkovém Titanicu. V budoucnosti vám podobné výsledky mohou výrazně pomoci při získávání zaměstnání v této společnosti či v konkurenční firmě, nebo při obhajobě podobných projektů. Je jasné, že pokud máte dokončené projekty, které byly pozitivně hodnoceny, je to lepší než nemít žádné. Celkově podobné realizované projekty hrají obdobnou roli jako medaile a statusy na Kagglu, ale pro průmysl je jejich hodnota zřejmá.
Tipy
Obecně je práce na hackathonu poměrně různorodým zážitkem a obtížně se formulují nějaká pravidla. Rád bych však uvedl několik poznatků, které mohou pomoci nováčkům:
- Nebojte se chodit na hackatony, i když nemáte zkušenosti nebo tým. Zamyslete se nad tím, čím byste mohli být užiteční. Například máte zajímavý nápad nebo se dobře vyznáte v nějaké oblasti? Můžete využít své doménové znalosti při formulování problému a najít netradiční cesty k jeho řešení. Nebo se vám může nejlépe dařit vyhledávat? Vaše schopnost ušetří spoustu času, pokud dokážete najít hotové implementace na GitHubu. Nebo se opravdu dobře vyznáte v ladění parametrů lightgbm? V takovém případě nechoďte na hackathon, ale dokažte to v soutěžích na Kagglu.
- Taktika je důležitější než manévry. Vaším cílem na hackathonu je vyřešení problému. Někdy je potřeba problém nejprve identifikovat, abychom jej mohli vyřešit. Zkontrolujte, zda je váš identifikovaný problém skutečně relevantní pro firmu. Ověřte své řešení v souladu s problémem, položte si otázku, zda je vaše řešení optimální. Při hodnocení vašeho řešení se nejprve podívají na relevanci problému a přiměřenost navrženého řešení. Architektura vaší neuronové sítě nebo kolik hands-on zkušeností jste získali zajímá málokoho.
- Účastněte se co nejvíce hackathonů, ale nebojte se odejít z špatně organizovaných akcí.
- Přidávejte výsledky své práce na hackathonu do životopisu a nebojte se o něm veřejně mluvit.

Podstata hackathonů. Stručně
Zdroj: habr.com
