Tutorials
Sprachmodell ohne Neuronen: gzip als Language Model
Kann der Kompressor aus dem Betriebssystem ein Sprachmodell sein? Der Blogger hinter gzipt hat es ausprobiert: kein neuronales Netz, keine gelernten Parameter, nur DEFLATE. Das Ergebnis ist zwar kein kohärenter Text, aber gzip “weiß” erstaunlich viel über Shakespeare-Korpus, Dialogstruktur und Namen.
Kompression ist Praediktion
Der Kern ist die Äquivalenz von Kompression und Vorhersage aus dem Paper “Language Modeling is Compression”: Jede Praediktion ist ein Kompressor und jeder Kompressor ein Praediktionsmodell. DEFLATE sucht in einem 32-KiB-Sliding-Window nach Matches und encodet Wiederholungen als günstige Back-Referenzen. Die Score-Funktion lautet daher einfach: len(gzip(context + candidate)) - je kleiner das komprimierte Ergebnis, desto “erwarteter” war der Kandidat. Mit Korpus im Window wird jede Fortsetzung bestraft, die nicht wie der Korpus aussieht.
Beam Search gegen Quantisierungsrauschen
Der naive Ansatz, das jeweils beste Byte zu wählen, scheitert: gzip liefert nur ganze Byte-Längen, ein zusätzliches Byte ändert oft nichts - das Signal ertrinkt in Gleichständen. Die Lösung ist eine Beam Search, die ganze Spans von bis zu horizon Bytes im Voraus bewertet und nur die beam_width komprimierbarsten Kandidaten behält. Damit das Modell nicht in wörtliche Kopierschleifen fällt, bleibt nur die letzten tail Bytes des generierten Texts im Scoring-Kontext. Das komplette Tool ist eine einzige Python-Datei mit purer Standardbibliothek (zlib) und steht auf GitHub. Ein hübsches Lehrstück darüber, wie viel Struktur in einem simplen Kompressor steckt - und warum Praediktion und Kompression zwei Seiten derselben Medaille sind.
Quelle: nathan.rs