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.

Inhalt
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.
Daten anzeigen
| Variante | Richtig |
|---|---|
| Nur lokales Fenster | 23,1 % |
| + lineare Attention, Plan und Schleifen | 23,1 % |
| + 2 exakte globale Heads | 49,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.
- Lokal, Fenster von 256 Tokens
- Exakte globale Attention
- Gated lineare Attention
Daten anzeigen
| Head-Typ | Schichten | Heads pro Schicht |
|---|---|---|
| Lokal, Fenster von 256 Tokens | 1–12 | 8 |
| Exakte globale Attention | 1, 3, 5, 7, 9, 11 | 2 |
| Gated lineare Attention | 2, 4, 6, 8, 10, 12 | 2 |
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.
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.
Daten anzeigen
| Quelle | Anteil |
|---|---|
| 23 weitere EU-Sprachen | 51,6 % |
| Englisch | 33,0 % |
| Code und Auszeichnung | 10,0 % |
| Mathematik | 3,0 % |
| Synthetischer Chat und Werkzeuge | 2,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.
Daten anzeigen
| Aufbau | Tokens/s |
|---|---|
| Lokal, vor der Optimierung | 8.319 |
| Lokal, kompiliert | 11.830 |
| Gemietet, 2 GPUs | 41.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
- Zurückgehalten
- Training
Loss (Nats pro Token)
Gelesene Tokens in Milliarden
Daten anzeigen
| Gelesene Tokens in Milliarden | Zurückgehalten | Training |
|---|---|---|
| 0,06 | 4,571 | 4,261 |
| 0,55 | 3,776 | 3,574 |
| 1,04 | 3,694 | 3,469 |
| 1,54 | 3,596 | 3,421 |
| 2,03 | 3,426 | 3,238 |
| 2,52 | 3,329 | 3,143 |
| 3,01 | 3,291 | 3,113 |
| 3,50 | 3,263 | 3,076 |
| 3,99 | 3,225 | 3,079 |
| 4,49 | 3,244 | 3,076 |
| 4,98 | 3,218 | 3,036 |
| 5,35 | 3,123 | 2,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.
Daten anzeigen
| Sprache | Bits pro Byte |
|---|---|
| Griechisch | 0,721 |
| Bulgarisch | 0,844 |
| Französisch | 1,065 |
| Englisch | 1,086 |
| Spanisch | 1,135 |
| Portugiesisch | 1,219 |
| Deutsch | 1,257 |
| Niederländisch | 1,268 |
| Italienisch | 1,277 |
| Polnisch | 1,355 |
| Dänisch | 1,364 |
| Ungarisch | 1,407 |
| Slowakisch | 1,412 |
| Maltesisch | 1,415 |
| Rumänisch | 1,416 |
| Schwedisch | 1,418 |
| Irisch | 1,422 |
| Slowenisch | 1,431 |
| Tschechisch | 1,444 |
| Litauisch | 1,450 |
| Lettisch | 1,451 |
| Kroatisch | 1,507 |
| Finnisch | 1,508 |
| Estnisch | 1,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:
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.