Об эксперте: Юлия Молчанова, специалист по машинному обучению в компании «Газпром-Медиа Дата» и автор модулей курса Data Science.
Рекомендации на YouTube, Google-переводчик, чат-бот в банковском приложении — мы взаимодействуем с искусственным интеллектом практически каждый день. Чтобы алгоритм был полезным для бизнеса и конечного потребителя, для начала его нужно научить учиться. Этим занимается ML-инженер.
Кто такой ML-инженер
ML-инженер или Machine Learning Engineer — это специалист, который создает и обучает алгоритмы работы с большими данными. ML-инженер работает в сфере Data Science рядом с дата-сайентистом, дата-аналитиком и дата-инженером.
Задачи ML-инженера — сугубо практические. Он учит компьютер находить взаимосвязи данных и на их основе принимать решения. Именно ML-инженеров стоит благодарить за «умные ленты» в социальных сетях, алгоритмы рекомендаций на музыкальных стримингах, которые подбирают контент под наши интересы. Сервисы перевода типа Google Translate и боты-помощники типа Олега банка «Тинькофф» и Алисы «Яндекса» — тоже частично заслуга ML-инженеров.
Чем занимается ML-инженер
ML-инженер обучает искусственный интеллект решать задачи бизнеса с использованием больших данных. Он создает и развертывает ML Model — алгоритм, который описывает, как будет учиться компьютер, какие данные использовать, какие команды и в какой очередности выполнять.
Чтобы создать модель, подходящую под задачи бизнеса, ML-инженер проводит эксперименты: обучает модель на данных, дает ей задачи, проверяет, насколько она эффективна и соответствует заданным бизнесом результатам (ML-метрикам). Например, если цель алгоритма — распознавать растения по фотографии, ключевой метрикой будет количество правильных ответов: когда алгоритм точно распознает каучуковый фикус и отличает его от других видов фикуса по внешним признакам.
Когда эксперименты приходят к успеху, ML-инженер развертывает алгоритм в облако, мобильное приложение или чат-бот в существующей системе. Также в сферу ответственности ML-инженера входит эксплуатация готовой модели: он должен следить, чтобы алгоритм работал, не падал и не ломался, адаптировался под изменения данных.
Юлия Мочалова, специалист по машинному обучению в компании «Газпром-Медиа Дата»:
«Профессия ML-инженера включает в себя как аналитическую, так и инженерную деятельность. В широком смысле задача ML-инженера — создать полный цикл жизнедеятельности данных от обработки признаков из разных источников и построения модели, до выкатки ее в продакшн и настройки автоматизированного периодического запуска. Например, ML-инженер может написать пайплайн на основе данных о поведении пользователя сети, чтобы прогнозировать его интерес к покупке того или иного товара.
Мой обычный рабочий день состоит из задач по разработке новых моделей или улучшению существующих. Помимо этого в день проходит 1–2 встречи с командой и обсуждение текущих проблем и успехов. Также я уделяю время тому, чтобы осваивать новые инструменты. Последний изученный — новая версия фреймворка для распределенных вычислений Apache Spark».
Тренды профессии
ML-инженеры могут найти работу в компаниях, которые расширяют функционал своих продуктов за счет обучения алгоритмов. Такие сервисы не завязаны только на машинном обучении, но оно требуется им для развития. Например, Pinterest и YouTube на машинном обучении строят системы рекомендаций. Это помогает им показывать пользователю индивидуально подобранный контент. Такой подход распространен в ретейле, сфере банкинга и финансов, здравоохранении, маркетинге и науке.
Второй тип компаний, которые нуждаются в ML-инженерах, не могут существовать без машинного обучения. На ML построен основной функционал их продукта. Пример такого сервиса — переводчик Google Translate, который постоянно копит базу и совершенствуется. В этом сегменте ML-инженер может поработать над SaaS-системами и мобильными приложениями, созданием алгоритмов для роботов и систем автопилотирования.
Рост количества данных и необходимость использовать их на пользу бизнесу привели к резкому всплеску спроса на инженеров по машинному обучению. По итогам 2021 года ML-инженеры заняли второе место в рейтинге специалистов, которых не хватает мировой IT-индустрии. Для востребованных специалистов всегда создают привлекательные условия, в том числе зарплатные. По данным исследовательского сервиса Glassdoor, средняя зарплата ML-инженера — $123 тыс. в год. Это чуть больше $10 тыс. в месяц.
В России медианная зарплата специалистов — ₽165 тыс., джуниоры получают от ₽80 тыс., мидлы — от ₽200 тыс., а сеньоры — до ₽330 тыс.
Юлия Мочалова:
«Один из плюсов профессии: работать можно практически в любых сферах. Применять алгоритмы и настраивать автоматизированные процессы анализа данных можно в любых компаниях, где есть данные и желание извлечь из них пользу (прибыль). Сегодня вы можете работать в ритейле, а затем уйти в биоинформатику».
В 2022 году LinkedIn включил профессию ML-инженера в список наиболее перспективных. Сейчас на на hh.ru доступно более двух тысяч вакансий ML-инженера.
Откуда пришла профессия
Изначально компьютеры выполняли задачи, алгоритм решения которых был понятен человеку. Позже стало понятно, что машины могут находить решения, алгоритм которых неизвестен человеку.
Прототип искусственного интеллекта создали в 1946 году, а термин «машинное обучение» появился в 1959 году. Компьютеры с тех пор постоянно совершенствуются. Искусственный интеллект даже смог обыграть известного шахматиста: в 1997 году Гарри Каспаров проиграл суперкомпьютеру Deep Blue. Ученые убедились, что машины можно обучать, так и появилась профессия Machine Learning Engineer как ответвление в области Data Science.
Профессия начала развиваться с увеличением числа самых разных нейросетей и ростом их возможностей. Сегодня нейросети могут написать диплом, текст, сценарий и даже код, нарисовать иллюстрацию, выполнить тестовое задание для собеседования и провести психологическую консультацию. Обучением нейросетей занимается ML-инженер. Подборка треков под ваш вкус от музыкального сервиса или рекомендации от бота-помощника в банковском приложении — это тоже результаты его работы.
Какие навыки нужны ML-инженеру
ML-инженер — это специалист, который находится на стыке анализа больших данных и разработки. Он должен и писать код, и разрабатывать приложения, и слышать, чего от него хочет бизнес. Чтобы соблюдать баланс этих сфер, ему нужен следующий набор навыков:
Hard skills
- Математическая база: понимание векторов и матриц, производных, теории вероятности и статистики.
- Знание Python. Именно на нем чаще всего пишут модели для машинного обучения.
- Умение работать с фреймворками Tensorflow, PyTorch.
- Алгоритмическое мышление: понимать, как работают разные типы алгоритмов и структуры данных. Это поможет писать собственные алгоритмы.
- Навыки работы с Flask, Docker, Pip, PyTest. Это сервисы создания и развертывания веб-приложений. Понадобятся, когда готовые ML-модели нужно будет преобразовать в продукт для тестирования, а позже — эксплуатации.
Soft skills
- Аналитическое мышление, логика. В работе с алгоритмами без них не обойтись.
- Навыки коммуникации. ML-инженер чаще всего работает в команде, поэтому важно уметь общаться с коллегами. Также коммуникативные навыки пригодятся в общении с бизнесом: когда нужно будет получить задачу, понять, какие метрики вы должны показать руководству по итогу, презентовать свою работу.
- Проактивность. В машинном обучении важно не только создать модель, но и сделать ее эффективной: чтобы она училась как можно быстрее, выходила на новый уровень с минимальными затратами ресурсов. Искать решения самостоятельно, оптимизировать работу модели — это часть экспертизы ML-инженера.
Юлия Мочалова:
«ML-инженеру в работе часто приходится учиться и решать нетиповые задачи. Например, получить данные из нового источника, для этого могут понадобиться определенные библиотеки и инструменты. Например, я недавно изучала особенности чтения данных из Kafka. Также можно столкнуться с необходимостью реализовать и применить непопулярный алгоритм из статьи. В первом случае помогает, как ни странно, умение гуглить и иногда опыт коллег. Во втором — отлично пригождается математическая база, позволяющая разбираться в формулах и применять их к данным.
Основными навыками для ML-инженера является умение программировать на одном из популярных языков, сейчас это Python. Отличным дополнением станет опыт в backend-разработке, знание технологий для распределенной обработки данных (MapReduce, Spark/PySpark) и конечно, уверенное знание SQL. Важные софт-скиллы: умение работать в команде, креативность и гибкость в подходе к задачам, так как они могут быть разными даже в рамках одного проекта».
Как стать ML-инженером
Machine Learning Engineer — это профессия, которую сложно освоить с нуля. Хорошему инженеру нужна как минимум серьезная база математики, поэтому чаще всего в ML приходят из смежных специальностей: дата-инженер, дата-сайентист, дата-аналитик.
Набор инструментов и навыков ML-инженера очень широк, чтобы их освоить нужно много времени и мотивации. Понять, насколько эта работа может быть вам интересна, можно на бесплатных базовых курсах, например, на Stepik или Mooc.
Погрузиться в работу с фреймворками можно на YouTube-канале TensorFlow, а добрать базовые знания в высшей математике для программистов — у Джона Крона (видео на английском). За актуальными проектами, курсами и мероприятиями можно следить в профессиональных сообществах, таких как ods.ai и Kaggle.
Юлия Мочалова:
«С точки зрения вертикального роста, ML-инженер может стать тимлидом или вырасти до руководителя продукта. Перспектива горизонтального развития — дата инженер. Если машинное обучение наскучит, всегда можно заняться организацией хранения и обработки данных в чистом виде, работая с хранилищами и настраивая ETL-процессы».
Чтобы понять, насколько вам это интересно, можно попробовать пройти бесплатные курсы, например, «Анализ данных с использованием Python» от Coursera.
Специалистов в области искусственного интеллекта готовят в московских МТУСИ, РГГУ, МФТИ. Здесь можно получить необходимые знания — по статистике, математике, информатике, программированию. Но чтобы войти в профессию, лучше окончить специализированные курсы, например, по языку программирования Python.