ML-разработчик в команду исследования видеосжатия Кинопоиска

Дата размещения вакансии: 07.02.2025
Работодатель: Яндекс
Уровень зарплаты:
з/п не указана
Город:
Санкт-Петербург
Требуемый опыт работы:
От 1 года до 3 лет

Кинопоиск — крупнейший онлайн-кинотеатр в России. Наш продукт генерирует большие объёмы трафика, и каждый дополнительный процент его экономии приносит конкретную выгоду. При этом одна из ключевых целей продукта — обеспечить настолько качественный видеопоток, чтобы пользователи могли получать максимальное удовольствие от просмотра даже на самых современных девайсах. И главную роль в обеспечении качества видео и уменьшении объёма трафика играет компрессия.

В отличие от методов сжатия без потерь, которые ограничены теоретическими пределами, методы lossy имеют большую степень свободы. Здесь математические алгоритмы переплетаются с психовизуальной оценкой качества видео, порождая большой спектр идей для реализации.

Самый важный вопрос — как разделить видео на то, что действительно нужно, и то, что можно убрать, что наши глаза неспособны различить. В этом и заключается наша работа. В этой области есть множество тёмных пятен, на которые вам предстоит пролить свет, работая в нашей команде.

Какие задачи вас ждут

Верхнеуровневая оптимизация кодеков
Мы работаем с известными кодеками, и многие из них имеют десятки и сотни параметров. Их можно подбирать на каждый фрагмент видео. Этот подбор может быть как чисто оптимизационной задачей, ML-задачей, так и неочевидной эвристикой. Вам предстоит заниматься поиском алгоритмов подбора, способами разбиения, оценкой их эффективности и многим другим. Для этой работы потребуются знание Python, математической статистики, ML и большое количество фантазии.

Разработка и оптимизация алгоритмов внутри известных кодеков
Также мы смотрим на решение внутри самих кодеков и ищем способы улучшать их поведение. Это может быть и просто дополнительная статистика, которая используется высокоуровневыми системами, и улучшение имеющихся алгоритмов. Здесь необходимо спускаться на более низкоуровневый код на С и C++.

Улучшение инструментов исследований
Глобально наша команда решает задачу, как сжимать видео так, чтобы улучшать метрики качества сервиса Кинопоиска. Эти метрики могут быть простыми, такими как средний раздаваемый битрейт, количество CPU, и более сложными — например, оценка качества видео. Поэтому нам нужно множество инструментов, которые бы помогали измерять эти характеристики, сравнивать метрики на разных алгоритмах. Одна из актуальных задач — сделать минимальный по количеству потраченных ресурсов эксперимент на тестовых данных, который будет предсказывать данные о настоящем в хорошем приближении. В этом направлении требуются в основном Python и SQL.

Мы ждем, что вы

  • Уверенно владеете Python и SQL, способны писать код быстро и качественно
  • Решали задачи оптимизации и машинного обучения
  • Способны быстро изучать новые статьи в предметной области
  • Не имеете сложностей с базовыми математическими аппаратами, как пример — способны объяснить или за короткий срок понять, для чего в сжатии видео используется дискретное косинусовое преобразование
  • Готовы заниматься в том числе и областями, работа в которых может уйти в тупик

Будет плюсом, если вы

  • Разрабатывали на С или С++
  • Свободно работаете с утилитой ffmpeg
  • Знакомы со стандартами сжатия h.264/h.265
  • Разрабатывали бэкенд
  • Имеете опыт ML-разработки