GPT-3
GPT-3 ist OpenAIs Sprachmodell mit 175 Milliarden Parametern aus dem Jahr 2020. Es lernte Aufgaben anhand von Beispielen in seinem Prompt und ebnete den Weg für ChatGPT.
GPT-3 (Generative Pre-trained Transformer 3) ist ein großes Sprachmodell (LLM) mit 175 Milliarden Parametern, das OpenAI im Mai 2020 in der Arbeit Language Models are Few-Shot Learners beschrieb. Es war mehr als 100-mal größer als sein Vorgänger GPT-2. Das wichtigste Ergebnis war das Lernen im Kontext: Wurde demselben eingefrorenen Modell eine Aufgabenbeschreibung mit einigen Beispielen im Prompt gegeben, konnte es übersetzen, Fragen beantworten oder rechnen – ganz ohne Feinabstimmung. OpenAI veröffentlichte die Gewichte nie und bot GPT-3 nur über seine im Juni 2020 gestartete API an. Durch das Befolgen von Anweisungen feinabgestimmte Nachfolger von GPT-3 wurden zu den GPT-3.5-Modellen hinter ChatGPT. Dadurch wurde die GPT-Familie Ende 2022 allgemein bekannt.
Architektur und Training#
GPT-3 ist ein ausschließlich aus einem Decoder bestehender Transformer mit demselben Design wie GPT-2, jedoch in größerem Maßstab. Das größte Modell hat 96 Schichten, eine Breite von 12.288, 96 Attention-Köpfe mit jeweils 128 Dimensionen und ein Kontextfenster von 2.048 Tokens. Seine Schichten wechseln zwischen dichter Attention und lokal begrenzter Sparse Attention. Für die Tokenisierung verwendet es wieder GPT-2s Byte-Level-BPE mit einem Wortschatz von 50.257 Tokens. In der Arbeit wurden acht Modellgrößen trainiert, von 125 Millionen bis 175 Milliarden Parametern. Jedes Modell wurde mit 300 Milliarden Tokens trainiert, die aus gefilterten Common-Crawl-Daten (60 % der Trainingsmischung), WebText2 (22 %), zwei Buchkorpora (je 8 %) und der englischen Wikipedia (3 %) stammten. Verwendet wurden V100-GPUs auf einem von Microsoft bereitgestellten Cluster. Diese Hyperparameter erklären die Größe und die Trainingskosten des Modells:
# GPT-3 175B: layers, width, and context from the paper's Table 2.1, plus GPT-2's vocabulary
n_layers, d_model, vocab_size, context = 96, 12288, 50257, 2048
# Each decoder block holds 4 * d^2 attention weights and 8 * d^2 feed-forward weights (4x hidden width)
blocks = n_layers * 12 * d_model**2
embeddings = (vocab_size + context) * d_model # token and learned position embeddings
params = blocks + embeddings
print(f"Parameters: {params / 1e9:.1f} billion ({blocks / params:.1%} in the decoder blocks)")
# Training compute: about 6 FLOPs per parameter per token, over 300 billion training tokens
flops = 6 * params * 300e9
print(f"Training compute: {flops:.2e} FLOPs = {flops / (1e15 * 86400):,.0f} petaflop/s-days")Die Ausgabe zeigt 174,6 Milliarden Parameter, davon 99,6 % in den Decoder-Blöcken, sowie 3.14e+23 FLOPs oder 3.637 Petaflop/s-Tage. Dies stimmt mit den im Anhang der Arbeit aufgeführten 174.600 Millionen Parametern und 3.14e+23 FLOPs überein.
Lernen mit wenigen Beispielen und im Kontext#
In der Arbeit wurden drei Prompt-Szenarien ausgewertet. Zero-Shot enthält nur eine Anweisung, One-Shot ergänzt ein ausgearbeitetes Beispiel und Few-Shot fügt so viele Beispiele hinzu, wie in das Kontextfenster passen, üblicherweise 10 bis 100. Die Leistung stieg sowohl mit der Modellgröße als auch mit der Anzahl der Beispiele: Beim Fragebeantwortungs-Benchmark TriviaQA erreichte das Modell mit 175 Milliarden Parametern 64,3 % bei Zero-Shot, 68,0 % bei One-Shot und 71,2 % bei Few-Shot. Der letzte Wert übertraf im selben Setting ohne externe Wissensquellen feinabgestimmte Systeme. Few-Shot-Prompting machte Prompt Engineering zu einer gängigen Methode für den Einsatz von LLMs. Die Ergebnisse stützten die Skalierungsgesetze, denen zufolge größere Modelle mehr aus dem Kontext lernen. Dasselbe Prinzip – Prompt statt erneutem Training – kommt bei der Objekterkennung mit YOLOE-26 zum Einsatz. Seine visuellen Prompts verwenden Rahmen um Beispiele in einem Referenzbild, um eine Klasse festzulegen, die das Modell anschließend in neuen Bildern findet, ohne die Gewichte zu aktualisieren.
Von GPT-3 zu ChatGPT#
Microsoft erhielt im September 2020 eine exklusive Lizenz für das zugrunde liegende Modell von GPT-3. OpenAIs Codex, ein mit öffentlich zugänglichem Code feinabgestimmter Nachfolger von GPT-3, bildete 2021 die Grundlage der ersten Version von GitHub Copilot. GPT-3 setzte Texte gut fort, befolgte Anweisungen jedoch schlecht. Deshalb setzte OpenAI Instruktionstuning und bestärkendes Lernen anhand menschlicher Rückmeldungen (RLHF) ein. Beschriftende bewerteten die Ausgaben des daraus entstandenen InstructGPT-Modells mit 1,3 Milliarden Parametern höher als die des GPT-3-Modells mit 175 Milliarden Parametern. Aus dieser Reihe gingen im November 2022 GPT-3.5 und ChatGPT hervor, gefolgt vom multimodalen GPT-4 im März 2023. Metas OPT-175B und BigSciences BLOOM bildeten 2022 GPT-3-große Modelle mit offenen Gewichten nach.
GPT-3 und verwandte Modelle#
- GPT-2: Der Vorgänger aus dem Jahr 2019 mit 1,5 Milliarden Parametern. Er hat dieselbe Architektur und denselben Tokenizer, ist jedoch etwa hundertmal kleiner und verfügt über einen Kontext von 1.024 Tokens.
- GPT-4: Der Nachfolger aus dem Jahr 2023. Er akzeptiert neben Text auch Bilder und befolgt Anweisungen nach dem Post-Training wesentlich zuverlässiger.
- BERT: Googles Modell aus dem Jahr 2018, das ausschließlich aus einem Encoder besteht. Es verarbeitet Text in beide Richtungen und eignet sich für Klassifizierungs- und Extraktionsaufgaben.
Einschränkungen#
In der Arbeit zu GPT-3 werden viele Schwächen des Modells selbst aufgeführt. Es wiederholt sich, verliert in längeren Passagen den roten Faden und macht grundlegende Fehler beim physikalischen Allgemeinwissen. Wie spätere LLMs gibt es falsche Fakten selbstbewusst wieder – ein Phänomen, das heute als Halluzinationen bezeichnet wird. Die Autoren maßen Verzerrungen aufgrund von Geschlecht, Herkunft und Religion in den generierten Texten. Außerdem stellten sie fest, dass einige Benchmark-Testdatensätze in die Web-Trainingsdaten gelangt waren. Die Textgenerierung ließ sich zudem nur schwer von menschlichen Texten unterscheiden: Bewertende erkannten von dem Modell mit 175 Milliarden Parametern verfasste Nachrichtenartikel mit 200 Wörtern nur in 52 % der Fälle. OpenAI stellte die ursprünglichen API-Modelle ada, babbage, curie und davinci am 4. Januar 2024 ein und ersetzte sie durch babbage-002 und davinci-002.










