Полезные материалы про PyTorch
Evgenii NikitinВнутренности торча

Даже если вы не хотите контрибьютить в Пайторч, хотя бы поверхностное понимание устройства его внутренностей - небесполезная инвестиция времени. Всё-таки это ключевая библиотека многих продакшн DL-систем (у нас - всех).
Помимо документации и блога (очень рекомендую), в этом плане мне особенно нравятся два материала. Один называется PyTorch Internals, он был опубликован в 2019 году, так что в некоторых местах устарел, но основные концепты (тензор, storage, autograd, ATen, kernel) описаны хорошо и с симпатичными слайдами.
В декабре 2023 года появилась вот такая презентация, к сожалению, видео выступления было утеряно в процесса записи. В начале идёт разбор основных компонентов торча, а вторая часть фокусируется на новинках второй версии - TorchDynamo, Inductor, ExecuTorch.
Если вы только знакомитесь с библиотекой, то могу порекомендовать старую серию постов от Paperspace. Много интересного можно почерпнуть в ответах на StackOverflow (пример про Storage) и даже в дискуссии с GPT-4.

Autograd
PyTorch по своей сути изначально явлется фреймворком Autograd - обратного автоматического дифференциирования. Материалы для более глубокого понимания автограда:
- Autograd Mechanics - текстовое описание основных принципов в документации Пайторча
- A Gentle Introduction to torch.autograd - официальный туториал, в котором в том числе упоминается, что torch.autograd вообще-то считает произведение вектора (градиентов) и Якобиана (матрицы производных). Просто обычно мы применяем .backward(gradient) к скалярному лоссу - например, сумме, и в качестве вектора имплицитно берётся единица. В этой статье разбираются разные варианты инпутов и аутпутов и эксплицитное прокидывание градиентов. Ещё объяснения и примеры можно найти тут и тут.

- Когда-то в университетах мы учили сеточки, реализуя слои с нуля в numpy. Аналогично можно реализовать и свой autograd-движок, как это сделал Андрей Карпаты. Вот ссылка на весь плейлист.
Прочее
Ещё несколько рандомных около-пайторч материалов, которые мне нравятся:
- How Are Convolutions Actually Performed Under the Hood? - как ускорить наивную имплементацию конволюции почти до уровня Пайторча. Помогает разобраться во внутренностях конволюции.
- Tensor Puzzles - реализуем разные операции на тензорах с помощью бродкаста. Когда устаю работать, пробую решить 1-2 примерчика в перерывах.
- Pytorch Toolbelt - либа с разными фишками, от TTA и тайл-инференса до ансамблирования моделей.
- minitorch - учебная библиотека, которая реимплементирует Пайторч на чистом Питоне
- PyTorch Performance Tuning Guide - преза от NVIDIA 2020 года с советами по оптимизации
- Feeding the Beast: The Data Loading Path for DL Training - не про пайторч, но интересная ссылка про оптимизации чтения данных при обучении
- Making DL Go Brrrr From First Principles - оптимизация нейронок с точки зрения compute и memory bandwidth, ищем боттлнеки