Machine learning engineer привлекает многих новичков в программировании зарплатами и некоторым флером таинственности – фантазия при словосочетании «специалист по машинному обучению» рисует как минимум машины с автопилотом (привет, Тесла) и собакоподобных умных роботов. Что ж, ML действительно всем этим занимается, но даже ML Senior Engineer в большинстве своем на такие проекты не попадают – чаще им приходится заниматься умными лентами выдачи контента и очередным ИИ для анализа спроса зубной пасты на глобальном мировом рынке. Ниже мы расскажем, насколько эта профессия романтична, насколько она тяжела, чем ML отличается от Data Science и почему работодателям так сложно различать схожие сферы машинного обучения.
Специалист по ML – это в первую очередь математик программист, который строит модели и алгоритмы машинного обучения.
Machine learning проистекает из Data science, поскольку заниматься машинными обучением – значит, скармливать созданному алгоритму большие наборы данных.
Сама Data science разбита на 3 основные категорий работы, и вам нужно понимать отличия между ними:
Специалист по ML – это всегда Data scientist. Кроме того, это – узкий подвид, который занимается именно алгоритмами машинного обучения. Если профессия data scientist может предполагать работу, которая просто собирает данные и компилирует их для последующей передачи аналитику, то специалист по ML построит структуру, которая: а) будет брать сырые данные и обрабатывать их нужным образом; б) будет брать обработанные данные и на их основе делать выводы – и эти выводы будут лучше, чем если бы их делал человек.
Алгоритмы анализа уже обработанной информации – это всегда ИИ, и любой специалист по МЛ может их написать. Но есть еще алгоритмы обработки информации, и они могут быть прямолинейными (берем это и это по таким-то критериям) – в этом случае мы говорим о machine learning. Но можно алгоритм обработки информации тоже сделать интеллектуальным – в этом случае мы уже говорим о deep learning, самой продвинутой технологии искусственного интеллекта. Глубокому обучению в сфере ML посвящено много статей и книг, потому что это – крайне сложная тема.
Сделаем промежуточный вывод: специалист по ML – это инженер, который разрабатывает самообучающийся алгоритм для анализа каких-либо данных с какой-то конкретной целью. Если сбором и обработкой данных тоже занимается ИИ – мы говорим о глубоком обучении.
К специалисту по ML приставляют инженера по данным и аналитика – они, может, глубоко методы машинного обучения и не знают, но им это и не нужно, их задача – обслуживать инфраструктуру и переводить результат работы специалиста по ML в удобочитаемый вид.
Python и математика. Может, Python – и не самый идеальный язык, но именно для него написаны основные библиотеки с технологиями машинного обучения – numPy, pandas, OpenCV, NLTK. Но язык и библиотеки – это просто инструменты, навыков программирования будет недостаточно. Разработкой алгоритмов МЛ занимаются математики, которые хорошо знают вышмат: статистику, моделирование, теорию вероятности, теорию игр, дисперсионный анализ, статистические гипотезы.
Софт-скилы: усидчивость, внимание к деталям, сильная логика. Из дополнительных навыков можно отметить умение работать с базами данных (как реляционными, так и нереляционными) и английский от B1. Английский – навык для ML-инженера очень важный, потому что большинство свежих материалов по математике и ИИ изначально появляется именно на английском, и переводится на русский либо с большим опозданием, либо вообще не переводится. Поэтому инженер должен уметь читать сложную техническую литературу на английском.
В первую очередь – математикам с высшим образованием. Экономисты тоже могут присмотреться к этой профессии – на экономических факультетах обычно преподают высшую математику на хорошем уровне. Если высшего нет – вам нужна большая любовь к математике, в противном случае вы не станете специалистом по машинному обучению.
Вакансии появляются не очень часто – конкретно ML-инженеров на hh.ru по состоянию на август 2022 года ищут 400 работодателей. Зарплата указана у 77 вакансий – то есть в подавляющем большинстве случаев работодатель и работник договариваются о зарплате уже на собеседовании. У 69 вакансий зарплата начинается со 160 000 рублей, у 25 вакансий зарплата начинается с 355 000 рублей.
Если вы не имеете опыта в программировании и высшего математического образования – вам нужно сначала пройти какие-нибудь очень сильные курсы и попытаться устроиться в качестве trainee ML engineer/data analyst/data engineer, после чего уже доучиваться на работе и медленно переползать в статус junior ML engineer.
Если же у вас есть сильные навыки разработчика и/или высшее математическое образование – закончите любые (более-менее качественные) курсы и ищите работу junior ML engineer.
Курсы, которые позволяют довольно глубоко изучить профессию. Длительность – около года.
Все курсы – базовые, вводят в машинное обучение и дата сайенс в целом:
Плюсы:
Минусы:
Если хотите работать в этой сфере, но сомневаетесь в своих математических способностях – присмотритесь к смежным специальностям:
Очень и очень, особенно, если у вас нет математической подготовки. Приготовьтесь к изучению как минимум Python и библиотек, а также глубокому погружению в алгоритмизацию и вышмат.
С США хорошие специалисты по ML получают 140 000 – 150 000$ в год, в Европе можно рассчитывать на 120 000 – 130 000$ в год.
Тезисно: