Согласно данным Библиотеки программиста, профессия ML-инженера занимает шестое место среди самых высокооплачиваемых IT-профессий в России. Специалисты в этой отрасли помогают бизнесу быстро решать сложные задачи с помощью моделей машинного обучения.
В этой статье расскажем, как выглядит работа ML-инженера, какие навыки ему требуются и сколько он зарабатывает. Материал будет полезен начинающим специалистам по машинному обучению и тем, кто хочет сменить область в IT или освоить новую специальность.
Благодарим Даниила Корогодского, главного исполнительного директора Essai и преподавателя курса «Data Scientist с нуля до middle» Нетологии, за помощь в подготовке материала.
Что такое машинное обучение
Машинное обучение (от английского machine learning, ML) — научная область на стыке алгоритмов и математической статистики. С помощью ML можно создавать программы, которые ищут закономерности в данных о реальном мире и решают задачи бизнеса.
Программы бывают разными: от классификации изображений по какому-либо признаку до сложных систем, выявляющих рак по рентгеновским изображениям.
Главные компоненты машинного обучения — данные, признаки и алгоритмы.
- Данные. Для предсказания курса акций нужна история цен, а для определения интересов пользователя — лайки и репосты. Качество результата напрямую зависит от качества и количества данных: чем они разнообразнее, тем проще машине найти закономерности и тем точнее выходит результат.
- Признаки, или фичи — переменные, которые описывают отдельные характеристики объекта, важные для обучения.
- Алгоритмы, или модели — методы решения задачи. От выбора метода зависит точность, скорость работы и размер готовой модели.
Сегодня машинное обучение активнее всего использует бизнес. С помощью моделей компании улучшают пользовательский опыт, оптимизируют внутренние процессы и получают технологическое преимущество перед конкурентами.
* Instagram — проект Meta Platforms, Inc., деятельность которой в России запрещена.
Чем занимается ML-инженер
Специалист по машинному обучению создаёт, обучает и тестирует ML-модели. Этот процесс можно условно разделить на пять больших этапов:
Работа с данными. Первым делом ML-инженер собирает данные для обучения и очищает их от некорректных значений, пропусков и лишней информации, в некоторых случаях — дополняет их и размечает.
Потом специалист делит массив данных на тренировочный, валидационный и тестовый датасеты. Тренировочный используется для первоначального обучения модели, валидационный — для настройки параметров и отладки процесса, а тестовый — для окончательной оценки производительности.
Выбор модели и признаков. Следующим шагом инженер выбирает модель и определяет признаки, которые лучше всего подойдут для её обучения. Выбор модели зависит от цели работы, а выбор фич — от специфики алгоритма и поставленных задач.
Представим, что специалист хочет научить программу давать рекомендации пользователю на основе его локации. Подходящей моделью для такой задачи станет один из методов обучения с учителем. Компьютер будет искать закономерности в полностью размеченных данных с переменными, две из которых — номера пользователей и названия городов.
Чтобы алгоритму было легче воспринимать признаки, специалист закодирует текстовую информацию в комбинацию цифр 0 и 1. Выглядеть это будет так:
Обучение. На этом этапе специалист учит модель определять паттерны в тренировочном наборе данных. Обучаясь, алгоритм постепенно корректирует свои ответы, чтобы минимизировать ошибку между предсказанными и фактическими значениями.
Затем модель проверяют на валидационной и тестовой выборках. Это позволяет оценить, насколько хорошо программа обобщает найденные закономерности.
Оценка и улучшение результатов. После ML-инженер оценивает эффективность модели, опираясь на заданные метрики. На основе результатов оценки он улучшает производительность алгоритма и в случае необходимости корректирует его работу.
Интеграция и мониторинг. Готовую модель специалист внедряет в существующие бизнес-процессы, продукты или сервисы. Затем ему остаётся поддерживать непрерывную работу алгоритма и время от времени проводить повторное обучение.
Конкретные задачи ML-инженера могут сильно различаться в зависимости от его уровня и направления работы самой компании. Например, вот чем предстоит заниматься начинающему инженеру в компании GraviLink:
А это — задачи программиста уровня сеньор в компании Nedra Digital:
Какие знания и навыки требуются ML-инженеру
Чтобы качественно справляться с рабочими задачами, ML-инженер должен обладать крепкой базой. Специалисту нужно:
- хорошо понимать основы математики — математический анализ, теорию вероятностей, линейную алгебру и статистику;
- знать главные положения компьютерных наук — принципы объектно-ориентированного программирования, алгоритмы, шаблоны и паттерны проектирования;
- разбираться в машинном обучении — основах классического и глубокого обучения, компьютерного зрения и обучения с подкреплением, работе современных нейронных сетей.
Ключевой стек технологий программиста — языки Python и SQL, фреймворки NumPy, Matplotlib, Pandas, Sklearn, PyTorch и Tensorflow. Также важно знать английский язык: почти все научные статьи, новости и интересные материалы в отрасли выходят именно на нём.
Зачастую этих навыков достаточно, чтобы претендовать на позиции для кандидатов уровня джуниор.
Среди основных софт-скиллов для ML-инженера можно выделить:
- Аналитическое мышление. Для работы с алгоритмами ML-инженеру важно уметь оценивать и структурировать информацию, находить взаимосвязи и делать выводы.
- Навыки коммуникации. Подавляющее большинство проектов в машинном обучении выполняют команды. Для качественной работы специалисту нужно уметь договариваться, сотрудничать и доносить свою точку зрения.
- Инициативность. Машинное обучение активно развивается — специалист должен не только разбираться в основах, но и быть готовым постоянно учиться, актуализировать навыки и следить за новостями в отрасли.
Даниил Корогодский
Главный исполнительный директор Essai, преподаватель курса «Data Scientist с нуля до middle» Нетологии
Главный софт-скилл для ML-инженера — умение оценивать сроки и ментальные ресурсы для выполнения задачи. Не для босса, коллег или друзей, а для самого себя. Работы всегда достаточно, и если специалист не понимает собственных пределов — он окажется на верном пути к выгоранию.
Где работает и сколько зарабатывает ML-инженер
Согласно данным zarplan.com, средняя зарплата ML-инженера в России — 212 600 рублей. На момент подготовки статьи для специалистов открыто более 1 000 вакансий на сайтах интернет-рекрутинга.
ML-инженеров ищет как крупный бизнес: Сбер, Яндекс, Тинькофф, Циан — так и небольшие компании.
Даниил Корогодский
Главный исполнительный директор Essai, преподаватель курса «Data Scientist с нуля до middle» Нетологии
ML-инженеры нужны почти всем большим технологическим компаниям, даже если их основные продукты не созданы на базе искусственного интеллекта. Технологическое отставание в этой нише сегодня крайне невыгодно. Небольшие компании тоже охотно берут специалистов.
Зарплаты в отрасли в перспективе будут расти. В последние годы мир переживает бум интереса к машинному обучению, создаются новые рынки и меняются старые. Например, на базе одного лишь ChatGPT уже появились стартапы суммарно на два миллиарда долларов.
Кроме того, сейчас у ML-инженеров много возможностей для работы на международном рынке. Поэтому российские компании постоянно индексируют зарплату, чтобы оставаться конкурентоспособными в найме.
Конкретные зарплатные вилки зависят от опыта и навыков специалиста, масштаба компании и уровня задач.
ML-инженеру уровня джуниор в компании GraviLink предлагают до 2 000 долларов в месяц: по курсу на 13 июля 2023 года — около 180 000 рублей. Специалисту предстоит работать над погодоустойчивыми беспилотниками.
Разработчик систем компьютерного зрения и видеоаналитики Tevian готов платить начинающим инженерам c небольшим опытом чуть больше — до 200 000 рублей в месяц. Основные задачи специалиста будут касаться систем распознавания.
В университете ИТМО мидл-специалист может получать от 175 000 до 285 000 рублей до вычета налогов. Задача кандидата — разрабатывать, оптимизировать и валидировать модели, а также проводить эксперименты.
В компании Alliesverse, где создают универсальную платформу управления бизнесом, программисту среднего уровня предлагают вилку от 250 000 до 300 000 рублей ежемесячно. ML-инженеру в команде нужно будет работать с языковыми моделями.
В Циане ML-инженеру уровня сеньор обещают платить от 350 000 рублей в месяц. Специалисту предстоит разрабатывать и внедрять в продакшн модели машинного обучения, координировать работу команды и развивать процессы MLOps.
В Сбере главному ML-инженеру готовы платить от 250 000 до 500 000 рублей в месяц. Специалист займётся разработкой и внедрением алгоритмов в области рекомендательных систем.
Самые высокие зарплаты — в иностранных компаниях. В американском стартапе Intelas специалист с опытом от шести лет может получать до $10 000 до вычета налогов: по курсу на 13 июля 2023 — около 906 000 рублей.
Как стать ML-инженером
Получить профессию можно несколькими способами ↓
Изучить самостоятельно
Самостоятельное обучение — долгий и сложный, но всё же вполне возможный вариант для будущего ML-инженера. Начать стоит с основ алгебры, теории вероятности, статистики, алгоритмов и основных принципов проектирования в программировании. После можно приступать к изучению теории самого машинного обучения и осваивать стек технологий.
Даниил Корогодский
Главный исполнительный директор Essai, преподаватель курса «Data Scientist с нуля до middle» Нетологии
Новичку важно освоить основной стек ML-инженера: язык и фреймворки. Также стоит сделать несколько pet-проектов — собственных разработок, работа над которыми поможет закрепить изученный материал.
Поступить в профильный вуз
Изучить машинное обучение и пополнить портфолио реальными кейсами можно в бакалавриате факультета математики и компьютерных наук СПбГУ, факультета компьютерных наук НИУ ВШЭ и факультета инноваций и высоких технологий МФТИ. Углубить знания помогут магистерские программы этих же вузов.
Пройти курс от Нетологии
Получить необходимые ML-инженеру знания и навыки можно на смежном курсе Нетологии — «Data Scientist с нуля до middle». Программа подойдёт новичкам в Data Scients, опытным аналитикам и разработчикам.
Во время обучения студенты учатся использовать Python для работы с данными, обучать многослойные нейронные сети, строить модели машинного обучения и лидировать Data Science-проекты. Кроме того, они осваивают ключевые софт-скиллы: коммуникацию в команде, целеполагание и эмоциональный интеллект.
Дипломный проект на курсе — реальный кейс от Dodo Brands.
- Построите карьеру в анализе данных и обучении нейронных сетей
- Добавите более 14 проектов в портфолио
- Сможете искать работу в новой сфере уже через 8 месяцев обучения
Что почитать ML-инженеру
Книги и конспекты
- Dive into Deep Learning Закари Липтона, Му Ли, Александра Смола и Астона Чжана. Учебник по глубокому обучению для начинающих программистов.
- Mathematics For Machine Learning Марка Питера Дейзенрота и Чэн Сун Онг. Пособие по математическим основам главных концепций машинного обучения.
- Pattern Recognition and Machine Learning Кристофера Бишопа. Учебник по теории распознавания образов.
- Python Data Science Handbook Джакоба Вандерпласа. Учебное пособие по Python, IPython, NumPy, Pandas, Matplotlib, SkLearn и другим связанным инструментам.
- Think Bayes Аллена Дауни. Введение в байесовскую статистику с использованием вычислительных методов.
- Think Python. How to Think Like a Computer Scientist Аллена Дауни. Практическое руководство по языку Python.
- Think Stats: Probability and Statistics for Programmers Аллена Дауни. Введение в статистический анализ в программировании.
- Reinforcement Learning: An Introduction Ричарда Саттона и Эндрю Барто. Описание ключевых идей и алгоритмов обучения с подкреплением от истории основ области до последних разработок.
- Учебник по машинному обучению от Школы анализа данных Яндекса. Пособие по классической теории и тонкостям реализации алгоритмов.
- MachineLearning.ru. Открытая библиотека с учебной литературой и конспектами лекций по машинному обучению и смежным областям.
Telegram-каналы и блоги
- Data Secrets. Ресурс о машинном обучении и больших данных.
- «DLStories | Нейронные сети и ИИ». Разборы актуальных научных статей про новинки в области искусственного интеллекта и нейронных сетей.
Даниил Корогодский
Главный исполнительный директор Essai, преподаватель курса «Data Scientist с нуля до middle» Нетологии
Рекомендую:
- Towards Data Science. Блог о науках о данных и машинном обучении.
- Machine Learning Mastery. Огромное количество примеров кода от Джейсона Браунли, магистра и доктора наук в области искусственного интеллекта.
Резюмируем
ML-инженер — это специалист, который пишет и обучает модели машинного обучения. Модели, созданные специалистом, помогают бизнесу внедрять в работу новые решения, оптимизировать процессы и выдерживать технологическую конкуренцию.
Зарплата ML-инженера — одна из самых высоких на российском рынке труда. В среднем начинающий специалист может рассчитывать на оклад в 80 000 — 100 000 рублей. Опытные инженеры получают от 250 000 рублей в месяц.
Для качественной работы ML-инженер должен знать английский язык, хорошо понимать основы математики, компьютерных наук и предметной области, а также владеть широким набором инструментов. Изучить профессию можно самостоятельно, в бакалавриате вузов и профессиональных школах, а также на онлайн-курсах.
Мнение автора и редакции может не совпадать. Хотите написать колонку для Нетологии? Читайте наши условия публикации. Чтобы быть в курсе всех новостей и читать новые статьи, присоединяйтесь к Телеграм-каналу Нетологии.