Алексей Викторович Зиновьев

Алексей Викторович Зиновьев

Организация

AproximaLabs, руководитель исследовательской группы в области машинного обучения

Биография

Бакалавриат и магистратура математического факультете ОмГУ по направлению “Прикладная математика и информатика” (в 2011), аспирантура ИМ СО РАН (до 2015 года). Работа над диссертацией по поиску приближенных алгоритмов для решения задачи двухровневого программирования (bilevel programming) на дорожном графе большого размера. Использование ML, генетических алгоритмов, алгоритмов на больших графах. Работа программистом, использование и тренировка различных моделей для построения прогнозов, разработка библиотеки с открытым кодом для других исследователей и практиков машинного обучения на разных языках программирования (с 2008 года). Работа над проектами, где вычисления необходимо производить больше чем на одной машине. Использование таких вычислительных платформ, как Apache Hadoop, Kafka, Spark, Ignite, Flink, Hive, Giraph (с 2012 года). Адаптация алгоритмов машинного обучения (включая нейросети) для обучения в распределенной среде (с 2015 года). Участие в таких Open Source проектах, как Apache Ignite (distributed in-memory database), KotlinDL (Deep Learning library for Kotlin), TensorFlow, Apache Spark (с 2017 года). PMC (project management committee) member в проекте Apache Ignite, после создания значительной части ML-фреймворка для этой базы данных (с 2019). В 2020-2022 работа в JetBrains в команде Kotlin for Data Science, заложил основы библиотеки глубокого обучения на Kotlin (KotlinDL), аналога Keras над вычислительным ядром TensorFlow.

Направление исследований

  • Выбор и построение новых конволюционных сетей при помощи методов машинного обучения (Neural architecture search, AutoML for CNN)
  • Разработка новых методов для поиска наилучших гиперпараметров моделей машинного обучения (HPO task, Hyperparameter optimization task)
  • Повышение доступности AI-инструментов в экосистеме Java и Kotlin (AI democratization task)
  • Алгоритмы распределеного машинного обучения (Distributed ML)
  • Экспорт/импорт моделей между различными фреймворками машинного обучения
  • Глубокое обучение на графах (Deep Learning on Graphs)
  • Kotlin для Data Science

Требования к студентам

  • Базовые знания одного из языков программирования: Kotlin, Java, Python, C++
  • Понимание трудоемкости алгоритмов
  • Знакомство с точными и эвристическими методами решения задач оптимизации
  • Интерес к ML-методам
  • Интерес к любой из областей: Computer Vision, Natural Language Processing, Code Generation, Large Graphs, Evolutionary Algorithms, AutoML

Особенности работы

  • Высокая культура кода (code review практики, git, работа через pr, документирование кода, CI/CD)
  • Знакомство с принципами работы в Apache Community, вклад в проекты с открытым исходным кодом на Github
  • Много читаем научные статьи и исходный код библиотек ПО, иногда пишем свои статьи и свой код
  • Сотрудничество в удаленном режиме (я нахожусь в Санкт-Петербурге)