LLM-gestützte Stil-Replikation: Das Style-Tool#

Experimenteller Kontext#

Das Style-Tool entstand aus einer Diskussion über die Möglichkeiten von Large Language Models als fundamentale Werkzeuge für die Arbeit mit Sprache. Die zentrale Frage war: Wie weit können LLMs Sprach- und Schreibstile kopieren und imitieren?

Die Fragestellung erschien interessant, weil Stile mehr sind als nur Satzbau. Sie strukturieren anders, haben unterschiedliche Narrative, Reihenfolgen und Abläufe. Während einfache Style-Prompts bereits allgemeine Stile imitieren können, sollte exploriert werden, ob auch diese komplexeren Dimensionen replizierbar sind. Das Projekt wurde als Lernvehikel konzipiert.

Das Tool und seine Funktionsweise#

Style ist eine Gradio-basierte Webanwendung mit vier Hauptfunktionen:

Transformieren: Wandelt Eingabetexte nach Stilprofilen um. Profile können aus einer Bibliothek geladen, hochgeladen oder als direkter Prompt eingegeben werden. Eine Feedback-Funktion ermöglicht iterative Verfeinerung.

Stil analysieren: Extrahiert systematisch Stilmerkmale aus Beispieltexten. Die Analyse erfasst linguistische Merkmale (Satzlänge, Komplexität, Passivanteil, Nominalstil), lexikalische Aspekte (Fachterminologie, Abstraktionsgrad), pragmatische Dimensionen (Formalität, Leseransprache, Zielsetzung) und strukturelle Eigenschaften (Absatzlänge, Gliederungstiefe). Optional können Zieltexte oder Zielbeschreibungen angegeben werden.

Feinabstimmung: Nutzer können ein Basis-Profil laden und Vorher-Nachher-Textpaare einreichen. Das System analysiert die Änderungsmuster zwischen Original und Bearbeitung und leitet daraus Transformationsregeln ab. Dieser Ansatz reflektiert die übliche Praxis, dass man KI-Antworten erhält und diese dann anpasst. Bis zu fünf Paare können verarbeitet werden.

Stilübersicht: Visualisiert Stilprofile und zeigt generierte Prompts an. Profile können als JSON, Prompt-Text oder ZIP-Paket exportiert werden.

Das Tool verarbeitet TXT-, Markdown- und DOCX-Dateien und unterstützt ein Context-Window von 250.000 Tokens.

Technische Architektur#

Die Anwendung umfasst 2140 Zeilen Python-Code in sechs Dateien. Die Hauptanwendung (1200 Zeilen) orchestriert vier spezialisierte Module: LLM-Integration mit Token-Management (llm_client.py), Dokumentenverarbeitung (document_processor.py), Profilverwaltung (profile_manager.py) und Export-Funktionen (export_handler.py).

Ein zentraler Ansatz ist die Kombination aus strukturierten JSON-Daten und natürlichsprachlichen Prompts. Stilprofile enthalten strukturierte Merkmale (Zahlen, Kategorien) und gleichzeitig natürlichsprachliche Transformationsanweisungen. Diese Mischung hatte sich bereits in anderen Experimenten als günstig erwiesen.

Die drei System-Prompts für Analyse, Transformation und Diff-Vergleich sind als separate Template-Dateien organisiert. Das Tool nutzt ein LLM der Humboldt-Universität Berlin über eine OpenAI-kompatible Schnittstelle.

Entwicklungsprozess#

Die Entwicklung folgte einem klaren Muster: Zunächst fand intensive Interaktion zum Austausch von Lösungsansätzen statt, bis ein klares Bild entstand – insbesondere bezüglich der Aufteilung in Funktionsbereiche (Tabs). Während dieser Diskussion kristallisierte sich heraus, dass JSON als Import-/Exportformat geeignet ist.

Die Idee war, nicht nur Stile aus Eingangstexten abzuleiten, sondern auch Anweisungen geben zu können, was berücksichtigt werden soll. Zusätzlich sollte Feinschliff durch Tracking von Änderungen möglich sein – ein Pattern, das man auch im Alltag häufig nutzt.

Erst nach vollständiger Klärung von Spezifikation, technischen Ansätzen und Architektur erfolgte die Umsetzung. KISS-Prinzipien wurden bei der Spezifikations-Abstimmung sehr genau beachtet, um eine einfache, gute Lösung zu erhalten.

Die hochwertige Spezifikation ermöglichte eine vollständige Implementierung in nur einer Iteration. Die gesamte erste Umsetzung inklusive Coding und Deployment dauerte etwa 90 Minuten. Danach waren nur zwei kleine Iterationen für Fehlerkorrekturen nötig (jeweils 30 Minuten).

Validierung und Erkenntnisse#

Das Tool wird derzeit erprobt. Erste Tests zeigen, dass es sehr gut funktioniert. Bisher wurden etwa zehn Stilprofile erstellt.

Besonders interessant ist die Bandbreite replizierbarer Stile: Nicht nur Autoren-Stile wie Goethe funktionieren, sondern auch Reden-Stile von Helmut Schmidt oder Barack Obama. Ebenso lassen sich Genres wie Interviews oder Comics abbilden.

Der Comic-Stil funktioniert besonders gut: Das Tool generiert Comic-Sprache und beschreibt einzelne Panels. Diese Texte konnten dann über ein Diffusion Model als grafische Comics umgesetzt werden. Die sprachliche Grundlage funktioniert sehr gut.

Die Möglichkeiten erscheinen sehr beeindruckend. Bisher scheint es, als wären sie sehr weitreichend. Eine überraschende Erkenntnis: Stil ist offenbar ein kulturelles Phänomen und nicht nur ein sprachliches – und kann dennoch repliziert werden.

Methodische Erkenntnisse#

Die zentrale übertragbare Erkenntnis: Je hochwertiger der Spezifikationsprozess und die Spezifikation, desto besser lässt sich die Idee umsetzen. Architekturerfahrungen sind dabei sehr wichtig.

Das Projekt war mit 4000 Zeilen (davon 2000 Python) klein und gut beherrschbar – nur sechs Python-Dateien, der Rest sind Prompts. Durch den Fokus auf eine ausführliche, vollständige Spezifikation konnte die Entwicklungszeit auf 90 Minuten reduziert werden.

Der Hybrid-Ansatz aus sprachlichen Anweisungen und strukturierten JSON-Daten hat sich als elegant und praktikabel erwiesen. Token-Management als Standard-Pattern und die JSON-Strukturierung aus LLM-Outputs funktionieren von Anfang an zuverlässig, wenn sie aus früheren Projekten als bewährte Techniken übernommen werden.

Der Diff-basierte Ansatz zur Feinabstimmung funktioniert gut, muss aber noch näher erkundet werden. Er bildet reale Arbeitsabläufe ab und macht implizite Anpassungen explizit.