Effektive Batch-Größe Rechner
Eingaben
| Batch je Gerät | 8 |
|---|---|
| Datenparallele Geräte | 64 |
| Akkumulationsschritte | 4 |
| Sequenzlänge | 4.096 |
Effektive Batch-Größe Rechner
Berechnet die effektive (globale) Batch-Größe für verteiltes Training aus dem Micro-Batch je Gerät, der Zahl der datenparallelen Geräte und den Gradient-Accumulation-Schritten, samt Tokens je Optimierer-Schritt.
Eingaben
Parallelität
Sequenz
Ergebnisse
Geben Sie einen Wert ein, um die Ergebnisse zu sehen.
Effektive Batch-Größe
Die effektive Batch-Größe ist die Zahl der Trainingsbeispiele, die zu einer einzelnen Optimierer-Aktualisierung beitragen. Auf einem Gerät entspricht sie dem Micro-Batch, doch verteiltes Training fächert die Arbeit über viele Beschleuniger auf und summiert oft mehrere Durchläufe vor jeder Gewichtsänderung, sodass der globale Batch, den der Optimierer tatsächlich sieht, hunderte Male größer sein kann als das, was auf einen einzelnen Chip passt. Dieser Rechner stellt diesen globalen Wert und die Tokens, die er darstellt, aus den drei Faktoren wieder her, die ihn erzeugen.
Warum der globale Batch zählt
Nahezu jeder Lernraten-Zeitplan, jede Warmup-Länge und jedes Konvergenzergebnis der Literatur ist in Bezug auf den globalen Batch angegeben, nicht auf den Micro-Batch je Gerät. Ein Team, das von 8 auf 64 Geräte skaliert, ohne die effektive Batch-Größe neu zu berechnen, verändert unbemerkt die Optimierungsdynamik — derselbe Code macht nun je Aktualisierung einen achtmal größeren Schritt — und kann divergieren oder stehen bleiben. Die effektive Batch-Größe zu kennen ist daher Voraussetzung, um die Lernrate abzustimmen, ein veröffentlichtes Rezept zu reproduzieren oder zwei Läufe auf unterschiedlichen Cluster-Größen zu vergleichen.
Die Formel
Drei unabhängige Faktoren multiplizieren sich. Mit dem Micro-Batch je Gerät , der Zahl der datenparallelen Kopien und den Gradient-Accumulation-Schritten ergeben sich die effektive Batch-Größe und die Tokens je Optimierer-Schritt bei Sequenzlänge als
BT=b⋅d⋅a=B⋅LJede datenparallele Kopie verarbeitet ihren eigenen Micro-Batch und die Gradienten werden gemittelt, sodass die Kopien den Batch multiplizieren. Die Akkumulation summiert aufeinanderfolgende Durchläufe vor einer Aktualisierung und multipliziert ihn erneut. Die Token-Zahl ist schlicht die Sequenzzahl mal die Länge jeder Sequenz.
Rechenbeispiel
Betrachtet sei ein Micro-Batch von 8 Sequenzen auf jedem von 64 Geräten, mit 4 Akkumulationsschritten und einem Kontext von 4.096 Tokens:
BT=8×64×4=2048=2048×4096=8388608Der Optimierer sieht 2.048 Sequenzen — rund 8,4 Millionen Tokens — je Aktualisierung, obwohl kein einzelnes Gerät je mehr als 8 Sequenzen zugleich hält. Eine Verdopplung der Akkumulationsschritte auf 8 würde die effektive Batch-Größe ohne jede Änderung des Speichers je Gerät auf 4.096 heben, auf Kosten doppelt so vieler Durchläufe zwischen den Aktualisierungen.
Grenzen
Dieses Modell erfasst datenparallele Replikation und Gradient Accumulation, die beiden Faktoren, die den globalen Batch verändern. Es lässt Tensor-, Pipeline- und Sequenz-Parallelität bewusst außer Acht: Diese teilen ein einzelnes Modell oder eine Sequenz über Geräte auf, um in den Speicher zu passen, vergrößern aber den globalen Batch nicht, sodass die Geräte, über die eine Kopie aufgeteilt ist, nicht in gezählt werden sollten. Der Token-Wert setzt zudem eine feste Sequenzlänge voraus; variable oder gepackte Batches benötigen eine eigene Token-Abrechnung. Die Speicherseite der Wahl des Micro-Batches behandelt der Gradient-Accumulation-Speicher-Rechner, und wie der Durchsatz mit hinzugefügten Geräten skaliert der Datenparallele Skalierung Rechner.
Häufig gestellte Fragen (FAQ)
Was ist die effektive Batch-Größe?
Die effektive oder globale Batch-Größe ist die Zahl der Trainingsbeispiele, die zu einer einzelnen Optimierer-Aktualisierung beitragen. Bei verteiltem Training ist sie der Micro-Batch je Gerät mal die Zahl der datenparallelen Kopien mal die Gradient-Accumulation-Schritte, da jeder dieser Durchläufe summiert wird, bevor sich die Gewichte einmal ändern.
Sie ist der maßgebliche Wert für die Skalierung der Lernrate und die Reproduzierbarkeit, nicht der kleinere Micro-Batch, der auf ein Gerät passt.
Wozu dient Gradient Accumulation?
Gradient Accumulation führt mehrere Vorwärts- und Rückwärtsdurchläufe aus und summiert ihre Gradienten, bevor ein Optimierer-Schritt angewendet wird, was die effektive Batch-Größe erhöht, ohne mehr Aktivierungen zugleich im Speicher zu halten. Sie erlaubt einer speicherbegrenzten Konfiguration, das Großbatch-Verhalten eines größeren Clusters nachzubilden, auf Kosten zusätzlicher Realzeit je Aktualisierung.
Der Abtausch ist Durchsatz gegen Speicher: Jeder Akkumulationsschritt ist echte Rechenarbeit, doch je Zyklus erfolgt nur eine Optimierer-Aktualisierung und ein Satz Kommunikation.
Wie unterscheiden sich Batch-Größe und Tokens je Schritt?
Die Batch-Größe zählt Sequenzen, während die Tokens je Schritt die einzelnen Tokens dieser Sequenzen zählen — der Batch mal die Sequenzlänge. Die Token-Budget-Planung und viele veröffentlichte Lernraten-Zeitpläne werden je Token angegeben, sodass der Token-Wert oft der übertragbarere ist.
Zwei Läufe mit gleicher Sequenzzahl, aber unterschiedlichen Sequenzlängen sehen unterschiedliche Token-Zahlen je Schritt, weshalb hier beide Werte ausgegeben werden.
Haftungsausschluss
Dieser Rechner erfasst nur datenparallele Replikation und Gradient Accumulation. Er modelliert weder Tensor-, Pipeline- noch Sequenz-Parallelität, die ändern, wie ein globaler Batch über die Geräte aufgeteilt wird, nicht aber den globalen Batch selbst. Es ist zu prüfen, ob das verwendete Framework Micro-Batches und Akkumulation gleich zählt.
Weitere Empfehlungen
Gradient-Accumulation-Speicher-Rechner
Berechne die effektive Batch-Größe, die durch Gradient Accumulation erreicht wird, und den dafür nötigen Aktivierungsspeicher — aus der Mikro-Batch-Größe, den Akkumulationsschritten, den datenparallelen Repliken und den Aktivierungskosten pro Sample.