Мы разобрали 160 с лишним вакансий, чтобы понять, чем миддл в ML на самом деле отличается от джуна
Мы разобрали 160 с лишним вакансий, чтобы понять, чем миддл в ML на самом деле отличается от джуна
Об этом любят
рассуждать в комментариях
, а вот цифр под рукой обычно ни у кого нет. Мы решили их добыть
Взяли свежие вакансии ML-инженеров на
hh.ru
: чуть больше 60 джунских и стажёрских и около сотни миддловых, где просят от трёх лет опыта. Для каждого навыка посчитали, в какой доле вакансий он встречается. Все цифры на карточках к посту, здесь только самое интересное.
Начнём с того, что совпадает. Ядро у обоих уровней одно. Python требуют от 88 процентов джунов и 86 процентов миддлов, PyTorch поровну, классический ML у джунов даже чаще. Зато математику у новичков спрашивают почти вдвое активнее: тервер и линал упомянуты в 17 процентах джунских вакансий и только в 10 миддловых. Логика понятная. Пока опыта нет, проверять больше нечего, кроме теории. У
стажёра в Яндексе
в требованиях алгоритмы и основы ML, про прод ни слова.
А вот дальше списки расходятся, и расходятся по инженерной части. Kubernetes у джунов просят в 17 процентах вакансий, у миддлов в 40. С CI/CD та же картина, 17 и 40. Оптимизация инференса вырастает с 12 до 26 процентов, Kafka с 10 до 21, мониторинг ровно вдвое.
Росгосстрах
хочет от миддла Docker, Kubernetes, Airflow, MLflow и Grafana одним списком, и
СОГАЗ
с ним полностью согласен.
Чего мы не ожидали, так это цифр по LLM. Языковые модели, RAG и GenAI упоминаются в 61 проценте миддл-вакансий. Для сравнения, Docker встречается реже. Про «модную приставку к резюме» можно забыть, это уже обычное требование, как когда-то SQL.
Если перевести всё это с языка вакансий на язык рабочего дня, получается примерно так. Джуну обычно достаётся кусок задачи. Почистить данные, собрать фичи, обучить бейзлайн, прогнать десяток экспериментов, принести табличку с метриками, и так по кругу. Пайплайн, куда это встраивается, кто-то уже написал, а что будет с моделью после обучения, решают без него. У миддла задача целиком. Он сам договаривается о постановке с бизнесом, сам заворачивает модель в сервис и вешает мониторинг. Дрейф должен заметить раньше пользователей, переобучить, когда пора, и не уронить при этом прод. Между делом ещё оценивает сроки, ревьюит чужой код и объясняет заказчику, почему метрика выросла, а деньги нет. Вот откуда в его вакансиях Kubernetes с CI/CD: иначе задачу целиком не довезти.
Собеседования устроены под это же. Джуна гоняют по теории: как работает градиентный спуск, чем L1 отличается от L2, почему accuracy врёт на несбалансированных классах, как ловить переобучение. Сверху алгоритмическая секция на Python и довольно часто тестовое на датасете. Пет-проекты смотрят и засчитывают. У миддла теория заканчивается минут через десять, а дальше начинается ML system design. Вот задача, нарисуйте систему от данных до инференса. Где мониторинг, что делаете при дрейфе, как выкатить новую версию без простоя, во сколько это обойдётся. Потом долго ковыряют прошлые проекты: что сломалось в проде, как чинили, что бы сделали иначе. Всё чаще отдельно спрашивают про LLM, как собирали RAG и чем мерили качество. Про три года опыта из требований на собесе вспоминают редко. Вопрос обычно один: сколько раз человек довозил модель до живых пользователей.
Получается, миддла делает не глубокая математика, а привычка доводить модель до прода. Нас это скорее радует: список навыков конечен, и за пару месяцев практики его реально закрыть, если не ходить кругами. Собственно, поэтому наш курс
ML PRO
устроен так, как устроен: FastAPI и Docker, Kubernetes, CI/CD, MLflow, Airflow, мониторинг с отловом дрейфа и дообучение LLM с выкатом в кластер. В конце блок по карьере: резюме, собесы, поиск вакансий.
➡️
Записаться
.
Подписаться:
@zadachi_ds
Откликнуться в Telegram →
⚠️ Никогда не платите «за оформление» или «гарантию трудоустройства» — это признак мошенников. Работа ТРУ не несёт ответственности за содержание вакансии.