Магистратура
2025/2026




Эффективные системы глубинного обучения
Статус:
Курс по выбору (Современные компьютерные науки)
Кто читает:
Базовая кафедра Яндекс
Где читается:
Факультет компьютерных наук
Когда читается:
1-й курс, 3, 4 модуль
Охват аудитории:
для своего кампуса
Язык:
русский
Кредиты:
6
Программа дисциплины
Аннотация
За последние несколько лет глубинное обучение надёжно закрепилось как инструмент для решения массы практических задач, в которых важны как быстрое время итерации эксперимента, так и высокая производительность моделей на этапе применения. Без сомнения, Deep Learning — активно растущая область, однако уже сейчас неосторожно поставленные эксперименты могут длиться неделями, нагружая ваши серверы с сильно пониженной эффективностью. Вне зависимости от решаемых задач большее понимание устройства фреймворков, их взаимодействия с аппаратной частью компьютера, а также знание актуальных подходов к оптимизации работы с нейросетями и организации работы с ML-моделями в целом помогут вам рациональнее использовать имеющиеся ресурсы и быстрее получать результаты, порой почти не прикладывая усилий по изменению кода. В отличие от большинства курсов по глубинному обучению, мы не будем в сотый раз рассказывать вам про рекуррентные сети и дропаут. Вместо этого сделаем акцент на практические аспекты обучения и применения нейросетей на практике, которые обычно оставляют за рамками образовательных программ. В частности, мы расскажем вам: * Как вообще устроено распределённое обучение на нескольких видеокартах или даже серверах; * Что делать, если нужно обучить модель, не влезающую в одну видеокарту и при этом не состариться; * Как развернуть вашу модель в облаке, чтобы пользоваться ей мог кто-то кроме вас * Как оптимизировать обученную модель, чтобы для быстрой обработки запросов не требовался отдельный суперкомпьютер * Чем находить узкие места в коде обучения и инференса, а также на что стоит обращать внимание в NLP и CV-задачах * Как организовывать эксперименты по обучению нейросетей с максимальной воспроизводимостью и версионируемостью всех этапов, а также тестировать их наряду с обычным кодом На семинарах мы покажем вам, как пользоваться популярными библиотеками и инструментами для эффективного DL. Домашние задания научат вас оптимизировать разные компоненты обучения и превращать готовую модель в несложный сервис.
Цель освоения дисциплины
- Знать различные парадигмы распределённого глубинного обучения
- Знать о способах экономии GPU-памяти при обучении моделей
Планируемые результаты обучения
- Уметь находить и устранять субоптимальные фрагменты в коде, задействующем обучение или применение нейронных сетей
- Уметь оптимизировать нейросетевые модели для обработки высокого числа запросов с использованием стандартных инструментов
- Уметь работать с библиотекой PyTorch Distributed на уровне как использования низкоуровневых примитивов, так и адаптации имеющегося кода
- Уметь разворачивать нейросети в виде простейших Web-сервисов
Содержание учебной дисциплины
- Введение в курс
- Управление экспериментами, версионирование артефактов и тестирование DL-систем
- Профилирование кода на GPU. Оптимизация обучения для конкретных доменов
- Введение в распределенное машинное обучение
- Data-parallel training. Семейство алгоритмов All-Reduce
- Model-parallel training
- Основы создания сетевых сервисов на Python
- Трансформация обученных моделей в сервисы и оптимизация их выполнения программными средствами: inference-серверы, выполнение в браузере и на устройстве
- Оптимизация выполнения нейросетей архитектурными средствами: квантизация, дистилляция, сжатие
Промежуточная аттестация
- 2025/2026 4th module0.4 * Домашнее задание 1 + 0.3 * Домашнее задание 2 + 0.3 * Домашнее задание 3
Список литературы
Рекомендуемая основная литература
- Ilharco, G., Ilharco, C., Turc, I., Dettmers, T., Ferreira, F., & Lee, K. (2020). High Performance Natural Language Processing. Proceedings of the 2020 Conference on Empirical Methods in Natural Language Processing: Tutorial Abstracts. https://doi.org/10.18653/v1/2020.emnlp-tutorials.4
Рекомендуемая дополнительная литература
- Huang, Y., Cheng, Y., Bapna, A., Firat, O., Chen, M. X., Chen, D., Lee, H., Ngiam, J., Le, Q. V., Wu, Y., & Chen, Z. (2018). GPipe: Efficient Training of Giant Neural Networks using Pipeline Parallelism.
- Rajbhandari, S., Rasley, J., Ruwase, O., & He, Y. (2019). ZeRO: Memory Optimizations Toward Training Trillion Parameter Models.
- Shoeybi, M., Patwary, M., Puri, R., LeGresley, P., Casper, J., & Catanzaro, B. (2019). Megatron-LM: Training Multi-Billion Parameter Language Models Using Model Parallelism.