Nachricht

Die Forschungskosten von DeepMind sind so hoch, dass ein ICML-Artikel 12,9 Millionen US-Dollar kostete

2024-08-03

한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina


Neuer Weisheitsbericht

Herausgeber: Qiao Yang

[Einführung in die neue Weisheit] Ein kürzlich von DeepMind auf der ICML 2024 angenommener Artikel enthüllte die von Google unterstützte „Tyrannei“ vollständig. In einem Artikel wird geschätzt, dass die für diese Forschung erforderliche Rechenleistung und Kosten etwa 15 % des Vortrainings für Llama 3 ausmachen und die Kosten bis zu 12,9 Millionen US-Dollar betragen können.

Wie viel experimentelles Budget ist für die Veröffentlichung eines Konferenzbeitrags erforderlich?

Kürzlich veröffentlichte DeepMind eine Studie, die eine umfassende empirische Untersuchung verschiedener algorithmischer und architektonischer Details, wie z. B. der Parameter- und Optimiererauswahl, bei der Skalierung von LLM durchführte.

Dieses Papier wurde von ICML 2024 angenommen.


Papieradresse: https://arxiv.org/abs/2407.05872

Das 63-seitige Papier deckt Zehntausende Modelle ab. Zu den Alternativen gehören drei Optimierer, vier Parametrisierungsschemata, mehrere Ausrichtungsannahmen, mehr als ein Dutzend Lernraten und 14 Parametergrößen bis zu 26,8 B.


4 Parametrisierungsschemata, die Experimente erfordern

Wenn man diese Zahlen hört, ist es nicht schwer zu erkennen, dass diese Forschung eine große Anzahl modellbasierter Experimente umfassen muss.

Um sein Verständnis des Inhalts des Aufsatzes zu testen, zählte ein treuer Leser alle darin durchgeführten Experimente und schätzte die Kosten für die Vervielfältigung des Aufsatzes.


Rechnet man die gesamte erforderliche Rechenleistung zusammen, kamen tatsächlich erstaunliche 12,9 Millionen US-Dollar zusammen.

Es ist an der Zeit, Ihre Grundkenntnisse zu testen. Wenn Sie ein Forschungsteam leiten, ist die Schätzung der erforderlichen Rechenleistung und Kosten auf der Grundlage des Versuchsplans eine wesentliche Fähigkeit.

Dann folgen wir diesem Blogartikel, um herauszufinden, wo genau diese mehr als 10 Millionen US-Dollar verbrannt wurden.

Informationen zur Transformatorarchitektur

Anhang C des Papiers enthält verschiedene detaillierte Einstellungen zum Modellalgorithmus und zur Modellarchitektur, z. B. die Verwendung einer Nur-Decoder-Architektur, Layer-Normalisierung, GeLU-Aktivierungsfunktion, kein Dropout, T5-Tokenizer, Stapelgröße von 256, Verwendung von FSDP-Parallelität usw.


Parameterskalenstatistik experimenteller Modelle

Anhand der Architekturinformationen können wir die für jeden Token im Training erforderlichen FLOPS grob abschätzen, die als M bezeichnet werden.

Da in der Arbeit kein GQA/MQA-Mechanismus beschrieben wird, wird davon ausgegangen, dass Rkv=1 ist, zusätzlich zu lseq=512, Dhead=128, L=8 (Tiefe), V=32101 (Wortsegmentierungsvokabular).

Die Gesamtparameter des Modells können wie folgt ausgedrückt werden:

Daher können wir die Berechnungsformel von M erhalten:

Standardmäßig beträgt die Anzahl der pro Experiment verarbeiteten Token (TPE) 5.000 (Anzahl der Trainingsschritte) × 256 (Stapelgröße) × 512 (lseq), was ungefähr 6,5536e9 entspricht.

def M(d: int, L=8, l_seq=512, V=32101) -> int:     return 6*d * (L*(12*d + l_seq) + V) TPE = 50000 * 256 * 512

Ausrichtungsexperiment

Im Hypothesenausrichtungsexperiment wurde das optimale Ergebnis des nachfolgenden Lernratenscans direkt anstelle eines separaten Lernratenscans verwendet, sodass die Kostenberechnung in diesem Schritt relativ einfach ist:


def alignment() -> int:     return 4 * TPE * sum(M(d) for d in [1024,2048,4096]) # >>> f'{alignment():.3E}' # '3.733E+20' # >>> cost_of_run(alignment())[0] # 888.81395400704

Wenn der H100 3 US-Dollar pro Betriebsstunde kostet, belaufen sich die Kosten für das Ausrichtungsexperiment auf etwa 888 US-Dollar.

Lernrate

Unterproblem: Experiment zum optimalen Bewertungsverlust (Evaluierungsverlust).

In Tabelle E1 des Papiers werden alle möglichen Kombinationen von Optimierer × Parametrisierungsschema × Modellgröße × experimentelle Einstellungen unter 6 Modellgrößen aufgeführt und jeweils grundlegende Lernratenscans durchgeführt, um den besten Bewertungsverlust zu erzielen.

Insgesamt umfasst es die folgenden experimentellen Variablen:

- Modelldimension D∈3072,4096,6144,8192,12288,16384

- 4 Parametriermöglichkeiten

- 3 Optimierer, von denen SGD nur 5 experimentelle Einstellungen hat, Adam und Adam+Param Scaling haben 7 experimentelle Einstellungen

Gehen Sie davon aus, dass die Experimente hier alle unabhängig voneinander durchgeführt werden und die Ergebnisse nicht von anderen Orten repliziert werden. Wenn sie alle einmal durchgeführt werden, gibt es daher eine Obergrenze für die Kosten:


H = [1,2,4,6,8,12,16,20,24,32,48,64,96,128] D = [h * 128 for h in H] def table_e1() -> int:   sets_x_optims = 5 + 7 + 7   return 4 * sets_x_optims * TPE * sum(M(d) for d in D[-6:]) # >>> f'{table_e1():.3E}';cost_of_run(table_e1()) # '1.634E+23' # (388955.9991064986, 16206.499962770775)

Die Kosten für diesen Teil liegen bei knapp 400.000 US-Dollar, was immer noch im akzeptablen Bereich liegt, aber für die meisten akademischen Budgets bereits sehr teuer ist.

Tabelle E1 gibt den besten Bewertungsverlust an, beschreibt jedoch nicht die Scanstrategie von LR, und auch die Anzahl der Punkte auf jedem Bild ist unterschiedlich.


Da wir vom Autor des Artikels keine Antwort erhalten haben, können wir den spezifischen Mechanismus nicht bestimmen. Daher gehen wir davon aus, dass jeder am besten bewertete Verlust 15 Experimente durchlaufen hat (eine visuelle Untersuchung ergab, dass die Anzahl der Punkte in jeder Zeile etwa 10 beträgt). bis 15).

β-Parameter

Gemäß Abschnitt 4.2 des Papiers umfasst die Lernrate auch die Auswahl von zwei Hyperparametern: β und γ.

Wenn nur β-Parameter vorhanden sind, spricht man von der Einstellung „LR+Standard“:


Dieser Teil umfasst 3×-Optimierer, 4×-Parametrisierung sowie separate Experimente auf globalen und einzelnen Ebenen (GlobalLR, Perlayer-fullalign) und eine unbekannte Anzahl von LR-Scans:


def beta_only() -> int:   return 3*4*2*PpL * TPE * sum(M(d) for d in D) # 7.988E+23 (1902022.3291813303, 79250.93038255542)

Wie aus der Formel hervorgeht, sind die Kosten ähnlich wie beim Epsilon-Experiment unten, beide betragen 2 Millionen US-Dollar.

γ-Parameter

Im Vergleich zum β-Parameter-Experiment gibt es in diesem Teil zwei detaillierte Unterschiede.

Zunächst muss zusätzlich zu den Einstellungen GlobalLR und Perlayer-fullalign auch die Einstellung Perlayer-noalign hinzugefügt werden.


Zweitens wird eine 3D-Hyperparametersuche (γ_1, γ_h, γ_L+1) nur für d=1024=b durchgeführt, sodass weitere 800 Durchläufe erforderlich sind.


Die Berechnungsformel nach der Kombination der beiden lautet:


Die geschätzten Kosten für diesen Teil liegen in etwa bei Adams Epsilon-Heatmap-Experiment und betragen etwa 3,2 Millionen US-Dollar.

def gamma_expts() -> int:   return 36*TPE * (800*M(1024) + PpL*sum(M(d) for d in D)) # gamma_expts 1.354E+24 (3224397.534237257, 134349.8972598857)

Epsilon-Parameter des Adam-Optimierers

Das in Abschnitt 4.3 des Artikels beschriebene Experiment mit dem Epsilon-Parameter macht den Großteil der Berechnung aus.


Gemäß der obigen Schlussfolgerung werden jedes Mal 15 verschiedene Lernraten (Punkte pro Zeile) ausprobiert, um den besten Bewertungsverlust zu finden. Der Berechnungsbetrag des in Abbildung 6 gezeigten Epsilon-Parameteränderungsdiagramms beträgt dann:


Die Berechnungen ergaben eine überaus teure Rechnung in Höhe von 2 Millionen US-Dollar.

PpL = 15  # unprincipled estimate def eps_variants() -> int:   return 4 * 6 * PpL * TPE * sum(M(d) for d in D) ''' >>> f'{eps_variants():.3E}';cost_of_run(eps_variants()) '7.988E+23' (1902022.3291813303, 79250.93038255542) '''

Zusätzlich zum Liniendiagramm auf der linken Seite von Abbildung 6 finden Sie im Anhang F auch die Ergebnisse der Heatmap.


Unter der Annahme, dass jeder Blockwert das Ergebnis von 13 Lernraten-Scans ist, beträgt der Berechnungsbetrag dieses Teils:


Es wurde festgestellt, dass die Kosten allein für die Beschaffung dieser 8 Wärmekarten 3,2 Millionen US-Dollar betrugen. Da wir die Anzahl der LR-Scans als Konstante von 13 modellieren, ist diese Zahl wahrscheinlich niedriger als die tatsächlichen Kosten.

def eps_heatmaps() -> int:    # eps-type * eps-val * parameterizations * LR range * ...   return 2 * 6 * 4 * 13 * TPE * sum(M(d) for d in D[-6:]) ''' >>> f'{eps_heatmaps():.3E}';cost_of_run(eps_heatmaps()) '1.341E+24' (3193533.466348094, 133063.89443117057) '''

Gewichtsverlust

Das Gewichtsabfallexperiment (Anhang G) ist relativ einfach zu verstehen. Ein grundlegender LR-Scan wird mit dem 4×-Parametrisierungsschema und allen Parametern durchgeführt:


Es ist viel billiger als das Epsilon-Experiment, das dem Jahresgehalt eines Ingenieurs aus der Bay Area entspricht – 317.000 US-Dollar.

def weight_decay() -> int:   return 4 * PpL * TPE * sum(M(d) for d in D) ''' >>> f'{weight_decay():.3E}'; cost_of_run(weight_decay()) '1.331E+23' (317003.7215302217, 13208.488397092571) '''

Adafactor-Optimierer

Dieser Teil des Experiments wird in Anhang C3 ausführlich beschrieben und dient dazu, zu testen, ob die Skalierung von Adafactor und Adam+Parameter ähnliche Mechanismen zur Breitenskalierung aufweist.


Es gibt 2×4 Diagramme, in denen jeder Optimierer 11 Datenpunkte sammelt. Die Berechnungsformel lautet also:


Der Rechnung wurden weitere 188.000 US-Dollar hinzugefügt.

def adafactor() -> int:   return 2*2*4*PpL*TPE*sum(M(d) for d in D[:11]) ''' >>> f'{adafactor():.3E}'; cost_of_run(adafactor()) '7.918E+22' (188532.80765144504, 7855.533652143543) '''

Berechnungsoptimierung

Der Artikel versucht, die Anzahl der Aufmerksamkeitsköpfe H zu ändern, in der Hoffnung, die optimalen Berechnungseinstellungen zu finden. Dies beinhaltet jedoch Änderungen in der Schrittgröße und im Datensatz, sodass in diesem Teil keine Formelbeschreibungen verwendet werden. Der Berechnungscode lautet wie folgt:

def P(d: int, L=8, V=32101) -> int:     return 2 * d * (6*L*d + V) def compute_optimal():   indices_50k = (14, 14, 12)   return 4*PpL*sum([     TPE * sum(sum( M(d) for d in D[:i] ) for i in indices_50k),         20  * sum(P(d)*M(d) for d in D[:11]) *3,   ]) # compute_optim 7.518E+23 (1790104.1799513847, 74587.67416464102)

Zusammenfassen

Fassen Sie die Rechenleistung und Kosten der oben genannten Experimente zusammen:

alignment       3.733E+20 (888.81395400704, 37.033914750293334) table_e1        1.634E+23 (388955.9991064986, 16206.499962770775) eps_variants    7.988E+23 (1902022.3291813303, 79250.93038255542) eps_heatmaps    1.341E+24 (3193533.466348094, 133063.89443117057) beta_only       7.988E+23 (1902022.3291813303, 79250.93038255542) gamma_expts     1.354E+24 (3224397.534237257, 134349.8972598857) weight_decay    1.331E+23 (317003.7215302217, 13208.488397092571) adafactor       7.918E+22 (188532.80765144504, 7855.533652143543) compute_optim   7.518E+23 (1790104.1799513847, 74587.67416464102)

Es wurde festgestellt, dass die Rechenkomplexität der gesamten Arbeit 5,42e24 FLOPS betrug.

Diese Zahl beträgt nur 15 % der Trainingsberechnungsmenge von Llama 3. Bei der Ausführung auf einem H100-Cluster mit 100.000 Karten dauert es nur 2 Tage, um alle Experimente abzuschließen.

total_flops=5.421E+24 rental price: US$12.9M h100 node months required: 746.9595590938408 (sanity check) D=[128, 256, 512, 768, 1024, 1536, 2048, 2560, 3072, 4096, 6144, 8192, 12288, 16384] (sanity check) model sizes: ['0.00979B', '0.0227B', '0.058B', '0.106B', '0.166B', '0.325B', '0.534B', '0.794B', '1.1B', '1.87B', '4.02B', '6.97B', '15.3B', '26.8B'] (sanity check) M/6P: ['63.4%', '68.5%', '75.3%', '79.7%', '82.8%', '86.8%', '89.3%', '91.0%', '92.2%', '93.9%', '95.7%', '96.7%', '97.7%', '98.3%']

Wenn wir es jedoch nicht an den Standards der LLM-Vorausbildung messen und dieses DeepMind-Papier nur als akademische Forschung betrachten, erscheint diese Berechnung ziemlich extravagant.

Wenn das Labor nur über 10 H100 verfügt, wäre es unmöglich, Forschung in dieser Größenordnung durchzuführen.

Ein großes Labor mit 100 H100 könnte in ein paar Jahren alle oben genannten Experimente abschließen können.

Verweise:

https://152334h.github.io/blog/scaling-exponents/

https://news.ycombinator.com/item?id=41107721

https://arxiv.org/abs/2407.05872