У нас было 2 неудачных запуска, 169 студентов, 8 сердитых отзывов, 3 смены названий, слишком много теории и мало реальной практики. Не то чтобы это было полным провалом, но если начал обучать Data Science, надо сделать это идеально. Сегодня вы услышите историю о том, как мы развивали в OTUS направление анализа данных и какие на этом пути допустили, а потом исправили ошибки.
Первый ком — блином
Три года назад мы запустили первый курс по анализу данных и назвали его «Разработчик BigData». Он был рассчитан на 128 ак. часов, половина из которых вебинары, а вторая — домашки и проект. Машинное обучение и нейронные сети перестали быть уделом избранных и стали необходимым для эффективного развития бизнес-инструментом. IT-корпорации, интернет-магазины, маркетинговые агентства, стартапы и цифровые сервисы выстроились в очередь за дата саентистами. Полетели вакансии. Рынок труда особенно остро почувствовал нехватку Middle и Senior специалистов.
Нужно было учить и растить мидлов, но никто не знал, как сделать это хорошо. Мы пригласили преподавателя, разработали программу и в итоге вышел курс, который с одной стороны был сложным и даже слишком требовательным к уровню подготовки, а с другой — недостаточно практическим.
Запутали студентов сменой названий
Когда мы собрали фидбек первых запусков, то обнаружили, что название неточно отражает суть программы. Под термином одного раздела мы обучали всем инструментам Data Science. В 2018 году мы перевыпустили курс под названием «Data Scientist», подразумевая, что он готовит на эту профессию. После переработки в нем на 10 часов вырос объем вебинаров, но практика по-прежнему оставалась слабым местом. Большинство заданий были игрушечными примерами, далекими от реальных задач с настоящими дата сетами.
На этот раз отзывы были противоречивы. Одни ругали курс за поверхностные знания, другие говорили, что он оказался слишком сложным, хотя они успешно сдали на него вступительный тест. Некоторые считали, что сменой названия мы пытались замять не слишком успешные первые запуски. Кроме того, в один момент случился форс мажор: курс лишился руководителя, а следом и продюсера.
Озарение и новый преподаватель
Знакомьтесь, Дмитрий Сергеев — автор и руководитель курса «Machine learning». Вместе с ним в OTUS пришло полное переосмысление направления Data Science. Мы отказались от идеи уместить все практики в один курс и сделали углубленные программы отдельно по Машинному обучению и Нейронным сетям на Python.
Дима занимается анализом данных с 2012 года. Он с энтузиазмом подошел к разработке занятий для OTUS, наполнив их практичными фишками и интересными задачами.
Ключевые различия курсов
«Разработчик Big Data» | «Data Scientist» | «Machine Learning» | |
Год проведения | 2017- начало 2018 | 2018 | 2019-... |
Название | Отражает 1 инструмент, хотя по сути курс был по разным инструментам Data Science | Курс был недостаточно практическим и подробным, чтобы пройдя его можно было считать себя серьезным специалистом | Теперь это один из ряда курсов в разделе Data Science. Название отражает суть — курс посвящен углубленным практикам машинного обучения и лишь частично затрагивает нейронные сети |
Общее количество часов | 128 | 138 | 178 |
Часы вебинаров | 64 | 74 | 70 |
Часы для самостоятельной работы | 64 | 64 | 108 |
Количество практических заданий | 16 | 12 | 19 |
Мы попросили самого Диму рассказать, как и почему он переработал курс.
OTUS: Дима, ты видел предыдущую программу. Как поменялась она в новом курсе?
— Набор тем поменялся не сильно, разве что их последовательность. Ключевое отличие в том, что я полностью переработал все материалы, чтобы они стали понятными, интересными и крутыми. Для меня любопытство всегда было основной мотивацией изучать что-то новое. Это же любопытство я всегда стараюсь пробуждать у студентов.OTUS: Объясни подробнее, как работает твой метод преподавания.
Поэтому в первую очередь, я изменил формат подачи теории — вместо сухого «академического» подхода я даю подход «инженерный». Понимание теории идет через интуицию и практику, подводя под это необходимый математический аппарат.
Еще я сократил тему нейронных сетей до одного занятия. Нейронки — отличный инструмент для работы с данными. Однако, как и с любым другим инструментом, с ними нужно основательно знакомиться, разбирать принципы работы, подходы, архитектуры и т.д. Разобрать всё это на достойном уровне за пару занятий невозможно, поэтому они вполне заслуживают такого же отдельно углубленного курса.
— Сначала необходимо понять интуицию работы модели. Любой, даже самый сложный, метод машинного обучения можно (и нужно уметь!) разъяснить на пальцах. Кстати, это еще и отличный способ проверить собственное понимание темы — если я могу что-то объяснить на картинках и простых примерах, значит, я действительно разбираюсь и готов рассказывать об этом студентам.OTUS: Программа интенсивная, заданий стало больше, еще и каждый раз пайплайн с нуля — не слишком жестите?
Только после того, как интуиция становится всем понятна, мы переходим ко второму шагу, который в «академическом» подходе обычно идет первым, а иногда и единственным, — смотрим, какой математический аппарат необходим для работы модели. Опять же, математика — просто способ красиво и аккуратно записать интуицию. Если студентам уже понятно, почему работает модель, то и математика ложится быстро и просто.
Наконец, третий шаг — практика. Немного на игрушечных примерах, а затем по-хардкору на реальных данных, чтобы прочувствовать все прелести профессии.
Другие преподаватели курса тоже используют эту методику. Каждый старается предлагать для практики интересный датасет и задачу, которую можно решить при помощи изучаемого метода, чтобы не возиться с одним Титаником, ирисами и синтетическими Moons.
А еще, знакомясь с новой моделью, мы каждый раз прогоняем полный пайплайн работы с данными.
— Жестим, конечно. Но так вы за 5 месяцев действительно отточите навыки, а еще соберете себе портфолио. Мы подбирали домашки по образцу тестовых заданий, которые дают соискателям в разных компаниях.OTUS: А что нового ты ввел в программу? Какие фишки ждут студентов?
Курс действительно сложный и насыщенный и покрывает все основные модели машинного обучения. При этом на усмотрение студента остается, выполнять задания или нет, насколько глубоко погружаться в тему и в каком темпе учиться. Мы же со своей стороны обеспечиваем все условия для действительно качественного изучения материалов.
— Во-первых, я значительно расширил часть тем. Например, по временным рядам теперь не одно, а целых два занятия, чтобы студенты не только посмотрели на несчастную ARIMA, но и разобрали современные методы и модели. Тоже самое с блоком по анализу текстов, в котором теперь три лекции — успеваем подробно изучить все основные темы от tf-idf до тематического моделирования и векторных представлений слов.Третий поток «Machine Learning» стартует 28 февраля. Если вдруг стало интересно, приглашаем познакомиться с программой и отзывами студентов. И заодно пройти вступительный тест.
Во-вторых, я добавил несколько новых тем, которые незаслуженно пропускаются на многих курсах. Например, Поиск аномалий, где мы разбираем самые разные методы очистки и обработки данных (а не только три сигмы), которые можно использовать для построения «боевых» систем по поиску аномалий. Также добавились темы по работе с большими данными, где мы смотрим, что можно сделать, когда датасеты уже не помещаются в оперативку, как оптимизировать модели, использовать распределенные вычисления, AWS и т.д.
Наконец, как я уже говорил, любопытство — это крайне важно для обучения, поэтому самой новой фишкой стало занятие по сбору данных, где студенты узнают, как можно самостоятельно спарсить себе новые уникальные наборы данных, вместо того, чтобы использовать стандартные. В результате, многие студенты для практики стали собирать свои собственные датасеты, работать с которыми гораздо интереснее.
А еще я полностью поменял вступительный тест — предыдущий вообще не отражал то, что нужно знать для машинного обучения. Вообще, каждый раз мы актуализируем всю программу, потому что сфера развивается молниеносно, и продолжаем совершенствовать процесс обучения. Так что, рассчитываю, что с новым потоком дадим студентам еще больше пользы.
Если остались вопросы, вы можете задать их лично Дмитрию Сергееву 24 февраля в 20:00 в День открытых дверей. Регистрация на вебинар здесь. Всех ждем!
CrazyElf
TF-IDF как-то уже и не нужен нынче. Для простых случаев и CountVectorizer хватает, а для сложных проще сразу из артиллерии типа fastText или там BERT стрелять начать. :)
Вроде как шучу, но вообще очень быстро всё развивается, используемые модели и инструменты могут радикально поменяться всего лишь за год. Очень динамичная область знаний.
Skolopendriy
C CountVectorizer начинаем ;)
Так и есть, новый state-of-the-art может каждые пару месяцев появляться, всё время нужно следить, учиться, переучиваться, дополнять или выкидывать. Но и «классические» методы из каких-нибудь дремучих 2010-х годов всё ещё активно используются и отлично себя показывают, так что приходится знать и то, и другое, и третье.
Зато не скучно :3
CrazyElf
От классических методов никуда не деться, конечно, потому что идеал продакшена в реальной жизни — это Linear Regression поверх продвинутого фича-инжиниринга. Чтобы всё было быстро, понятно, легко интерпретируемо. Хотя в обработке текстов/картинок всё-равно без SOTA никуда. :)
Я просто не представляю, как можно курсы в актуальном состоянии поддерживать, когда всё вот так вот динамично. %)