SMART FARM - это продуктовая IT-компания, создающая интеллектуальные решения в области искусственного интеллекта и компьютерного зрения, которые помогают автоматизировать процессы и анализировать данные из видеопотоков в реальном времени в сельскохозяйственном секторе.
Ищем в команду Computer Vision Engineer уровня middle, который хочет прокачаться на реальных задачах и внести вклад в развитие масштабируемого продукта.
Разработка, доработка и масштабирование инфраструктуры и микросервисов платформы компьютерного зрения для одновременной обработки десятков видеопотоков;
Проектирование и оптимизация high-load пайплайнов приема, декодирования, обработки и анализа видео в реальном времени на ограниченных аппаратных ресурсах;
Интеграция новых моделей CV в существующие продуктовые пайплайны с обеспечением требуемой пропускной способности и задержки;
Адаптация и оптимизация моделей для эффективного параллельного инференса (квантование, использование TensorRT/ONNX, настройка динамического батчинга);
Настройка и запуск inference-серверов (например, NVIDIA Triton) для эффективного обслуживания множества запросов;
Мониторинг, профилирование и обеспечение стабильности работы CV-сервисов под высокой нагрузкой;
Создание и поддержка технической документации, включая архитектурные решения для масштабирования;
Образование: Высшее (магистр/специалист) в области компьютерных наук, прикладной математики, робототехники или смежных областях;
Опыт работы: от 2-3 лет в области компьютерного зрения и машинного обучения;
Опыт разработки и поддержки микросервисной архитектуры для CV-сервисов (REST API/gRPC);
Опыт проектирования, запуска и оптимизации систем для параллельной обработки множества видеопотоков на одном сервере. Понимание ограничений и способов масштабирования в условиях ограниченных GPU/CPU ресурсов;
Знание контейнеризации (Docker) и оркестрации (Kubernetes);
Умение проектировать и оптимизировать высоконагруженные пайплайны обработки видео;
Опыт работы с системами очередей (RabbitMQ, Kafka, Redis) для балансировки нагрузки между видеопотоками;
Навыки мониторинга и профилирования для выявления "узких мест" в многопоточной среде (GPU/CPU utilization, memory leaks, I/O latency);
Умение "завернуть" модель в продуктивное приложение, оптимизированное для параллельной обработки;
Практический опыт оптимизации пайплайна "чтение кадра -> предобработка -> инференс -> постобработка" для минимизации задержек и максимизации пропускной способности (FPS) на сервере;
Опыт использования батчинга (dynamic batching), асинхронных вызовов и параллельных конвейеров для повышения утилизации GPU при работе с множеством потоков;
Опыт работы с высокопроизводительными библиотеками для обработки видео: FFmpeg (через ffmpeg-python или pyav), GStreamer;
Глубокие знания многопоточности и асинхронности в Python (asyncio, threading, multiprocessing), понимание GIL и способов его обхода (например, через процессы);
Опыт использования inference-серверов, специально разработанных для масштабирования: NVIDIA Triton Inference Server, TorchServe, TensorFlow Serving. Особенно ценен опыт с динамическим батчингом в Triton;
Навыки профилирования и отладки с помощью: NVIDIA Nsight Systems, py-spy, cProfile, vtune;
Глубокое понимание классических и современных методов CV (детекция, классификация, сегментация, трекинг);
Опыт работы с фреймворками глубокого обучения: PyTorch (обязательно), TensorFlow/Keras;
Свободное владение Python и ключевыми библиотеками: OpenCV, NumPy, SciPy, Pandas;
Понимание принципов разработки ПО (ООП, Git, CI/CD) и многопоточного/асинхронного программирования;
Умение работать в команде и четко документировать результаты;
Системное мышление: Способность проектировать систему с учетом нагрузки, "бутылочных горлышек" и отказоустойчивости при работе с десятками/сотнями потоков;
Проактивность: Умение не только интегрировать модель, но и предложить архитектурные улучшения для масштабирования платформы;
Аналитический склад ума: Глубокий анализ производительности, умение читать метрики и быстро локализовать проблемы (например, падение FPS при добавлении N-го потока);
Готовность разбираться в низкоуровневых аспектах (кодеков, драйверов, сетевых протоколов) для решения задач оптимизации;
Ориентация на результат: Понимание ключевых метрик production-системы: сквозная задержка (end-to-end latency), общая пропускная способность (total throughput), стабильность работы 24/7;
Знакомство с облачными сервисами для работы с видео (Kinesis Video Streams, Azure Video Analyzer) и стримингом (WebRTC, RTSP, HLS);
Опыт настройки и оптимизации работы драйверов GPU (NVIDIA), CUDA, cuDNN для многопользовательской среды;