NETBYTE
Projekt starten

Forschung

Helix, Teil 1: Wir trainieren ein europäisches Sprachmodell

Wir trainieren ein eigenes Sprachmodell. Es ist klein – 320 Millionen Parameter –, liest aber alle 24 Amtssprachen der Europäischen Union und trainiert auf Grafikkarten, die für Spiele gebaut wurden. Dieser erste Teil erzählt, wie wir hierhergekommen sind; der zweite folgt, wenn das Training abgeschlossen ist.

Von Marcus Weitschat 8 Min. Lesezeit

Punktmatrix dessen, worauf jedes Token in Helix achten kann: ein blaues Band für das lokale Fenster, gelbe Punkte für den eigenen Block, verstreute orange Punkte für den Abruf über weite Strecken.

Warum ein Spielestudio ein Sprachmodell trainiert

NETBYTE baut Spiele, Apps und Websites. In solchen Produkten stecken immer öfter Sprachmodelle: als Figuren, die antworten, als Hilfe, die eine Frage versteht, als Werkzeuge, die etwas erledigen. Die meisten offenen Modelle denken zuerst Englisch; Estnisch, Irisch oder Maltesisch kommen am Rand vor. Wir wollten die ganze Kette selbst verstehen – Daten, Tokenizer, Architektur, Training – und herausfinden, wohin das Geld tatsächlich fließt.

Parameter
320 Mio.
Amtssprachen der EU
24
Trainings-Tokens
6,5 Mrd.
für die gemieteten GPUs
≈ 12 $

Helix begann als Forschungsprototyp. Alles Folgende ist eine Entscheidung, die das Modell geprägt hat, jede mit einer Messung belegt – dazu die Fehler, die uns am meisten Zeit gekostet haben.

Vier Ideen, eine bleibt

Der Prototyp ging vier bekannte Schwächen heutiger Textgeneratoren an. Er schreibt in Blöcken von 16 Tokens statt Token für Token, er kann einen gemeinsamen Kern von Schichten mehrfach durchlaufen, er sagt für jeden Block einen kompakten „Plan“ voraus, und er mischt günstige lokale Attention mit linearer Attention für weite Strecken.

Das Blockschreiben funktionierte sofort: Ein kleines Testmodell schrieb 64 Tokens in 13 Durchläufen durch das Netz, wo ein herkömmliches Modell einen Durchlauf pro Token braucht – etwa ein Fünftel der Arbeit. Die anderen drei Ideen scheiterten an einem härteren Test. Wir bauten Aufgaben, bei denen die Antwort weit außerhalb des lokalen Fensters steht, sodass das Modell über den ganzen Text zurückblicken muss.

Abbildung 1 Abruf über weite Strecken Anteil richtiger Antworten bei einer Abrufaufgabe, deren Beleg außerhalb des lokalen Fensters liegt. Kleines Referenzmodell, gleiches Budget für jede Variante.
  1. Nur lokales Fenster 23,1 %
  2. + lineare Attention, Plan und Schleifen 23,1 %
  3. + 2 exakte globale Heads 49,4 %
  4. Volle Attention (Kontrolle) 49,0 %
Daten anzeigen
VarianteRichtig
Nur lokales Fenster23,1 %
+ lineare Attention, Plan und Schleifen23,1 %
+ 2 exakte globale Heads49,4 %
Volle Attention (Kontrolle)49,0 %
Zufall (25 %)25,0 %

Gelöst hat sie nur exakte Attention über die ganze Distanz. Lineare Attention, Plan und Schleifen blieben auf Zufallsniveau; der Optimierer hatte das lineare Gedächtnis sogar auf eine Halbwertszeit von weniger als einem Token heruntergeregelt. Zwei exakte globale Heads reichten, um volle Attention einzuholen.

Das finale Modell behält deshalb in jeder Schicht acht lokale Heads mit einem Fenster von 256 Tokens und ergänzt in jeder zweiten Schicht zwei exakte globale Heads; die Schichten dazwischen behalten zwei gated lineare Attention-Heads. Plan und Schleifen sind abgeschaltet. Sie stecken weiterhin im Code und sind getestet, haben auf echtem Text aber ihre Kosten nicht eingespielt.

Abbildung 2 Worauf jede Schicht schaut Zehn Attention-Heads pro Schicht, zwölf Schichten. Jede Schicht hat acht lokale Heads; ungerade Schichten ergänzen zwei exakte globale Heads, gerade Schichten zwei gated lineare Attention-Heads.
  • Lokal, Fenster von 256 Tokens
  • Exakte globale Attention
  • Gated lineare Attention
Daten anzeigen
Head-TypSchichtenHeads pro Schicht
Lokal, Fenster von 256 Tokens1–128
Exakte globale Attention1, 3, 5, 7, 9, 112
Gated lineare Attention2, 4, 6, 8, 10, 122

Messen statt vermuten

Jeden Trainingskniff haben wir an einem Modell mit 94 Millionen Parametern getestet, mit demselben Budget pro Lauf: 29,5 Millionen Tokens, derselbe Seed, dieselbe Datenreihenfolge. Zwei Läufe derselben Konfiguration unterscheiden sich um ±0,03; alles darunter ist Rauschen.

Abbildung 3 Was half – und was Rauschen war Änderung des Validierungs-Loss gegenüber der AdamW-Basis. Modell mit 94 Mio. Parametern, 29,5 Millionen Tokens pro Lauf. Unter null ist besser; das graue Band ist das Rauschen zwischen Läufen (±0,03).
  1. Muon + WSD-Plan -0,587
  2. Muon-Optimierer -0,347
  3. Tieferes, schmaleres Netz -0,099
  4. WSD-Plan -0,080
  5. Value-Residual -0,007
  6. z-Loss +0,029
  7. Grouped-Query-Attention +0,088
Daten anzeigen
ÄnderungΔ Loss (Nats)
Muon + WSD-Plan-0,587
Muon-Optimierer-0,347
Tieferes, schmaleres Netz-0,099
WSD-Plan-0,080
Value-Residual-0,007
z-Loss+0,029
Grouped-Query-Attention+0,088

Der Muon-Optimierer war der einzige große Hebel, und er lässt sich mit einem Warmup-Stable-Decay-Lernratenplan kombinieren. Embedding und Ausgabeschicht zurück auf AdamW zu legen, wie es die Muon-Autoren empfehlen, brachte weitere 0,12 und machte das Training 5 % schneller. Kombinationen addieren sich nicht einfach: Ein tieferes, schmaleres Netz half unter AdamW und schadete unter Muon. Deshalb bekam jede vielversprechende Kombination ihren eigenen Lauf.

24 Sprachen, 6,5 Milliarden Tokens

Helix liest Webtext aus FineWeb-Edu für Englisch und aus FineWeb-2 für die übrigen 23 Sprachen – bei den größeren aus dessen qualitätsgefiltertem oberstem Zehntel. Code, Mathematik und ein kleiner synthetischer Chat-Strom vervollständigen die Mischung. Englisch bekommt ein Drittel. Die anderen Sprachen sind danach gewichtet, wie viel Text es gibt, so geglättet, dass Irisch und Maltesisch nicht untergehen, und keine Quelle wird öfter als viermal wiederholt – bis dahin ist Wiederholung etwa so gut wie frische Daten.

Abbildung 4 Was Helix liest Anteil der Trainings-Tokens pro Quellgruppe. Korpus aus 6,5 Milliarden Tokens in 34 Strömen; Code und Auszeichnung umfasst Python, JavaScript, C, C++, Java, HTML, CSS und Markdown.
  1. 23 weitere EU-Sprachen 51,6 %
  2. Englisch 33,0 %
  3. Code und Auszeichnung 10,0 %
  4. Mathematik 3,0 %
  5. Synthetischer Chat und Werkzeuge 2,4 %
Daten anzeigen
QuelleAnteil
23 weitere EU-Sprachen51,6 %
Englisch33,0 %
Code und Auszeichnung10,0 %
Mathematik3,0 %
Synthetischer Chat und Werkzeuge2,4 %

Der Chat-Strom ist extraktiv: Antworten werden aus echten Absätzen übernommen, Werkzeugergebnisse werden berechnet statt erfunden. Er bringt Format bei, kein Wissen. Der Tokenizer ist ein Byte-Level-BPE mit 64.000 Einträgen; er packt für jede Sprache in lateinischer Schrift zwischen 3,3 und 4 Bytes Text in ein Token.

Drei Bugs, die man erzählen sollte

  • Das Modell, das die Antwort las. In einem Codepfad ignorierten die globalen Heads die kausale Maske und konnten zukünftige Tokens sehen. Der Loss fiel in 75 Schritten von 6,85 auf 1,71, und ein 16-stündiger Lauf war wertlos. Ein verdächtig guter Loss ist ein Fehlerbericht; ein Regressionstest bewacht jetzt genau das.
  • Zeichen sind keine Bytes. Die Kompression wurde in Zeichen statt in UTF-8-Bytes gezählt. Das erfand eine „Schwäche“ im Chinesischen und ließ Griechisch und Bulgarisch fast doppelt so schlecht aussehen, wie sie sind.
  • Dokumente, an jeder Leerzeile zerbrochen. Der Encoder trennte Dokumente an jeder leeren Zeile – und leere Zeilen stehen mitten in fast jeder Quelldatei. Bis zu 35 % des Code- und Mathematiktexts gingen verloren. Wir haben das Trennzeichen repariert und am 31. Oktober den gesamten Korpus neu gebaut; das dauerte 2 Stunden und 12 Minuten.

Vom Schreibtisch auf eine gemietete Maschine

Die ersten 1,66 Milliarden Tokens liefen auf einer einzelnen AMD Radeon RX 7800 XT. Zwei Dinge machten das brauchbar: ein Kernel-Flag für Attention, das standardmäßig aus ist – ohne es war Attention 12-mal langsamer –, und das Kompilieren jeder Schicht mit torch.compile. Bei einem Median von 11.800 Tokens pro Sekunde hätte der Rest noch fast fünf Tage gedauert.

Also schrieben wir einen Autopiloten. Er mietet GPUs bei Vast.ai, lädt Code, Korpus und Checkpoint hoch, trainiert, holt alle drei Stunden einen Checkpoint nach Hause und hört auf, bevor das Guthaben aufgebraucht ist. Am 2. November ging er durch drei Maschinen, deren Anbieter sie nie starteten, und landete dann bei zwei RTX 4070 Ti Super in Deutschland für 0,363 $ pro Stunde. Der Upload von 15,4 GiB dauerte 40 Minuten.

Abbildung 5 Trainingsgeschwindigkeit Tokens pro Sekunde für das 320M-Modell bei einer Sequenzlänge von 1.024 (Median). Lokal: eine AMD Radeon RX 7800 XT. Gemietet: zwei NVIDIA RTX 4070 Ti Super.
  1. Lokal, vor der Optimierung 8.319
  2. Lokal, kompiliert 11.830
  3. Gemietet, 2 GPUs 41.367
Daten anzeigen
AufbauTokens/s
Lokal, vor der Optimierung8.319
Lokal, kompiliert11.830
Gemietet, 2 GPUs41.367

41.400 Tokens pro Sekunde sind das 3,5-Fache des Schreibtischs. Der gemietete Teil – 4,8 Milliarden Tokens in rund 33 Stunden – kostet etwa 12 $.

Wo Helix heute steht

Abbildung 6 Das Training bisher Loss in Nats pro Token, niedriger ist besser. Zurückgehalten: Text, auf dem das Modell nie trainiert. Training: gemittelt pro 50 Millionen Tokens; im Cooldown fällt es schneller, zum Teil weil sich die Datenmischung ändert. Die Achse endet bei den geplanten 6,5 Milliarden Tokens.
  • Zurückgehalten
  • Training

Loss (Nats pro Token)

Gelesene Tokens in Milliarden

Daten anzeigen
Gelesene Tokens in MilliardenZurückgehaltenTraining
0,064,5714,261
0,553,7763,574
1,043,6943,469
1,543,5963,421
2,033,4263,238
2,523,3293,143
3,013,2913,113
3,503,2633,076
3,993,2253,079
4,493,2443,076
4,983,2183,036
5,353,1232,884

Stand 3. November 2026 hat Helix 5,35 seiner 6,5 Milliarden Tokens gelesen. Seit 5,2 Milliarden läuft der Cooldown: Die Lernrate sinkt, und die Mischung verschiebt sich zu Mathematik, Code und Chat. Auf zurückgehaltenem Text aus allen Strömen liegt der Loss bei 3,12 Nats pro Token.

Abbildung 7 Wo jede Sprache steht Bits pro Byte auf zurückgehaltenem Text nach 5,35 Milliarden Tokens, niedriger ist besser. Griechisch und Bulgarisch sehen zum Teil besser aus, weil jeder ihrer Buchstaben zwei Bytes belegt.
  1. Griechisch 0,721
  2. Bulgarisch 0,844
  3. Französisch 1,065
  4. Englisch 1,086
  5. Spanisch 1,135
  6. Portugiesisch 1,219
  7. Deutsch 1,257
  8. Niederländisch 1,268
  9. Italienisch 1,277
  10. Polnisch 1,355
  11. Dänisch 1,364
  12. Ungarisch 1,407
  13. Slowakisch 1,412
  14. Maltesisch 1,415
  15. Rumänisch 1,416
  16. Schwedisch 1,418
  17. Irisch 1,422
  18. Slowenisch 1,431
  19. Tschechisch 1,444
  20. Litauisch 1,450
  21. Lettisch 1,451
  22. Kroatisch 1,507
  23. Finnisch 1,508
  24. Estnisch 1,727
Daten anzeigen
SpracheBits pro Byte
Griechisch0,721
Bulgarisch0,844
Französisch1,065
Englisch1,086
Spanisch1,135
Portugiesisch1,219
Deutsch1,257
Niederländisch1,268
Italienisch1,277
Polnisch1,355
Dänisch1,364
Ungarisch1,407
Slowakisch1,412
Maltesisch1,415
Rumänisch1,416
Schwedisch1,418
Irisch1,422
Slowenisch1,431
Tschechisch1,444
Litauisch1,450
Lettisch1,451
Kroatisch1,507
Finnisch1,508
Estnisch1,727

Was das praktisch heißt, zeigt am besten eine unbearbeitete Probe aus einem Checkpoint bei etwa 4,9 Milliarden Tokens. Der Anfang stammt von uns, der Rest von Helix:

Probe auf Englisch, Checkpoint bei 4,9 Milliarden Tokens, unbearbeitet

Vorgabe: The history of the printing press begins in the fifteenth century, when Johannes Gutenberg introduced movable type to Europe. Before that, books Modellausgabe: for printing were usually in the form of texts, usually in the format of illustrations. In its introduction to the printing press, Gutenberg uses one line-of-action model to illustrate a series of printed pieces of a book.

Grammatik, Wortwahl und Thema halten; die Fakten nicht. Das ist ungefähr, was man von 320 Millionen Parametern und 6,5 Milliarden Tokens erwarten kann: ein flüssiges Modell, das Dinge erfindet.

Wie es weitergeht

Das Vortraining endet in wenigen Stunden. Danach folgen eine Langkontext-Phase mit Büchern aus dem Project Gutenberg und EU-Rechtstexten aus EUR-Lex, ein Feintuning für Gespräche und Werkzeugnutzung sowie ein kleines Entwurfsmodell, das die Generierung beschleunigt.

Zurück zu allen Beiträgen

Nächster Schritt

Was soll als Nächstes entstehen?

Erzählen Sie uns von Ihrem Spiel, Ihrer App, Ihrer Website oder Ihrem KI-Projekt. Eine kurze Nachricht reicht für den Anfang.