𝗟'𝗮𝗰𝗰𝘂𝗺𝘂𝗹𝗼 𝗹𝗼𝗰𝗮𝗹𝗲 𝗱𝗲𝗹 𝗴𝗿𝗮𝗱𝗶𝗲𝗻𝘁𝗲 𝗮𝗰𝗰𝗲𝗹𝗲𝗿𝗮 𝗹'𝗮𝗱𝗱𝗲𝘀𝘁𝗿𝗮𝗺𝗲𝗻𝘁𝗼 𝗱𝗶 𝟭,𝟳𝘅

La velocità di addestramento spesso incontra un limite a causa dei tempi di inattività nelle pipeline. Questo tempo di inattività è chiamato "bubble".

Un nuovo metodo chiamato PACI risolve questo problema. Elimina queste bolle e accelera l'addestramento di 1,69x.

La maggior parte dei team utilizza una strategia chiamata 1F1B-flush. Questo metodo mantiene la coerenza dei pesi ma crea slot vuoti in cui il sistema attende i dati. Questi tempi di attesa rallentano tutto il processo.

Altri metodi asincroni cercano di risolvere il problema. Utilizzano trucchi complessi come il weight stashing o copie duplicate. Questi trucchi consumano troppa memoria e spesso rendono l'addestramento instabile.

PACI segue una strada diversa. Utilizza l'accumulo locale del gradiente. Questo mantiene la pipeline occupata senza la necessità di una sincronizzazione globale.

Ecco perché PACI è importante:

  • Eguaglia la stabilità dei metodi standard.
  • Utilizza la stessa quantità di memoria.
  • Raggiunge la velocità di configurazioni più veloci ma più pesanti.
  • Riduce il tempo per raggiungere l'accuratezza di 1,69x.

Nei test con GPT-2 Medium, PACI ha raggiunto l'accuratezza target molto più velocemente. Dimostra che è possibile scambiare piccole quantità di weight drift con enormi guadagni di efficienza.

Per i team di ingegneria, ciò significa una riduzione del 40% dei costi hardware. Si ottengono risultati più rapidi senza dover acquistare nuove GPU o aggiungere memoria.

I ricercatori hanno testato questo metodo su una pipeline a 8 stadi con modelli in stile GPT. Potrebbe essere necessario regolare la finestra di accumulo se si modifica la profondità della pipeline o la dimensione del batch.

Puoi testarlo tu stesso. Gli autori forniscono un wrapper di accumulo locale nel loro repository. Sostituisci il tuo attuale sincronizzatore flush con questo per vedere l'accelerazione.

Source: https://dev.to/olaughter/local-gradient-accumulation-speeds-training-17x-2mdk

Optional learning community: https://t.me/GyaanSetuAi