Описание
Ищем сильного Python-инженера, который понимает специфику машинного обучения и умеет работать на стыке разработки, ML и инфраструктуры. Основной фокус - Python Backend, Model Serving, оптимизация CPU/GPU, автоматизация MLOps и Spark в Kubernetes.
Задачи
•Анализировать исследовательский код и прототипы Data Scientists, превращать их в надёжные производственные сервисы для классического ML и Deep Learning.
•Разрабатывать API инференса, предобработку и постобработку данных, обработку ошибок и тесты.
•Обеспечивать воспроизводимость результатов модели между исследовательской и производственной средой.
•Совместно с DS формировать требования к признакам в Feature Store и взаимодействовать с Data Engineers.
•Формировать требования к контрактам для взаимодействия с другими сервисами совместно с Архитектором.
•Проводить нагрузочные тесты, профилировать и оптимизировать ML-сервисы.
•Подбирать CPU/GPU, RAM, количество реплик и параметры параллелизма с учётом производительности и стоимости ресурсов.
•Развивать инференс Deep Learning и LLM-моделей в Kubernetes.
•Исследовать способы эффективного использования и разделения GPU, включая MIG и HAMi.
•Разрабатывать метрики, мониторинг и оповещения для ML-сервисов.
•Контролировать задержки инференса, пропускную способность, ошибки, использование CPU/GPU и памяти.
•Анализировать логи и метрики, выявлять причины деградации производительности и сбоев.
•Совместно с DS автоматизировать сбор показателей качества моделей и входных данных.
•Повышать отказоустойчивость и стабильность ML-сервисов.
•Развивать единые подходы к хранению, версионированию и управлению датасетами, моделями и артефактами.
•Автоматизировать запуск ML-задач, управление окружениями и воспроизводимость экспериментов.
•Анализировать проблемы в процессах разработки DS и создавать инструменты для их решения.
•Развивать CI/CD и автоматизацию развёртывания ML-сервисов.
•Развивать Spark в Kubernetes, включая управление ресурсами и масштабирование.
•Анализировать производительность Spark-заданий: память, shuffle, spill, распределение вычислений.
•Помогать Data Scientists оптимизировать код и использование вычислительных ресурсов.
•Участвовать в выборе технологий, архитектурных решений и развитии инженерных практик MLOps-команды.
Требования
•Сильные знания Python и опыт разработки производственных backend-сервисов (FastAPI или аналоги).
•Опыт вывода ML-моделей в production и разработки сервисов инференса.
•Опыт профилирования, нагрузочного тестирования и оптимизации Python-приложений.
•Понимание работы CPU/GPU, управления памятью и параллельного выполнения задач.
•Понимание классического ML и Deep Learning, опыт со scikit-learn, PyTorch и/или TensorFlow.
•Понимание жизненного цикла ML-моделей и практик MLOps.
•Опыт автоматизации ML-процессов и работы с моделями и артефактами.
•Опыт работы с Apache Spark / PySpark.
•Практический опыт Docker и Kubernetes на уровне разработчика.
•Опыт разработки REST API, написания тестов.
•Опыт работы с CI/CD, желательно GitLab CI.
•Опыт внедрения мониторинга приложений.
Будет плюсом:
•Опыт с MLflow, S3 и Feature Store
•Опыт работы с Airflow
•Опыт с Spark Operator и Spark Connect
•Опыт работы с vLLM, Triton Inference Server, ONNX Runtime или TensorRT
•Опыт с MIG, HAMi и распределением GPU
•Опыт с Helm, Argo CD
Условия
•Гибкий формат работы: удалённая работа или офис в самом центре Москвы (ул. Мясницкая, 16).
•Официальное трудоустройство в соответствии с ТК РФ в аккредитованную IT-компанию.
•ДМС и страхование от несчастных случаев с первой рабочей недели, оплата больничных за первые 10 дней до 100% от оклада.
•Современная техника для работы (Macbook, мониторы и всё, что нужно для комфортной работы).
•Ежегодные корпоративы с компенсацией дороги и проживания.