Привет! Меня зовут Антон Моргунов, я инженер МО в «Базис.Центре» и программный эксперт курса «Инженер машинного обучения» в Яндекс Практикуме. В этой статье я расскажу, что такое машинное обучение, чем занимается инженер МО, какие навыки и компетенции ему пригодятся, а также в каких компаниях востребован этот специалист. А в конце дам пару советов для начинающих инженеров МО.
Что такое машинное обучение
Это технология, которая позволяет компьютеру самообучаться и распознавать закономерности — почти так же, как это делает человек. Понятие «машинное обучение» (от англ. machine learning) сформулировал в 1950-х годах исследователь искусственного интеллекта Артур Самуэль: он создал алгоритм, который играл сам с собой в шашки и самосовершенствовался в процессе игры.
Благодаря машинному обучению компьютер может рисовать, писать, читать, различать стили музыки и изобразительного искусства и многое другое. Цель МО — научить компьютер самостоятельно находить решения на основе данных. Этим и занимается инженер МО: передаёт компьютеру исторические данные и объясняет, какой результат необходим. Заданного ответа у компьютера нет, но есть модель, обучив которую компьютер сможет с определённой долей уверенности дать ответ на вопрос: например, предсказать некий класс или числовое значение. Исторические данные при этом должны содержать в себе не только информацию в виде данных, но и ответ, который был ранее найден.
Примеры использования машинного обучения:
Финансы. Расчёт кредитного рейтинга клиентов, выявление мошеннических транзакций, прогнозирование роста или спада цен на бирже, оценка рисков, оптимизация торговых стратегий и т. д.
Бизнес. Прогнозирование спроса на товары, рекомендация контента или товаров клиентам на основе их интересов, таргетированная реклама, оптимизация рекламных кампаний и т. д.
Медицина. Оценка риска развития заболеваний, выявление заболеваний на ранних стадиях на основе анамнеза пациента и т. д.
Технологии. Динамическое ценообразование, предсказание времени поездки, защита от спама и т. д.
Какие задачи выполняет инженер МО
У инженера МО может быть множество задач, но сегодня мы сфокусируемся на трёх типах, которые лежат в области классического (табулированного) машинного обучения, — о них мы подробно рассказываем в курсе «Инженер машинного обучения»:
Задачи классификации и регрессии. Например, предсказание вероятности возврата кредита, осадков в следующий час, лимита на кредит для клиента банка и т. д.
Рекомендательные системы и uplift-моделирование. Например, создание рекомендательных систем. Возьмём рекомендации товаров на маркетплейсе: клиент видит индивидуальную подборку товаров, собранную на основе его истории поиска.
Ещё одна задача доменной области — uplift-моделирование. Пример — рассылка SMS-сообщений с промокодом на скидку. Рассылка платная, поэтому, чтобы не тратить бюджет впустую, перед машинным обучением ставится задача — отсортировать потенциальных получателей, которые скорее всего отреагируют на рассылку.
Инженер МО — это специалист, который может вести проект машинного обучения от начала до конца, «по полному циклу», как мы это называем. Инженер МО работает по следующему алгоритму:
-
Получение данных из источников. Инженер МО разбирается в данных, чистит их, готовит для дальнейшей работы, анализирует.
Пример. Команда получила задачу разработать систему прогнозирования спроса на товары. На этом этапе инженер МО Иван собирает данные из разных источников: история продаж за последние три года, данные о маркетинговых акциях, сезонные коэффициенты, информация о конкурентах и т. д. При анализе данных обнаружились пропуски в истории продаж из-за технического сбоя в 2021 году и несогласованность форматов дат между разными системами. Инженер МО проводит чистку данных, восстанавливает пропущенные значения и приводит все данные к единому формату.
-
Моделирование. Это второй этап: мы строим базовую модель машинного обучения — baseline. Цель базовой модели — доказать, что поставленная бизнес-задача может быть решена методами МО. Затем мы начинаем улучшать базовую модель с помощью продвинутых практик машинного обучения. Цель улучшенной модели — решить бизнес-задачу наиболее точно и быстро, принести бизнесу максимальную пользу.
Пример. Сначала Иван обучает модель на имеющихся данных и с базовой конфигурацией самой модели. По результатам он понимает, что базовая модель демонстрирует не впечатляющий, но удовлетворительный уровень качества. Это означает, что модель можно и нужно улучшать: производить её тюнинг, генерировать новые признаки и экспериментировать с архитектурой и типом модели.
-
Подготовка модели к практическому применению. Выражаясь техническим языком, мы выкатываем модель в продакшн. На этом этапе инженеру МО нужны определённые скилы, чтобы превратить модель в сервис, к которому можно обращаться и получать нужный ответ.
Пример. Усовершенствованную модель нужно внедрить в рабочий процесс компании. Иван вместе с командой создаёт API для модели, интегрирует её с существующей системой планирования закупок, настраивает автоматическую выгрузку прогнозов в систему складского учёта, организовывает систему логирования всех предсказаний. Модель работает в реальном времени и выдаёт прогнозы спроса на следующие три месяца.
-
Мониторинг модели МО. Инженер МО постоянно следит за тем, чтобы модель работала корректно как сервис: остаётся ли она актуальной, приносит ли пользу бизнесу, обрабатывает ли текущие бизнес-изменения.
Пример. После запуска модели Иван устанавливает систему мониторинга, которая отслеживает точность прогнозов в сравнении с реальными продажами, время отклика модели и количество аномальных предсказаний. Через месяц мониторинг показывает снижение точности прогнозов для определённых категорий товаров. Анализ выявил, что это связано с появлением новых паттернов покупательского поведения после маркетинговой кампании. Иван настраивает автоматическое переобучение модели каждые две недели на актуальных данных.
Скилсет инженера МО — и как его применять
Набор основных навыков — скилсет, который я считаю необходимым для инженера МО. В него входят основные инструменты для работы, компетенции и мягкие навыки:
-
Языки программирования. Например, Python — для работы с данными и моделирования МО, SQL — для обращения к базам данных.
-
Библиотеки данных, доменные библиотеки и инструменты для проведения экспериментов. Наша цель — получить лучшую модель с точки зрения качества. Для этого мы работаем с данными, проводя отбор и инжиниринг признаков, а также ряд экспериментов для установления лучшего алгоритма и оптимального набора параметров для него. Например, Airflow — для создания пайплайнов. А для того, что обеспечить воспроизводимость при работе с данными, мы используем DVC.
-
Docker. Это инструмент, который помогает «упаковать» проект МО в контейнер, чтобы он одинаково работал на любом компьютере.
-
FastAPI. Чтобы модель МО в Docker была доступна, её нужно превратить в сервис. Для этого нам нужен фреймворк FastAPI.
-
Grafana. Позволяет следить за тем, как модель себя ведёт, и решать, что с этой моделью делать дальше.
-
Аналитическое мышление. Помогает подходить к решению задач системно. Также важно критическое мышление, приоритизация и умение делать выводы. Ну и конечно, умение аргументировать и защищать собственные идеи.
-
Коммуникация. Без неё никуда. Это и работа в команде, и умение задавать правильные вопросы представителям бизнеса: что именно нужно смотреть в данных, что они конкретно означают и т. д. Например, продакт-менеджер лучше разбирается в продукте и в бизнесе, чем технический специалист, — поэтому нужно задавать ему правильные вопросы про продукт и бизнес-цели. Это поможет вам как инженеру МО точнее выполнять собственные задачи.
Где и с кем работает инженер МО
Чтобы понять, где в данный момент особенно требуются инженеры МО, нужно изучить структуру экономики: она отражает запрос на специалистов. Какие технологии развиваются особенно активно? Сегодня это банкинг, ритейл (и в том числе e-commerce), телеком. Компании из этих сфер создают львиную долю спроса на инженеров МО.
Инженер машинного обучения работает в технической команде вместе с другими специалистами в сфере анализа данных. Например, с инженерами данных — они поставляют данные инженеру МО, с системными аналитиками — они помогают расшифровывать требования заказчиков, с аналитиками данных — помогают отвечать на бизнес-вопросы, и т. д. Вся техническая команда работает над тем, чтобы качественно автоматизировать процессы — это позволит МО выдавать максимально точные результаты.
Советы начинающему инженеру МО
Пара рекомендаций специалистам, которые только начинают карьерный путь в качестве инженеров МО:
Будьте готовы постоянно учиться. Сфера IT динамически развивается, в том числе — сфера Data Science. Появляются новые архитектуры, технологии, обновляется функционал текущих библиотек и решений. Важно во всё это погружаться и оставаться up-to-date.
Не бойтесь больших объёмов данных. И проблем с ними. Мы всегда получаем данные в не очень хорошем качестве. Нам всегда нужно немножко додумывать, погружаться в суть бизнеса, разбираться в ней. Это отражается на процессе работы. Не бойтесь задавать себе вопросы и искать на них ответы — либо через данные, либо у коллег и стейкхолдеров.
Набивайте руку на проектах, близких к реальным. Так вы сможете лучше подготовиться к ситуации на рынке и тем задачам, решения которых рынок от вас ждёт.
Следите за трендами. В IT есть большое количество митапов, где опытные ребята делятся лучшими практиками и советами. Это также отличная возможность для нетворкинга.
ссылка на оригинал статьи https://habr.com/ru/articles/861472/
Добавить комментарий