GPT-4-Details durchgesickert?
(archive.md)- Ein extrem großes Sprachmodell mit rund 1,8 Billionen Parametern und 120 Layern, damit mehr als 10-mal so groß wie GPT-3
- Mixture-of-Experts(MoE)-Architektur mit 16 Experts; pro Forward Pass werden nur 2 Experts aktiviert, um Kosten zu senken
- Trainiert mit rund 13 Billionen Token; 2 Epochen für Text, 4 Epochen für Code
- Multimodale Architektur mit separatem Vision-Encoder; nach dem Text-Pretraining zusätzliches Fine-Tuning mit rund 2 Billionen Token
- Training über 90–100 Tage auf rund 25.000 A100-GPUs, geschätzte Trainingskosten: rund 63 Mio. US-Dollar
Parameterzahl und Modellgröße
- GPT-4 ist schätzungsweise mehr als 10-mal so groß wie GPT-3 und verfügt insgesamt über rund 1,8 Billionen Parameter verteilt auf 120 Layer
- Pro Forward Pass (Erzeugung eines Tokens) werden nur rund 280B Parameter und rund 560 TFLOPs genutzt
- Im Vergleich dazu wären bei einem rein dichten Modell rund 1,8 Billionen Parameter und rund 3.700 TFLOPs nötig gewesen
- Gemeinsame Parameter für Attention liegen bei rund 55B
Mixture-of-Experts(MoE)-Architektur
- OpenAI hält die Kosten durch Nutzung eines MoE-Modells auf einem vertretbaren Niveau
- Im Modell werden 16 Experts verwendet; jeder Expert hat bezogen auf das MLP rund 111B Parameter
- Pro Forward Pass wird auf 2 Experts geroutet
-
MoE-Routing
- In der Forschung werden viele fortgeschrittene Routing-Algorithmen für die Expert-Auswahl pro Token diskutiert, doch das Routing von GPT-4 gilt derzeit als ziemlich einfach
-
Trade-off bei der Wahl der Expert-Anzahl
- MoE ist für Inferenz sehr anspruchsvoll, weil nicht alle Teile bei jeder Token-Erzeugung genutzt werden
- Manche Bereiche bleiben im Leerlauf, was beim Serving für Nutzer die Auslastung senkt
- Forschungsarbeiten zeigen, dass 64–128 Experts geringere Loss-Werte erreichen als 16, allerdings ist das rein akademisch
- Bei vielen Experts wird die Generalisierung über verschiedene Aufgaben schwieriger, und auch die Konvergenz wird anspruchsvoller
- Aus diesen Gründen hat OpenAI konservativ 16 Experts gewählt
- MoE ist für Inferenz sehr anspruchsvoll, weil nicht alle Teile bei jeder Token-Erzeugung genutzt werden
Datensatz
- GPT-4 wurde mit rund 13 Billionen Token trainiert; dies sind keine eindeutigen Token, sondern eine Summe über wiederholte Epochen
- 2 Epochen Textdaten, 4 Epochen Codedaten
- Enthält mehrere Millionen Zeilen Instruction-Fine-Tuning-Daten von ScaleAI und aus internen Quellen
-
Zusammensetzung des Datensatz-Mixes
- Von den 13 Billionen Token entfallen jeweils 5 Billionen Token auf CommonCrawl und RefinedWeb
- Entfernt man die Duplikate durch Epochen, bleiben geheime Daten „unbekannter Herkunft“ übrig
- Es gibt Gerüchte, dass Teile von Twitter, Reddit und YouTube stammen
- Als vermutete Quellen werden LibGen (4 Mio.+ Bücher), Sci-Hub (80 Mio.+ Papers) und das gesamte GitHub genannt
- Es wurde die Ansicht geäußert, die fehlenden Daten seien ein manuell gesammelter Datensatz aus Hochschullehrbüchern
- Nach der Umwandlung in txt lassen sie sich per Self-Instruct leicht in Instruction-Form bringen
- Dadurch entstand der Eindruck, GPT-4 sei unabhängig vom Fachgebiet „klug“
- Es gibt auch Papers, die versuchen, Trainingsdaten zu erschließen, indem sie einige von GPT-4 memorierte Bücher zwangsweise extrahieren
- Einige Bücher kennt es so gut, dass klar ist, dass sie Teil des Trainings waren; es erinnert sich sogar an eindeutige IDs von Project-Euler-Problemen
GPT-4 mit 32K-Kontext
- In der Pretraining-Phase wurde eine Kontextlänge von 8k (seqlen) verwendet
- Die Version mit 32k seqlen ist das Ergebnis eines Fine-Tunings des 8k-Modells nach dem Pretraining
Batch-Größe
- Auf dem Cluster wurde die Batch-Größe über mehrere Tage schrittweise erhöht und schließlich eine Batch-Größe von 60 Millionen verwendet
- Da nicht jeder Expert jedes Token sieht, entspricht das pro Expert etwa 7,5 Millionen Token
- Die tatsächliche Batch-Größe lässt sich erst berechnen, wenn man diesen Wert durch die Seq Len teilt
Parallelisierungsstrategie
- Für die Parallelisierung über alle A100-GPUs hinweg wurde 8-way Tensor Parallelism genutzt (NVLink-Limit)
- Darüber hinaus kam 15-way Pipeline Parallelism zum Einsatz
- Wahrscheinlich wurde ZeRO Stage 1 verwendet; block-level FSDP ist ebenfalls möglich
-
Warum kein FSDP verwendet wurde
- Ein Teil der verfügbaren Hardware-Infrastruktur könnte aus einer älteren Generation stammen
- In lokalen Compute-Clustern ist es üblich, die Infrastruktur in mehreren „Stufen“ zu aktualisieren, um Betriebsunterbrechungen zu vermeiden
- Ein Teil der verfügbaren Hardware-Infrastruktur könnte aus einer älteren Generation stammen
Trainingskosten
- Die Trainings-FLOPS von GPT-4 liegen bei rund 2.15e25; Training über 90–100 Tage auf rund 25.000 A100-GPUs, bei einer MFU von rund 32–36%
- Die sehr niedrige Auslastung ist auf eine übermäßig hohe Zahl von Ausfällen zurückzuführen, die Checkpoint-Neustarts verursachten
- Bei der Annahme von rund 1 US-Dollar pro A100-Stunde werden allein für dieses Training rund 63 Mio. US-Dollar Kosten geschätzt
- Nach heutigem Stand wäre Pretraining mit rund 8.192 H100-GPUs in etwa 55 Tagen möglich; bei 2 US-Dollar pro H100-Stunde entspräche das rund 21,5 Mio. US-Dollar
Inferenzkosten von GPT-4
- GPT-4 kostet 3-mal so viel wie Davinci mit 175B Parametern
- Ursache sind der Bedarf an größeren Clustern und eine deutlich geringere Auslastung
- Kostenschätzung: Bei Inferenz von GPT-4 mit 8k seqlen auf 128 A100-GPUs $0.0049 Cent pro 1k Token, auf 128 H100-GPUs $0.0021 Cent
- Unter der Voraussetzung einer angemessen hohen Auslastung und der Beibehaltung großer Batch-Größen
Multi-Query Attention(MQA)
- Wie andere nutzt auch OpenAI MQA
- Da nur ein Head nötig ist, sinkt der Speicherbedarf des KV-Cache deutlich
- Dennoch kann GPT-4 mit 32k seqlen nicht auf einer 40GB-A100 betrieben werden; bei 8k ist die maximale Batch-Größe begrenzt
Continuous Batching
- OpenAI hat sowohl variable Batch-Größen als auch Continuous Batching implementiert
- So werden zugleich eine gewisse maximale Latenz toleriert und die Inferenzkosten optimiert
Multimodalität mit Vision
- Ein separater Vision-Encoder, getrennt vom Text-Encoder, ist per Cross-Attention angebunden; eine Flamingo-ähnliche Architektur
- Zusätzliche Parameter kommen zu den 1,8 Billionen Parametern hinzu
- Nach reinem Text-Pretraining zusätzliches Fine-Tuning mit rund 2 Billionen Token
- Man wollte das Vision-Modell von Grund auf trainieren, begann zur Risikominderung aber mit Text, weil der Reifegrad nicht ausreichte
- Hauptzweck der Vision-Fähigkeiten ist die Umsetzung autonomer Agenten, die Webseiten lesen und Bild- sowie Videoinhalte transkribieren
- Die Trainingsdaten enthalten gerenderte LaTeX-/Text-Kombinationsdaten, Screenshots von Webseiten, gesampelte Frames aus YouTube-Videos sowie Whisper-basierte Transkripte
Speculative Decoding
- Es besteht die Möglichkeit, dass bei der GPT-4-Inferenz Speculative Decoding verwendet wird (nicht zu 100% sicher)
- Ein kleineres und schnelleres Modell decodiert mehrere Token im Voraus, die anschließend in einem einzelnen Batch an das große Oracle-Modell übergeben werden
- Wenn die Vorhersage des kleinen Modells stimmt, stimmt das große Modell zu, und mehrere Token werden in einem Batch decodiert
- Wenn das große Modell ablehnt, wird der restliche Batch verworfen und mit dem großen Modell fortgefahren
- Die jüngsten Verschwörungstheorien über eine Verschlechterung der GPT-4-Qualität könnten darauf zurückzuführen sein, dass das Oracle-Modell Sequenzen mit niedriger Wahrscheinlichkeit des Speculative-Decoding-Modells akzeptiert
Inferenzarchitektur
- Die Inferenz läuft auf einem 128-GPU-Cluster, mit mehreren Clustern in mehreren Rechenzentren
- Ausgeführt mit 8-way Tensor Parallelism und 16-way Pipeline Parallelism
- Pro 8-GPU-Node werden rund 130B Parameter gehalten
- Da das Modell 120 Layer hat, wird es verteilt auf 15 Nodes geladen
- Der erste Node, der auch die Embeddings berechnen muss, hat möglicherweise weniger Layer
- Wenn man anhand dieser Zahlen dem Chinchilla-Optimum gefolgt wäre, hätte mit doppelt so vielen Token trainiert werden müssen; das deutet auf Schwierigkeiten bei der Beschaffung hochwertiger Daten hin
1 Kommentare
Meinungen auf Hacker News
Das wurde schon früher hier https://news.ycombinator.com/item?id=36671588 und hier https://news.ycombinator.com/item?id=36674905 gepostet.
Die ursprüngliche Quelle ist https://www.semianalysis.com/p/gpt-4-architecture-infrastruc..., und der Twitter-Beitrag scheint im Wesentlichen nur eine Umschreibung des eigentlichen Blogposts gewesen zu sein. Deshalb wurde der Tweet offenbar gelöscht.
Dass Mixture of Experts (MoE) verwendet wird, war neu und sehr interessant; ich würde gern mehr darüber erfahren, wie sie das zum Laufen gebracht haben. Varianten in der Implementierung könnten auch die Schwankungen in der von Leuten beobachteten Ausgabequalität erklären. Über das hier erwähnte Vision-Modell ist, abgesehen von ein paar Demos vor einigen Monaten, ebenfalls noch wenig bekannt, daher warte ich auf die Veröffentlichung.
Im Kontext künstlicher Intelligenz steht „MoE“ üblicherweise für „Mixture of Experts“ und bezeichnet eine Machine-Learning-Technik, bei der ein Problem in Teilprobleme zerlegt wird, spezialisierte „Experten“ (Modelle) jeweils ein Teilproblem lösen und ihre Ausgaben anschließend kombiniert werden.
Falls es neu war, dass GPT-4 MoE verwendet, könnte das seiner Behauptung eine gewisse Glaubwürdigkeit verleihen.
Das zeigt, dass große Sprachmodelle mit allgemeiner künstlicher Intelligenz überhaupt nicht gleichzusetzen sind. Einen Taschenrechner dranzuhängen ist nur ein Workaround; ein nützlicher Workaround zwar, aber keiner, der sie dazu befähigt, Wissenschaft zu betreiben.
Dieser Post ist zumindest im Moment frei zugänglich.
Wenn das stimmt, hat das Training 21 YottaFLOPs gekostet. Ich weiß nicht, wann ich zuletzt das Präfix yotta- irgendwo gesehen habe.
Und die Kosten für das Training von GPT-4 sind auf ein Drittel des Niveaus von vor einem Jahr gefallen. Die Geschwindigkeit, mit der die Preise für das Training großer Sprachmodelle sinken, ist wirklich erstaunlich und eine gute Nachricht für Open Source. Das Google-Memo hatte recht damit, dass es keinen Burggraben gibt.
Selbst wenn der Großhandelspreis für Reis bei 0,001 Dollar pro kg liegt: Wenn ich 1 Million Dollar habe und du 1000 Dollar, kann ich immer noch 1000-mal mehr Reis kaufen als du.
Außerdem ist bei vielen Anwendungsfällen intelligenter einfach besser. Wenn man für ein paar Cent eine genauere Antwort bekommen kann, sind diese paar Cent immer den Preis wert. Solange man mit mehr Hardware und mehr Daten größere und bessere Modelle trainieren kann, ist genau das der Burggraben.
Ich bewundere die Technik, aber diesmal fällt es mir schwer, mir vorzustellen, was sie für die Zukunft bedeutet, ohne Angst zu bekommen. Wahrscheinlich wird sie das offene Web töten, und entsprechende Gesetze werden verabschiedet, die das offene Web endgültig begraben.
Die Aussage „Die Verschwörungstheorie, dass die Qualität des neuen GPT-4 gesunken sei, könnte darauf zurückgehen, dass das Oracle-Modell Sequenzen mit geringerer Wahrscheinlichkeit aus dem spekulativen Decoding-Modell akzeptiert hat“ räumt letztlich ein, dass die Vermutung richtig gewesen sein könnte, und liefert sogar einen konkreten Mechanismus, beleidigt aber zugleich diejenigen, die das Problem angesprochen haben, und betreibt weiter Gaslighting.
Es ist eine Theorie, weil sie nicht bewiesen ist, und es ist eine Verschwörungstheorie, weil Leute glauben, OpenAI habe seinen eigenen Dienst absichtlich verschlechtert.
Diese Person scheint nicht zu wissen, wovon sie redet. Sie postet auf Twitter ständig solchen Unsinn. Im Großen und Ganzen ist das Copy-Paste mit etwas zusätzlicher Würze.
Zum Beispiel mag MoE ja sein, aber 16 Experten mit je 111 Milliarden Parametern ergeben keinen Sinn. GPT-3 hatte schon 175 Milliarden Parameter, und es wirkt unwahrscheinlich, dass sie künftig die Größe des Basismodells reduzieren. Plausibler wären etwa 220 Milliarden Parameter pro Modell und 8 Expertenmodelle, bei gleichen Gesamtkosten für die Inferenz.
Auch die Zahl von 13 Billionen Tokens an Trainingsdaten wirkt wie aus der Luft gegriffen.
Google hat Mixture of Experts zur Skalierung großer Sprachmodelle erforscht. Das 2022 veröffentlichte GLaM-Modell hat 1,7 Billionen Parameter und 64 Experten.
https://icml.cc/media/icml-2022/Slides/17378.pdf
„Sam Altman wird euch nicht sagen, dass GPT-4 220 Milliarden Parameter hat und in einem 16-Wege-Mixture-Modell 8 Gewichtssätze verwendet“, sagte George Hotz kürzlich in einem Interview mit Lex Fridman.
Lex’ Reaktion nach zu urteilen, schien auch er zu wissen, dass das stimmt.
Das ist nicht ausreichend belegt. Die einzigen, die genau wissen, wie GPT-4 funktioniert, sind Mitarbeitende von OpenAI; alle anderen können nur spekulieren.
Die geheime Zutat und der Burggraben liegen allerdings in den Daten. Ich habe einmal das Gerücht gehört, OpenAI habe Teilnehmern an Programmierwettbewerben Geld gezahlt, damit sie Code schreiben und kommentieren, der Informationen wie Komplexität enthält.
Ich habe mich gefragt, wie Premium-kostenlose Dienste wie Thread Reader noch betrieben werden, obwohl Twitter für API-Zugriff überhöhte Gebühren verlangt und Maßnahmen gegen Scraping ergreift.
Der günstigste API-Tarif mit Leserechten liegt bei 100 Dollar pro Monat für 10.000 gelesene Tweets; damit kann man on demand nur etwa 500 solcher Seiten erstellen.
const puppeteer = require('puppeteer');weitergehen.An diesem Artikel wirkt einiges seltsam, gemessen an der Gewissheit, mit der er „alle Zahlen kennt“.
Dort heißt es: „Heute ist Pretraining mit etwa 8192 H100s in rund 55 Tagen möglich, bei 2 Dollar pro H100-Stunde für 21,5 Millionen Dollar.“ Ich verstehe nicht, warum sowohl Systemgröße als auch Trainingszeit mit beliebigen Zahlen angepasst werden.
Außerdem heißt es, MoE sei bei der Inferenz schwer zu handhaben, weil nicht bei jeder Token-Generierung alle Teile des Modells genutzt würden; manche Teile lägen brach, andere würden genutzt, was sich beim Betrieb für Nutzer negativ auf die Auslastung auswirke. Unklar ist aber, wessen Auslastung gemeint ist. Speicher? Wenn die Inferenz-Auslastung so große Sorgen macht, könnte man doch einfach ein Nicht-MoE-Modell betreiben.
Auch zu MQA steht dort, „dadurch brauche man nur einen Head und könne den Speicherbedarf des KV-Cache stark reduzieren“ – nah dran, aber falsch. Für Key und Value braucht man nur je einen Head, die Zahl der Query-Heads bleibt jedoch unverändert.
Meine Vermutung: Jemand mit relativ viel Wissen hat die Formeln aus einem Scaling-Paper von 2020 genommen und daraus ein fiktives System gebaut, bei dem die Mathematik stimmt. Ich könnte einen ähnlichen Text wahrscheinlich ebenfalls plausibel ausschmücken, aber das liegt außerhalb meines Fachniveaus, also wäre er auf ähnliche Weise nah dran, aber sicher falsch. Deshalb wirkt das Ganze sehr verdächtig.
Der Kern von MQA ist, dass der KV-Cache durch dieses Sharing um den Faktor der Head-Anzahl kleiner ist als im normalen Fall. Mehrere Query-Heads beeinflussen die Cache-Größe nicht; sowohl bei Speicherkapazität als auch bei Bandbreite ist der Cache der limitierende Faktor beim MHA-Decoding.