QA: Hackathons

QA: Hackathons

Der abschließende Teil der Trilogie über Hackathons. In ersten Teils habe ich über die Motivation zur Teilnahme an solchen Veranstaltungen gesprochen. Der zweite Teil war den Fehlern der Organisatoren und ihren Ergebnissen gewidmet. Der abschließende Teil wird die Fragen beantworten, die in die ersten beiden Teile nicht gepasst haben.

Erzähl mir, wie du angefangen hast, an Hackathons teilzunehmen.
Ich habe an der Lappeenranta-Universität im Masterstudiengang studiert und gleichzeitig an Datenanalyse-Wettbewerben teilgenommen. Mein typischer Tag sah folgendermaßen aus: Aufstehen um 8, ein paar Vorlesungen an der Universität, danach Wettbewerbe und Kurse bis Mitternacht (während ich auf die Einreichung warte, schaue ich Vorlesungen oder lese Artikel). Dieser strenge Zeitplan hat sich ausgezahlt, und ich habe den Datenanalyse-Wettbewerb MERC-2017 gewonnen (worüber sogar ein Post auf Habré). Der Sieg hat mir Selbstvertrauen gegeben, und als ich zufällig auf Informationen über den Hackathon SkinHack 2 in Moskau stieß, beschloss ich, meine Eltern zu besuchen und mir gleichzeitig anzusehen, was ein Hackathon ist.

Der Hackathon selbst war ziemlich unterhaltsam. Es gab zwei Tracks für Datenanalyse mit klaren Metriken und Datensätzen, die jeweils 100.000 Rubel Preisgeld ausmachten. Der dritte Track war für Anwendungsentwicklung mit 50.000 Rubel Preisgeld, und es gab keine Teilnehmer. In einem Moment sagte der Veranstalter, dass ein Fenster mit einem Knopf ohne Funktion 50.000 Rubel gewinnen könnte, weil der Preis nicht ausbleiben kann. Ich habe nicht gelernt, Anwendungen zu programmieren (ich nehme nicht da teil, wo ich leicht "umgedreht" werden kann), aber für mich war das eine klare Botschaft, dass die Felder in Hackathons nicht voll sind.

Damals habe ich beide Tracks für Datenanalyse alleine bearbeitet. Ich fand ein Leak in den Daten, das es mir ermöglichte, einen perfekten Score zu erzielen, aber die Spalte mit dem Leak war in den Testdaten nicht enthalten, die ich zwei Stunden vor Ende der Veranstaltung erhielt (übrigens verstand ich damals, dass das Vorhandensein einer "target"-Spalte im Training nicht als Leak zählt). Gleichzeitig öffnete sich das Leaderboard, meine Einreichung ohne Leak belegte den dritten Platz von fünf, der Abstand zum ersten war groß, und ich beschloss, keine Zeit zu verschwenden, und fuhr weg.

Nachdem ich im Nachhinein analysiert habe, was passiert ist, habe ich eine Menge Fehler gefunden (eine meiner Gewohnheiten ist es, mental das Geschehen mit einem Notizbuch durchzugehen und die Fehler, deren Ursachen und was man ändern könnte, zu analysieren — ein angenehmes Erbe des halbprofessionellen Pokerspielens). Aber eines war klar — bei Hackathons gibt es viel Wert, und ich muss ihn unbedingt nutzen. Nach diesem Ereignis begann ich, Veranstaltungen und Gruppen zu überwachen, und der nächste Hackathon ließ nicht lange auf sich warten. Dann noch einer, und noch einen…

Warum beschäftigst du dich mit Hackathons und nicht mit Kaggle?
Im Moment gefällt mir Kaggle nicht. Ab einem bestimmten Fähigkeitsniveau, ohne spezifische Teilnahmegründe, wird Kaggle weniger nützlich als andere Aktivitäten. Ich habe früher viel teilgenommen, anscheinend ist es mir gelungen, irgendwie "wegzukommen".

Warum Hackathons und nicht an deinem eigenen Projekt arbeiten?
Die Idee, etwas Großartiges mit eigenen Händen in einem gemächlichen Tempo zu schaffen, spricht mich an. Die Jungs von ODS haben organisiert ODS Pet Projects für alle, die am Wochenende an ihrem Projekt in einem Kreis Gleichgesinnter arbeiten möchten. Ich denke, dass ich mich bald ihnen anschließen werde.

Wie findest du Veranstaltungen?
Die Hauptquelle ist hackathon.com (Welt) und ein Chat in Telegram Russian Hackers (Russland). Außerdem tauchen Veranstaltungsankündigungen in sozialen Medien und LinkedIn auf. Wenn man nichts findet, kann man hier nachsehen: mlh.io, devpost.com, hackevents.co, hackalist.org, HackathonsNear.me, hackathon.io.

Bereitest du einen Lösungsplan vor der Teilnahme vor oder wird alles spontan entschieden? Zum Beispiel denkst du eine Woche vor dem Hackathon: "Hier wird ein solcher und solcher Spezialist gebraucht, ich sollte nach ihm suchen"?
Wenn es sich um einen produktbezogenen Hackathon handelt, ja, ich bereite mich vor. Einige Wochen vorher überlege ich mir, was ich machen werde, wer nützlich sein könnte, und stelle ein Team aus Freunden oder Teilnehmern vergangener Hackathons zusammen.

Kann man einen Hackathon alleine knacken? Was tun, wenn man kein Team hat?
Data Science Hackathons sind realistisch (ich bin ein lebendes Beispiel dafür), produktbezogene habe ich nicht gesehen, obwohl ich auch denke, dass ja. Leider setzen die Organisatoren manchmal eine Mindestanzahl von Teilnehmern im Team fest. Ich denke, das liegt daran, dass nicht alle „Einzelgänger“ bis ins Finale kommen (d.h. einfach bei den ersten Schwierigkeiten aufgeben). Die Teilnahme in einem Team hält dennoch einen zurück. Außerdem wird nach der Veranstaltung erwartet, dass man weiter an dem Projekt arbeitet. Mit einem Team wird es einfacher, das Projekt zu verfeinern.

Insgesamt empfehle ich immer, im Team teilzunehmen. Wenn Sie kein eigenes Team haben, helfen die Organisatoren immer dabei, eines zu finden oder zu bilden.

Wie gelingt es, während eines Hackathons mit Müdigkeit umzugehen?
Bei einem Hackathon hat man 2 Tage Zeit, um zu arbeiten, das sind 48 Stunden (30-48 Stunden, nehmen wir 48 zur Vereinfachung). Wir ziehen die Schlafzeit ab (16-20 Stunden), bleiben also maximal 30 übrig. Davon sind in der Regel etwa 8 Stunden für produktive Arbeit sinnvoll (im Durchschnitt). Wenn man die Arbeit richtig organisiert (Schlaf, Ernährung, frische Luft, Bewegung, Momente der Achtsamkeit, richtiges Teamkommunikation und Aktivitätswechsel), kann man die Deep-Work-Stunden auf 12-14 steigern. Nach solch einer Arbeit wird man sich erschöpft fühlen, aber es wird eine angenehme Müdigkeit sein. Zu codieren, ohne Schlaf und Pausen und sich mit Energydrinks durchzuwursteln, ist der Weg zum Scheitern.

Hast du deine eigenen fertigen Pipelines für Hackathons? Wie sind sie bei dir entstanden, wie sind sie strukturiert (liegen .py-Dateien in Ordnern, jede für ihre Aufgabe usw.) und wie kann man selbst solche erstellen?
Ich verwende keine völlig fertigen Lösungen vergangener Hackathons in neuen, aber ich habe einen eigenen Zoo von Modellen und Pipelines aus vergangenen Wettbewerben. Ich muss die Standardteile nicht von Grund auf neu schreiben (zum Beispiel korrektes Target-Encoding oder ein einfaches Netzwerk zur Extraktion von Intentionen aus Texten), was mir viel Zeit spart.

Im Moment sieht es so aus: Für jeden Wettbewerb oder Hackathon gibt es ein eigenes Repository auf GitHub, in dem Notebooks, Skripte und eine kleine Dokumentation über das, was passiert, gespeichert sind. Außerdem gibt es ein separates Repository für verschiedene Boxen-„Features“ (wie korrektes Target-Encoding mit Cross-Validation). Ich denke nicht, dass dies die eleganteste Lösung ist, aber momentan bin ich damit zufrieden.

Ich würde damit beginnen, all meinen Code in Ordnern zu sichern und eine kurze Dokumentation zu schreiben (warum, was, wie ich gearbeitet habe und das Ergebnis).

Ist es realistisch, in so kurzer Zeit ein MVP von Grund auf vorzubereiten, oder kommen alle Teilnehmer mit fertigen Lösungen?
Ich kann nur über Projekte im Bereich Data Science sagen – ja, es ist möglich. Ein MVP besteht für mich aus zwei Faktoren:

  • Eine tragfähige Idee, die als Produkt präsentiert wird (d.h. ein Business Canvas ist ausgearbeitet). Es muss immer ein klares Verständnis dafür bestehen, warum und für wen wir das Produkt entwickeln. Manchmal gewinnen Projekte mit einer gut begründeten Idee, aber ohne Prototyp, und das ist nicht überraschend. Leider können viele Teilnehmer sich nicht von der Bitterkeit der Niederlage abgrenzen und machen ihre Misserfolge an der Kurzsichtigkeit der Organisatoren fest, während sie weiterhin Modelle für unklar wer entwickelt werden, bei den nächsten Hackathons erstellen.
  • Ein gewisser Beweis dafür, dass Sie dieses Produkt erstellen können (App, Code, Beschreibung von Pipelines).

Es kommt vor, dass ein Team mit einer fertigen Lösung zu einem Hackathon kommt und versucht, diese an die Vorgaben der Organisatoren anzupassen. Solche Teams scheitern oft beim technischen Screening, oder es werden nur die Teile gewertet, die sie auf dem Event erstellt haben. Ich habe solche Teams nicht bei den Gewinnern gesehen, aber ich denke, es ist für sie dennoch vorteilhaft, aufgrund des zukünftigen Wertes (Kontakte, Datensätze und mehr).

Gibt es Beispiele dafür, dass Projekte, die auf Hackathons entstanden sind, bis zur Produktion/zu Startups weiterentwickelt wurden?
Ja. Ich hatte drei Fälle, in denen Projekte bis zur Produktion weiterentwickelt wurden. Einmal selbst, zweimal – durch die Hände anderer basierend auf meinen Ideen und dem Code, den ich beim Hackathon geschrieben habe. Ich kenne auch ein paar Teams, die die Zusammenarbeit mit dem Unternehmen als Berater fortgesetzt haben. Über die endgültigen Ergebnisse weiß ich nichts, aber wahrscheinlich wurde etwas bis zum Ende gemacht. Ich habe selbst keine Startups gegründet und weiß nicht, ob jemand das gemacht hat, obwohl ich sicher bin, dass es Beispiele gibt.

Nach der Teilnahme an vielen Hackathons, welche Ratschläge würdest du dir selbst geben, wenn du in die Vergangenheit reisen könntest?

  1. Taktik ist wichtiger als Manöver. Betrachte jede Entscheidung als fertiges Produkt. Idee, Jupyter-Notebook, Algorithmus sind nichts wert, wenn unklar ist, wer dafür bezahlen wird.
  2. Bevor du etwas entwirfst, beantworte die Fragen nicht mit "was?", sondern mit "warum?" und "wie?" Beispiel: Wenn du eine ML-Lösung entwirfst, denke zunächst an den idealen Algorithmus: Was erhält er als Eingabe, wie werden seine Vorhersagen später verwendet?
  3. Nimm am Team teil.

Was wird normalerweise bei Hackathons angeboten?
Normalerweise wird bei Hackathons schlecht verpflegt: Pizzen, Energydrinks, Limonade. Fast immer wird das Essen in Form eines Buffets (oder Ausgabe-Tisches) organisiert, vor dem sich eine riesige Schlange bildet. Nachts gibt es in der Regel kein Essen, obwohl es einen Fall bei einem Wettbewerb in Paris gab, wo nachts etwas übrig gelassen wurde — Chips, Donuts und Cola. Ich stelle mir den gedanklichen Prozess der Organisatoren vor: "Was essen Programmierer? Ach ja! Chips, Donuts — das ist alles. Lass uns diesen Mist hinstellen." Am nächsten Tag fragte ich die Organisatoren: "Leute, könnte man nicht nachts etwas anderes machen? Zum Beispiel Brei?" Danach schauten sie mich an, als sei ich ein Idiot. Berühmte französische Gastfreundschaft.

Bei guten Hackathons wird das Essen in Boxen bestellt, es gibt Optionen für normales, vegetarisches und koscheres Essen. Dazu gibt es einen Kühlschrank mit Joghurts und Müsli — für diejenigen, die einen Snack wollen. Tee, Kaffee, Wasser — Standard. Ich erinnere mich an den Hackathon Hack Moscow 2 — dort wurden wir herzlich mit Borschtsch und Schnitzel mit Püree in der Kantine des 1C-Büros versorgt.

Die Angemessenheit von Hackathons hängt, sozusagen, von der beruflichen Sphäre der Organisatoren ab (zum Beispiel, führen die besten Hackathons Berater durch)?
Die besten Hackathons wurden von Organisatoren durchgeführt, die entweder zuvor Hackathons organisiert oder früher teilgenommen hatten. Das ist wohl der einzige Faktor, der die Qualität der Veranstaltung beeinflusst.

Wie verstehst du, dass du kein Anfänger mehr bist und es Zeit für einen Hackathon ist?
Die beste Zeit, um zu einem Hackathon zu gehen, war vor einem Jahr. Die zweitbeste Zeit ist jetzt. Also wage es, mach Fehler, lerne — das ist normal. Sogar ein neuronales Netzwerk — die größte Erfindung des Menschen nach dem Rad und dem Gradient Boosting über Bäume — kann in der ersten Lernphase Katze und Hund nicht unterscheiden.

Welche "roten Flaggen" deuten sofort darauf hin, dass die Veranstaltung nicht gut sein wird und man keine Zeit investieren sollte?

  • Eine klare Beschreibung, was zu tun ist (aktuell für Produkt-Hackathons). Wenn Ihnen bei der Registrierung klar gesagt wird, was zu tun ist, ist es besser, zu Hause zu bleiben. Meines Wissens gab es keinen einzigen guten Hackathon mit einem Lastenheft. Zum Vergleich: Gut – machen Sie uns etwas, das mit der Analyse von Audio-Gesprächen zu tun hat. Schlecht – machen Sie uns eine App, die in der Lage ist, Gespräche in zwei separate Audiospuren für jede Person zu trennen.
  • Kleinere Preispool. Wenn Sie gebeten werden, einen "Tinder für Onlineshops mit KI" zu erstellen und der Preis für den ersten Platz 500 Euro beträgt mit einer Mindestteamgröße von 5 Personen, dann sollten Sie wahrscheinlich Ihre Zeit nicht verschwenden (ja, das ist ein echter Hackathon, der in München stattfand).
  • Mangel an Daten (aktuell für Data Science Hackathons). Die Organisatoren stellen normalerweise grundlegende Informationen über die Veranstaltung und manchmal ein Datenset-Beispiel zur Verfügung. Wenn dies nicht bereitgestellt wird – fragen Sie nach, das kostet Sie nichts. Wenn nach 2-3 Fragen unklar ist, welche Daten bereitgestellt werden und ob sie überhaupt verfügbar sind – das ist ein rotes Tuch.
  • Neue Organisatoren. Scheuen Sie sich nicht und googeln Sie Informationen über die Organisatoren des Hackathons. Wenn sie eine solche Veranstaltung zum ersten Mal durchführen – besteht eine hohe Wahrscheinlichkeit, dass etwas schiefgeht. Umgekehrt, wenn der Organisator und die Jurymitglieder bereits Hackathons durchgeführt oder in der Vergangenheit aktiv teilgenommen haben – ist das ein grünes Licht.

Bei einem Hackathon wurde mir gesagt: „Du hattest die beste Lösung in Bezug auf den Score, aber tut mir leid, wir bewerten die Teamarbeit, und du hast alleine gearbeitet. Wenn du nur einen Studenten oder ein Mädchen ins Team genommen hättest...“ Hast du jemals eine solche Ungerechtigkeit erlebt? Wie bist du damit umgegangen?
Ja, ich habe das erlebt, und nicht nur einmal. Ich sehe die Dinge stoisch: Ich habe alles in meiner Macht Stehende getan, wenn es nicht geklappt hat – na ja, so sei es.

Warum beschäftigst du dich damit?
Das alles ist einfach aus Langeweile.

Quelle: habr.com

60GB SSD 8Gb DDR4