"Часы работы"

5 советов по планированию успешного хакатона ML

От супа до орехов

TL; DR

Хакатон [‘hak- uh -thon’] существительное

  • Независимо от того, являетесь ли вы стартапом или хорошо зарекомендовавшим себя бизнесом, хакатоны являются катализатором инноваций.
  • Хакатоны обычно нацелены на решение конкретной проблемы с помощью технологий. В этом посте мы сосредоточимся на технологии машинного обучения (ML).
  • Во время хакатона группы людей собираются вместе, чтобы написать (или взломать вместе) минимально жизнеспособный продукт за короткий период времени - отсюда и название!
  • Прототипы, разработанные на хакатонах, могут стать стартовой площадкой для новых идей и продуктов.

🔩 # 1: усвоите основы

Здесь мы рассмотрим основы планирования хакатона. Вы можете применить большинство советов из этого совета к любому хакатону. Мы расскажем о деталях хакатона машинного обучения позже в этом посте.

Определите свои цели

Все мы любим хороший хакатон. Что может быть веселее, чем объединение группы инженеров и дизайнеров, подпитываемых волшебной комбинацией Red Bull и пиццы, которые работают до поздней ночи, чтобы за считанные дни создать потрясающие демонстрации своих великих идей?

Прежде чем вдаваться в подробности проведения хакатона, важно сначала выяснить, чего вы хотите получить от хакатона.

Ты хочешь:

  • Сосредоточьтесь на идеях новых продуктов
  • Обучайте разработчиков новым инструментам
  • Удовлетворите срочную потребность

💡 Знание целей поможет вам определить наилучший формат и продолжительность хакатона. В нашем примере хакатон по машинному обучению охватывает 3 дня, но хакатон может длиться от 1 до 7 дней.

Возьмитесь за логистику

Вы захотите создать среду, которая позволит людям легко сотрудничать и предоставит им все оборудование и ресурсы для максимальной производительности.

  • Виртуальный (или физический)

После пандемии нам пришлось проявить немного больше творчества, когда дело дошло до объединения людей для мероприятий, которые традиционно проводились в виде больших собраний в помещении.

Надеюсь, что в недалеком будущем появятся возможности для проведения физических встреч.

Для физического мероприятия желательно иметь большую открытую комнату со столами, расставленными группами, чтобы люди могли работать в командах. Вы также захотите обеспечить много розеток (или удлинителей), предполагая, что люди будут приносить свои собственные ноутбуки. Также важно иметь надежную сеть Wi-Fi, к которой можно легко получить доступ.

  • Когда и как долго

Рекомендуется заранее назначить дату (и, если возможно, место проведения) вашего мероприятия. Как можно больше уведомляйте людей о повышении уровня участия. Также решите, хотите ли вы проводить мероприятие в рабочее время или в нерабочее время, если это может помешать вашей обычной деятельности - Важно, чтобы участники могли на все 100% сосредоточиться на хакатоне.

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

🧐 Проницательные из вас заметят, что это всего лишь сжатая версия типичных шагов в области науки о данных, необходимых для создания и развертывания модели машинного обучения.

➡️ См. Советы 2 и 3, чтобы узнать, как спланировать разные дни.

  • Технологии

Используемая вами технология должна быть актуальной, особенно если ваше мероприятие будет виртуальным.

Вы решили, как участники будут сотрудничать? Мы рекомендуем использовать сочетание надежного инструмента видеоконференцсвязи (например, Google Meet или Zoom), места, где команды могут общаться (например, Slack или Discord), а также запрашивать помощь у фасилитаторов или наставников.

Где вы хотите, чтобы участники разработали и развернули свой код? Вы счастливы, что команды разберутся в этом самостоятельно, или вы предпочитаете какую-то конкретную платформу, продукт или набор инструментов?

Например, если вы собираетесь использовать облачную среду, такую ​​как GCP или AWS, вам необходимо убедиться, что существует хорошо отлаженный и последовательный процесс адаптации пользователей - и, пожалуйста, не оставляйте это до дня!

Что бы вы ни выбрали, заранее убедитесь, что все ваши технологии работают должным образом.

  • 🍕 Еда и ☕️ кофеин

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

Если у вас есть бюджет, вы можете отправить участникам пакеты с едой и напитками на их домашний адрес или даже поделиться купонами на доставку еды (например, Just Eat, Doordash).

Когда мы снова сможем встретиться лично, стоит заранее организовать питание.

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

Нанимайте людей, проекты и команды

  • Набор участников (и наставников)

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

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

  • Поиск проектов

Вы позволите хакерам работать над тем, что они выберут, если это соответствует вашей цели на хакатоне? А может быть, к участию попадают только избранные проекты?

Если есть процесс отбора: определите, кто выбирает проекты и как. Также не забудьте четко сообщить процесс отбора и критерии.

Если все проекты приветствуются, и люди могут свободно голосовать своими ногами, сделайте так, чтобы людям было как можно проще набирать / присоединяться к команде.

Всегда полезно побудить участников подумать о своих проектах и ​​командах заранее, чтобы они могли максимально использовать время, которое у них есть во время хакатона.

Вот несколько простых способов, которые помогут вам заблаговременно запросить идеи для проекта:

  1. Используйте простую общую таблицу Google, в которой люди могут представить свои идеи проектов и зарегистрироваться, чтобы возглавить команду или присоединиться к ней.
  2. Используйте что-то вроде выделенного канала Slack, где люди могут отправлять проекты и голосовать за них с помощью опросов.
  3. Создайте свою собственную доску идей, используя что-то вроде Miro или Sketchboard, на которой люди могут отправлять, голосовать и / или обсуждать идеи проектов.
  • Формирование команд

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

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

Некоторые идеи о том, как это сделать:

  1. Сеансы презентаций. Возможно, у вас уже есть готовые проекты, в которых участники могут зарегистрироваться, чтобы присоединиться к ним в качестве членов команды. Или, возможно, пригласите людей, которые уже знают, что они хотят построить, для презентации своей идеи с ограничением по времени от 30 секунд до 1 минуты.
  2. Время для общения в социальных сетях - после того, как вы поочередно рассмотрите презентации, дайте людям возможность общаться и общаться, чтобы они могли задать дополнительные вопросы. Придать ему веселую неформальную атмосферу с помощью коктейльных столов или закусок - хорошая идея.
  3. Наконец-то есть простой способ отслеживать, кто над чем будет работать. Это может быть общий Google Doc или что-то подобное.

🖼 # 2: День 1, Подготовка данных

Может возникнуть соблазн позволить участникам сразу перейти к построению кода и модели. Но успех любого приложения ML во многом зависит от:

  1. правильно формулируя проблему, которую вы пытаетесь решить, и,
  2. сбор правильных тренировочных данных

Здесь мы рассмотрим те вопросы, которые вы можете использовать, чтобы помочь своим участникам в процессе формирования проблемы и подготовки данных.

Чтобы избавить вас от лишних хлопот, мы также включили для участников шаблон "Формирование проблемы и дизайн данных", который вы можете повторно использовать в своих собственных хакатонах. Перейдите к разделу "Ресурсы" в конце сообщения, чтобы загрузить.

Обозначение проблемы

Хороший способ начать - описать вашу проблему простым языком. Вам вообще нужно ML для решения проблемы? Что вы хотите, чтобы ваша модель машинного обучения выполняла и как она поможет вам в достижении вашей цели?

Предположим, вы создали блестящую модель машинного обучения. Как выглядит успех? Какие метрики вы будете использовать, чтобы определить, дала ли ваша модель машинного обучения успешный результат или нет?

Обычно хорошим критерием для сравнения является метод, используемый для решения проблемы сегодня до применения машинного обучения. Насколько успешнее ваша модель по сравнению с этой эвристикой?

Сбор и организация данных

Итак, теперь, когда вы установили, как машинное обучение решит вашу проблему, вам нужно выяснить, какие данные вам понадобятся для обучения вашей модели.

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

Следующий шаг - выяснить, откуда будут поступать нужные вам данные. Доступны ли необходимые вам входные данные в необработанном виде, придется ли вам собирать данные из нескольких источников, очищать и объединять их вместе перед использованием?

Вы также должны учитывать, есть ли какие-либо предвзятости в используемых вами обучающих данных, может ли это оказать негативное влияние на прогнозы модели? Сможет ли модель эффективно «учиться», например, если для конкретного результата недостаточно данных обучения.

Рассматривали ли вы, существуют ли какие-либо этические риски в том, как вы собираете данные для обучения или как вы применяете машинное обучение? Это сложный и иногда упускаемый из виду фактор проектирования. Рекомендуемую литературу см. в разделе "Ресурсы".

🏗 # 3: дни 2–3, построение модели

Последние два дня посвящены созданию модели, ее повторению и, наконец, достижению точки, когда ваши участники развернут свой минимально жизнеспособный продукт (MVP).

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

Предварительные условия

Есть ли базовый уровень понимания, который вы хотите, чтобы каждый участник имел, когда дело доходит до машинного обучения? Чтобы обеспечить равные условия для ваших команд, вы можете предложить бесплатное онлайн-предложение, например Ускоренный курс машинного обучения от Google, или заменить его собственными материалами.

Также может быть стоит создать контрольный список вопросов, которые, как вы ожидаете, должны быть выполнены каждой командой, прежде чем они смогут перейти к этому этапу хакатона.

Даже примите во внимание перерыв в несколько дней или недель между этапами «Подготовка данных» и «Построение модели». Это дает людям время для сбора качественных данных и обеспечения максимальной отдачи от следующих двух дней хакатона.

Например, хорошей контрольной точкой для каждой команды может быть то, что у них есть:

  • Четко определенная проблема машинного обучения
  • Обучающие данные с ярлыками, доступными вам и / или вашим наставникам
  • Хорошо определенное (или, по крайней мере, продуманное), как будет выглядеть производственная система машинного обучения для развертывания MVP. Это все: от сбора данных, обучения и визуализации до обслуживающей инфраструктуры.

Типы проблемы

Еще один способ сузить круг вариантов - заставить ваши команды активно думать о лучшем решении машинного обучения для проблемы, которую они сформулировали.

Например, является ли это контролируемой или неконтролируемой проблемой, в первом случае это задача регрессии или классификации? Вот удобное руководство по Распространенным проблемам машинного обучения.

Мы также указываем на это в нашем шаблоне «Построение проблемы и дизайн данных».

API, код или что-то среднее?

В зависимости от уровня опыта в ваших командах было бы неплохо направить участников по тому или иному пути.

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

Большинство ведущих поставщиков облачных услуг предлагают такие услуги для различных приложений, таких как распознавание изображений, преобразование речи в текст, обработка естественного языка и многие другие.

Если большинство людей являются опытными разработчиками машинного обучения, они, возможно, уже имеют в виду какое-то конкретное оружие. Нет недостатка в фреймворках, среди которых наиболее популярны TensorFlow, PyTorch и SciKit Learn. Вы можете сузить его до определенной структуры.

Наконец, вы можете обнаружить, что инструменты AutoML обеспечивают хорошую золотую середину. AutoML позволяет разработчикам с ограниченным опытом машинного обучения обучать высококачественные модели, соответствующие их бизнес-потребностям.

Ключевое различие между API AutoML и ML заключается в возможности создавать собственные модели с использованием ваших собственных данных.

☀️ # 4: В день

Молниеносные разговоры

«Молниеносные выступления» - это короткие, легко усваиваемые презентации. Обычно их возглавляет предметный эксперт, освещающий тему, имеющую отношение к вашему хакатону.

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

Количество проведенных вами молниеносных разговоров будет зависеть от того, какой контент вам нужно охватить. Мы рекомендуем, чтобы продолжительность каждого из них не превышала 15–20 минут в четком и последовательном формате.

Обычно рекомендуется планировать световые переговоры в начале дня. Оставьте остальное время неструктурированным до закрытия, чтобы у людей было достаточно времени для написания кода своего проекта.

Наставники

Наставники играют очень важную роль в этот день и будут решающим фактором успеха вашего хакатона.

Как наставники могут помочь вашим командам и участникам хакатона:

  • Мозговой штурм, оспаривание идей и постановка задач.
  • Проверяйтесь регулярно, чтобы все не сбились с пути и сосредоточились на хакатоне.
  • Делитесь знаниями, передовым опытом и помогайте избежать дублирования идей.

Хорошие практики для наставников:

  1. Старайтесь время от времени менять наставников, чтобы команды смотрели с другой точки зрения и не продвигали ваши собственные идеи.
  2. Как наставник вы работаете как коллективная команда, чтобы помочь всем группам
  3. Подчеркните психологическую безопасность. Наставник дает командам разрешение выявлять чувства и выражать их без осуждения, это безопасное место.
  4. Используйте чувственные слова, чтобы идентифицировать и подтверждать эмоции, чтобы позволить командам открыться и попытаться рассказать о вашем собственном опыте и о том, как вы справлялись с подобными ситуациями в прошлом.
  5. Что делать, если я не могу чем-то помочь? Это совершенно нормально, и это хороший повод нанять широкий круг наставников, чтобы все вместе вы могли найти ответ. Вам не нужно быть техническим экспертом, но вы должны уметь побуждать команды по-другому думать о проблемах и способствовать обсуждению.

👩🏾‍⚖️ # 5: Подведение итогов и судейство

Закрытие хакатона

Имейте четко определенное время, когда команды должны отключить инструменты, прекратить взламывать и подготовиться к тому, чтобы поделиться своими проектами с остальной частью группы.

Быстро потерпеть неудачу. Часто терпят неудачу. Подчеркните, что через 3 дня продукт, скорее всего, не будет запущен, и большинство идей, придуманных за эти 3 дня, потерпят неудачу. Но в равной степени признайте, что этот быстрый процесс прототипирования и повторения может привести к большим инновациям!

Расскажите участникам о будущих возможностях хакатона и, если возможно, о том, как они могут встретиться с наставниками и другими разработчиками программного обеспечения для прототипирования новых идей.

Выбор победителя

Наконец-то вы подошли к концу хакатона и осталась одна из важнейших задач - выбрать победителя!

Если возможно, постарайтесь заручиться поддержкой исполнительного спонсора в вашей организации. Они не только могут помочь судить команды, но также могут гарантировать, что проекты-победители получат необходимый уровень ресурсов и будут доведены до конца. Это отличный способ вдохновить команды на раннем этапе, потому что они знают, что победившая идея может иметь длительное влияние.

Как обеспечить успешное судейство:

  • Запланируйте время для каждой команды для презентации и демонстрации (обязательно напомните им заранее, чтобы они могли практиковать свои презентации). Примерно 3-5 минут - хорошее правило.
  • Соберите группу экспертов с разным опытом и знаниями, чтобы поделиться полезными отзывами.
  • Выберите победителя, используя четкие критерии оценки, которые также должны быть доступны командам.
  • При необходимости выберите подходящие призы для победителей.

Следующие шаги

День закончился, но ваша работа еще не завершена, очень важно, чтобы вы собирали отзывы участников, чтобы понять, что прошло хорошо и как вы можете улучшить.

Совет для профессионалов: убедитесь, что люди заполнили анкету перед тем, как уйти!

Поработайте с командой-победителем (и исполнительным спонсором) над тем, как они собираются развивать свою идею и какие действия необходимо предпринять.

Поощряйте всех участников сохранять свой код, результаты и сводку результатов.

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

🙏🏼 Спасибо

Огромный привет Шарлотте Хатчинсон за сотрудничество со мной в этом посте!

📚 Ресурсы и дополнительная литература