Компиляторы для глубоких нейросетевых моделей
Описание
Жизненный цикл нейронных сетей включает несколько этапов: построение архитектуры модели, обучение, тестирование и внедрение. Внедрение предполагает многократный запуск обученной модели на конечном устройстве с целью решения поставленной задачи. Многократный запуск модели подразумевает прямой проход по сети, называемый выводом. Тензорные компиляторы для глубоких нейронных сетей позволяют ускорить вывод за счет оптимизации нейросетевой модели на разных уровнях. Пособие представляет собой руководство к изучению курса «Компиляторы для глубоких нейросетевых моделей». В лекционной части обосновывается необходимость использования тензорных компиляторов. Для этого описывается жизненный цикл нейросетевых моделей, дается общая информация об основных видах нейронных сетей. Далее рассматривается общая схема построения тензорных компиляторов, основные компоненты и последовательность их работы. Описываются типовые подходы к оптимизации графа вычислений, соответствующего глубокой модели, и генерируемой программной реализации операторов на слоях сети. Реализация этих подходов рассматривается на примере инструмента Apache TVM. Практическая часть курса включает пошаговый анализ производительности вывода широко известных глубоких моделей, обеспечивающих решение задачи классификации изображений, и оптимизацию нейросетевой модели в рамках Apache TVM на устройствах с активно развивающейся архитектурой RISC-V. В пособии представлен материал, полезный при изучении дисциплины «Глубокое обучение», читаемой в магистратуре института Информационных технологий, математики и механики (ИТММ) ННГУ.