newsmode
search
Меню
arrow_back Назад

How to Win a Data Hackathon (Hacklytics 2021)

auto_awesomeКраткое саммари

Юджин Ян рассказывает о закономерностях, которые он заметил у команд-победителей, когда выступал ментором и судьёй на Hacklytics 2021 — 36-часовом дататоне Georgia Tech. Проекты оценивались по пяти критериям: техническая сложность (20 баллов), инновационность (10), завершённость (10), дизайн и визуализация (20) и презентация (10). Главный вывод: обучение собственных ML-моделей не было решающим фактором — выигрывали те, кто экономил время за счёт готовых наборов данных (например, Kaggle-датасет из 40 тыс. новостей или твиты о вакцинах от COVID) и API (Reddit, Twitter). Сильные команды использовали готовые библиотеки и предобученные модели (Vader, afinn, text2emotion, BERT, 3D-оценка позы человека), строили простые интерфейсы (React, Streamlit, Plotly, Flask) и разворачивали прототипы для живого демо. Среди победителей — детектор фейковых новостей RealityCheck на BERT и GCP, Clinical Model Tuner для здравоохранения, Wolf of WallStreetBets с анализом тональности r/wallstreetbets и Voices of the Vaccine (абсолютный победитель). Автор подытоживает, что эти приёмы по сути совпадают с тем, как строят ML-системы в индустрии.

How to Win a Data Hackathon (Hacklytics 2021)

Как победить на дата-хакатоне (Hacklytics 2021)

[ datascience engineering misc ] · 6 min read

[ datascience engineering misc ] · 6 мин чтения

Last week, I was a mentor and judge at Hacklytics 2021, Georgia Tech’s 36-hour datathon. As I interacted with teams during the hacking and evaluation sessions, I noticed patterns among the top teams that help them win. Here’s what I learned about how to do well at a data hackathon under time constraints.

На прошлой неделе я был ментором и судьёй на Hacklytics 2021 — 36-часовом дататоне Georgia Tech. Общаясь с командами во время сессий хакинга и оценки, я заметил у лучших команд общие закономерности, которые помогают им побеждать. Вот что я узнал о том, как хорошо выступить на дата-хакатоне в условиях ограниченного времени.

In case you're interested, here's the predefined criteria that judges were given to evaluate projects.

Если вам интересно, вот заранее заданные критерии, которые судьям выдали для оценки проектов.

Technical complexity — 20 points

Техническая сложность — 20 баллов

What technologies were used or explored? We want to reward projects that demonstrate understanding as well as the desire to delve into and learn about unknown skills. This checks if the project has engaged with data science concepts and understands what it means to work with datasets (statistics, insights, exploration, modeling, etc.)

Какие технологии были использованы или изучены? Мы хотим поощрять проекты, которые демонстрируют понимание, а также стремление углубиться в незнакомые навыки и освоить их. Здесь проверяется, работал ли проект с концепциями data science и понимает ли команда, что значит работать с наборами данных (статистика, инсайты, исследование, моделирование и т. д.).

Innovation — 10 points

Инновационность — 10 баллов

Is the project something new or rarely seen before? Does it bring a new spin or angle to a known area or topic? What gives this project a “wow” factor?

Является ли проект чем-то новым или редко встречающимся? Привносит ли он новый поворот или угол зрения в известную область или тему? Что придаёт этому проекту «вау»-фактор?

Completeness — 10 points

Завершённость — 10 баллов

How much have they achieved of what they set out to achieve? Is the project deployed or ready to be deployed? How much further effort would be needed to make the project into a full-fledged application or solution?

Насколько команда достигла того, что планировала достичь? Развёрнут ли проект или готов к развёртыванию? Сколько ещё усилий понадобится, чтобы превратить проект в полноценное приложение или решение?

Design and Visualization - 20 points

Дизайн и визуализация — 20 баллов

Does the project look visually pleasing? Is it something that could potentially be seen and used on a public platform? Most importantly, if it is a visualization project, does the project justify their decisions from the visualizations made, and do they provide any valuable information that was sought?

Выглядит ли проект визуально приятно? Можно ли потенциально увидеть и использовать его на публичной платформе? И самое важное: если это проект по визуализации, обосновывает ли он свои решения на основе сделанных визуализаций и предоставляет ли он какую-либо ценную информацию, которую искали?

Presentation - 10 points

Презентация — 10 баллов

How well has the project been presented? Is the purpose and motivation clear? Whats next for the project? Do they have a working demo or prototype?

Насколько хорошо проект представлен? Понятны ли его цель и мотивация? Что дальше ждёт проект? Есть ли у команды рабочее демо или прототип?

Minimize data collection; use available datasets & APIs

Минимизируйте сбор данных; используйте готовые наборы данных и API

While hacking, some teams asked how to scrape data from websites. For example, one team wanted to scrape IMDb for data on movie titles, cast, director, ratings, etc.

Во время хакинга некоторые команды спрашивали, как спарсить данные с сайтов. Например, одна команда хотела спарсить IMDb, чтобы получить данные о названиях фильмов, актёрском составе, режиссёрах, рейтингах и т. д.

I advised against it. Scraping data is time-consuming and can be tricky when it comes to dynamically generated content (e.g., via JavaScript). Accurately parsing and extracting fields from raw HTML is a time sink. Instead, I pointed them to publicly available datasets, such as the data provided by IMDb or this Kaggle dataset which has more than 80k titles.

Я отговорил их от этого. Парсинг данных отнимает много времени и может быть непростым, когда речь идёт о динамически генерируемом контенте (например, через JavaScript). Точный разбор и извлечение полей из сырого HTML — это пожиратель времени. Вместо этого я указал им на публично доступные наборы данных, такие как данные, предоставляемые IMDb, или этот набор данных с Kaggle, в котором более 80 тыс. названий.

In contrast, most of the winning teams saved time by using readily available, clean data. For example, the team building a fake news detector used a Kaggle dataset of 40k real and fake news articles. Similarly, the overall winner used a Kaggle dataset on COVID Vaccine tweets. The organizers also shared a list of publicly available datasets hackers could use.

В противоположность этому большинство команд-победителей экономили время, используя готовые, чистые данные. Например, команда, создававшая детектор фейковых новостей, использовала набор данных с Kaggle из 40 тыс. настоящих и фейковых новостных статей. Аналогично, абсолютный победитель использовал набор данных с Kaggle с твитами о вакцинах от COVID. Организаторы также поделились списком публично доступных наборов данных, которые могли использовать участники.

What if teams needed recent data for which there’s no dataset? If so, they used APIs. The winning team (finance category) used the Reddit API to get data on r/wallstreetbets posts, including view counts, comments, title, body, etc. The overall winner used the Twitter API to get recent tweets on COVID vaccines. Using these APIs allowed them to focus on other aspects such as sentiment analysis and building user interfaces (UIs).

А что, если командам нужны были свежие данные, для которых нет готового набора? В этом случае они использовали API. Команда-победитель (финансовая категория) использовала Reddit API, чтобы получить данные о постах в r/wallstreetbets, включая количество просмотров, комментарии, заголовок, текст и т. д. Абсолютный победитель использовал Twitter API, чтобы получить свежие твиты о вакцинах от COVID. Использование этих API позволило им сосредоточиться на других аспектах, таких как анализ тональности и создание пользовательских интерфейсов (UI).

Use libraries / pre-trained models to speed up ML

Используйте библиотеки / предобученные модели, чтобы ускорить ML

Though it was a data hackathon, relatively few teams trained machine learning models.

Хотя это был дата-хакатон, относительно немногие команды обучали модели машинного обучения.

Many teams used Vader for sentiment analysis. Its simple API and great examples made it easy for beginners to pick up—three of the winning teams applied Vader on tweets and Reddit posts. Another winning team used a combination of afinn and text2emotion.

Многие команды использовали Vader для анализа тональности. Его простой API и отличные примеры сделали его лёгким для освоения новичками — три команды-победителя применили Vader к твитам и постам Reddit. Ещё одна команда-победитель использовала сочетание afinn и text2emotion.

Some teams used pre-trained models. The team building a fake news detector started with pre-trained BERT and fine-tuned it on their fake news dataset for three epochs. The winning team of the athletics (track & field) category started with pre-trained 3D human pose estimation models to detect when athletes jump over hurdles.

Некоторые команды использовали предобученные модели. Команда, создававшая детектор фейковых новостей, начала с предобученного BERT и дообучила его на своём наборе данных с фейковыми новостями в течение трёх эпох. Команда-победитель в категории лёгкой атлетики (бег и прыжки) начала с предобученных моделей 3D-оценки позы человека, чтобы определять, когда спортсмены преодолевают барьеры.

Familiarity with front-end is useful

Знакомство с фронтендом полезно

Most of the winning teams built simple UIs that made their ideas more concrete.

Большинство команд-победителей создали простые UI, которые сделали их идеи более конкретными.

The winner of the healthcare category built Clinical Model Tuner to let physicians upload existing models and fine-tune them on additional data (i.e., inverse federated learning). They built a React app that demonstrated this well. Users could upload pre-trained models, datasets, and labels to fine-tune models. After fine-tuning, users could also see the improvements to model evaluation metrics.

Победитель в категории здравоохранения создал Clinical Model Tuner, чтобы врачи могли загружать существующие модели и дообучать их на дополнительных данных (то есть обратное федеративное обучение). Они создали React-приложение, которое хорошо это демонстрировало. Пользователи могли загружать предобученные модели, наборы данных и метки для дообучения моделей. После дообучения пользователи также могли видеть улучшения метрик оценки модели.

User interface of Clinical Model Tuner (thanks to the team)

Пользовательский интерфейс Clinical Model Tuner (спасибо команде)

Another team performed sentiment analysis on r/wallstreetbets posts and visualize the correlation between a stock’s sentiment and its price movements. They also built a React app that allowed users to see Reddit posts on each stock and their associated sentiment, as well as price movements.

Ещё одна команда провела анализ тональности постов в r/wallstreetbets и визуализировала корреляцию между тональностью по акции и движением её цены. Они также создали React-приложение, которое позволяло пользователям видеть посты Reddit по каждой акции и связанную с ними тональность, а также движения цены.

User interface of Wolf of WallStreetBets

Пользовательский интерфейс Wolf of WallStreetBets

Some teams also used python libraries to quickly build interactive UIs. The winner of the athletics (football) track used Streamlit to build a dashboard to show the football and social media statistics of potential recruits to help teams make better decisions. The overall winner built an interactive Plotly dashboard to visualize public sentiment towards COVID vaccines based on tweets.

Некоторые команды также использовали Python-библиотеки, чтобы быстро создавать интерактивные UI. Победитель в категории лёгкой атлетики (американский футбол) использовал Streamlit, чтобы создать дашборд, показывающий футбольную и социально-медийную статистику потенциальных новобранцев, помогающий командам принимать более удачные решения. Абсолютный победитель создал интерактивный дашборд на Plotly для визуализации общественной тональности к вакцинам от COVID на основе твитов.

User interface for Voices of the Vaccine (source)

Пользовательский интерфейс Voices of the Vaccine (источник)

That said, it was not absolutely necessary to use React or libraries. The TickerTrakr team won the best visuals award with a simple combination of Flask, HTML, CSS, and JavaScript.

Тем не менее использовать React или библиотеки было вовсе не обязательно. Команда TickerTrakr получила награду за лучшую визуализацию с помощью простого сочетания Flask, HTML, CSS и JavaScript.

Knowing how to deploy is useful

Умение развёртывать полезно

Many of the winning teams had prototypes deployed. This made the difference between offline experimentation and a live demo that felt much closer to reality.

У многих команд-победителей прототипы были развёрнуты. Это создавало разницу между офлайн-экспериментом и живым демо, которое ощущалось гораздо ближе к реальности.

The RealityCheck wrapped a Flask app around their fine-tuned BERT model and deployed it on Google Cloud Platform. This let them demo their Chrome extension which allowed users to enter news snippets and get the probability of it being fake news.

Команда RealityCheck обернула Flask-приложение вокруг своей дообученной модели BERT и развернула его на Google Cloud Platform. Это позволило им продемонстрировать своё расширение для Chrome, которое давало пользователям возможность вводить фрагменты новостей и получать вероятность того, что это фейковая новость.

Some teams even made their prototypes publicly available so other participants and judges could interact with them. Some of these demos are still only (as of 2021-02-14):

Некоторые команды даже сделали свои прототипы публично доступными, чтобы другие участники и судьи могли с ними взаимодействовать. Некоторые из этих демо до сих пор доступны (по состоянию на 2021-02-14):

  • The Wolf of WallStreetBets: Price and sentiment trends (based on r/wallstreetbets)
  • Hurdle Tracker: Hurdle jumping performance (e.g., distance, speed) from videos
  • The Wolf of WallStreetBets: тренды цены и тональности (на основе r/wallstreetbets) Hurdle Tracker: показатели прыжков через барьеры (например, дистанция, скорость) из видео

    User interface of Hurdle Tracker

    Пользовательский интерфейс Hurdle Tracker

    Conclusion

    Заключение

    Training bespoke machine learning models wasn’t a differentiating factor at this hackathon. Instead, what made a difference was:

    Обучение специально созданных моделей машинного обучения не было отличительным фактором на этом хакатоне. Вместо этого разницу создавало следующее:

  • Using readily available data via public datasets or APIs
  • Using libraries / pre-trained models to speed up ML iteration
  • Building UIs to make machine learning and insights easy to consume
  • Deploying models and UIs so people can use them
  • Использование готовых данных через публичные наборы данных или API; использование библиотек / предобученных моделей для ускорения итераций ML; создание UI, чтобы машинное обучение и инсайты было легко воспринимать; развёртывание моделей и UI, чтобы люди могли ими пользоваться

    Similar to building machine learning systems in industry, no?

    Похоже на построение систем машинного обучения в индустрии, не правда ли?

    How do you win a data hackathon?

    I saw how top teams did it at Hacklytics 2021 by:
    • Using available datasets & APIs
    • Using ML libraries & pre-trained models
    • Building simple UIs for demos
    • Deploying prototypes for judges to try

    More details 👇https://t.co/f7vvuRCHCH

    — Eugene Yan (@eugeneyan) February 17, 2021

    Как победить на дата-хакатоне? Я увидел, как лучшие команды сделали это на Hacklytics 2021: • Используя готовые наборы данных и API • Используя ML-библиотеки и предобученные модели • Создавая простые UI для демо • Развёртывая прототипы, чтобы судьи могли попробовать Подробности ниже 👇https://t.co/f7vvuRCHCH— Eugene Yan (@eugeneyan) 17 февраля 2021

    Thanks to Yang Xinyi for reading drafts of this.

    Спасибо Yang Xinyi за чтение черновиков этого текста.

    If you found this useful, please cite this write-up as:

    Если вы нашли это полезным, пожалуйста, цитируйте эту заметку так:

    Yan, Ziyou. (Feb 2021). How to Win a Data Hackathon (Hacklytics 2021). eugeneyan.com. https://eugeneyan.com/writing/how-to-win-data-hackathon/.

    Yan, Ziyou. (Feb 2021). How to Win a Data Hackathon (Hacklytics 2021). eugeneyan.com. https://eugeneyan.com/writing/how-to-win-data-hackathon/.

    or

    или

    @article{yan2021hacklytics, title = {How to Win a Data Hackathon (Hacklytics 2021)}, author = {Yan, Ziyou}, journal = {eugeneyan.com}, year = {2021}, month = {Feb}, url = {https://eugeneyan.com/writing/how-to-win-data-hackathon/} }

    @article{yan2021hacklytics, title = {How to Win a Data Hackathon (Hacklytics 2021)}, author = {Yan, Ziyou}, journal = {eugeneyan.com}, year = {2021}, month = {Feb}, url = {https://eugeneyan.com/writing/how-to-win-data-hackathon/} }



    Join 11,800+ readers getting updates on machine learning, RecSys, LLMs, and engineering.

    Присоединяйтесь к 11 800+ читателей, получающих обновления о машинном обучении, RecSys, LLM и инженерии.