209 Millionen
Stellschrauben.

HORST ist ein Transformer in der klassischen Encoder-Decoder-Form – dieselbe Bauart, mit der maschinelle Übersetzung groß geworden ist. Hier ist jedes Bauteil.

Steckbrief

Bauart
Transformer-BigEncoder-Decoder, Pre-LayerNorm
Parameter
209 Mio.alle selbst trainiert
Schichten
6 + 6Encoder + Decoder
Breite
1.024Zahlen je Wortstück
Feed-Forward
4.096innere Breite je Schicht
Attention-Köpfe
16je Attention-Block
Vokabular
32.000SentencePiece, selbst trainiert
Kontext
bis 1.024Wortstücke ab Stufe 2 (Stufe 1: 256)
Gewichte
418 MBfp16, nur Modell

Aufbau

Links liest der Encoder den fehlerhaften Satz, rechts schreibt der Decoder den korrigierten. Die Verbindung dazwischen – die Cross-Attention – ist die Stelle, an der der Decoder in den Eingabesatz „hineinschaut“.

Encoder × 6
LayerNorm → Self-Attention16 Köpfe, jedes Wortstück sieht alle anderen
LayerNorm → Feed-Forward1.024 → 4.096 → 1.024
Eingabe: ich weis nicht das …
Decoder × 6
LayerNorm → Maskierte Self-Attentionsieht nur, was schon geschrieben ist
LayerNorm → Cross-Attentionschaut in die Encoder-Ausgabe
LayerNorm → Feed-Forward1.024 → 4.096 → 1.024
Ausgabe: Ich weiß nicht, dass …

Wo die Parameter stecken

Rund die Hälfte sitzt im Decoder, weil jede seiner Schichten zwei Attention-Blöcke hat. Die Einbettungstabelle für 32.000 Wortstücke wird von Encoder, Decoder und Ausgabeschicht gemeinsam genutzt – getrennt wären es rund 65 Millionen Parameter mehr.

Anteil an 209 Mio. Parametern
Decoder
48 %
Encoder
36 %
Einbettungen
16 %

Gerechnet: 32.000 × 1.024 für die Einbettungen; je Encoder-Schicht 4 × 1.024² (Attention) + 2 × 1.024 × 4.096 (Feed-Forward); je Decoder-Schicht zusätzlich eine Cross-Attention. Ohne Biases und LayerNorm, gerundet.

Bausteine

Self-Attention

Jedes Wortstück gewichtet alle anderen: Welche sind für mich gerade wichtig? 16 Köpfe achten parallel auf verschiedene Beziehungen.

Cross-Attention

Nur im Decoder: Beim Schreiben schaut er in den Eingabesatz. Daher kann er Wörter so leicht kopieren.

Feed-Forward

Ein kleines Netz je Schicht, das jedes Wortstück einzeln weiterverarbeitet – hier steckt viel gelerntes Wissen.

Pre-LayerNorm

Die Werte werden vor jedem Block normalisiert. Das macht das Training tiefer Netze stabiler.

Sinus-Positionen

Die Reihenfolge der Wörter steckt in festen Sinuswellen. Sie lassen sich verlängern – so ging es von 256 auf 1.024 Wortstücke.

Geteilte Einbettungen

Eine Tabelle für Eingabe, Ausgabe und Vorhersage: weniger Parameter, und Ein- und Ausgabe sprechen dieselbe Sprache.

Schneller schreiben mit KV-Cache

Ohne Zwischenspeicher rechnet der Decoder bei jedem neuen Wortstück alles schon Geschriebene noch einmal durch. Bei langen Texten wird das quälend langsam. Der KV-Cache merkt sich die Zwischenergebnisse jeder Schicht; die Werte des Eingabesatzes für die Cross-Attention werden nur ein einziges Mal berechnet.

Der neue Dekodierer kann außerdem mehrere Kandidaten im Stapel verfolgen und einen Kopier-Bias setzen, der unnötige Änderungen bremst. Ziel: mindestens 20-mal schneller bei 800 Wortstücken, bei einer Abweichung unter 0,001 gegenüber der langsamen Rechnung. Er ist gebaut und mit Selbsttests geprüft und kommt mit der nächsten Veröffentlichung.

Warum von Grund auf?

  • Volle Kontrolle über die Daten. Nur wer weiß, was ein Modell gesehen hat, kann sauber messen. Bei fremden Basismodellen ist das unbekannt.
  • Ein Vokabular für Deutsch. Der Tokenizer ist auf deutschen Texten trainiert und zerlegt Umlaute, ß und lange Komposita sinnvoll.
  • Klein und spezialisiert. Ein Modell, eine Aufgabe – statt eines Alleskönners, der nebenbei auch korrigiert.