Никакого legacy-кода и нацеленность на результат. Украинец — о научной карьере в ML, магистратуре и PhD в Европе

Максим Андрющенко учился в Днепре на программной инженерии и, как и многие начинающие специалисты, мог уйти работать в ІТ-индустрию уже на последних курсах бакалавриата. Однако он выбрал для себя путь, связанный с наукой и аспирантурой. Сейчас Максим стажируется в Adobe и получает степень PhD в Федеральной политехнической школе Лозанны (EPFL), а до этого окончил магистратуру по компьютерным наукам в Германии. Максим является соавтором 11 статей по машинному обучению, большинство которых были опубликованы на ведущих конференциях по машинному обучению и компьютерному зрению (NeurIPS, ICLR, CVPR, ECCV) и которые суммарно были процитированы более 800 раз.

Он рассказал DOU о специфике исследований по машинному обучению, целесообразности ученой степени в ІТ-сфере, а также о разнице в зарплатах между академией и индустрией в Швейцарии.

О машинном обучении, летней школе в Японии и стипендии от немецкого правительства

Я родился и вырос в Днепре. В 2012 году поступил в Днепропетровский национальный университет железнодорожного транспорта на программную инженерию. Уже в конце первого курса я заинтересовался машинным обучением благодаря знаменитому онлайн-курсу Andrew Ng, после которого я чётко осознал, что это именно то, чем я хотел бы заниматься в будущем. Машинное обучение мне тогда показалось чем-то абсолютно уникальным с алгоритмической точки зрения: если ты не знаешь, как написать алгоритм распознавания цифр, можешь просто оптимизировать параметры модели на собранном наборе данных и таким образом получить алгоритм, который сможет распознавать цифры с высокой точностью. Это казалось настоящей магией.

К тому же было четкое понимание того, что таким путем можно решать огромное количество задач. В связи с этим я старался находить различные проекты по этой теме. Вначале это была собственная рекомендательная система для фильмов (мы её называли громким словом «стартап»), которую мы разрабатывали совместно с моим одногруппником и по совместительству хорошим другом. Потом были фрилансерские проекты и парт-тайм работа в сфере анализа данных и машинного обучения: сначала в геймдев-компании Murka, затем во всем известном «ПриватБанке». Обе компании были по-своему замечательны и интересны. К концу бакалавриата я стал искать возможности получить международное образование по теме ML, так как было ясно, что многое упирается в знания и образование.

В конце третьего курса бакалавриата я подал документы на участие в летней школе по машинному обучению в Японии (Machine Learning Summer School in Kyoto, 2015) и получил положительный ответ. Две недели я слушал лекции в Киотском университете от ведущих мировых исследователей в сфере машинного обучения. Это был удивительный опыт, тогда казалось, что меня приняли в эту школу по какой-то ошибке (ещё и дали travel grant по каким-то причинам), так как практически все остальные участники были из известных мировых университетов и по большей части уже обучались в аспирантуре.

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

На этой летней школе мне повезло встретить также других украинских студентов, которые рассказали о стипендии DAAD (немецкая аббревиатура «German Academic Exchange Service») от немецкого правительства, которая полностью покрывает обучение на магистратуре в течение двух лет. До этого я не знал, как устроена образовательная система в Германии и что обучение в этой стране практически бесплатное, а многие программы магистратуры ведутся на английском языке.

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

Групповое фото участников Machine Learning Summer School in Kyoto, 2015 (источник)

О магистратуре в Германии и начале исследований по машинному обучению

В 2016-м я получил стипендию DAAD и поступил на магистратуру. Я подался в три университета, из которых меня приняли в два, в том числе в Саарский университет (Saarland University), где я впоследствии проучился почти три года. Первые два года я получал стипендию, а уже на третий год подрабатывал парт-тайм в исследовательской группе по машинному обучению, и этих денег хватало на жизнь. В Германии такого рода подработка считается стандартной практикой и дает возможность студентам лучше понять, как в целом проходят научные исследования.

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

На магистратуре мне в качестве Research Assistant удалось в течение двух лет проводить исследования совместно с Матиасом Хайном, профессором по машинному обучению. Мне очень понравилась атмосфера академической свободы: ты можешь выбирать практически любые темы в рамках своей сферы, исследовать их и писать статьи о результатах. Чаще всего новая статья предлагает какой-то новый метод, благодаря которому можно достичь лучших результатов: либо эмпирически (на конкретных наборах данных), либо теоретически (например, имеет лучшую скорость сходимости для какого-то класса функций).

Также есть статьи, которые пытаются объяснить успех тех или иных методов. Например, почему глубокое обучение работает несмотря на отсутствие теоретических гарантий касательно оптимизации и обобщения (generalization). Разумеется, у исследовательских групп, помимо академической свободы, есть конкретные KPI: количество опубликованных статей на главных конференциях, количество цитирований и так далее. Но, в отличие от индустрии, где необходимо решать конкретные задачи, в академии ты чаще решаешь сам, над какой именно темой работать (но, разумеется, консультируясь со своим научным руководителем).

Типичные задачи для Research Assistant включают в себя обзор литературы, написание кода, тренировку моделей, измерение различных метрик, доказательство теорем (для теоретических проектов) и непосредственно оформление полученных результатов в виде публикации. Успешный опыт проведения исследований очень ценится для поступления в аспирантуру, поскольку там это основная деятельность.

Здания двух институтов Макса Планка на кампусе Саарского университета (источник)

Мне понравилась атмосфера в академии, поэтому в 2019 году, после защиты магистерской работы по машинному обучению в Тюбингенском университете (где получил должность профессор, с которым я начал работать ранее), я продолжил заниматься научными исследованиями и поступил в аспирантуру. Я решил, что на протяжении аспирантуры, длящейся около 4–5 лет, будет полезно поработать с новыми исследователями, поэтому не остался в Тюбингене, а подал документы в другие университеты. Суммарно в около 10 вузов.

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

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

Об аспирантуре в Федеральной политехнической школе Лозанны (месте, где придумали Scala)

Одним из десяти университетов, куда я подавался, была Федеральная политехническая школа Лозанны, она же EPFL (École polytechnique fédérale de Lausanne), в который меня приняли в аспирантуру по компьютерным наукам. EPFL входит в лучшие 10–20 университетов мира согласно QS World University Rankings, и профессора EPFL регулярно публикуются на ведущих конференциях (в том числе по машинному обучению), что было для меня самым важным критерием. Отбор в аспирантуру был непростым: из 600 заявок желающих на аспирантуру в итоге попало 40 человек. В основном это студенты, которые учились в известных университетах, имеют прекрасные оценки и опыт участия в ведущих конференциях и международных олимпиадах.

У меня уже было несколько статей, написанных во время магистратуры в Германии, из которых одна была опубликована на Conference on Neural Information Processing Systems (NeurIPS) — ведущей конференции по машинному обучению. Двое других ребят из Украины, которые тоже поступили на ту же программу аспирантуры, активно участвовали в олимпиадах по математике на международном уровне. Ещё один парень из Украины до этого стажировался в Google, что тоже несомненно помогло при поступлении.

Кампус Федеральной политехнической школы Лозанны (EPFL) (источник)

В целом формат аспирантуры бывает двух типов: либо ты заранее подаешься в конкретную исследовательскую группу, либо сначала попадаешь в так называемую graduate school (то есть на саму программу) и только после этого в течение какого-то времени должен определиться, с кем будешь работать на протяжении всей аспирантуры. Программа компьютерных наук в EPFL как раз работает по второму принципу (хотя так не во всём EPFL), который очень популярен в США, но менее популярен в Европе.

Таким образом, после поступления на аспирантуру начинается самый важный этап: необходимо оперативно найти себе научного руководителя, который бы согласился платить тебе зарплату из своего фонда после окончания первого года. Также, помимо непосредственно исследований, есть требования по курсам, которые нужно сдать, но их не слишком много. Еще, начиная со второго семестра, нужно помогать вести занятия (teaching assistantship), в среднем 8 часов в неделю согласно контракту (иногда меньше, а иногда и больше, в зависимости от курса). Это включает себя проведение практических занятий, помощь студентам с домашними заданиями и ответы на общие вопросы.

Аспирантура в EPFL предоставляет возможность поучаствовать в ведущих мировых исследовательских проектах. К примеру, EPFL координирует Human Brain Project — крупнейший исследовательский проект в истории изучения человеческого мозга, финансирование которого составляет около 1,6 миллиарда долларов. Другой пример: многим известный язык Scala был создан как раз в EPFL в начале 2000-х под руководством Мартина Одерски, который до сих пор преподаёт здесь и проводит исследования в сфере языков программирования. Пример Scala хорошо иллюстрирует, как IT-индустрия может активно пользоваться технологиями, которые разрабатываются в академии. Помимо больших и известных научных достижений, существует огромное количество более нишевых проектов, которые не на слуху, но сыграли важную роль в развитии различных научных областей.

Кроме того, в EPFL активно продвигается идея коммерциализации результатов исследований, в частности путём основания стартапов. В кампусе университета есть инновационный парк, где ведётся работа исключительно над стартапами и в рамках которого предоставляются офисные пространства и различная помощь: оформление юридического лица, поиск инвестиций и так далее. За 2020 год компании, находящиеся в этом инвестиционном парке, привлекли 250 миллионов долларов. Среди них как стартапы, основанные профессорами (например, Kandou Bus, основанный Amin Shokrollahi, профессором EPFL и известным ученым в сфере теории кодирования), так и выпускниками университета (например, Nexthink, оценивающийся в более чем миллиард долларов).

Знаменитая лестница в одном из зданий факультета IC, вдохновившая логотип языка Scala (источник)

О стажировках на аспирантуре

В швейцарских университетах, как и во многих западных, не распространена практика, когда кто-то из аспирантов подрабатывает параллельно аспирантуре, которая считается на сто процентов фултайм-позицией. Хотя многие аспиранты в EPFL, связанные с IT, уходят летом в академический отпуск и едут на стажировки в большие технологические компании. Я этим летом прохожу удалённую стажировку в Adobe Research на позиции Research Intern по машинному обучению.

В целом главный фактор при отборе на исследовательские стажировки — это наличие релевантного опыта, то есть научных статей по темам, которые интересуют конкретные команды в компаниях. В моем случае было всего несколько нетехнических собеседований, где просто обсуждали мои исследовательские интересы, чем бы мне хотелось заниматься при условии, что это будет полезно Adobe. Должен сказать, что так происходит скорее в порядке исключения, в основном на исследовательские стажировки нужно пройти множество разных технических собеседований и даже coding interviews.

Стажировки в целом короткие: от 3 до 6 месяцев (моя, к примеру, длится три месяца), поэтому нужно четко знать, что делать за этот период. Поэтому чаще всего берут стажеров, у которых уже есть опыт, максимально приближенный к проекту, над которым человек будет работать. Основной результат стажировки — это либо написание научной статьи и подача на конференцию, либо внедрение разработанных методов в конкретный продукт компании.

Мой проект стажировки нацелен на устойчивость алгоритмов машинного обучения, что также является темой моей аспирантуры. В последние годы эта тема очень популярна в академических исследованиях, но только сейчас она приобретает практический характер. В целом, мне кажется, это распространенная история: новая технология разрабатывается в академической сфере как proof of concept (например, как было с поисковыми системами или глубоким обучением) и только потом непосредственно внедряется в конкретные IT-продукты.

Первый день удалённой стажировки в Adobe Research

Планы

Касательно моих планов, то, думаю, аспирантура в сфере машинного обучения — это относительно safe choice, так как после её окончания можно продолжать заниматься научной деятельностью как в ІТ-индустрии (в качестве Research Engineer или Research Scientist), так и при университете (в качестве Postdoc или Assistant Professor). Но во время самого обучения в аспирантуре ты всё-таки получаешь меньше денег, по сравнению с ІТ-позициями, на которые можно устроиться сразу после окончания магистратуры. Например, зарплата аспиранта до налогов составляет около 50 тысяч франков в год (1 франк = 1,07 доллара США), но в индустрии немало позиций, которые предлагают в два раза большую сумму людям с похожей квалификацией. Тем не менее даже зарплаты аспиранта вполне хватает, чтобы обеспечить себе неплохой уровень жизни. К тому же деньги — это далеко не единственный фактор, и я уверен, что намного более важным является непосредственный интерес к работе и ощущение того, что делаешь что-то значимое.

Пока еще рано конкретно планировать, чем именно я буду заниматься после окончания аспирантуры, так как впереди еще около трех лет. Сейчас думаю, что мне в дальнейшем было бы интересно получить опыт исследований по своей теме в качестве постдока (Postdoctoral Researcher) в какой-нибудь другой стране, возможно, в США. В академии сильно ценится опыт работы с разными профессорами, в разных университетах и в разных странах.

Думаю, в Украине в сфере машинного обучения тоже найдутся интересные возможности. Здесь есть очень интересные проекты по машинному обучению мирового уровня, такие как Grammarly и Reface, а в академической сфере Украинский католический университет организовывает неплохую магистерскую программу и летнюю школу по Data Science. К тому же в Украине есть свои конкурентные преимущества: хорошо развитая ІТ-сфера, де-факто низкие налоги, высокий уровень жизни IT-специалистов. С машинным обучением сейчас работают и аутсорсинговые компании (Ciklum, SoftServe и другие), которые у нас всегда занимали сильные позиции. Плюс в стране неплохое базовое математическое образование, в особенности в специализированных школах и физико-математических лицеях, которые регулярно и успешно участвуют в международных олимпиадах. Надеюсь, в Украине появится больше сильных программ бакалавриата и магистратуры по компьютерным наукам, которые смогут мотивировать и направить студентов заниматься и конкретными наукоемкими сферами (машинное обучение это только один пример).

Онлайн-презентация на Grammarly AI-NLP Club (источник)

Заключительная часть

Хотелось бы подытожить и вкратце описать свое понимание того, насколько все-таки важно образование в IT (знаю, что это вопрос, по которому всегда велось много дебатов). На мой взгляд, необходимость образования и конкретной научной степени зависит от того, чем вы планируете заниматься в индустрии. Есть множество примеров, когда успешные IT-предприниматели не оканчивали даже бакалавриат. Или программисты обучались технологиям самостоятельно параллельно университетской программе (популярная история в Украине). В то же время для наукоемкой сферы, такой как машинное обучение, аспирантура необходима, но по большей части там, где нужен непосредственно research. Для более инженерных задач по тому же ML вполне достаточно магистратуры или бакалавриата с дополнительным самообразованием (например, онлайн-курсы, книги, проекты).

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

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

Во-вторых, наука — это настоящий двигатель прогресса, который полностью определяет то, каким будет наше будущее: от разработки новых лекарств и CОVID-вакцин до полетов в космос и искусственного интеллекта. Что может быть интереснее, чем создавать будущее? Живой интерес к делу — это как раз то, что и мотивирует практически всех знакомых мне аспирантов. Плюс работа над научными статьями (по крайней мере в машинном обучении) напоминает работу в стартапе: маленькая команда (зачастую 2–5 человек), никакого legacy-кода, минимум бюрократии, нацеленность на результат. Думаю, это не совпадение, что множество новых технологий было разработано именно в академической среде, где организационная структура намного более горизонтальна, по сравнению с индустрией, и где царит атмосфера академической свободы.

Надеюсь, эта статья хоть немного поможет пролить свет на то, что происходит в современной академической среде в сфере машинного обучения. Если вас интересует эта тема, то я очень рекомендую статью на DOU, детально описывающую опыт прохождения аспирантуры в США и работы исследователем в Google Research. И, конечно, буду рад ответить на любые вопросы по своей теме.

👍НравитсяПонравилось26
В избранноеВ избранном7
Подписаться на автора
LinkedIn



Підписуйтесь: Soundcloud | Google Podcast | YouTube


8 комментариев

Подписаться на комментарииОтписаться от комментариев Комментарии могут оставлять только пользователи с подтвержденными аккаунтами.

Максим, спасибо за хороший рассказ. Желаю успехов в академии и карьере!

Программа компьютерных наук в EPFL как раз работает по второму принципу (хотя так не во всём EPFL)

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

Спасибо за уточнение! Да, действительно, есть небольшой процент аспирантов, которые не делают семестровые проекты в течение первого года, а сразу попадают в конкретную лабу. Но по моему опыту, таких случаев не очень много (возможно 10% от всех аспирантов), по крайней мере в последние годы. Более мейнстримный вариант это подаваться именно в централизованный graduate school (в основном, в декабре): www.epfl.ch/...​iences/edic-how-to-apply

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

А, окей, ясно. Я думал, это работает без привязки к централизованному порталу :) буду знать теперь!

За статью спасибо и особенно за это:

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

Это очень важный момент, просто критический. Причем это не просто «хочу в Computer Science, поэтому пойду в аспирантуру по CS», нужно знать конкретную тематику и попадать в нужную лабораторию, иначе это все не имеет смысла.

Да, абсолютно согласен. 4-5 лет на аспирантуру это серьёзное вложение времени и будет не слишком приятно если знания полученные в течение этого времени не будут иметь прямого применения, скажем, в последующей работе в индустрии. Разумеется, с машинным обучением это проще, т.к. в индустрии существует большой спрос на специалистов по этой теме (как на research scientist’ов, так и на research engineer’ов). Но если человек 5 лет пишет диплом, скажем, по методам верификации ПО, то таких позиций в индустрии намного меньше и если идти потом на общую позицию software engineer’a, то может быть более оптимально было бы сразу идти в индустрию. Хотя с другой стороны, после аспирантуры в хорошем западном университете, наверное, легче найти позицию software engineer’a в каком-нибудь Google, куда возможно напрямую было бы попасть далеко не тривиально.

Ну и ещё, тут есть, конечно, аргумент, что аспирантура в целом улучшает кругозор, помогает «научиться учиться» и т.д. Это тоже правда и аспирантура тоже может быть ценна в этом плане. Насколько мне известно, например, в физике (особенно в теоретической) сложно найти позицию по специальности, даже в западных компаниях / университетах и люди после окончания аспирантуры идут в самые разные места (сейчас кстати часто в машинное обучение) и часто достаточно успешно. Это тоже адекватный вариант, но, думаю, здесь важно, чтобы хватило мотивации и интереса работать 5 лет в аспирантуре, что, разумеется, намного легче делать, если чётко видишь ради чего ты это делаешь в будущем.

Хорошая история земляка. Парень молодец. Молодец, что сразу определился с будущей профессией, проявлял инициативу и развивался в этом направлении. Хотя на третьем курсе университета это обычно исключение из правил :)

Подписаться на комментарии