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

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

(Новая страница: «;{{SpeakerInfo}}: {{Speaker|Кирилл Колодяжный}} <blockquote> </blockquote> Adept — исследовательская и образовател…»)
 
;{{SpeakerInfo}}: {{Speaker|Кирилл Колодяжный}}
<blockquote>
Adept (Automatic Differentiation Engine for Tensor Processing)  исследовательский и образовательный проект по разработке платформы для обучения моделей машинного обучения. 

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

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

{{VideoSection}}

{{vimeoembed||800|450}}
{{youtubelink|}}

{{SlidesSection}}
[[File:Adept — исследовательская и образовательная платформа машинного обучения (Кирилл Колодяжный, OSSDEVCONF-2025).pdf|left|page=-|300px]]

{{----}}

== Thesis ==

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

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

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

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

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

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

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

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

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

{| class="wikitable"
|-
! Функции активации !! Оптимизаторы !! Функции потерь !! Слои
|-
| 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 для интеграции с другими системами.

{{----}}
[[File:{{#setmainimage:Adept — исследовательская и образовательная платформа машинного обучения (Кирилл Колодяжный, OSSDEVCONF-2025)!.jpg}}|center|640px]]
{{LinksSection}}
<!-- <blockquote>[©]</blockquote> -->

<references/>
* https://gitverse.ru/kolkir/adept
* K. He, X. Zhang, S. Ren, J. Sun. Deep Residual Learning for Image Recognition, 2015. https://arxiv.org/abs/1512.03385
* A. Krizhevsky. Learning Multiple Layers of Features from Tiny Images, 2009. https://www.cs.toronto.edu/~kriz/cifar.html
* Колодяжный К. Н. Учимся разрабатывать для GPU на примере операции GEMM, 2025. https://habr.com/ru/companies/yadro/articles/934878/
* Колодяжный К. Н. Реализация динамического полиморфизма для свободных функций, 2025. https://rutube.ru/video/b0a2547f75b905a073a847795a6a2869/
* Колодяжный К. Н. Роль C++ в архитектуре современных платформ машинного обучения, 2025. https://cppconf.ru/talks/f9fbddbd85aa409dad5310b64528fceb/

[[Категория:OSSDEVCONF-2025]]
[[Категория:Open-source projects]]
[[Категория:Draft]]

Версия 13:04, 23 января 2026

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

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

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

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

Видео

Презентация

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

Примечания и ссылки