ДалееСледующее руководство
Накопление градиента
Технический
Техническое РУКОВОДСТВО
Градиентная контрольная точка (также называемая контрольной точкой активации) — это способ экономии памяти, который отбрасывает большинство промежуточных активаций во время прямого прохода и пересчитывает их на лету во время обратного распространения ошибки.
Прослушайте это руководствоОзвучено ИИ · ~2 min
Это позволяет вам обучать более глубокие и крупные сети, обменивая дополнительные вычислительные ресурсы на гораздо меньшее использование памяти.
Training normally retains intermediate activations needed for backpropagation. Activation checkpointing saves selected boundary tensors and recomputes internal activations during backward. This trades additional computation for a lower activation-memory footprint; the actual savings and runtime overhead depend on checkpoint placement, operations, model graph, and hardware. In a simplified chain of N similarly sized layers, a textbook schedule with checkpoint boundaries spaced about sqrt(N) layers apart can reduce activation storage to order sqrt(N) checkpoints, with recomputation cost governed by that schedule. This asymptotic example is not a universal prediction for framework implementations. PyTorch exposes activation-checkpointing utilities, and its current guidance also describes selective rematerialization and compiler-assisted choices. It can combine with FSDP and mixed precision, but benchmark the full training workload.
Обучение глубокого преобразователя с большим размером пакета на одном графическом процессоре путем отбрасывания и повторного расчета активаций слоев.
Точная настройка моделей машинного зрения на изображениях с высоким разрешением, где карты активации в противном случае переполнили бы память графического процессора.
Трансформаторы Hugging Face Transformers позволяют градиент_checkpointing=True соответствовать моделям с миллиардом параметров во время точной настройки.
Сочетание контрольных точек с FSDP позволяет сохранять небольшие параметры и активации, что позволяет обучать очень большие языковые модели.
Градиентная контрольная точка теперь является стандартной при обучении больших моделей и становится все более автоматизированной, а библиотеки выбирают для вас оптимальные местоположения контрольных точек. Он естественным образом сочетается с FSDP, смешанной точностью и разгрузкой, увеличивая размеры моделей. Ожидайте «выборочной» контрольной точки, которая пересчитывает только дешевые операции, сохраняя при этом дорогостоящие (например, матрицы внимания) в кэше, а также подходы, управляемые компилятором, в таких инструментах, как torch.compile PyTorch, которые автоматически решают, что сохранять, а что пересчитывать, для наилучшего баланса скорости и памяти.
Бесплатная рассылка
Три проверенных AI-истории каждое утро буднего дня, написанные простым английским. Бесплатно навсегда, без рекламы.
Одно электронное письмо каждый будний день. Отписаться в один клик. Мы никогда не продаем и не передаем ваш адрес.
Проверьте себя
Мгновенная обратная связь по каждому ответу и общий сертификат с проверяемым идентификатором после прохождения курса.
Поддержите бесплатное образование в области искусственного интеллекта. AI Understanding — это некоммерческая организация 501(c)(3). Никакой рекламы и платного доступа. Сделать пожертвование
Градиентная контрольная точка (также называемая контрольной точкой активации) — это способ экономии памяти, который отбрасывает большинство промежуточных активаций во время прямого прохода и пересчитывает их на лету во время обратного распространения ошибки. Это позволяет вам обучать более глубокие и крупные сети, обменивая дополнительные вычислительные ресурсы на гораздо меньшее использование памяти.
Градиентная контрольная точка пересчитывает отброшенные активации во время обратного прохода, тратя дополнительные вычисления в обмен на существенное сокращение памяти.
Backprop вычисляет градиенты, используя промежуточные активации прямого прохода, поэтому они должны быть доступны, если не будут пересчитаны.
The square-root schedule is a theoretical result for a simplified sequential computation graph, not a universal implementation guarantee.
Recomputation overhead varies with checkpoint policy and the cost of operations selected for recomputation.
torch.utils.checkpoint оборачивает модуль, поэтому его внутренние активации пересчитываются в обратном направлении, а не сохраняются.
Продолжайте учиться
Другие руководства, выбранные по этой теме
ДалееСледующее руководство
Накопление градиента
Технический