
Körülbelül másfél éve kezdtem részt venni a hackathonokon. Ezen időszak alatt több mint 20 különböző méretű és témájú eseményen vettem részt Moszkvában, Helsinkiben, Berlint, Münchenben, Amszterdamban, Zürichben és Párizsban. Minden eseményen adatokat elemeztem valamilyen formában. Szeretek új városokba érkezni, új kapcsolatokat teremteni, friss ötleteket kigondolni, régi elképzeléseket megvalósítani egy rövid idő alatt, és az adrenalin feszültségét érezni a bemutatón és az eredmények kihirdetésénél.
Ez a bejegyzés az első a hackathonokról szóló három poszt sorozatában, amelyben arról írok, mi az a hackathon, és miért érdemes elkezdenie részt venni a hackathonokon. A második poszt a rendezvények árnyoldaláról szól — arról, hogyan követtek el hibákat a szervezők a lebonyolítás során, és miért vezettek ezek a hibák következményekhez. A harmadik bejegyzés a hackathonhoz kapcsolódó kérdésekre ad válaszokat.
Mi az a hackathon?
A hackathon egy esemény, amely néhány nap alatt zajlik, és amelynek célja egy probléma megoldása. Általában a hackathon során több probléma is felmerül, amelyek különböző nyomvonalak formájában jelennek meg. A szponzoráló cég bemutatja a feladat leírását, a sikerességi mutatókat (a mutatók szubjektívek lehetnek, mint a "újdonság és kreativitás", vagy objektívek — a klasszifikáció pontossága egy elválasztott adathalmazon) és az erőforrásokat a siker eléréséhez (céges API, adathalmazok, "hardver"). A résztvevők az adott időkereten belül megfogalmazzák a problémát, javaslatot tesznek a megoldására, és bemutatják a termék prototípusát. A legjobb megoldások díjakat kapnak a cégtől és lehetőséget a további együttműködésre.
A hackathon fázisai
A feladatok kihirdetése után a hackathon résztvevői csapatokba szerveződnek: minden "szóló" mikrofont kap, és beszél a választott feladatról, tapasztalatairól, ötleteiről és arról, hogy milyen típusú szakemberekre van szüksége a megvalósításhoz. Néha a csapat egyetlen személyből is állhat, aki képes egyedül, viszonylag magas szinten elvégezni a teljes munkát a projekten. Ez releváns az adatelemzési hackathonok esetében, de gyakran tilos vagy nem kívánatos termékes rendezvényeken — a szervezők azt szeretnék, hogy a projekt munkája a vállalat keretein belül folytatódjon; egy kialakult csapat számos előnnyel bír azokkal szemben, akik maguk akarnak terméket készíteni. Az optimális csapat általában 4 főből áll, és tartalmaz: frontend fejlesztőt, backend fejlesztőt, adat tudóst és üzleti szakembert. Érdekesség, hogy az adatelemzési/termék hackathonok megkülönböztetése viszonylag egyszerű — ha van egy dataset, amelynek világos metrikája és ranglistája van, vagy nyerhetünk kóddal egy Jupyter notebookban — ez adatelemzési hackathon; minden más, ahol alkalmazást, weboldalt vagy valami lebilincselőt kell létrehozni — termék hackathon.
A projekt munkájának kezdete általában péntek este 9 órakor van, a határidő pedig vasárnap reggel 10 órakor. Ebből az időből egy részét alvásra kell szánni (nem aludni és kódolni — ez biztos út a kudarchoz, kipróbáltam), ami azt jelenti, hogy a résztvevőknek nem sok idejük van arra, hogy valami minőségit készítsenek. A résztvevők támogatása érdekében a helyszínen a cég képviselői és mentorok is jelen vannak.
A projekt munkája a cég képviselőivel való kommunikációval kezdődik, mivel ők jobban értik a feladat sajátosságait, metrikáit, és valószínűleg ők fogják értékelni a munkádat a végén. A kommunikáció célja, hogy megértsük, mely területek a legaktualizáltabbak, és hogy mire érdemes összpontosítani az időt és figyelmet.
Egy hackathonon a feladat regresszió volt egy táblázatos adatokat és képeket tartalmazó adathalmazon, egyértelmű metrikával — RMSE. Miután beszéltem a cég adatszakértőjével, rájöttem, hogy nekik nem regresszióra van szükségük, hanem klasszifikációra, de valakik a menedzsmentből úgy döntöttek, hogy ezt a feladatot így érdemes megoldani. A klasszifikációra pedig nem azért van szükség, hogy pénzügyi mutatókat növeljenek, hanem hogy megértsék, mely paraméterek a legfontosabbak a döntéshozatal során, és ezeket később manuálisan feldolgozzák. Tehát az eredeti feladat (regresszió RMSE-vel) klasszifikációra változik; az értékelés prioritása a megszerzett pontosságból a eredmény magyarázhatóságára változik. Ez viszont kizárja a stacking és black box algoritmusok használatának lehetőségét. Ez a párbeszéd hatalmas időt takarított meg számomra, és megnövelte a győzelemre tett esélyeimet.
Miután megértettétek, hogy mit kell tennetek, megkezdődhet a tényleges munka a projekten. Ellenőrző pontokat kell felállítanotok — az időpontokat, amikor a feladatokat el kellvégezni; közben érdemes folytatni a kommunikációt a mentorokkal — a cég képviselőivel és technikai szakemberekkel — ez hasznos a projektetek útvonalának korrekciójához. Egy friss perspektíva a problémára érdekes megoldást sugallhat.
Mivel a hackathonokon sok kezdő vesz részt, a szervezők részéről jó szokás előadásokat és műhelyfoglalkozásokat tartani. Általában három előadás van — arról, hogyan lehet bemutatni az ötletet termékként, egy technikai téma (például nyílt API-k alkalmazása a gépi tanulásban, hogy ne kelljen saját speech2text-et írnotok két nap alatt, hanem kész megoldást használni), és egy pitch előadás (hogyan lehet bemutatni a terméket, hogyan kell helyesen gesztikulálni a színpadon, hogy a közönség ne unatkozzon). Különböző aktivitások is zajlanak, hogy felpezsdítsék a résztvevőket — jógaórák, asztali foci és pingpong, vagy konzoljátékok.
Vasárnap reggel be kell mutatni a munkád eredményeit a zsűri előtt. A jó hackathonokon minden a technikai értékeléssel kezdődik – tényleg működik, amit állítasz? Ennek az ellenőrzésnek a célja, hogy kiszűrje azokat a csapatokat, akiknek szép bemutatójuk és buzzwordjeik vannak, de nincsen termékük, a valós munkát végzőkből. Sajnos nem minden hackathonon van jelen technikai értékelés, és előfordulhat, hogy egy csapat, aki 12 slide-dal és olyan mentalitással rendelkezik, mint „...blokkchán, kvantum számítástechnika, és itt majd az AI befejezi...”, megnyeri az első helyet. Ilyen precedensek nem túl gyakoriak, de mivel jobban megmaradnak, sokan azt gondolják, hogy a jó bemutató a hackathon megnyerésének 99%-át jelenti. A bemutató egyébként valóban fontos, de a hozzájárulása nem haladja meg a 30%-ot.
A részvevők fellépése után a zsűri döntést hoz a győztesek díjazásáról. Ezzel hivatalosan véget ér a hackathon.
Motiváció a hackathonokon való részvételre
Tapasztalat
A megszerzett tapasztalat szempontjából a hackathon egyedülálló esemény. A természetben nem sok olyan hely létezik, ahol két nap alatt nulláról megvalósítható egy ötlet, és azonnali visszajelzést kaphatsz a munkádról. A hackathon során fejlődik a kritikai gondolkodás, a csapatmunka, az időgazdálkodás, a stresszhelyzetek kezelésének képessége, az eredmények érthető bemutatásának képessége, a prezentálási készség és még sok más. Ezért a hackathonok kiváló helyszínt jelentenek azok számára, akik elméleti tudással rendelkeznek, és gyakorlati tapasztalatot szeretnének szerezni.
Díjak
A hackathonok díjalapja általában körülbelül 1.5k – 10k euró az első helyért (Oroszországban – 100-300 ezer rubel). A részvétel várható hasznát (expected value, EV) egy egyszerű képlettel számolhatjuk ki:
EV = Díj * Győzelmi Arány + Jövőbeli Érték - Költségek ahol Díj — a díj nagysága (egyszerűség kedvéért feltételezzük, hogy csak egy díj van);
Győzelmi Arány — a győzelem valószínűsége (kezdő csapat számára ez a szám 10%-ra korlátozott, tapasztaltabb csapat számára pedig 50% vagy annál magasabb; találkoztam olyan emberekkel, akik minden hackathonról díjjal jöttek el, de ez inkább a kivételek közé tartozik, és hosszú távon a győzelmi arányuk 100% alatt fog maradni);
Jövőbeli Érték — az a mennyiség, amely a hackathonban való részvétel jövőbeli nyereségét mutatja: ez lehet a megszerzett tapasztalat, az épített kapcsolatok, a megszerzett információ stb. Ezt a mennyiséget szinte lehetetlen pontosan meghatározni, de fontos, hogy észben tartsuk;
Költségek — szállítási, szállodai és egyéb költségek.
A részvételről a hackathon EV-jének összehasonlítása alapján döntünk azzal az EV-vel, amellyel foglalkozni akartunk volna, ha a hackathon nem lett volna: ha a hétvégén a kanapén akarsz feküdni és az orroddal játszani, akkor talán érdemes részt venni a hackathonon; ha időt akarsz tölteni a szüleiddel vagy a barátnőddel — vidd őket a hackathonra (viccelek, döntsetek ti), ha pedig freelancerkedni szeretnél — hasonlítsd össze a dollár-órát.
A számításaim alapján elmondhatom, hogy Oroszországban egy junior-middles szintű adatkutató számára a hackathonokon való részvétel jövedelme összeegyeztethető a normál munkanapi jövedelmével, de vannak árnyalatok (a csapat mérete, a hackathon típusa, a díjalap stb.). Összességében a hackathonok jelenleg nem aranybányák, de kellemes kiegészítést adhatnak a személyes költségvetéshez.
Toborzás a céghez és hálózatépítés
A hackathon a vállalat számára az egyik módja az új munkatársak toborzásának. Sokkal könnyebb megmutatni, hogy egy normális ember vagy és tudsz dolgozni a hackathonon, mint egy interjún, ahol a bináris fát rajzolod a táblára (ami egyébként nem mindig felel meg annak, amit valódi adatkutatóként csinálni fogsz, de a hagyományokat tiszteletben kell tartani). Ez a “harci” körülmények közötti ellenőrzés helyettesíthet egy próbanapot.
Az első munkámat a hackathonon keresztül kaptam. A hackathonon megmutattam, hogy az adatokból többletjövedelmet lehet kiszorítani, és elmondtam, hogyan tervezem ezt megvalósítani. Egy projektet indítottam a hackathon során, nyertem, majd a projektet a szponzoráló cégnél folytattam. Ez volt az életem negyedik hackathonja.
Lehetőség egy egyedi adatcsomag megszerzésére
Ez egy nagyon releváns pont a data science hackathonok számára, amelynek fontosságát nem mindenki érti. Általában a támogató cégek valós adatokat biztosítanak az események során. Ezek az adatok privátak, NDA alatt állnak, ami nem akadályozza meg, hogy bemutassák a proof of conceptet egy valós adathalmazon, nem pedig egy játéktéri Titanic-on. A továbbiakban az ilyen eredmények nagyon segíthetnek a céghez vagy a konkurenciához való elhelyezkedésben, valamint hasonló projektek indoklásában. Beleegyeznek, hogy a csupán mennyiségi szempontból hasonló helyzetekben, a pozitívan értékelt megvalósított projektek jelentős előnyt nyújtanak a hiányzókkal szemben. Összességében az ilyen megvalósított projektek hasonló szerepet játszanak, mint a Kaggle-ön elnyert érmek és státuszok, de az ipar számára értékük nyilvánvalóbb.
Tanácsok
Összességében a hackathonokon való munka egy meglehetősen sokoldalú tapasztalat, és nehéz bármilyen szabálylistát megfogalmazni. Azonban itt szeretnék egy megfigyelésekből álló listát bemutatni, amelyek segíthetnek a kezdőknek:
- Ne félj részt venni hackathonokon, még akkor sem, ha nincs tapasztalatod vagy csapatod. Gondold át, miben lehetnél hasznos. Például lehet, hogy van egy érdekes ötleted, vagy jól értesz egy adott területhez? Használhatod a szakterületismeretedet a probléma megfogalmazásához, és találhatsz nem triviális megoldásokat. Vagy talán te vagy a legjobb a Google keresésében? Ez a képességed rengeteg időt takaríthat meg, ha képes vagy megtalálni a kész megoldásokat a GitHubon. Vagy nagyon jól értesz a lightgbm paraméterezéséhez? Ebben az esetben ne menj hackathonra, hanem bizonyítsd be ezt a Kaggle versenyeken.
- A taktika fontosabb, mint a manőverek. A feladatod a hackathonon a probléma megoldása. Néha ahhoz, hogy megoldj egy problémát, először ki kell azt találni. Ellenőrizd, hogy a felismert problémád valóban releváns-e a cég számára. Ellenőrizd a megoldásod összhangját a problémával, tedd fel magadnak a kérdést, hogy a megoldásod optimális-e. A megoldásod értékelésekor elsősorban a probléma relevanciájára és a javasolt megoldás adekvátságára fognak figyelni. A neurális hálózatod architektúrája vagy hogy hány hands-on kísérletet indítottál, kevés embert érdekel.
- Látogass el annyi hackathonra, amennyire csak lehet, de ne habozz távozni a rosszul megszervezett eseményekből.
- Adja hozzá a hackathonon elért eredményeit az önéletrajzához, és ne féljen nyilvánosan beszélni róla.

A hackathonok lényege. Röviden
Forrás: habr.com
