block 1
Профессия ML engineer
Модель в продакшене: путь запроса от признаков до ответа, чем ML engineer отличается от data scientist, ноутбук и сервис, версия модели, время ответа и лог запроса.
profession
level
3An ML engineer turns a model into a service: fast, reliable, logged, monitored and safely released.
monthly pay
junior 120 000 ₽ · mid 230 000 ₽ · senior 400 000 ₽
The job is a model that keeps working in production, not only in a notebook.
20 blocks · 160 lessons
A profession cannot start free. It opens together with Python. Every course · 3899 ₽ / month
progress
0%
block 1
Модель в продакшене: путь запроса от признаков до ответа, чем ML engineer отличается от data scientist, ноутбук и сервис, версия модели, время ответа и лог запроса.
block 2
Латентность в миллисекундах и секундах, RPS и пропускная способность, сколько нужно серверов, бюджет латентности по этапам, стоимость инференса и память модели.
block 3
Строка лога f-строкой с уровнем и временем, числа в логах, разбор строки через find и срезы, нормализация входа, маскирование персональных данных, подсчёт ошибок и формат версии.
block 4
Проверка типов и диапазонов признаков, коды ответа 200, 400 и 422, запасной ответ при плохом входе, правила с and, or и not, порог уверенности модели и выбор версии модели по флагу.
block 5
Повтор запроса с лимитом попыток, экспоненциальная задержка, таймаут по суммарному времени, обработка очереди циклом while, break на первой ошибке, continue для битых запросов, накопительные счётчики и предохранитель.
block 6
Инференс по списку запросов, батчи по N через range с шагом, время батча против обработки по одному, пропускная способность, средняя и максимальная латентность, подсчёт ошибок 5xx, распределение по репликам и подбор батча под лимит памяти.
block 7
Сбор латентностей в список, медиана против среднего, p50/p95/p99 по индексу, отбрасывание прогрева, скользящее окно последних запросов, проверка SLO, топ медленных запросов и объединение логов реплик.
block 8
Shadow-режим через zip старой и новой версии, доля и номера расхождений через enumerate, проверки all и any, попарное сравнение латентности, регрессия на эталонных примерах и решение о выкатке.
block 9
Шаги preprocess, predict и postprocess функциями, функция-конвейер, порог и версия по умолчанию, возврат прогноза вместе со временем, функция-проверка входа, чистые функции и воспроизводимость, параметры нормализации из обучения и обработка батча.
block 10
Разбор query-строки через split, проверка чисел через isdigit, разбор строки лога, сборка ответа через join, сравнение семантических версий по частям, совместимость клиента и модели, файлы модели по расширению и проверка формата id.
block 11
Запрос и ответ модели как словари, feature store, кэш предсказаний и его hit rate, конфиг сервиса со значениями по умолчанию, коды ответов, версии моделей по клиентам и кэш с ограничением размера.
block 12
Обязательные и лишние поля запроса через разность множеств, допустимые категории и замена неизвестных на «other», дедупликация повторных запросов, версии кортежами, кортежи как ключи кэша и сверка схемы обучения с продом.
block 13
try/except вокруг модели, fallback-прогноз, свои ValueError и TimeoutError, учёт запросов в finally, circuit breaker, graceful degradation и отчёт по типам ошибок.
block 14
Реестр версий как список словарей, сортировка через lambda по метрике и дате, требования по латентности, чемпион и претендент, правило продвижения в production, откат на предыдущую версию и канареечная доля трафика.
block 15
Модули statistics, math, hashlib, collections и json в мониторинге модели: онлайн-признаки против обучающих, дрейф в сигмах, PSI по корзинам, перцентили латентности, стабильная A/B-маршрутизация по хешу, распределение прогнозов, структурированный лог и алерт по порогу.
block 16
Собираем сервис прогноза классами: модель с версией и predict, dataclass запроса и ответа, конвейер признаков, сервер с валидацией, кэш, счётчики метрик и наследование моделей с одним интерфейсом.
block 17
Модель как файл: параметры и метаданные в JSON, реестр версий, журнал запросов JSONL с дозаписью, чтение журнала и метрики по нему, конфиг сервиса из файла и проверка версии схемы при загрузке.
block 18
Как выпускать модель без аварий: тесты функциями, эталонные примеры, инварианты диапазона и монотонности, регрессия против старой версии, канареечный релиз 5% → 25% → 100%, продвижение и откат по метрикам и чек-лист релиза.
block 19
Собираем сервис скоринга заявок на рассрочку: загрузка модели из JSON, класс Scorer с логистической формулой, валидация, кэш, журнал JSONL, метрики латентности, A/B двух версий по хешу и отчёт сервиса.
block 20
Разбираем инцидент после релиза по журналу сервиса: симптомы, рост p95, дрейф признака, срез по версии приложения, баг единиц измерения, сдвиг прогнозов, решение «откат или фикс» и постмортем.