Pwogram rezidan Yandex, oswa ki jan yon backender ki gen eksperyans ka vin yon enjenyè ML

Pwogram rezidan Yandex, oswa ki jan yon backender ki gen eksperyans ka vin yon enjenyè ML

Яндекс открывает резидентскую программу по машинному обучению для опытных бэкенд-разработчиков. Если вы много писали на C++/Python и хотите применить эти знания в ML — то мы научим вас заниматься практическими исследованиями и выделим опытных кураторов. Вы поработаете над ключевыми сервисами Яндекса и получите навыки в таких областях, как линейные модели и градиентный бустинг, рекомендательные системы, нейросети для анализа изображений, текста и звука. Ещё вы узнаете, как правильно оценивать свои модели с помощью метрик в офлайне и онлайне.

Продолжительность программы — один год, в течение которого участники будут работать в управлении машинного интеллекта и исследований Яндекса, а также посещать лекции и семинары. Участие оплачивается и предполагает полную занятость: 40 часов в неделю, начиная с 1 июля этого года. Приём заявок уже открыт и продлится до 1 мая. 

А теперь подробнее — о том, какую аудиторию мы ждём, каким будет рабочий процесс и в целом, как бэкенд-специалисту переключиться на карьеру в ML.

Konsantre

Residency Programs есть у многих компаний, включая, например, Google и Facebook. В основном они нацелены на специалистов младшего и среднего уровня, которые пробуют шагнуть в сторону ML-исследований. Наша программа — для другой аудитории. Мы приглашаем бэкенд-разработчиков, которые уже приобрели достаточно опыта и точно знают, что в своих компетенциях им нужно сдвигаться в сторону ML, получить практические навыки — а не навыки учёного — в решении промышленных задач машинного обучения. Это не значит, что мы не поддерживаем молодых исследователей. Для них мы организовали отдельную программу — pri имени Ильи Сегаловича, которая тоже позволяет поработать в Яндексе.

Где резиденту предстоит работать

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

Такая система хороша тем, что во многом решает технологические задачи сервисов Яндекса ещё до их возникновения. Когда перед сервисом встаёт проблема, его представители приходят к нам, чтобы, скорее всего, взять уже подготовленные нами технологии, которые остаётся только правильно применить в продукте. Если же что-то не готово — мы, по крайней мере, быстро вспомним, откуда можно «начать копать», в каких статьях искать решение. Как известно, научный подход — это стоять на плечах гигантов.

Что предстоит делать

В Яндексе — и даже конкретно в нашем управлении — развиваются все актуальные направления ML. Наша задача — улучшать качество самых разнообразных продуктов, и это служит стимулом проверять всё новое. К тому же регулярно появляются новые сервисы. Так что в лекционной программе есть все ключевые (хорошо себя зарекомендовавшие) направления машинного обучения в промышленной разработке. При составлении моей части курса я использовал опыт преподавания в Школе анализа данных, а также материалы и наработки других преподавателей ШАДа. Знаю, что коллеги делали так же.

В первые месяцы обучение по программе курса будет составлять примерно 30% вашего рабочего времени, затем — около 10%. Однако важно понимать, что работа с самими ML-моделями продолжит занимать примерно вчетверо меньше, чем все сопутствующие процессы. К ним относится подготовка бэкенда, получение данных, написание pipeline для их предобработки, оптимизация кода, адаптация под специфическое железо и т. д. ML-инженер — это, если хотите, fullstack-разработчик (только с больши́м уклоном в машинное обучение), способный решить задачу от начала и до конца. Даже с готовой моделью наверняка потребуется проделать ещё ряд действий: распараллелить её выполнение по нескольким машинам, подготовить реализацию в виде ручки, библиотеки или компоненты самого сервиса.

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

Что обычно мешает заняться ML

Если бэкендер стремится стать ML-инженером, он — без учёта резидентской программы — может выбрать из двух направлений развития.

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

Во-вторых, можно поучаствовать в боевых проектах, где требуется реализовать тот или иной ML-алгоритм. Однако на рынке IT-разработки таких проектов очень мало: в большинстве задач машинное обучение не используется. Даже в банках, которые активно изучают связанные с ML возможности, анализом данных занимаются единицы. Если вам не удалось присоединиться к одной из подобных команд, остаётся либо завести свой собственный проект (где, скорее всего, дедлайны вы будете ставить себе сами, а это имеет мало общего с боевыми продакшен-задачами), либо начать соревноваться на Kaggle.

Действительно, объединиться с другими участниками сообщества и пробовать себя в конкурсах сравнительно несложно — особенно если подкрепить свои навыки тренировками и упомянутыми курсами на Coursera. У каждого конкурса есть дедлайн — он будет служить для вас стимулом и готовить к похожей системе в IT-компаниях. Это хороший путь — который, впрочем, тоже немного оторван от реальных процессов. На Kaggle вам дают предобработанные, пусть и не всегда идеальные данные; не предлагают думать о вкладе в продукт; а самое главное — не требуют решений, подходящих для продакшена. Ваши алгоритмы, вероятно, окажутся работоспособны и будут обладать высокой точностью, но ваши модели и код будут похожи на сшитого из разных частей Франкенштейна — в боевом проекте вся эта конструкция будет работать слишком медленно, тяжело обновляться и расширяться (например, языковые и голосовые алгоритмы всегда частично переписываются по мере развития языка). Компании заинтересованы в том, чтобы перечисленную работу могли проделать не только вы сами (понятно, что вам как автору решения это по силам), но и кто угодно из коллег. Про разницу между спортивным и промышленным программированием сказано много, и Kaggle воспитывает именно «спортсменов» — пусть и делает это очень хорошо, позволяя приобрести часть опыта.

Я описал две возможные линии развития — обучение через образовательные программы и обучение «в бою», например на Kaggle. Резидентская программа является сочетанием этих двух способов. Вас ждут лекции и семинары уровня ШАДа, а также действительно боевые проекты.

Sous: www.habr.com

Add nouvo kòmantè