Машинное обучение: две очень разные вакансии под одним названием
| Профессия | Вилка (p25 – p75) | Медиана | К медиане рынка | Открытых вакансий |
|---|---|---|---|---|
| ML-инженер | 200 000 ₽ – 261 000 ₽ | 250 000 ₽ | +108% | 554 |
| Data Scientist | 240 000 ₽ – 240 000 ₽ | 240 000 ₽ | +100% | 241 |
| Медиана всего рынка | — | 120 000 ₽ | 0% | — |
В вакансиях, где требуется машинное обучение, часто скрываются две совершенно разные роли. Первая — исследовательская: человек ставит эксперименты, подбирает архитектуры и улучшает качество предсказаний. Вторая — инженерная: специалист встраивает модель в продукт, обеспечивает её работу в продакшене и следит, чтобы она не падала. Кандидаты нередко путают эти направления: приходят на инженерную позицию с исследовательским опытом и наоборот. В итоге работодатель получает не того специалиста, а соискатель тратит время на не подходящие ему задачи.
Две работы под одним требованием
Формулировка «знание машинного обучения» в объявлении может означать как умение написать нейросеть с нуля, так и способность развернуть готовую модель на сервере. Исследователь (ML Scientist) отвечает за метрики: он ищет способ повысить точность, придумывает новые признаки, настраивает гиперпараметры. Инженер (ML Engineer) отвечает за стабильность: он пишет пайплайны обработки данных, оптимизирует время ответа модели, настраивает мониторинг. Обе роли используют одни и те же библиотеки, но цели у них разные.
Исследовательская часть: гипотезы и метрики
На исследовательской позиции основная работа начинается с данных. Специалист изучает распределение, чистит выбросы, проверяет, как модель ведёт себя на разных срезах. Он ставит A/B-эксперименты, подбирает функции потерь и сравнивает бейзлайны. Ключевой результат — улучшение метрики качества (например, F1, AUC, NDCG). На собеседовании такого кандидата спрашивают про устройство трансформеров, методы регуляризации и способы борьбы с переобучением.
Инженерная часть: деплой и стабильность
Инженеру важно, чтобы модель работала под нагрузкой и не «легла» при скачке трафика. Он упаковывает модель в контейнер, настраивает CI/CD, пишет скрипты для перезапуска при ошибках. Ему приходится разбираться в очередях сообщений, балансировщиках и базах данных. На собеседовании больше спрашивают про Docker, Kubernetes, REST API и паттерны микросервисов. Знание алгоритмов машинного обучения также проверяют, но упор делают на то, как модель будет жить в продакшене.
Что общего у обеих вакансий
И исследователь, и инженер работают с Python, используют Pandas, NumPy, scikit-learn. Оба должны понимать, как устроен конвейер данных: откуда они берутся, как чистятся и где хранятся. В обеих ролях важна способность читать чужой код и документировать результаты. Также обе позиции требуют понимания базовой статистики: что такое распределение, корреляция, доверительный интервал. Без этого невозможно ни поставить эксперимент, ни диагностировать ошибки в работе модели.
Как понять по тексту вакансии, какая перед вами
Обратите внимание на формулировки задач. Если в описании есть слова «проводить эксперименты», «исследовать новые подходы», «улучшать метрики» — скорее всего, это исследовательская роль. Если же пишут «разрабатывать пайплайны», «интегрировать модели в продукт», «обеспечивать отказоустойчивость» — перед вами инженерная позиция. Также смотрите на требования к инструментам: наличие MLflow, Airflow, Docker указывает на инженерный уклон, а ссылки на статьи и соревнования Kaggle — на исследовательский.
Что спрашивают на собеседовании в каждом случае
Для исследовательской позиции задают задачи на построение признаков, выбор алгоритма под задачу, объяснение работы градиентного бустинга или трансформеров. Могут попросить написать код для кросс-валидации или реализовать простую нейросеть с нуля. Для инженерной позиции спрашивают про устройство контейнеров, команды Docker, настройку CI/CD, работу с очередями. Также дают задачу развернуть простую модель через FastAPI и написать тесты для неё. Ошибочно готовиться только к алгоритмам, если вакансия про инфраструктуру.
С чего входить в профессию
Если вы хотите заниматься исследованиями, начинайте с курсов по классическому машинному обучению и глубокому обучению. Участвуйте в Kaggle, читайте свежие статьи, пишите свои эксперименты и публикуйте их. Если ближе инженерия — освойте Docker, научитесь работать с облачными сервисами, изучите CI/CD. Полезно сделать проект, где вы не только обучите модель, но и развернёте её с мониторингом и логированием. Это покажет, что вы понимаете полный цикл. Главное — не путать роли: чётко решите, какой путь вам интереснее, и собирайте портфолио под него.
Частые вопросы
Мне предлагают работу ML-инженером, но я больше исследователь. Что конкретно подразумевается под этой ролью?
Почему на собеседовании на вакансию Data Scientist меня спрашивают про Docker и CI/CD?
Сначала попробуйте бесплатно — без регистрации
Проверьте своё резюме нейросетью или соберите ATS-версию под автофильтры работодателей. Ничего заполнять не нужно — вставьте текст и получите разбор.
Ищите работу быстрее — на автопилоте
JobGateway откликается на подходящие вакансии hh.ru за вас, пишет сопроводительные нейросетью и поднимает резюме. Старт бесплатно.
Начать бесплатно