Волгоградский проспект 42
Мы развиваем направление облачного AI-инференса (Inference as a Service), использующего ускоритель инференса собственный разработки (Tensor Processing Unit, TPU) . В настоящее время существует прототип сервиса, реализованный на Python, который демонстрирует базовую функциональность инференса моделей в облаке.
Ищем разработчика, который сможет:
* разобраться в рабочем прототипе на Python и пре-альфа версии на С++,
* сформировать полноценные системные требования,
* спроектировать и реализовать высокопроизводительное решение,
* перенести и модифицировать критически важные компоненты на C++,
* предложить архитектуру развертывания, тестирования и мониторинга сервиса.
Обязанности:
-
Анализ и формализация требований
-
Изучение существующего Python-прототипа сервиса инференса.
-
Изучение существующего пре-альфа реализованной на C++.
-
Изучение документации и концептуальной архитектуры сервиса, предложения по изменению архитектурной части при необходимости.
-
Уточнение и формализация требований к системе:
* метрики производительности (latency, throughput, tail latency),
* требования к отказоустойчивости и надежности,
* критерии масштабируемости,
* компромиссы между пропускной способностью и задержками,
* требования к SLI / SLO. -
Участие в формировании технического видения и roadmap развития сервиса.
-
Разработка и оптимизация
* Переписывание и оптимизация критически важных участков системы на C++.
* Учет требований к низкой латентности и высокой загрузке оборудования TPU. -
Бенчмаркинг и тестирование
* Разработка бенчмарков для оценки:
* latency (p50/p95/p99),
* throughput,
* стабильности под нагрузкой,
* поведения при деградациях.
* Проведение нагрузочного тестирования и анализ узких мест.
* Создание тестовых клиентских приложений (CLI / simple SDK), демонстрирующих работу с сервисом. -
Архитектура развертывания
* Предложение архитектуры развертывания сервиса:
* single-node / multi-node,
* масштабирование,
* балансировка нагрузки * отказоустойчивость * Проработка вариантов использования контейнеризации (Docker) и оркестрации (Kubernetes или аналоги). -
* Предложение схем обновления.
-
Мониторинг и эксплуатация
* Определение ключевых метрик для мониторинга сервиса.
* Формирование end point для ключевых метрик сервиса для последующей интеграцией в систему мониторинга.
* Участие в формировании подходов к эксплуатации и поддержке сервиса.
Требования:
-
Обязательные
* Отличное знание C++.
* Опыт разработки высоконагруженных или низколатентных сервисов.
* Понимание принципов:
* многопоточности и синхронизации,
* управления памятью,
* сетевого программирования.
* Опыт работы с Linux.
* Умение читать и дорабатывать существующий код (в том числе на Python).
* Системное мышление, умение формализовать требования и метрики. -
Желательные
* Опыт работы с ML-инференсом или ML runtime (ONNX Runtime, TensorRT, TorchScript и т.п.).
* Опыт разработки distributed / cloud-сервисов.
* Знание gRPC, REST, protobuf.
* Опыт работы с Docker / Kubernetes.
* Понимание принципов SRE, SLA/SLO, observability.
* Навыки профилирования и performance tuning. -
Будет плюсом
* Опыт проектирования inference-as-a-service или аналогичных платформ.
* Опыт построения бенчмарков и нагрузочных тестов.
* Участие в разработке платформ или инфраструктурных сервисов.
Условия:
-
Официальное оформление по ТК РФ;
-
Гибридный формат работы, гибкое начало рабочего дня, также фрукты и печеньки в офисе;
-
Конкурентоспособный уровень заработной платы;
-
Социальный пакет – медицинское страхование;
-
Оплачиваемый выходной день в честь дня рождения;