Привет, Хабр! Мы продолжаем свою серию аналитических статей о рынке зарплат и вакансий в IT. И сегодня на очереди ML-инженер, или специалист по машинному обучению, тем более, что 23 марта Skillfactory запускает новый поток продвинутого курса Machine Learning и Deep Learning.
Machine Learning Engineer – специальность № 1 в разработке и проектировании сложных систем, которая в декабре 2020 года занимала 38,54 % вакансий отрасли и примерно 9 % всех вакансий на российском рынке IT. Так давайте разберёмся, сколько на самом деле получают специалисты по машинному обучению, как попасть в ML и куда можно развиваться. Поехали!
Ранее в нашем блоге уже выходили подобные материалы про дата-сайентистов и дата-аналитиков, если вы заинтересованы в этих специальностях — рекомендуем ознакомиться.
Кто такой ML-инженер
Machine Learning Engineer – это эксперт в области искусственного интеллекта. Именно он разрабатывает алгоритмы, по которым «думает» компьютер.
Машинное обучение позволяет автоматизировать труд человека. ML нужен для создания нейросетей, которые анализируют всё что угодно: от комбинаций в шахматах до максимальной персонификации рекламы в соцсетях. ML позволяет создавать программы для прогнозов, которые работают гораздо лучше человека.
А ещё специалист по машинному обучению создает ботов, которые общаются с клиентами. Так что именно им нужно говорить спасибо за «Бот, позови оператора». «Алиса», Siri и голосовой помощник Олег, – это, кстати, тоже детище ML-инженеров.
Профессия инженера машинного обучения – это подраздел Data Science. И деятельность ML-инженера больше ориентирована на практические задачи. Он решает бизнес-задачи, используя алгоритмы машинного обучения. Он может использовать существующие наработки или писать каждый раз новые – это не важно. Единственная цель – качественное выполнение задачи с наименьшими затратами ресурсов.
Что требуют работодатели от ML-Engineer
Пул навыков довольно большой. Мы проанализировали свыше 350 вакансий и заметили, что в большинстве из них чётко разделены компетенции специалиста по Data Science и ML. Но требования к вакансиям всё равно очень схожие.
Дело в том, что специалистов по машинному обучению прицельно ищут крупные компании, которые используют или планируют использовать алгоритмы искусственного интеллекта в своих проектах.
Работодатели в большинстве случаев знают, для чего им нужен специалист по ML и какими компетенциями он должен обладать. Вот те, что попадаются в вакансиях чаще всего:
Высокие математические навыки. Линейная алгебра, теория вероятностей, прикладная статистика – всё это нужно знать на очень высоком уровне. В ML довольно часто используются байесовы сети, марковский процесс принятия решений, скрытые марковские модели, условные вероятности. А ещё нужно хорошо разбираться в дисперсионном анализе и уметь проверять статистические гипотезы.
Базис программирования. Python упоминается в абсолютном большинстве вакансий – примерно 92 % всех, но также работодатели требуют знания R, Java, C++, Scala. Также необходимы навыки использования библиотек вроде pandas, OpenCV, Numpy, Eigen, NLTK, Spacy, scikit-learn или других.
Моделирование данных. Ещё один базовый навык, который необходим в большинстве вакансий. Именно от навыков моделирования данных зависит эффективность машинного обучения. В основном необходимо знать паттерны моделирования, алгоритмы итеративного обучения и стратегии оценки точности моделей.
SQL. В 73 % вакансий требуют знания SQL, но очень много вакансий, в которых необходимы навыки в NoSQL СУБД.
Английский язык. Все без исключения международные команды требуют уровень английского не ниже, чем Intermediate, а лучше – Upper Intermediate. Для проектов на российском рынке это не обязательно, но почти всегда выделяется как дополнительный плюс.
Гибкие методологии разработки проектов. Примерно в трети вакансий упоминаются Agile, Scrum, Kanban и другие гибкие методологии. Опыт работы с ними считается плюсом, но не обязателен.
В целом требования в вакансии ML-инженера и дата-сайентиста довольно сильно пересекаются. Компании малого и среднего бизнеса не делают между ними практически никакой разницы и часто ищут сразу «Data Scientist / ML-Engineer».
Софт-скилы предсказуемы. Они с минимальными расхождениями копируют требования из вакансий Data Scientist и Data Analyst:
аналитический склад мышления, логика;
коммуникативность;
инициативность;
внимательность к деталям.
Но все же есть и любопытные наблюдения. В целом софтскиллы упоминают в два раза меньше компаний, чем, к примеру, в вакансиях Data Analyst. Здесь ключевую роль играют хард-скилы. Личностные навыки и особенности характера вторичны.
Зарплаты и вакансии в России и не только
Подходим к самому интересному. По состоянию на 04.03.2021 и данным с hh.ru, в России имеются 1052 вакансии, которые содержат упоминания ML или машинного обучения.
Но больше половины из них – это пересечение Python-девелопера с навыками в ML и дата-сайентиста, который должен хотя бы в общих чертах понимать, как работает машинное обучение.
Непосредственно к машинному обучению относится чуть больше 500 вакансий. За 2020 год востребованность специальности выросла более чем в 2 раза и продолжает расти.
Большинство вакансий открыто в Москве – 55 %. Примерно 17,5 % размещены для Санкт-Петербурга. Примерно 24,5 % разбросаны по другим крупным городам России с населением выше 500 000 человек. Количество вакансий в населённых пунктах меньше 200 000 жителей не превышает 2 %.
В целом локации и востребованность коррелируют с отраслями Data Science и Data Analyst. Основной работодатель – московские компании и международные бренды, у которых есть офис в Москве.
Основная проблема – 80 % компаний не указывает вилку зарплат или хотя бы примерный уровень, на который может рассчитывать соискатель.
Мы проанализировали 200 вакансий к открытыми предложениями по зарплате. Результаты довольно неплохие. Медиана проходит по точке в 165 000 рублей. Это уровень месячной зарплаты, на который реально может рассчитывать специалист с 1–2-летним опытом в ML.
Junior ML-engineer или специалист, который хочет попасть в машинное обучение из смежных отраслей, может рассчитывать на оплату от 80 тысяч рублей.
Опытный сеньор может зарабатывать от 200 000 рублей. И это далеко не предел. В крупных международных компаниях отделы ML сегодня растут очень быстро, и специалист топового уровня может рассчитывать на зарплату 330 000 рублей.
В регионах ситуация значительно хуже. Примерно половина вакансий вообще смешивает специалистов по ML, DS и DA в одного. А в остальных навыки машинного обучения – это дополнительная компетенция, а не основная.
Даже если компания понимает, зачем ей нужен ML, то с зарплатами в регионах не очень. Есть предложения для джунов от 25 000 рублей, а выше 80 000 уже считается отличной зарплатой для профи.
Зато на международном рынке всё хорошо у специалистов по машинному обучению.
По данным salary.com, годовая зарплата ML-инженера в США составляет 120 000 долларов по медиане. Это 10 000 долларов в месяц или, в переводе на деревянные, 730 000 рублей.
Glassdoor, к примеру, считает профессию специалиста по машинному обучению одной их самых защищённых на сегодня. И прогнозирует в ближайшие несколько лет ещё большее повышение спроса на неё.
С удалёнкой всё не очень радужно. Большинство компаний стремятся взять ML-инженера на фултайм в офис. Даже в условиях пандемии вакансий, которые допускают удалённую работу, это очень немного.
Откуда прийти и куда расти специалисту по машинному обучению
ML-инженер – не очень дружелюбная специальность для новичков. В неё можно попасть «с нуля», но для этого нужна как минимум крепкая математическая база. В идеале – математическое или экономическое высшее образование. И даже в этом случае нужно быть готовым к сложностям – изучать придётся очень много всего.
Для успешного продвижения и роста нужно понимать, как работает сфера Data Science целиком. Поэтому идеальные стартовые площадки для перехода в ML – это дата-сайентист и дата-аналитик.
Также в машинное обучение могут перейти разработчики на Python. Для этого нужно будет разобраться с основными ML-библиотеками.
Специалист по машинному обучению – довольно узкая специальность и в большинстве случаев является конечным этапом развития специалиста. Но при желании ML-инженер всегда может перейти и в аналитику данных, дата-сайенс или фулстек-разработку. С его опытом и умениями на любую из этих позиций его оторвут с руками и ногами. Старайтесь, учитесь – и у вас получится.
ML-инженер — универсальный специалист, подобный швейцарскому ножу. Для желающих стать таким специалистов, у нас есть специальный продвинутый курс Machine Learning и Deep Learning. А промокод HABR даст скидку 50%.
Узнайте, как прокачаться и в других специальностях или освоить их с нуля:
Другие профессии и курсы
ПРОФЕССИИ
КУРСЫ