Сколько вы готовы заплатить человеку, который полгода будет обучать модель, чтобы в итоге выяснить, что она жрёт 16 гигабайт видеопамяти и выдаёт 2 FPS на железе клиента? Задайте этот вопрос своему HR-директору, когда будете верстать бюджет на ИИ-команду. Рынок сошёл с ума. Зарплата ML инженера 2026 года выглядит как номер телефона. Джуны просят плюс 45 процентов за два года — это около 145 тысяч рублей в месяц на руки за умение импортировать библиотеку. Сеньоры подорожали на 12–15 процентов на фоне жесточайшего дефицита, а спрос на MLOps улетел в космос на 200 процентов. Вы верстаете бюджет и не понимаете, за что платите. Бизнес легко отдает деньги за «сеньора», который по факту тянет на мидла и ни разу не доводил модель до продакшена под реальной нагрузкой.
Зарплаты ML/CV/MLOps в РФ 2026: вилки по грейдам, грейд→задача и за что вы переплачиваете «сеньору»
Пройдемся по ролям. То, что написано в резюме, и то, что человек реально делает в проде — разные вселенные.
Data Engineer (DE). Строит трубы. Никакого машинного обучения он не делает. Он тащит сырые данные из зоопарка источников в DWH (ClickHouse, Greenplum), настраивает Kafka и Airflow. Вилка на середину 2026 года: Middle 200–280к, Senior 300–450к рублей в месяц. Без него ваши дата-саентисты будут писать парсеры на коленке и ронять базы.
ML Engineer / Data Scientist. Классика. Табличные данные, предсказание оттока, рекомендательные системы, XGBoost, CatBoost. Вилки: Junior 130–160к, Middle 200–300к, Senior 350–450к. Регионы дешевле на 15%, удаленка стирает границы.
CV Engineer (Computer Vision). Специалист по железу и камерам. Это не просто YOLO обучить на котиках. Это заставить детекцию работать на edge-устройствах (Jetson, промышленные ПК) без интернета под дождем. TensorRT, CUDA, DeepStream. Вилки: Middle 250–350к, Senior 400–550к. Сколько стоит CV инженер? Ровно столько, сколько он сэкономит вам на закупке промышленных видеокарт на завод.
NLP Engineer. Инженеры RAG-систем. vLLM, квантизация (GGUF, AWQ), тонкая настройка локальных моделей, чтобы корпоративные данные не утекли в API OpenAI. Вилки: Middle 250–350к, Senior 400–600к.
MLOps. Человек, который спасает ваши серверы от кода дата-саентистов. K8s, Triton Inference Server, CI/CD для моделей, мониторинг дрифта данных. Самая перегретая роль. Вилки грейдов MLOps: Middle 300–400к, Senior 450–650к. Дефицит абсолютный.
ML-Lead. Проектирует архитектуру, бьет по рукам за оверинжиниринг и связывает метрики модели с деньгами бизнеса. 500–800к+.
Теперь о главном: грейд↔задача. Бизнес часто не понимает, почему один просит 200 тысяч, а другой 500. Джун работает в Jupyter Notebook: взял статический датасет, натренировал модель, получил метрику 0.8, закрыл ноутбук. Мидл может обернуть это в FastAPI, засунуть в Docker и выкатить. Проблема начинается, когда приходит 100 запросов в секунду. Модель падает с Out of Memory, железо горит. Сеньор решает проблему инференса в проде под SLA. Он не пишет FastAPI-обертки. Он оптимизирует графы вычислений и делает динамический батчинг. Вот за этот код вы переплачиваете сеньору:
import asyncio
import time
class DynamicBatcher:
def __init__(self, batch_size=16, timeout_ms=30):
self.batch_size = batch_size
self.timeout = timeout_ms / 1000.0
self.queue = []
self.lock = asyncio.Lock()
async def predict(self, tensor):
future = asyncio.Future()
async with self.lock:
self.queue.append((tensor, future))
if len(self.queue) == 1:
asyncio.create_task(self._process_batch())
return await future
async def _process_batch(self):
await asyncio.sleep(self.timeout)
async with self.lock:
if not self.queue: return
batch = self.queue[:self.batch_size]
self.queue = self.queue[self.batch_size:]
# Здесь вызывается аппаратный инференс (TensorRT), а не голый PyTorch
results = hardware_accelerated_inference([item[0] for item in batch])
for (_, future), res in zip(batch, results):
future.set_result(res)Этот кусок логики снижает потребление GPU в три раза и держит p99 latency в рамках 100 миллисекунд. Джун такое не напишет. Мидл сломает на блокировках.
Скрытые косты, гибриды-франкенштейны и экономика найма
Ради экономии ФОТ многие пытаются нанять гибридов «2-в-1»: ML+MLOps или DS+DE. В краткосроке это выглядит как экономия 300 тысяч в месяц. На практике это мина замедленного действия и колоссальный техдолг. Ваш «универсал» поднимет кластер на изоленте и bash-скриптах. В Morana Labs мы как-то реверс-инжинирили такой пайплайн после ухода единственного фуллстек-инженера со стороны клиента: простой продакшена на время расшифровки его костылей обошелся бизнесу в три годовых зарплаты нормальной команды. Разделяйте роли.
Помимо прямых зарплат, в 2026 году вы платите скрытые налоги на найм:
- Найм: 1–3 оклада уходит кадровому агентству или внутреннему рекрутингу просто за закрытие позиции.
- Онбординг: 2–4 месяца человек вникает в ваши грязные данные, получает доступы от ИБ и не приносит бизнес-велью.
- Простой GPU: Пока ваш новый мидл неделю настраивает драйвера CUDA, арендованные A100 в облаке сжигают по 3 доллара в час.
- Удержание: Контр-офферы стали нормой. Если вы не готовы поднять зарплату на 20% через год, специалиста перекупят финтехи.
Когда роль дешевле и быстрее закрыть подрядчиком, а не держать в штате круглый год? Если ИИ — это ваш core-продукт (вы делаете автопилоты или голосового помощника), стройте инхаус-команду. Если ИИ — это оптимизация внутренних процессов, дефектоскопия на конвейере или разовая разработка рекомендательной системы, аутсорс математически выгоднее. Вы не платите за онбординг, отпуска и простой железа.
| Роль | Грейд | Вилка 2026 (net, руб/мес) | Штат или Аутсорс? |
|---|---|---|---|
| DE | Middle / Senior | 200k – 450k | Штат (нужен постоянный доступ к БД) |
| ML Engineer | Middle / Senior | 200k – 450k | Зависит от продукта |
| CV Engineer | Senior | 400k – 550k | Аутсорс (часто проектная работа под железо) |
| MLOps | Senior | 450k – 650k | Аутсорс (настроить пайплайны и передать) |
| ML-Lead | Principal | 500k – 800k+ | Штат (если ИИ — основа бизнеса) |
Если после сборки экономики вы понимаете, что инхаус-команда выходит за рамки рентабельности, а продукт нужен стабильным — приходите за калькулятором бюджета и пилотом с фиксированной сметой. Мы отдаем инференс, который держит нагрузку с первого дня, а не после трех месяцев дебага в проде.