
Il y a environ un an et demi, j'ai commencé à participer à des hackathons. Pendant cette période, j'ai pris part à plus de 20 événements de différentes tailles et thématiques à Moscou, Helsinki, Berlin, Munich, Amsterdam, Zurich et Paris. Dans tous les événements, j'ai travaillé sur l'analyse de données sous une forme ou une autre. J'aime découvrir de nouvelles villes, établir de nouveaux contacts, inventer des idées fraîches, réaliser d'anciennes ambitions en peu de temps et l'adrénaline lors des présentations et de l'annonce des résultats.
Ce post est le premier de trois posts sur le thème des hackathons, dans lequel je vais expliquer ce que sont les hackathons et pourquoi vous devriez commencer à y participer. Le deuxième post portera sur le côté obscur de ces événements — les erreurs commises par les organisateurs et leurs conséquences. Le troisième post sera dédié aux réponses aux questions sur les thématiques autour des hackathons.
Qu'est-ce qu'un hackathon ?
Un hackathon est un événement qui se déroule sur plusieurs jours, dont le but est de résoudre un problème donné. Il y a généralement plusieurs problèmes lors d'un hackathon, chacun représenté par une piste distincte. L'entreprise sponsor fournit une description de la tâche, des critères de succès (les critères peuvent être subjectifs tels que "nouveauté et créativité", ou objectifs — la précision de la classification sur un jeu de données de test) et les ressources nécessaires pour réussir (API de l'entreprise, ensembles de données, matériel). Les participants ont un temps imparti pour définir le problème, proposer une solution et montrer un prototype de leur produit. Les meilleures solutions reçoivent des prix de l'entreprise et la possibilité d'une collaboration future.
Étapes du hackathon
Après l'énoncé des tâches, les participants au hackathon se regroupent en équipes : chaque "solo" prend le microphone et parle de la tâche choisie, de son expérience, de son idée et des spécialistes dont il a besoin pour la mise en œuvre. Parfois, une équipe peut se composer d'une seule personne capable d'exécuter tout le travail sur le projet à un niveau suffisamment élevé. Cela est pertinent pour les hackathons d'analyse de données, mais est souvent interdit ou indésirable pour les événements produit — les organisateurs visent à poursuivre le travail sur le projet, mais déjà au sein d'une entreprise ; une équipe formée a plusieurs avantages par rapport aux participants qui ont souhaité créer un produit seuls. L'équipe optimale se compose généralement de 4 personnes et inclut : un front-end, un back-end, un data scientist et un business développeur. À propos, la distinction entre hackathons de science des données et hackathons produits est assez simple : s'il y a un ensemble de données avec une métrique claire et un leaderboard ou si l'on peut gagner avec du code dans un jupyter notebook, c'est un hackathon de science des données ; tout le reste — où il faut créer une application, un site ou quelque chose de captivant — est un hackathon produit.
En général, le début du travail sur un projet commence à 21 heures le vendredi, et la date limite est à 10 heures le dimanche. Une partie de ce temps doit être consacrée au sommeil (ne pas dormir et coder — c'est un chemin sûr vers l'échec, je l'ai vérifié), ce qui signifie que les participants n'ont pas beaucoup de temps pour produire quelque chose de qualité. Pour aider les participants, des représentants de l'entreprise et des mentors sont présents sur place.
Le travail sur le projet commence par une communication avec les représentants de l'entreprise, car ils comprennent mieux la spécificité de la tâche, les métriques et ils seront probablement ceux qui jugeront vos travaux à la fin. L'objectif de cette communication est de comprendre quelles directions sont les plus pertinentes et sur quoi il vaut la peine de concentrer votre attention et votre temps.
Lors d'un hackathon, une tâche de régression a été assignée sur un ensemble de données avec des données tabulaires et des images, avec une métrique claire — RMSE. Après avoir discuté avec le data scientist de l'entreprise, j'ai compris qu'ils avaient besoin d'une classification, mais que quelqu'un dans la direction a décidé que le problème devait être abordé de cette manière. La classification ne leur est pas nécessaire pour améliorer les métriques financières, mais pour comprendre quels paramètres sont les plus importants dans le processus décisionnel, puis les traiter manuellement. Ainsi, la tâche initiale (régression avec RMSE) se transforme en classification ; la priorité de l'évaluation passe de la précision obtenue à la capacité d'expliquer le résultat. Cela, à son tour, élimine la possibilité d'utiliser le stacking et des algorithmes de boîte noire. Ce dialogue m'a fait gagner un temps considérable et a augmenté mes chances de succès.
Une fois que vous avez compris ce que vous devez faire, le travail sur le projet peut commencer. Vous devez établir des checkpoints — des délais pour accomplir les tâches assignées ; il est également utile de continuer à communiquer avec les mentors — des représentants de l'entreprise et des spécialistes techniques — cela aide à ajuster le parcours de votre projet. Un regard frais sur le problème peut suggérer une solution intéressante.
Comme de nombreux débutants participent aux hackathons, il est de bon ton pour les organisateurs de donner des conférences et des ateliers. En général, il y a trois conférences — sur comment présenter votre idée sous forme de produit, une conférence sur un sujet technique (par exemple, l'utilisation d'API ouvertes en apprentissage automatique, pour éviter d'avoir à écrire votre propre speech2text en deux jours et à utiliser une solution prête), et une conférence sur le pitch (comment présenter votre produit, comment gesticuler sur scène pour que l'audience ne s'ennuie pas). Il y a différentes activités pour dynamiser les participants — séance de yoga, baby-foot et tennis de table ou jeux vidéo.
Le dimanche matin, vous devez soumettre les résultats de votre travail au jury. Lors des bons hackathons, tout commence par une expertise technique : ce que vous affirmez fonctionne-t-il ? L'objectif de cette vérification est de filtrer les équipes avec de belles présentations et des buzzwords, mais sans produit, des équipes qui ont vraiment réalisé quelque chose. Malheureusement, l'expertise technique n'est pas toujours présente lors des hackathons, et il arrive qu'une équipe avec 12 diapositives et un état d'esprit « ... blockchain, informatique quantique, et ici l'IA finira le travail... » remporte la première place. Ces cas ne sont pas si fréquents, mais comme ils sont mieux mémorisés, beaucoup pensent qu'une bonne présentation représente 99% du succès dans un hackathon. La présentation, à propos, est en effet importante, mais sa contribution ne dépasse pas 30%.
Après la présentation des participants, le jury prend une décision pour récompenser les gagnants. Cela clôt la partie officielle du hackathon.
Motivation à participer aux hackathons
Expérience
En termes d'expérience acquise, un hackathon est un événement unique. Il n'y a pas tant de lieux où l'on peut réaliser une idée à partir de rien en deux jours et obtenir un retour instantané sur son travail. Pendant un hackathon, on développe la pensée critique, le travail en équipe, la gestion du temps, la capacité à travailler en situation stressante, l'aptitude à présenter les résultats de son travail de manière compréhensible, les compétences en présentation et bien d'autres encore. C'est pourquoi les hackathons sont un excellent endroit pour les personnes ayant des connaissances théoriques qui souhaitent acquérir une expérience réelle.
Récompenses
En général, le montant total des prix du hackathon est d'environ 1,5k à 10k euros pour la première place (en Russie, de 100 à 300 mille roubles). Le bénéfice attendu (expected value, EV) de la participation peut être calculé selon une formule simple :
EV = Prize * WinRate + Future_Value - Costs où Prix — le montant du prix (pour simplifier, considérons qu'il n'y a qu'un seul prix) ;
WinRate — la probabilité de gagner (pour une équipe débutante, cette valeur sera limitée à 10 %, pour une équipe plus expérimentée, 50 % et plus ; j'ai rencontré des personnes qui revenaient toujours d'un hackathon avec un prix, mais c'est plutôt une exception à la règle et sur le long terme leur taux de victoire sera inférieur à 100 %) ;
Future_Value — une mesure qui indique le bénéfice futur de la participation à un hackathon : cela peut être le bénéfice acquis grâce à l'expérience, aux connexions établies, aux informations reçues, etc. Il est pratiquement impossible de déterminer cette mesure avec précision, mais il est important de s'en souvenir ;
Coûts — dépenses de transport, d'hébergement, autres.
La décision de participer est prise sur la base de la comparaison de l'EV du hackathon avec l'EV de l'activité que vous auriez envisagée si le hackathon n'existait pas : si vous comptiez paresser sur le canapé pendant le week-end et vous curer le nez, alors il vaut probablement la peine de participer au hackathon ; si vous souhaitez passer du temps avec vos parents ou votre copine — emmenez-les dans votre équipe pour le hackathon (je rigole, décidez par vous-même), si vous voulez freelancer — comparez le dollar par heure.
D'après mes calculs, je peux dire qu'en Russie, pour un data scientist de niveau junior à intermédiaire, participer à des hackathons est comparable à un profit financier d'une journée de travail ordinaire, mais il y a aussi des nuances (taille de l'équipe, type de hackathon, prix, etc.). En général, les hackathons ne sont pas vraiment une poule aux œufs d'or en ce moment, mais ils peuvent apporter un complément agréable à votre budget personnel.
Recrutement en entreprise et networking
Pour une entreprise, un hackathon est l'un des moyens de recruter de nouveaux employés. Il vous sera beaucoup plus facile de montrer que vous êtes une personne compétente et que vous pouvez travailler sur un hackathon, plutôt que lors d'un entretien d'embauche, où vous manipuleriez un arbre binaire sur un tableau (ce qui, d'ailleurs, ne correspond pas toujours à ce que vous ferez réellement en tant que data scientist, mais il faut respecter les traditions). Ce type de test en « conditions réelles » peut remplacer une journée de test.
J'ai obtenu mon premier emploi grâce à un hackathon. Au hackathon, j'ai montré qu'il était possible de tirer plus d'argent des données, j'ai expliqué comment j'allais le faire. J'ai commencé un projet lors du hackathon, je l'ai gagné, puis j'ai continué le projet déjà dans l'entreprise sponsor. C'était le quatrième hackathon de ma vie.
Opportunité d'obtenir un ensemble de données unique
C'est un point très pertinent pour les hackathons de science des données, dont l'importance n'est pas toujours comprise. En général, les entreprises partenaires fournissent de vrais ensembles de données lors de l'événement. Ces données sont privées, soumises à des NDA, ce qui n'empêche pas de vous montrer une preuve de concept sur un ensemble de données réel, plutôt que sur un faux Titanic. À l'avenir, de tels résultats seront très utiles pour trouver un emploi dans cette entreprise ou dans une entreprise concurrente, ou pour justifier des projets similaires. Convenez qu'à situation égale, avoir des projets réalisés et positivement évalués est mieux que de ne pas en avoir. En général, ces projets réalisés jouent un rôle similaire à des médailles et des statuts sur Kaggle, mais pour l'industrie, leur valeur est plus évidente.
Si je ne pouvais donner qu'un seul conseil, ce serait celui-ci :
En général, travailler lors d'un hackathon est une expérience assez variée et il est difficile de formuler une liste de règles. Cependant, je voudrais ici présenter une liste d'observations qui peuvent aider les débutants :
- N'ayez pas peur de participer à des hackathons même si vous n'avez pas d'expérience ou d'équipe. Réfléchissez à la manière dont vous pourriez être utile. Par exemple, avez-vous une idée intéressante ou êtes-vous plutôt bon dans un domaine particulier ? Vous pouvez utiliser vos connaissances spécifiques pour formuler le problème et trouver des solutions non triviales. Ou peut-être êtes-vous le meilleur pour faire des recherches sur Google ? Votre compétence vous permettra d'économiser beaucoup de temps, si vous pouvez trouver des implémentations prêtes sur GitHub. Ou vous êtes très bon dans le réglage des paramètres de lightgbm ? Dans ce cas, ne participez pas à un hackathon, prouvez-le lors des compétitions Kaggle.
- La tactique est plus importante que les manœuvres. Votre objectif lors du hackathon est de résoudre un problème. Parfois, pour résoudre un problème, il faut d'abord l'identifier. Vérifiez que le problème que vous avez identifié est vraiment pertinent pour l'entreprise. Évaluez votre solution par rapport au problème, posez-vous des questions sur l'optimisation de votre solution. Lors de l'évaluation de votre solution, on examinera en premier lieu la pertinence du problème et la pertinence de la solution proposée. L'architecture de votre réseau de neurones ou le nombre de compétitions que vous avez remportées n'intéressera pas grand monde.
- Participez à autant de hackathons que possible, mais n'hésitez pas à quitter des événements mal organisés.
- Ajoutez les résultats de votre travail lors d'un hackathon à votre CV et n'hésitez pas à en parler publiquement.

L'essence des hackathons. En bref
Source : habr.com
