Checkpointing activation
Зачем это важно? Современные модели — от языковых ассистентов до генераторов изображений — содержат миллиарды параметров. Во время обучения сеть проходит два этапа: прямой проход, где она делает предсказание, и обратный, где исправляет ошибки. Для обратного прохода нужны все промежуточные значения (активации) каждого слоя. Если хранить их все, память графического ускорителя заканчивается за минуты. Checkpointing позволяет обучать модели вдвое большие на том же оборудовании, жертвуя лишь временем вычислений.
Как это работает интуитивно? Представьте, что вы собираете сложный шкаф по инструкции. Обычно вы записываете каждый шаг, чтобы потом разобрать ошибку. Checkpointing — это когда вы фиксируете только состояние после каждой четвёртой секции, а если нужно вспомнить детали между ними — распаковываете коробки и смотрите заново. Нейросеть сохраняет активации лишь в выбранных узлах графа, а между ними, при обратном распространении ошибки, просто повторяет вычисления. Меньше хранение — больше пересчёт.
Прикладной пример: компания, обучающая языковую модель на двенадцати видеокартах, с checkpointing умещает ту же архитектуру на восьми. Да, каждая эпоха длится на десять-двадцать процентов дольше, зато не нужно докупать дорогое железо или арендовать суперкомпьютер.
Вывод: checkpointing activation — это осознанный размен памяти на время. Ключевой трюк инженеров, позволяющий продолжать наращивать масштабы ИИ, когда физические ресурсы уже на пределе.
Поделиться