Четыре пути из Школы анализа данных Яндекса

Ученые и разработчики рассказывают о своем образовании и карьере.

Яндекс готовит специалистов в области data science с 2007 года. Студенты ценят Школу анализа данных за актуальность учебных программ и курсов, но они не всегда понимают, что их ждет по ее окончании. Работа с данными в Яндексе или в другой крупной компании? Но какая?

Изначально в Школе было два отделения: компьютерные науки и анализ данных. В 2014 году, когда в моду вошли big data, появилась третья специализация — большие данные. В этом году для того, чтобы студентам сразу стали понятнее их перспективы, в Школе провели реформу отделений: теперь обучение будет проходить в рамках четырёх профессиональных треков.

Профессиональные треки выделены не случайно — это четыре пути, на которые чаще всего вступают выпускники после окончания ШАДа (а некоторые уже во время учёбы). Для каждого из этих четырех путей мы нашли по одному выпускнику, который его выбрал, и поговорили с ними, чтобы понять, какие курсы оказались самыми полезными для будущей работы и как они выбрали своё профессиональное призвание.

Data scientist

Никита Попов, выпускник 2016 года:

«Data scientist — так сейчас называют аналитиков всех мастей. Мы в Яндексе привыкли считать, что data scientist — это человек, который отлично владеет машинным обучением и статистикой и, главное, на практике может извлечь полезную информацию из огромного объема данных.

Сейчас я работаю в команде метрик Поиска. Мы работаем над тем, чтобы оценивать качество нашего поиска, выбирать, в какую сторону двигаться и какой из множества проводимых экспериментов действительно увеличит “счастье пользователя”. В команду я попал через стажировку сразу после окончания ШАДа. Школа анализа данных дала мне отличную базу: курсы по машинному обучению и вероятностным моделям — это как раз то, что я использую каждый рабочий день.

Я поступил за компанию со своими одногруппниками, но уже с первых семинаров стало понятно, что ШАД — это безумно интересно. Именно там я осознал, чем хочу заниматься. Думаю, что каждый data scientist должен хорошо разбираться в различных методах машинного обучения, знать их плюсы, минусы и область применения, уметь находить в данных зависимости и делать правильные выводы на их основе. Несмотря на то, что работаю я аналитиком, очень часто приходится заниматься и разработкой. Недавно я допилил сервис, для которого разрабатывал и фронтенд, и бекенд, и сами алгоритмы — data scientist должен уметь всё».

Разработчик машинного обучения

Женя Захаров, выпускник 2018 года:

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

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

ШАД дал мне хороший набор базовых навыков, которые я использую каждый день: машинное обучение в различных его ипостасях, прикладная статистика, алгоритмы и представление о том, как должен выглядеть промышленный код. Очень релевантным оказался проект курса больших данных, где мы с ребятами в команде писали градиентный бустинг, пытаясь догнать по скорости LigthGBM, который мы не догнали, но таки смогли добиться сравнимого времени».

Специалист по инфраструктуре больших данных

Влад Бидзиля, выпускник 2017 года:

«Со старших классов мне хотелось профессионально заниматься программированием. В ШАД я поступил, когда был на третьем курсе университета. Он открыл передо мной дивный новый мир машинного обучения и интеллектуального анализа данных, высокоэффективных систем с кучей алгоритмов на стыке прикладной математики и программирования.

В течение нескольких лет я работал в Яндексе в команде качества ранжирования видеопоиска. Курсы ШАДа по продвинутому С++ и Python помогли мне в короткие сроки втянуться в рабочий процесс — перейти от написания академических программ в университете до серьезного продакшн-кода в компании.

С недавнего времени я работаю в службе технологий распределенных вычислений. Мы занимаемся разработкой MapReduce-системы YT. Здесь знания и навыки, приобретенные в ШАДе, тоже оказались чрезвычайно полезными: курс по классическим алгоритмам и структурам данных привил алгоритмическую культуру, выработал умение быстро писать эффективный и чистый код с минимальным количеством багов и понятной структурой, разбираться в сложных алгоритмических решениях; курс по алгоритмам работы с большими объемами данных продемонстрировал сложности, возникающие при обработке массива данных, не помещающегося в память компьютера, и методы борьбы с этими сложностями, позволил получить понимание основных паттернов построения алгоритмов во внешней памяти и потоковых (streaming) алгоритмов, выработал базовые практические навыки их написания; курс по параллельным и распределенным вычислениям познакомил с основными конструкциями многопоточного и распределенного программирования, применяемыми везде и всюду в разрабатываемой системе.

Кроме того, стоит отметить, что благодаря ШАДу мне удалось глубоко познакомиться с прикладными математическими курсами, которые часто остаются за бортом классической университетской программы: теория информации и вычислительной сложности, продвинутая дискретная математика, статистический анализ, комбинаторная и выпуклая оптимизация. Эти знания соединяют теоретическую математику и IT-индустрию высоких технологий».

Специалист по анализу данных в прикладных науках

Никита Казеев, выпускник 2015 года:

«Я работаю над применением методов машинного обучения для задач фундаментальной физики в ЦЕРНе в статусе аспиранта ФКН ВШЭ и Sapienza University of Rome.

Физикой увлекался со школы, был призёром Всероссийской олимпиады, пошел на ФОПФ МФТИ. Во многом из-за идеалистических соображений — если заниматься не наукой, то чем? Но к компьютерам тянуло всегда. Бакалаврская работа была посвящена компьютерному моделированию неидеальной плазмы, и в ней было много алгоритмов и C++.

На четвертом курсе я поступил в ШАД, через год меня пригласили в формирующуюся группу международных учебно-научных проектов в Яндексе. Сейчас она трансформировалась в совместную лабораторию Яндекса и ВШЭ — LAMBDA. Мы не только делаем что-то руками, но и учим физиков машинному обучению, так что я в некотором роде преподавал в Оксфорде. На нашей летней школе, но всё же 😉

Из того, что нам преподавали в ШАДе, хочется отметить:

— Курс алгоритмов: общая культура программирования и, внезапно, алгоритмы. Было забавно за два часа ускорить физический симулятор в десять раз, просто добавив k-d tree вместо полного перебора.

— Машинное обучение, глубинное обучение: bread and butter, особенно, внезапно, теоретическая часть. В физике высоких энергий приходится иметь дело с нестандартными задачами, в которых недостаточно import xgboost.

— Доменная адаптация: как совместить физические соображения и машинное обучение, чтобы сделать алгоритм, который будет обучаться по симулированным данным, а применяться к реальным? Как быть, если обучающая выборка грязная, но есть отрицательные веса, которые её очищают? Как измерить точность восстановления распределения GANом?

— Обработка больших данных: пришлось попользоваться Hadoop.

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

Краткий пересказ от YandexGPT