СледваСледващо ръководство
Градиентно натрупване
технически
Техническо РЪКОВОДСТВО
Градиентна контролна точка (наричана още контролна точка за активиране) е трик за спестяване на памет, който изхвърля повечето междинни активации по време на преминаването напред и ги изчислява отново в движение по време на обратното разпространение.
Чуйте това ръководствоAI-разказан · ~2 min
It lets you train deeper, larger networks by trading extra compute for much lower memory use.
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.
Обучение на дълбок трансформатор с по-голям размер на партида на един GPU чрез отхвърляне и повторно изчисляване на активирането на слоя.
Фина настройка на визуалните модели на изображения с висока разделителна способност, където картите за активиране иначе биха препълнили GPU паметта.
Прегръщащи лицеви трансформатори, позволяващи gradient_checkpointing=Вярно, за да пасне на модели с милиарди параметри по време на фина настройка.
Комбиниране на контролни точки с FSDP, така че и параметрите, и активациите да се поддържат малки, което позволява обучение на много големи езикови модели.
Контролните точки с градиент вече са стандарт в обучението за големи модели и стават все по-автоматизирани, като библиотеките избират оптимални места за контролни точки за вас. Той се съчетава естествено с FSDP, смесена прецизност и разтоварване, за да увеличи размера на модела. Очаквайте „селективни“ контролни точки, които изчисляват повторно само евтини операции, като същевременно запазват скъпите (като матрици на внимание) в кеша, плюс управлявани от компилатора подходи в инструменти като torch.compile на PyTorch, които автоматично решават какво да спестят срещу повторно изчисляване за най-добър баланс скорост-памет.
Безплатен бюлетин
Три проверени AI истории всяка делнична сутрин, написани на достъпен език. Безплатно завинаги, без реклами.
Един имейл всеки делничен ден. Отписване с едно кликване. Никога не продаваме и не споделяме вашия имейл адрес.
Тествайте себе си
Незабавна обратна връзка за всеки отговор и сертификат за споделяне с подлежащ на проверка идентификационен номер, след като преминете курс.
Подкрепете безплатното 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 обгръща модул, така че неговите вътрешни активации се преизчисляват по време на обратното, вместо да се съхраняват.
Продължавай да учиш
Още ръководства, избрани за тази тема
СледваСледващо ръководство
Градиентно натрупване
технически