Sobes.tech
Middle — Senior

Gradient biriktirme hakkında bilgi ver. Hangi durumlarda kullanılır?

sobes.tech yapay zeka

AI'dan gelen yanıt

Gradyan biriktirme, sinir ağlarının eğitiminde kullanılan bir tekniktir; burada gradyanlar, modelin ağırlıklarını güncellemeden önce birkaç mini-batch boyunca birikir. Bu, GPU belleğine fiziksel olarak sığan larger bir batch boyutunu verimli bir şekilde taklit etmeye olanak tanır.

Bellek kısıtlamaları nedeniyle büyük bir batch boyutu kullanılamayan durumlarda ve büyük batch boyutunun eğitimde kararlılık ve kalite için önemli olduğu durumlarda uygulanır. Her küçük batch'ten sonra ağırlıklar güncellenmek yerine, gradyanlar (toplanır) birkaç iterasyon boyunca toplanır ve ardından bir optimizasyon adımı gerçekleştirilir.

Örnek pseudokod:

accumulation_steps = 4
optimizer.zero_grad()
for i, data in enumerate(dataloader):
    outputs = model(data)
    loss = loss_fn(outputs, targets) / accumulation_steps
    loss.backward()
    if (i + 1) % accumulation_steps == 0:
        optimizer.step()
        optimizer.zero_grad()

Bu şekilde, model daha az sıklıkla güncellenir, ancak daha büyük bir batch'e eşdeğer bir gradyan ile güncellenir.