Профессия специалист по машинному обучению (ML-специалист)
ML Engineer занимается развертыванием, тренировкой и последующей поддержкой моделей машинного обучения в продакшене. Эта сравнительно новая профессия привлекает многих высокими заработками, но подходит она лишь людям со способностью к логическому и структурному мышлению. В нее часто приходят из Data Scientist’ов. Кстати, недавно центр профориентации ПрофГид разработал точный тест на профориентацию, который сам расскажет, какие профессии вам подходят, даст заключение о вашем типе личности и интеллекте.
Зачем учить машину
Машинное обучение (дословно от machine learning, ML) – область, тесно связанная с наукой о данных (Big Data) и искусственным интеллектом (ИИ). Его специфика – в использовании математических моделей данных, которые помогают компьютеру (точнее ПО) самостоятельно обучаться – анализировать закономерности и строить корреляции без (или с минимальным участием) человека.
Современная сфера machine learning охватывает 3 основные предметные области:
- обработка письменных текстов и устной речи (для дальнейшего использования в чат-ботах, голосовых помощниках и т. д.)
- компьютерное зрение (простейший пример – системы видеонаблюдения);
- машинное обучение и анализ данных в коммерческих задачах.
Наглядные результаты машинного обучения присутствуют в разных секторах и отраслях:
- автомобилестроении (беспилотные автомобили, разработка оптимальных маршрутов);
- банковском деле (прогнозирование объемов изменения вкладов, защита от мошенничества);
- электронной коммерции (чат-боты, помощники при покупке);
- сфере развлечений (подстроенные под предпочтения рекомендации Pinterest, ленты фильмов в онлайн-кинотеатрах, новости в соцсетях);
- здравоохранении (диагностика патологий, выбор оптимального пути лечения);
- промышленности (определение брака);
- агроиндустрии (системы «умного полива» растений на полях).
Этот список не ограничивается упомянутыми областями. Преимущества машинного обучения – более точное, по сравнению с человеком, прогнозирование результата и автоматизация принятия решения – все больше используют в научных проектах и для решения повседневных задач бизнеса.
Что делает ML Engineer
Любой компьютер способен обработать данные, но анализировать их может, лишь когда вручную прописаны все закономерности. В машинном обучении ПО самостоятельно анализирует закономерности и строит корреляции. Задача ML Engineer'а – создать алгоритм для его обучения и оценки. Для этого он:
- снабжает машину входными сведениями – собирает и обрабатывает информацию из разных источников (тексты, изображения, таблицы, видео и т. д.);
- делает датасет – приводит данные в единый формат;
- прогнозирует, какие именно данные из набора информации понадобятся для анализа, «очищает» материал – убирает ошибки, которые могут повлиять на точность результата;
- программирует и тренирует ML Model – алгоритм, с помощью которого компьютер (точнее ПО) учится находить взаимосвязи между наборами разных данных, делать по ним прогнозы и принимать решения без человеческого посредничества (например, рекомендовать товары в интернет-магазине).
Под тренировкой понимается многократное решение похожих задач. К примеру, системе надо представить много изображений всех известных видов фикуса, чтобы в итоге она безошибочно распознала именно каучуковый.
Основная задача ML Engineer'а не ограничивается изобретением алгоритма, по которому будет «думать» компьютер. Потребность в его услугах обычно возникает в крупных компаниях, использующих или планирующих использовать алгоритмы искусственного интеллекта в своих проектах.
Работая в рамках конкретного проекта, ML-специалист должен связать техническое решение с бизнесом – создать алгоритм и модель, подходящую под задачи клиента. Для этого ему надо:
- Определить задачу и перевести ее на технический язык. Например, необходимо увеличить продажи онлайн-магазина за счет предложения сопутствующих текущему заказу товаров. Техническая реализация этой продуктовой задачи – создание движка рекомендаций, который сам будет подбирать товары, способные заинтересовать покупателя.
- Снабдить систему относящимися к обучению наборами информации, оценить и преобразовать в обучающие данные. В случае с примером из пункта 1 это данные о списке продуктов в профиле конкретного пользователя, которые часто покупают в одной корзине разные пользователи, или описание разных пользователей, покупающих различные товары.
- Установить правила для анализа наборов данных и распознания повторов – на что должен обратить внимание алгоритм.
- Обучить систему на имеющихся данных – дать ей задачи, проверить ее эффективность и соответствие результатам, которые ожидает получить бизнес.
- Оптимизировать и комбинировать алгоритмы до тех пор, пока они не станут правильно выполнять желаемые задачи.
- Интегрировать обученную модель в продакшен – подключить ее к продукту, посмотреть на ее работу с реальными данными. Результат в нашем примере – персональная лента у каждого посетителя интернет-магазина.
- Улучшить работу ML-модели – ускорить, повысить эффективность, точность.
ML Engineer также отвечает за эксплуатацию готовой модели – алгоритм не должен ломаться и «падать», должен подстраиваться под изменения данных.
По сути, ML Engineer руководит полным циклом жизнедеятельности данных – от обработки признаков для отбора и построения модели, до запуска ее в продакшен и настройки автоматизированного периодического запуска.
Как стать ML Engineer'ом
ML Engineer – престижная специальность, которая достаточно высоко ценится. Но к потенциальным сотрудникам работодатели предъявляют довольно много требований, которые нужно учитывать абитуриентам и школьникам, мечтающим посвятить свою жизнь работе с ИИ. Попробуем их обобщить.
Профильное образование
Профессия ML Engineer'а предусматривает получение степени магистра по математике или компьютерным наукам в техническом университете. Желательно, чтобы он входил в число ведущих по направлению. Для работы наряду с математикой и программированием придется освоить и ряд других наук – физику, нейрофизиологию, биологию и даже психологию человека, ведь машина должна выдавать понятные человеку реакции.
В западных топ-компаниях предпочитают брать на работу выпускников Computer Science – факультета ассоциации зарубежных вузов Ivy League, целиком и полностью посвященного программированию. Подойдут и смежные специальности, например, прикладная математика. Гарвард далеко и дорого, но в наших МФТИ, ИТМО, МГУ, ННГУ, СТАНКИНе, МИРЭА, МТУСИ, Бауманке, Политехе Петра Великого и многих других университетах программистов и математиков учат не хуже, и уже открыты программы подготовки ML-специалистов.
Опыт
Начинать без него сложно, для успешного старта надо понимать, как в целом работает сфера Data Science. Часто получить работу можно лишь при наличии опыта Data Scientist или разработчика на Python.
Есть несколько вариантов, как накопить опыт:
- Первый – поискать стажировки. Зачастую занимающиеся machine learning компании (в особенности стартапы) открыты талантам, даже из числа новичков. Можно отправить им свою заявку, даже если объявления о стажировках на сайте не было. Вполне вероятно, что инициатива принесет опыт, а возможно, и первую работу.
- Другие варианты – участвовать в конкурсах по программированию или хакатонах («хакер» + «марафон», форумы для разработчиков в определенной области); создать личный проект на GitHub; открыть и вести внешкольный кружок по machine learning (а школьникам, которые интересуются направлением, настоятельно рекомендуем их посещать).
- Также получить первый опыт можно на профильных курсах.
Курсы
Желательно, чтобы их формат предусматривал наличие учителя, домашних заданий, сроков и контроля выполнения. Немало качественно структурированных курсов по направлению можно найти на образовательных платформах Coursera, Udemy, Pluralsight).
Курсы по базам данных
Профессиональные знания
Пул навыков и инструментов специалиста по машинному обучению очень широкий. Основное – это знание математики и умение программировать. В работе он широко использует:
- математику (линейная алгебра, математический анализ, статистика, теория вероятностей);
- основные алгоритмы ML (линейная и логистическая регрессии, деревья решений, Байесовский классификатор, бустинги);
- структуры данных (стеки, очереди, многомерные массивы, деревья, графы);
- языки программирования, прежде всего, Python. Также в области ML часто используется C++, JavaScript, Java, C#, Julia, Shell, R, TypeScript;
- методологии машинного обучения и дата майнинга;
- фреймворки для тренировки нейросети – Apache Spark, TensorFlow, Keras, PyTorch;
- архитектуру компьютера (память, кэш, пропускная способность, взаимоблокировки, распределенная обработка);
- программы для визуализации данных (Matplotlib, Power BI);
- английский язык.
Важные личные качества
ML Engineer, помимо прочего, должен иметь бизнес-видение. Его цель не только в изобретении нового алгоритма. Он должен продемонстрировать клиенту потенциал машинного обучения (или отсутствие такового) для его бизнеса. Нужно видеть всю ситуацию заказчика, понимать, зачем это нужно, что это даст, как это будет работать в рамках всего бизнеса.
ML-специалисту также необходимы:
- На 100% аналитический ум.
- Усидчивость. Ее нужно всячески культивировать и развивать – придется днями возиться с «сырыми» выборками и оптимальными параметрами.
- Любознательность.
- Воображение. Представить без него гиперплоскость в пространстве крайне сложно.
- Бизнес-видение – нужно видеть ситуацию клиента, понимать, зачем это нужно, что это даст, как это будет работать в рамках всего бизнеса.
- Коммуникабельность. Придется объяснять сложные технические концепции нетехнической аудитории.
- Способность и желание работать в команде.
- Стрессоустойчивость.
- Целеустремленность.
- Умение концентрироваться, настойчивость в решении поставленных задач.
Место работы
Потребность в услугах ML Engineer'а возникает преимущественно в крупных компаниях, которые используют или планируют применять алгоритмы искусственного интеллекта в своих проектах. Он может устроиться в ведущие компании страны – «Яндекс», «Газпром», «Сбербанк», «Мейл.ру», «Ростех). Или сотрудничать с мировыми гигантами – Google, Microsoft, IBM. Также ML Engineer вполне сможет найти работу в госструктуре.
При этом технические задачи ML Engineer'а меняются в зависимости от глубины его погружения в тему. Так, знающий базовые принципы ML, но не имеющий опыта джуниор вполне справится с тестированием гипотез, выгрузкой данных. Он не сильно повлияет на конечный продукт. Занимающийся машинным обучением около 2 лет мидл сможет разрабатывать влияющие на принятие решение в компании модели. На сеньора со стажем, помимо разработки и внедрения моделей, возлагаются управленческие обязанности.
Плюсы и минусы
Плюсы:
- Технологии ML применяются во многих областях, потому Engineer ML востребованный специалист.
- Одна из наиболее высокооплачиваемых профессий.
- Ежедневно приходится решать новые интересные задачи.
- Можно развивать карьеру за рубежом.
Минусы:
- Высокое эмоциональное напряжение.
- Много рутинной работы.
- В профессию сложно войти без опыта.
- Результаты работы бывают непредсказуемы.
Оплата труда
Джуниоры получают до 80, мидлы – до 200, а сеньоры – до 400 тыс. руб.