2 Punkte von GN⁺ 2025-12-15 | Noch keine Kommentare. | Auf WhatsApp teilen
  • Inspiriert vom Mark V. Shaney-Programm aus den 1980er-Jahren wurde mit rund 30 Zeilen Python-Code ein einfacher Markov-Textgenerator namens Mark V. Shaney Junior entwickelt
  • Dieses Modell sagt das nächste Wort probabilistisch auf Basis von drei Wörtern (Trigramm) voraus und nutzt mehr als 200 Blogbeiträge (rund 200.000 Wörter) als Trainingsdaten
  • Die erzeugten Sätze werden als sinnfreies Kauderwelsch (gibberish) ausgegeben, das Wörter aus Blogthemen wie Lisp, Emacs, Mathematik und Programmierung vermischt
  • Erhöht man die Ordnung (order) des Modells, werden die Sätze konsistenter, aber ab 5 zitiert es den Originaltext praktisch wörtlich und verliert seine Kreativität
  • Auch im Zeitalter großer Sprachmodelle (LLMs) wird die strukturelle Klarheit einfacher Markov-Modelle als guter Ausgangspunkt zum Verständnis von Sprachgenerierung vorgestellt

Überblick über das Programm Mark V. Shaney Junior

  • Mark V. Shaney Junior ist ein Textgenerator, der den virtuellen Usenet-Nutzer Mark V. Shaney aus den 1980er-Jahren nachahmt
    • Das Original war ein Programm, das mithilfe eines Markov-Modells automatisch Beiträge erzeugte
    • Diese Umsetzung ist eine vereinfachte Minimalversion dieser Idee und wurde auf GitHub veröffentlicht
  • Der gesamte Code umfasst etwa 30 Zeilen Python und stellt Einfachheit über Effizienz
    • Selbst wer zum ersten Mal mit Markov-Modellen zu tun hat, kann ihn in weniger als 20 Minuten verstehen

Experimentelles Programmieren als Hobby

  • Der Autor programmiert gern zur Erkundung von Ideen und nicht zur Lösung eines konkreten Problems
    • Dabei wurden mehrfach Markov-Ketten mit unterschiedlichen Zustandsräumen ausprobiert
    • Solche Experimentiercodes werden gesammelt und auf GitHub oder Codeberg geteilt
  • Mark V. Shaney Junior ist ebenfalls eines dieser Experimente und ein Beispiel für eine ausgearbeitete Veröffentlichung

Textgenerierung mit Blogdaten

  • Nach einem Testtraining mit Charles Dickens’ „A Christmas Carol“ wurden
    24 Jahre Blogbeiträge (mehr als 200 Beiträge, rund 200.000 Wörter) als Eingabedaten verwendet
    • Kommentare (rund 40.000 Wörter) wurden ausgeschlossen
  • Die erzeugten Sätze erscheinen als unlogische Sätze, in denen sich Programmierbefehle, mathematische Begriffe und Editor-Kommandos vermischen
    • Beispiel: Sätze, die Emacs-Befehle, Lisp-Code und mathematische Begriffe zufällig kombinieren
  • Manche Sätze übernehmen Wörter aus bestimmten Blogposts und formen daraus bedeutungslose Kombinationen
    • Beispiel: „Lisp source file“ und „self-esteem“ werden aus verschiedenen Beiträgen entnommen und kombiniert

Markov-Eigenschaften und Algorithmusstruktur

  • Die Grundeinstellung basiert auf Trigrammen (3 Wörtern) und verwendet eine Map-Struktur,
    in der die ersten beiden Wörter als Schlüssel (key) und das dritte Wort als Wert (value) gespeichert werden
  • Ablauf der Textgenerierung
    • Auswahl eines zufälligen Wortpaars → gleichverteilte Auswahl eines der möglichen Folgewörter
    • Mit dem neu gewählten Wort und dem vorherigen Wort wird ein neues Paar gebildet und der Vorgang wiederholt
    • Beendet wird, wenn kein Folgewort mehr existiert oder das Limit von 100 Wörtern erreicht ist
  • Wenn dasselbe Trigramm mehrfach vorkommt, wird das entsprechende Folgewort mehrfach in der Liste gespeichert,
    sodass die wahrscheinlichkeitsbasierte Auswahl proportional zur Auftretenshäufigkeit erfolgt
  • Dieser Prozess ist ein stochastischer Übergang, der nur vom aktuellen Zustand abhängt,
    mathematisch dargestellt als P(Xₙ₊₁ | Xₙ, Xₙ₋₁, …, X₁) = P(Xₙ₊₁ | Xₙ)
    • Diese Gedächtnislosigkeit (memoryless) ist der Kern der Markov-Eigenschaft

Weitere Experimente und Anpassung der Modellordnung

  • Die Standard-Ordnung (order) ist 2 und kann per Kommandozeilenargument geändert werden
    • Erhöht man die Ordnung auf 3 bis 4, werden die Sätze konsistenter und natürlicher
    • Beispiel: relativ logische Sätze, in denen sich IRC-Befehle und mathematische Konzepte mischen
  • Wird die Ordnung jedoch auf 5 erhöht, neigt das Modell dazu, den Originaltext direkt zu kopieren,
    wodurch das kreative Kauderwelsch (gibberish) verschwindet
  • Auch mit einem Anfangsprompt lässt sich Text generieren
    • Beispiel: Gibt man einen Satzanfang wie „Finally we“ vor, entsteht ein langer Satz mit gemischten Begriffen aus Emacs, MATLAB und GNU bash

Bedeutung einfacher Modelle

  • Im Jahr 2025 dominieren zwar große Sprachmodelle (LLMs),
    doch Markov-Modelle können globale Struktur oder langfristige Abhängigkeiten nicht erfassen
  • Trotzdem sind sie dank ihres einfachen Designs und der klaren Implementierung
    als Einsteigermodell zum Erlernen von Sprachgenerierung weiterhin wertvoll
  • Der Autor bezeichnet dieses Modell als das „Hello, world“ der Sprachmodelle

Noch keine Kommentare.

Noch keine Kommentare.