Adept — исследовательская и образовательная платформа машинного обучения (Кирилл Колодяжный, OSSDEVCONF-2025)

Материал из 0x1.tv

Докладчик
Кирилл Колодяжный.jpg
Кирилл Колодяжный

Adept (Automatic Differentiation Engine for Tensor Processing) — исследовательский и образовательный проект по разработке платформы для обучения моделей машинного обучения.

Проект используется для демонстрации архитектуры и основных элементов платформ машинного обучения, методик интеграции вычислительных ядер, построения вычислительных графов и т. д., а также служит основой для разработки экспериментальных конвейеров обучения с использованием кроссплатформенных API Vulkan и OpenCL.

Видео[править вики-текст]

Презентация[править вики-текст]

Adept — исследовательская и образовательная платформа машинного обучения (Кирилл Колодяжный, OSSDEVCONF-2025).pdf Adept — исследовательская и образовательная платформа машинного обучения (Кирилл Колодяжный, OSSDEVCONF-2025).pdf Adept — исследовательская и образовательная платформа машинного обучения (Кирилл Колодяжный, OSSDEVCONF-2025).pdf Adept — исследовательская и образовательная платформа машинного обучения (Кирилл Колодяжный, OSSDEVCONF-2025).pdf Adept — исследовательская и образовательная платформа машинного обучения (Кирилл Колодяжный, OSSDEVCONF-2025).pdf Adept — исследовательская и образовательная платформа машинного обучения (Кирилл Колодяжный, OSSDEVCONF-2025).pdf Adept — исследовательская и образовательная платформа машинного обучения (Кирилл Колодяжный, OSSDEVCONF-2025).pdf Adept — исследовательская и образовательная платформа машинного обучения (Кирилл Колодяжный, OSSDEVCONF-2025).pdf Adept — исследовательская и образовательная платформа машинного обучения (Кирилл Колодяжный, OSSDEVCONF-2025).pdf Adept — исследовательская и образовательная платформа машинного обучения (Кирилл Колодяжный, OSSDEVCONF-2025).pdf Adept — исследовательская и образовательная платформа машинного обучения (Кирилл Колодяжный, OSSDEVCONF-2025).pdf Adept — исследовательская и образовательная платформа машинного обучения (Кирилл Колодяжный, OSSDEVCONF-2025).pdf Adept — исследовательская и образовательная платформа машинного обучения (Кирилл Колодяжный, OSSDEVCONF-2025).pdf Adept — исследовательская и образовательная платформа машинного обучения (Кирилл Колодяжный, OSSDEVCONF-2025).pdf Adept — исследовательская и образовательная платформа машинного обучения (Кирилл Колодяжный, OSSDEVCONF-2025).pdf Adept — исследовательская и образовательная платформа машинного обучения (Кирилл Колодяжный, OSSDEVCONF-2025).pdf Adept — исследовательская и образовательная платформа машинного обучения (Кирилл Колодяжный, OSSDEVCONF-2025).pdf Adept — исследовательская и образовательная платформа машинного обучения (Кирилл Колодяжный, OSSDEVCONF-2025).pdf Adept — исследовательская и образовательная платформа машинного обучения (Кирилл Колодяжный, OSSDEVCONF-2025).pdf Adept — исследовательская и образовательная платформа машинного обучения (Кирилл Колодяжный, OSSDEVCONF-2025).pdf Adept — исследовательская и образовательная платформа машинного обучения (Кирилл Колодяжный, OSSDEVCONF-2025).pdf Adept — исследовательская и образовательная платформа машинного обучения (Кирилл Колодяжный, OSSDEVCONF-2025).pdf Adept — исследовательская и образовательная платформа машинного обучения (Кирилл Колодяжный, OSSDEVCONF-2025).pdf Adept — исследовательская и образовательная платформа машинного обучения (Кирилл Колодяжный, OSSDEVCONF-2025).pdf Adept — исследовательская и образовательная платформа машинного обучения (Кирилл Колодяжный, OSSDEVCONF-2025).pdf Adept — исследовательская и образовательная платформа машинного обучения (Кирилл Колодяжный, OSSDEVCONF-2025).pdf Adept — исследовательская и образовательная платформа машинного обучения (Кирилл Колодяжный, OSSDEVCONF-2025).pdf Adept — исследовательская и образовательная платформа машинного обучения (Кирилл Колодяжный, OSSDEVCONF-2025).pdf Adept — исследовательская и образовательная платформа машинного обучения (Кирилл Колодяжный, OSSDEVCONF-2025).pdf Adept — исследовательская и образовательная платформа машинного обучения (Кирилл Колодяжный, OSSDEVCONF-2025).pdf Adept — исследовательская и образовательная платформа машинного обучения (Кирилл Колодяжный, OSSDEVCONF-2025).pdf Adept — исследовательская и образовательная платформа машинного обучения (Кирилл Колодяжный, OSSDEVCONF-2025).pdf Adept — исследовательская и образовательная платформа машинного обучения (Кирилл Колодяжный, OSSDEVCONF-2025).pdf Adept — исследовательская и образовательная платформа машинного обучения (Кирилл Колодяжный, OSSDEVCONF-2025).pdf Adept — исследовательская и образовательная платформа машинного обучения (Кирилл Колодяжный, OSSDEVCONF-2025).pdf Adept — исследовательская и образовательная платформа машинного обучения (Кирилл Колодяжный, OSSDEVCONF-2025).pdf Adept — исследовательская и образовательная платформа машинного обучения (Кирилл Колодяжный, OSSDEVCONF-2025).pdf Adept — исследовательская и образовательная платформа машинного обучения (Кирилл Колодяжный, OSSDEVCONF-2025).pdf Adept — исследовательская и образовательная платформа машинного обучения (Кирилл Колодяжный, OSSDEVCONF-2025).pdf Adept — исследовательская и образовательная платформа машинного обучения (Кирилл Колодяжный, OSSDEVCONF-2025).pdf Adept — исследовательская и образовательная платформа машинного обучения (Кирилл Колодяжный, OSSDEVCONF-2025).pdf Adept — исследовательская и образовательная платформа машинного обучения (Кирилл Колодяжный, OSSDEVCONF-2025).pdf Adept — исследовательская и образовательная платформа машинного обучения (Кирилл Колодяжный, OSSDEVCONF-2025).pdf Adept — исследовательская и образовательная платформа машинного обучения (Кирилл Колодяжный, OSSDEVCONF-2025).pdf Adept — исследовательская и образовательная платформа машинного обучения (Кирилл Колодяжный, OSSDEVCONF-2025).pdf Adept — исследовательская и образовательная платформа машинного обучения (Кирилл Колодяжный, OSSDEVCONF-2025).pdf Adept — исследовательская и образовательная платформа машинного обучения (Кирилл Колодяжный, OSSDEVCONF-2025).pdf Adept — исследовательская и образовательная платформа машинного обучения (Кирилл Колодяжный, OSSDEVCONF-2025).pdf Adept — исследовательская и образовательная платформа машинного обучения (Кирилл Колодяжный, OSSDEVCONF-2025).pdf Adept — исследовательская и образовательная платформа машинного обучения (Кирилл Колодяжный, OSSDEVCONF-2025).pdf Adept — исследовательская и образовательная платформа машинного обучения (Кирилл Колодяжный, OSSDEVCONF-2025).pdf

Thesis[править | править вики-текст]

Ключевые слова: машинное обучение, искусственный интеллект, нейронные сети, образование, C++, Python, GPU, Vulkan.

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

Проект предполагает создание экспериментальной платформы машинного обучения для наработки опыта создания систем такого рода и включает исследовательское и образовательное направления.

Общая информация[править | править вики-текст]

В проекте на текущий момент реализована базовая архитектура платформы машинного обучения. Реализованы вычислительные ядра для большинства CPU-архитектур (x86_64, Arm, RISC-V) с использованием SIMD-расширений, а также конвейер выполнения и вычислительные ядра для API Vulkan, что обеспечивает поддержку GPU различных производителей. На данном этапе вычислительные ядра реализованы субоптимально.

Поддерживается базовый набор модулей для обучения многослойных свёрточных нейронных сетей, работа с несколькими GPU, параллельная загрузка и предобработка данных. Программный интерфейс проекта включает реализации на языках Python и C++.

Технические сведения о проекте приведены ниже.

Параметр Значение
Пользовательский API Python; C++
Установка GitVerse PyPI; исходный код
Система сборки CMake; gcc 12; Python 3.10; Vulkan SDK
Языки реализации Python; C++; GLSL

В проекте реализована поддержка интеграции различных вычислительных ядер и платформ в виде модуля диспетчеризации с интерфейсом регистрации вызовов. Построение вычислительного графа основано на жадном (Eager) императивном подходе, используется динамический вычислительный граф.

Реализованная на данный момент функциональность для построения и обучения моделей машинного обучения приведена ниже.

Функции активации Оптимизаторы Функции потерь Слои
Sigmoid; SiLU; LeakyReLU; ReLU SGD; Adam MSE; CrossEntropy Linear; Conv2d; AvgPool2d; MaxPool2d; BatchNorm2d

Для многопоточной загрузки и обработки данных реализован механизм передачи тензоров через разделяемую память. Это позволяет реализовать распределённое обучение моделей в рамках нескольких процессов ОС, работающих с несколькими вычислительными устройствами.

Образовательное направление[править | править вики-текст]

Как образовательная платформа проект может использоваться для обучения студентов архитектуре платформ машинного обучения, включая следующие аспекты:

  • основные архитектурные блоки платформ машинного обучения;
  • уровни абстракции;
  • взаимодействие разных языков программирования;
  • реализация математических абстракций;
  • методы автоматического дифференцирования;
  • работа и оптимизация вычислительного графа;
  • разработка вычислительных ядер;
  • кроссплатформенная разработка ПО;
  • работа со специализированным оборудованием;
  • реализация распространённых модулей для моделей машинного обучения.

Код проекта может использоваться как наглядная демонстрационная база, основа для студенческих проектов, а также для примеров в образовательных статьях, докладах и лекциях.

Исследовательское направление[править | править вики-текст]

Исследовательское направление включает разработку оптимизированных вычислительных ядер с использованием API Vulkan и OpenCL (CUDA, HIP и др.) для поддержки специализированных аппаратных ускорителей и GPU различных производителей — от серверных до встраиваемых решений, а также исследование и тестирование современных алгоритмов машинного обучения.

Результаты[править | править вики-текст]

В рамках реализованной функциональности воспроизведены свёрточные нейронные сети архитектуры ResNet с числом слоёв 18, 50, 101 и 152. Выполнена тренировка с подтверждением значений метрики точности для задачи классификации на наборе данных CIFAR-10.

Код проекта используется как демонстрационный материал при разработке курса «Архитектура платформ машинного обучения», запуск которого планируется в одном из вузов в сентябре 2025 г.

Наработки проекта также использовались при подготовке статей и докладов.

Планы развития[править | править вики-текст]

В дальнейшие планы развития проекта входят следующие задачи:

  • реализация вычислительных ядер с использованием OpenCL для поддержки более широкого круга устройств, включая ASIC;
  • поддержка различных типов данных для вычислительных ядер, включая пониженную разрядность;
  • реализация вычислительных ядер для других типов нейронных сетей и больших языковых моделей;
  • разработка подходов к распределённому обучению с использованием нескольких устройств, включая конвейерный параллелизм и шардирование тензоров;
  • исследование архитектур вычислительного графа для динамической и статической оптимизации или компиляции;
  • реализация поддержки квантования при обучении и выводе моделей;
  • поддержка формата описания моделей ONNX для интеграции с другими системами.
Adept — исследовательская и образовательная платформа машинного обучения (Кирилл Колодяжный, OSSDEVCONF-2025)!.jpg

Примечания и ссылки[править вики-текст]