Przyśpieszenie tylko 1.38× — krótkie kroki (<300 ms) ⇒ all-reduce bariera dominuje.
Wniosek: efektywność DDP rośnie z długością kroku — pełny model (krok >800 ms) ma narzut sync ~3%.
⚠️ Synchronizacja wag — uwaga produkcyjna
Spread wag po 30 krokach: 1.27e-03 (wymagane: 0). Przyczyna: asymetryczne micro-batche —
DDP uśrednia gradienty stałą wagą 1/world_size, nie wproportcjonalnie do liczby tokenów na rank.
Przed prawdziwym treningiem: skaluj loss per rank:
loss = CE(...) * (micro_batch_rank * world_size / world_batch_tokens)
i weryfikuj spread asercją po N krokach. Do pomiaru przepustowości rozjazd bez znaczenia.
⏱️ Projections — pre-train od zera (pełny model 768 / 138M)