Доклад

Роль C++ в архитектуре современных платформ машинного обучения

  • На русском языке

Машинное обучение в основном ассоциируется с Python, в то время как C++ незаслуженно обходят стороной. Это связано с тем, что C++ считается слишком тяжелым инструментом для реализации моделей и быстрого прототипирования. Но именно C++ используется для разработки основных компонентов ML-платформ, таких как PyTorch и TensorFlow.

Я расскажу, как C++ на самом деле применяется в архитектуре платформ для разработки ML-приложений. Для наглядности покажу пошаговую реализацию основных компонентов с нуля, аналогично тому, как это делается в PyTorch. Обсудим:

  1. Реализацию API, аналогичного PyTorch, для обучения нейронных сетей.
  2. Механизм автоматического дифференцирования на основе графа вычислений.
  3. Возможности C++ для создания графа вычислений.
  4. Подходы для работы с несколькими реализациями численных вычислений (CPU/GPU).
  5. Связь математических выражений и слоев нейронной сети с графом.
  6. Интеграцию C++ с Python.

Этим докладом я подчеркну важную роль С++ в создании ML-платформ. Вы увидите, как используются характерные для языка идиомы (plmlp, CRTP), подходы (type-erasure, MemoryPool), функции и контейнеры стандартной библиотеки (std::any, std::function, алгоритмы <random> и другие). Также рассмотрим, как используются параллельные алгоритмы и макросы. 

Спикеры

Приглашенные эксперты

Расписание