tgoop.com/quant_prune_distill/339
Last Update:
Ребята из unsloth выкатили блог про раздебаг gradient accumulation.
[Пост на Love. Death. Transformers. ]
TL;DR - наивное усреднение батчей при gradient accumulation приводит к тому, что результат отличается от того, чтобы прогнать за один шаг большой батч. Причем, как утверждают авторы, лосс всегда больше. В стандартном способе вычисления кросс-энтропии есть деление на длину последовательности, и если они разные в разных микробатчах - результат усреднения будет не такой, как лосс на суммарном батче. Потому предлагается избавлятьcя от усреднения.
Утверждение про то, что лосс при naive gradient accumulation больше, вообще говоря, неверно. В конце блога авторы доказывают, что лосс при наивном gradient accumulation больше и в доказательстве делают внезапный 😱 переход от лосса по микробатчам к среднему лоссу по батчу.
Можно подобрать контрпример. Пусть на первом батче лосс L_1 = 1, и в батче 4 токена, а на втором батче L_2=9 и 6 токенов.
Тогда усредненный лосс на всем батче:(1 + 9) / (4 + 6) = 1
А при наивном gradient_accumulation:1/2(1/4 + 9/6) = 0.875
(то есть меньше)
BY КПД
Share with your friend now:
tgoop.com/quant_prune_distill/339